lhl d01e1b720f feat(writer): 输出语言一致性保障 + 用户可选输出语言
- 步骤0: 新增中文镜像模板 scripts/make_zh_template.py 与 samples/概要设计书模板_中文.docx(7章锚点原样保留)
- 步骤1: config.WriterConfig.output_language→Settings.writer;GenerationContext.output_language + to_vars.language_instruction(zh/ja/auto);writer_agent【语言约束】改引变量;context_builder/orchestrator/run_trial 透传 --output-language
- 步骤A: 新建 src/genesis/writer/language.py(detect_script/resolve_expected_language/find_language_violations);WriterAgent.generate_chapter 按期望语言强制、违规重试、耗尽硬失败;max_retries 默认 1→2
- 步骤B: _format_impact 影响调查标签按 output_language 本地化(zh 新建/变更/删除/警告)
- 步骤C: eval scorer 第 11 维度 language_consistency(不可验证=满分,不拉低总分);ChapterArtifact.expected_language;QAValidator.validate_doc 透传;QALoop.run 透传 output_language
- 测试: test_zh_template/test_language_plumbing/test_writer_language/test_scorer_language/test_language_coverage,并更新 test_phase5_e2e
- 全量 pytest 424 passed / 99.15%(覆盖率门槛 99% 达标)
2026-08-25 23:30:24 +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%