Files
2026Technology-Competition/tests/coverage/index.html
T
lhl a1fefd43eb docs(deliverables): 参赛成果物补齐(README 五项 + 范式图/架构图 + coverage 报告)
按《参赛成果物提交规范·赛道一》§8:
- README:新增项目性质:新规声明、项目概述、整体功能说明、效果总结
  (431 测试/99.15% 覆盖/双语试运行/影响调查基线)、团队分工、规模与难度自评
- design.md:开发范式流程图(mermaid,6 步与 AI 日志步骤列一致)+ §2.1
  Agent 架构图(感知-规划-行动-记忆映射)
- _AI_USAGE_LOG.md:回填「待补充」→架构设计、「整体迭代」→反馈迭代
- tests/coverage/ 覆盖率 HTML 报告(99.15%)+ tests/test-execution-log.txt 执行日志
- docs/参赛成果物提交规范-赛道一.md → docs/submission-spec-track1.md(ASCII 化)
- pyproject: pytest norecursedirs 排除 test-execution-log.txt
全量 pytest 431 passed / 99.15%
2026-08-26 14:24:02 +08:00

859 lines
40 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Coverage report</title>
<link rel="icon" sizes="32x32" href="favicon_32_cb_c827f16f.png">
<link rel="stylesheet" href="style_cb_0853b3de.css" type="text/css">
<script src="coverage_html_cb_188fc9a4.js" defer></script>
</head>
<body class="indexfile">
<header>
<div class="content">
<h1>Coverage report:
<span class="pc_cov">99%</span>
</h1>
<aside id="help_panel_wrapper">
<input id="help_panel_state" type="checkbox">
<label for="help_panel_state">
<img id="keyboard_icon" src="keybd_closed_cb_900cfef5.png" alt="Show/hide keyboard shortcuts">
</label>
<div id="help_panel">
<p class="legend">Shortcuts on this page</p>
<div class="keyhelp">
<p>
<kbd>f</kbd>
<kbd>s</kbd>
<kbd>m</kbd>
<kbd>x</kbd>
<kbd>b</kbd>
<kbd>p</kbd>
<kbd>c</kbd>
&nbsp; change column sorting
</p>
<p>
<kbd>[</kbd>
<kbd>]</kbd>
&nbsp; prev/next file
</p>
<p>
<kbd>?</kbd> &nbsp; show/hide this help
</p>
</div>
</div>
</aside>
<form id="filter_container">
<input id="filter" type="text" value="" placeholder="filter...">
<div>
<input id="hide100" type="checkbox" >
<label for="hide100">hide covered</label>
</div>
</form>
<h2>
<a class="button current">Files</a>
<a class="button" href="function_index.html">Functions</a>
<a class="button" href="class_index.html">Classes</a>
</h2>
<p class="text">
<a class="nav" href="https://coverage.readthedocs.io/en/7.15.4">coverage.py v7.15.4</a>,
created at 2026-08-26 14:20 +0800
</p>
</div>
</header>
<main id="index">
<table class="index" data-sortable>
<thead>
<tr class="tablehead grouphead">
<th class="spacer">&nbsp;</th>
<th class="spacer">&nbsp;</th>
<th class="left" colspan="4">Statements</th>
<th class="spacer">&nbsp;</th>
<th class="left" colspan="3">Branches</th>
<th class="spacer">&nbsp;</th>
<th>Total</th>
</tr>
<tr class="tablehead" title="Click to sort">
<th id="file" class="name" aria-sort="none" data-shortcut="f">File<span class="arrows"></span></th>
<th class="spacer">&nbsp;</th>
<th id="statements_coverage" aria-sort="none" data-default-sort-order="descending">coverage<span class="arrows"></span></th>
<th id="statements" aria-sort="none" data-default-sort-order="descending" data-shortcut="s">statements<span class="arrows"></span></th>
<th id="missing" aria-sort="none" data-default-sort-order="descending" data-shortcut="m">missing<span class="arrows"></span></th>
<th id="excluded" aria-sort="none" data-default-sort-order="descending" data-shortcut="x">excluded<span class="arrows"></span></th>
<th class="spacer">&nbsp;</th>
<th id="branches_coverage" aria-sort="none" data-default-sort-order="descending">coverage<span class="arrows"></span></th>
<th id="branches" aria-sort="none" data-default-sort-order="descending" data-shortcut="b">branches<span class="arrows"></span></th>
<th id="partial" aria-sort="none" data-default-sort-order="descending" data-shortcut="p">partial<span class="arrows"></span></th>
<th class="spacer">&nbsp;</th>
<th id="coverage" aria-sort="none" data-shortcut="c">coverage<span class="arrows"></span></th>
</tr>
</thead>
<tbody>
<tr class="region">
<td class="name"><a href="z_d531e967c5066ff6___init___py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>__init__.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="1 1">100%</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="0 0">100%</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="1 1">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_d531e967c5066ff6_config_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>config.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="132 132">100%</td>
<td>132</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="24 24">100%</td>
<td>24</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="156 156">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_d531e967c5066ff6_data_models_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>data_models.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="213 213">100%</td>
<td>213</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="0 0">100%</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="213 213">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_375b1f32d1fd47dc___init___py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>eval<span class="sep">\</span>__init__.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="3 3">100%</td>
<td>3</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="0 0">100%</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="3 3">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_375b1f32d1fd47dc_golden_set_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>eval<span class="sep">\</span>golden_set.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="18 18">100%</td>
<td>18</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="0 0">100%</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="18 18">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_375b1f32d1fd47dc_scorer_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>eval<span class="sep">\</span>scorer.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="108 108">100%</td>
<td>108</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="18 18">100%</td>
<td>18</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="126 126">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_911165347f2fdbf7_code_parser_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>impact<span class="sep">\</span>code_parser.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="128 128">100%</td>
<td>128</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="31 32">97%</td>
<td>32</td>
<td>1</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="159 160">99%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_911165347f2fdbf7_existing_system_explorer_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>impact<span class="sep">\</span>existing_system_explorer.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="5 5">100%</td>
<td>5</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="0 0">100%</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="5 5">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_911165347f2fdbf7_impact_agent_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>impact<span class="sep">\</span>impact_agent.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="122 122">100%</td>
<td>122</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="59 60">98%</td>
<td>60</td>
<td>1</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="181 182">99%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_ea3a2206db328682___init___py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>inference<span class="sep">\</span>__init__.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="5 5">100%</td>
<td>5</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="0 0">100%</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="5 5">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_ea3a2206db328682_client_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>inference<span class="sep">\</span>client.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="58 58">100%</td>
<td>58</td>
<td>0</td>
<td>10</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="14 14">100%</td>
<td>14</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="72 72">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_ea3a2206db328682_engine_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>inference<span class="sep">\</span>engine.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="103 103">100%</td>
<td>103</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="30 30">100%</td>
<td>30</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="133 133">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_ea3a2206db328682_exceptions_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>inference<span class="sep">\</span>exceptions.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="11 11">100%</td>
<td>11</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="0 0">100%</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="11 11">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_ea3a2206db328682_factory_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>inference<span class="sep">\</span>factory.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="35 35">100%</td>
<td>35</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="11 12">92%</td>
<td>12</td>
<td>1</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="46 47">98%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_ea3a2206db328682_prompt_registry_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>inference<span class="sep">\</span>prompt_registry.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="27 27">100%</td>
<td>27</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="8 8">100%</td>
<td>8</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="35 35">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_ea3a2206db328682_token_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>inference<span class="sep">\</span>token.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="26 26">100%</td>
<td>26</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="2 2">100%</td>
<td>2</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="28 28">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_ea3a2206db328682_types_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>inference<span class="sep">\</span>types.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="38 38">100%</td>
<td>38</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="0 0">100%</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="38 38">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_d214db0beb5bc0c2___init___py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>orchestrator<span class="sep">\</span>__init__.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="3 3">100%</td>
<td>3</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="0 0">100%</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="3 3">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_d214db0beb5bc0c2_datagate_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>orchestrator<span class="sep">\</span>datagate.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="43 43">100%</td>
<td>43</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="10 10">100%</td>
<td>10</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="53 53">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_d214db0beb5bc0c2_task_queue_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>orchestrator<span class="sep">\</span>task_queue.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="98 98">100%</td>
<td>98</td>
<td>0</td>
<td>22</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="16 16">100%</td>
<td>16</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="114 114">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_b6575c3308ab3afa__word_common_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>parsers<span class="sep">\</span>_word_common.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="6 6">100%</td>
<td>6</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="0 0">100%</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="6 6">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_b6575c3308ab3afa_excel_parser_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>parsers<span class="sep">\</span>excel_parser.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="73 73">100%</td>
<td>73</td>
<td>0</td>
<td>4</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="28 28">100%</td>
<td>28</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="101 101">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_b6575c3308ab3afa_excel_reader_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>parsers<span class="sep">\</span>excel_reader.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="12 12">100%</td>
<td>12</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="2 2">100%</td>
<td>2</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="14 14">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_b6575c3308ab3afa_formatting_detector_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>parsers<span class="sep">\</span>formatting_detector.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="40 40">100%</td>
<td>40</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="20 20">100%</td>
<td>20</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="60 60">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_b6575c3308ab3afa_free_text_extractor_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>parsers<span class="sep">\</span>free_text_extractor.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="22 22">100%</td>
<td>22</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="10 10">100%</td>
<td>10</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="32 32">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_b6575c3308ab3afa_merge_fill_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>parsers<span class="sep">\</span>merge_fill.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="15 15">100%</td>
<td>15</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="10 10">100%</td>
<td>10</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="25 25">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_b6575c3308ab3afa_paragraph_splitter_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>parsers<span class="sep">\</span>paragraph_splitter.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="17 17">100%</td>
<td>17</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="10 10">100%</td>
<td>10</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="27 27">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_b6575c3308ab3afa_provenance_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>parsers<span class="sep">\</span>provenance.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="2 2">100%</td>
<td>2</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="0 0">100%</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="2 2">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_b6575c3308ab3afa_resolver_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>parsers<span class="sep">\</span>resolver.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="51 51">100%</td>
<td>51</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="20 20">100%</td>
<td>20</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="71 71">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_b6575c3308ab3afa_rule_doc_parser_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>parsers<span class="sep">\</span>rule_doc_parser.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="45 45">100%</td>
<td>45</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="18 18">100%</td>
<td>18</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="63 63">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_b6575c3308ab3afa_sheet_detector_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>parsers<span class="sep">\</span>sheet_detector.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="20 20">100%</td>
<td>20</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="14 14">100%</td>
<td>14</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="34 34">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_b6575c3308ab3afa_sheet_nature_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>parsers<span class="sep">\</span>sheet_nature.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="29 29">100%</td>
<td>29</td>
<td>0</td>
<td>4</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="12 12">100%</td>
<td>12</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="41 41">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_b6575c3308ab3afa_source_aggregator_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>parsers<span class="sep">\</span>source_aggregator.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="44 44">100%</td>
<td>44</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="12 12">100%</td>
<td>12</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="56 56">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_b6575c3308ab3afa_table_extractor_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>parsers<span class="sep">\</span>table_extractor.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="24 24">100%</td>
<td>24</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="10 10">100%</td>
<td>10</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="34 34">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_b6575c3308ab3afa_word_template_parser_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>parsers<span class="sep">\</span>word_template_parser.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="32 32">100%</td>
<td>32</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="12 12">100%</td>
<td>12</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="44 44">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_0614738d3a4c1bf3_guardrails_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>qa<span class="sep">\</span>guardrails.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="27 27">100%</td>
<td>27</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="6 6">100%</td>
<td>6</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="33 33">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_0614738d3a4c1bf3_qa_loop_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>qa<span class="sep">\</span>qa_loop.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="52 53">98%</td>
<td>53</td>
<td>1</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="8 10">80%</td>
<td>10</td>
<td>2</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="60 63">95%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_0614738d3a4c1bf3_report_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>qa<span class="sep">\</span>report.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="10 10">100%</td>
<td>10</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="0 0">100%</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="10 10">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_0614738d3a4c1bf3_validator_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>qa<span class="sep">\</span>validator.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="27 27">100%</td>
<td>27</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="2 2">100%</td>
<td>2</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="29 29">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_1fc170110d538298_rag_service_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>services<span class="sep">\</span>rag_service.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="24 26">92%</td>
<td>26</td>
<td>2</td>
<td>4</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="5 6">83%</td>
<td>6</td>
<td>1</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="29 32">91%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_d531e967c5066ff6_state_machine_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>state_machine.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="40 40">100%</td>
<td>40</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="10 10">100%</td>
<td>10</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="50 50">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_cac49e191045e829___init___py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>writer<span class="sep">\</span>__init__.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="3 3">100%</td>
<td>3</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="0 0">100%</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="3 3">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_cac49e191045e829_context_builder_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>writer<span class="sep">\</span>context_builder.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="15 15">100%</td>
<td>15</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="2 2">100%</td>
<td>2</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="17 17">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_cac49e191045e829_docx_injector_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>writer<span class="sep">\</span>docx_injector.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="128 132">97%</td>
<td>132</td>
<td>4</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="64 66">97%</td>
<td>66</td>
<td>2</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="192 198">97%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_cac49e191045e829_exceptions_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>writer<span class="sep">\</span>exceptions.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="2 2">100%</td>
<td>2</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="0 0">100%</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="2 2">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_cac49e191045e829_language_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>writer<span class="sep">\</span>language.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="51 51">100%</td>
<td>51</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="32 32">100%</td>
<td>32</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="83 83">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_cac49e191045e829_models_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>writer<span class="sep">\</span>models.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="117 117">100%</td>
<td>117</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="34 34">100%</td>
<td>34</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="151 151">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_cac49e191045e829_orchestrator_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>writer<span class="sep">\</span>orchestrator.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="65 65">100%</td>
<td>65</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="19 20">95%</td>
<td>20</td>
<td>1</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="84 85">99%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_cac49e191045e829_renderer_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>writer<span class="sep">\</span>renderer.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="16 16">100%</td>
<td>16</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="10 10">100%</td>
<td>10</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="26 26">100%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_cac49e191045e829_template_mapper_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>writer<span class="sep">\</span>template_mapper.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="27 27">100%</td>
<td>27</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="10 12">83%</td>
<td>12</td>
<td>2</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="37 39">95%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_cac49e191045e829_writer_agent_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>writer<span class="sep">\</span>writer_agent.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="71 75">95%</td>
<td>75</td>
<td>4</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="19 22">86%</td>
<td>22</td>
<td>3</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="90 97">93%</td>
</tr>
<tr class="region">
<td class="name"><a href="z_cac49e191045e829_writer_state_py.html">src<span class="sep">\</span>genesis<span class="sep">\</span>writer<span class="sep">\</span>writer_state.py</a></td>
<td class="spacer">&nbsp;</td>
<td data-ratio="21 21">100%</td>
<td>21</td>
<td>0</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="6 6">100%</td>
<td>6</td>
<td>0</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="27 27">100%</td>
</tr>
</tbody>
<tfoot>
<tr class="total">
<td class="name">Total</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="2305 2316">99%</td>
<td>2316</td>
<td>11</td>
<td>44</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="628 642">98%</td>
<td>642</td>
<td>14</td>
<td class="spacer">&nbsp;</td>
<td data-ratio="2933 2958">99%</td>
</tr>
</tfoot>
</table>
<p id="no_rows">
No items found using the specified filter.
</p>
<p>2 empty files skipped.</p>
</main>
<footer>
<div class="content">
<p>
<a class="nav" href="https://coverage.readthedocs.io/en/7.15.4">coverage.py v7.15.4</a>,
created at 2026-08-26 14:20 +0800
</p>
</div>
<aside class="hidden">
<a id="prevFileLink" class="nav" href="z_cac49e191045e829_writer_state_py.html"></a>
<a id="nextFileLink" class="nav" href="z_d531e967c5066ff6___init___py.html"></a>
<button type="button" class="button_prev_file" data-shortcut="["></button>
<button type="button" class="button_next_file" data-shortcut="]"></button>
<button type="button" class="button_show_hide_help" data-shortcut="?"></button>
</aside>
</footer>
</body>
</html>