chore: agent 配置文件纳入版本管理 + docs/ 项目章程与全局状态 - Closes #37
CI / test (pull_request) Successful in 11s

- agents/DEV_AGENT.md: 新增启动读取 docs、Session 收尾流程、自行验证关闭 Issue
- agents/QE_AGENT.md: 新增启动读取 docs、Session 收尾流程
- docs/PROJECT_CHARTER.md: 项目章程(背景、愿景、目标、约束)
- docs/GLOBAL_STATE.md: 项目全局状态(架构、已知问题、变更日志)
- scripts/: 启动脚本重构,引入 _common.sh

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-06-02 13:57:42 +08:00
parent 4cf9f1d3e0
commit 3a3091d0df
8 changed files with 390 additions and 158 deletions
+71
View File
@@ -0,0 +1,71 @@
# 项目全局状态(截至 2026-06-02
## 参考章程
详见 `PROJECT_CHARTER.md`。章程中定义的长期目标与原则是当前决策的最高依据。
## 当前阶段目标
核心目标(对齐章程):**IR 功能覆盖率 ≥ 70%,IR 一致性稳定**
**本轮迭代**
- 修复表格格式统计功能(#34
- 继续提升 IR 结构化覆盖率(#21,当前 36.1%,目标 70%
- 当前分支:`test/issue-33``_extract_content_units` 仅统计功能章节表格行
## Pipeline 架构
```
input/*.docx → doc_parser → _parsed.json
step1_semantic_index → semantic_index.json
step2_ir_extraction → ir_fragments.json
step2_5_branch_coverage → ir_autocomplete_fragments.json
step3_merge_and_audit → ir_final.json + ir_audit_report.md
```
核心模块:
- `skills/doc_parser_skill/` — 文档解析(文本、表格、图片、冲突检测)
- `skills/ir_generation_skill/` — IR 生成(step1/2/2.5/3
- `tests/acceptance/` — 验收测试(Layer A Schema / Layer B Coverage / Layer C QE Audit
- `scripts/agent_poller.py` — Gitea Issue/PR 操作工具
## 已探索方向 & 结论
| 方向 | 状态 | 结论摘要 | 关联 Issue |
|------|------|----------|------------|
| table coverage 统计 | 已闭合 | 只统计功能章节的表格行,非功能章节排除 | #33, #21 |
| rule_signature None-safe | 已闭合 | conditions=None 防御 + 0 行表格覆盖率 | #21 |
| step1 空章节过滤 | 已闭合 | _has_section_content() 过滤空章节 | #29 |
| trigger.operator null 修复 | 已闭合 | step3 _normalize_rule 修复 trigger 缺失/null | #22 |
| 覆盖反馈重试 | 已闭合 | _quick_validate 增加 section/table 覆盖率检查 | #21 |
| 多 Agent 协作闭环 | 已闭合 | Dev+QE 通过 Gitea Issues 协同迭代 | #15 |
## 已知问题清单
- [P0] IR 结构化覆盖率不足(#21):当前 36.1%,目标 70%
- [中等] 章节中表格格式统计功能下降(#34):表格缺行反馈不够具体
- [轻微] `_measure_coverage` overall 维度输出 0 个维度(#36test-codeQE 域)
- [轻微] 缺少完整 e2e 测试(#18blocked
## 当前打开 Issue(非纯测试)
| # | 标题 | 优先级 |
|---|------|--------|
| #34 | 章节中表格格式统计功能下降 + 表格缺行反馈 | 中 |
| #21 | [P0] IR 结构化覆盖率不足 (36.1% < 70%) | P0 |
## 下次启动推荐起点
1. 读取 `docs/PROJECT_CHARTER.md``docs/GLOBAL_STATE.md` 了解项目全局状态
2. 运行 `python scripts/agent_poller.py --action list` 获取最新 Issue 列表
3. 优先处理 P0 Issue#21),其次 #34
4. 关注 IR 覆盖率提升和表格统计修复
## 最近变更日志
| 日期 | 变更 | 原因 |
|------|------|------|
| 2026-06-02 | 创建 PROJECT_CHARTER.md 和 GLOBAL_STATE.md | 对齐 Agent 认知,建立项目全局视图 |
| 2026-06-02 | DEV_AGENT.md 更新:自行验证关闭 Issue,强调功能验证非 dry-run | 明确 Dev-Agent 责任边界 |
| 2026-06-01 | test: _extract_content_units 仅统计功能章节表格行 - Closes #33 | 修复表格覆盖率误计 |
| 2026-05-31 | fix: table coverage only counts functional sections + specific missing row feedback - Closes #21 | 表格覆盖率只统计功能章节 |
| 2026-05-31 | fix: rule_signature conditions=None防御 + 0行表格覆盖率 + UT覆盖 - Closes #21 | 防御性修复 |
| 2026-05-31 | fix: step1 空章节过滤 + step3 rule_signature None-safe - Closes #21 | 空章节过滤修复 |
| 2026-05-30 | test: _has_section_content() 过滤空章节 - Closes #29 | QE 发现空章节误报 |
+51
View File
@@ -0,0 +1,51 @@
# 项目章程:Document Analyzer — PRD 到 IR 的智能化 pipeline
## 项目背景
车机 PRD(产品需求文档)格式多样,包含文本、表格、流程图等混合内容。传统方式下,测试人员需要人工阅读 PRD 并编写测试用例,效率低且容易遗漏功能点。`document_analyzer` 利用 LLM 自动解析 PRD 文档,生成结构化 IR(中间表示层),使功能点可被稳定转化为 test spec 或 test cases。
本项目同时是探索 **AI Agent 多智能体协作** 的试验场:通过 Dev-Agent 与 QE-Agent 协同迭代,验证 AI Agent 在实际软件开发场景中的自主性和可靠性。
## 项目愿景
打造一个高质量、高覆盖率的 PRD-to-IR pipeline,使 AI 能够可靠地从需求文档中提取结构化功能点。同时通过 Dev-Agent + QE-Agent 协同模式,探索 AI Agent 驱动的软件工程闭环。
## 核心目标(不可轻易变)
1. IR 功能覆盖率 ≥ 70%(最终目标 95%),确保功能点不遗漏
2. IR 一致性:同一输入文档多次运行产生的 IR 应尽量一致
3. 全 pipeline 可审计:每个阶段产出可追溯、可解释的中间产物
4. Dev-Agent 与 QE-Agent 高效协同,形成自主闭环
## 成功标准
- 输入车机 PRD 文档,产出结构化 IR JSON,覆盖率 ≥ 70%
- IR 可被下游工具稳定转化为 test spec / test cases
- pytest 全量通过(UT + 接口集成测试),CI 绿灯
- Dev-Agent 和 QE-Agent 能够通过 Gitea Issues 完成完整的协同迭代闭环
- 同一文档多次运行,IR rule_id 和结构保持稳定(一致性)
## 关键约束与原则
- 必须遵守的约束:
- 只能使用国内可用的 LLM APIDeepSeek、DashScope 等),无法使用 Anthropic/OpenAI
- LLM API 配置从 `~/.openclaw/config/secrets.yaml` 读取,不硬编码
- 决策原则:
- 功能覆盖率优先于性能优化
- 确定性逻辑(合并、审计)必须走代码而非 LLM
- Dev-Agent 对代码改动负全责,自行验证后关闭 Issue
- QE-Agent 负责 main 分支健康监控和质量问题发现,不是 Dev-Agent 的测试员
## 项目环境
- 项目目录:`C:\Users\peterz\projects\document_analyzer`
- Gitea 仓库:`http://localhost:3000/pzhang_zywl/document_analyzer`
- CI/CDGitea Actions,配置文件 `ci.yml`
- LLM 配置:`~/.openclaw/config/secrets.yaml`
- Agent 定义:`agents/DEV_AGENT.md``agents/QE_AGENT.md`
## 范围与边界
- 明确不做什么:
- 不做 UI / Web 界面
- 不做实时服务(pipeline 为离线批处理)
- 不生成最终测试用例(下游工具负责)
- 不支持非中文 PRD 文档(当前阶段)
## 变更记录
| 日期 | 变更内容 | 原因 |
|------|----------|------|
| 2026-06-02 | 初始创建 | 建立项目章程,对齐 Dev-Agent 和 QE-Agent 认知 |