lhl 0a498e4f7a fix(writer): 无锚点子章归并父章生成 + 注入后裸重复子节去重
- template_mapper: 按 design §6.5 仅 Heading level<=1 起章,H2/H3 归入
  父章 sub_headings(此前每个 heading 独立成章,无 {{section:id}} 锚点的
  6 个子章生成后被静默丢弃)
- models: ChapterSpec.sub_headings 字段;to_vars 暴露 sub_headings 变量
- writer_agent: prompt 新增【小节约束】(有子节时按小节顺序以 level=2
  heading 组织,不得遗漏或新增)
- docx_injector: 注入后删除同章内与已生成标题同名且完全无内容的模板裸
  H2/H3(保守策略:带内容的模板子节保留)
- 真实试运行验证:7 章 / 无静默丢弃告警 / 14 个 H2 无重复
2026-08-24 12:23:35 +08:00

Genesis — 概要设计书自动生成 Agent

读取 Excel 版要件定义、概要设计做成说明书、概要设计模板、概要设计书记入规则和图表规则等输入资料,自动生成符合规范的 Word 版概要设计书(追加/改修场景会结合既有系统源码做影响调查)。

安装

# 1. 创建虚拟环境并安装依赖(Python >= 3.11
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e ".[dev]"

# 2. 配置 LLM API Key(真实模式必需;离线 --fake 模式可跳过)
#    编辑 .env(已被 .gitignore 忽略,密钥不入库):
#    GENESIS_INFERENCE__API_KEY=sk-xxx
#    可选:
#    GENESIS_INFERENCE__BASE_URL=https://api.deepseek.com
#    GENESIS_INFERENCE__MODEL=deepseek-chat

试运行

默认输入为 samples/ 下既有样本(追加改修·股票场景 + sunOnly 既有系统 + 真实概要设计书模板)。

离线 Fake 模式(无需 API key,验证整条管线)

python scripts/run_trial.py --fake

真实 LLM 模式(需先在 .env 配置 API Key

python scripts/run_trial.py

输出

  • output/output.docx — 概要设计书
  • output/impact-report.json — 影响调查书(JSON,独立可下载)

output/ 已加入 .gitignore,试运行产物不入库。

自定义输入

python scripts/run_trial.py `
  --requirement samples\要件定義_追加改修_股票.xlsx `
  --template samples\概要設計書テンプレート.docx `
  --rules samples\概要設計做成説明書.docx samples\記入規則.docx `
  --existing-system samples\existing-system `
  --language java `
  --output output\output.docx

测试

python -m pytest

全量单测 + 覆盖率检查(红线 fail_under = 99)。

S
Description
零号概要设计者
Readme
2.3 MiB
Languages
HTML 73.8%
Python 22.4%
JavaScript 2.4%
CSS 1.4%