docs: 精简单人任务事实来源并分级工程基线 (#25)

This commit is contained in:
ila
2026-08-25 08:39:52 +08:00
parent 3696663781
commit 5821ea0d08
14 changed files with 174 additions and 108 deletions
+16 -6
View File
@@ -1,10 +1,10 @@
"""DevHarness 单一命令行入口。
子命令:
check 检查必需文件、核心文档和任务归档结构
check 检查必需文件、核心文档和已有任务快照结构
sync 从 Gitea Wiki 单向导出或校验核心 docs 镜像
archive 在 Gitea Wiki 创建任务归档
export 人工按需把 Wiki 任务归档导出到 docs/task
archive 显式在 Gitea Wiki 创建可选任务快照
export 人工按需把已有 Wiki 任务快照导出到 docs/task
各子命令的实现逻辑取自原来的 check_harness.py、sync_wiki_docs.py、
new_task_archive.py 和 export_task_archives.py,行为未改变。
@@ -85,7 +85,7 @@ CORE_DOCUMENT_REQUIREMENTS = {
"## 面向初级维护者的修改边界",
"## 每个任务的文档影响",
"## 需求记录与流转",
"## 稳定文档与任务归档",
"## 稳定文档与可选历史快照",
"## 自然语言快捷指令",
"## 效率与范围控制",
"### 严格控制范围",
@@ -125,6 +125,7 @@ CORE_DOCUMENT_REQUIREMENTS = {
"## 初始化顺序",
"#### 需求总览启用条件",
"### 2. 选择建设基线",
"#### 工程基线裁剪",
"#### 判断案例",
"### 3. 识别子项目与交付单元",
"### 7. 确定交付对象和文档",
@@ -306,6 +307,11 @@ def check_task_template(errors: list[str], root: Path = ROOT) -> None:
"- [ ] 更新已有交付文档,受众与页面:",
"- [ ] 新增交付文档,受众与页面:",
"- [ ] 需要目标岗位或客户代表验证:是 / 否;验证方式:",
"## 任务记录与可选快照",
"- 单次任务事实来源:当前 Gitea 工单正文与评论",
"- [ ] 默认不创建任务快照",
"- [ ] 用户明确要求专项快照;用途和范围:",
"- [ ] 项目专用规则要求任务快照;规则入口:",
)
for section in missing_sections(content, required):
errors.append(f"单元任务模板缺少:{section}")
@@ -325,7 +331,9 @@ def check_agent_efficiency_rules(errors: list[str], root: Path = ROOT) -> None:
"单元任务是唯一正式实施单位",
"高风险修改必须停止",
"用户没有明确验收通过前不得关闭",
"长期核心文档必须先修改 Wiki",
"只有长期事实变化时才修改 Wiki",
"Gitea 工单是单次任务需求、变化、实现、测试、提交和验收的事实来源",
"默认不创建任务归档",
"### 新项目 Wiki 初始化门禁",
"`Home` 不存在时必须先创建 `Home`",
"不得把模板自带的本地 `docs/` 当作新项目 Wiki 已初始化的证据",
@@ -368,6 +376,8 @@ def check_repository_readme(errors: list[str], root: Path = ROOT) -> None:
"`Home` 不存在时先创建并回读 `Home`",
"本地 `docs/` 的存在不能证明线上 Wiki 已初始化",
"python dev_scripts/harness.py sync --verify",
"Gitea 工单是单次任务唯一事实来源",
"默认不创建任务归档",
)
for section in missing_sections(content, required):
errors.append(f"README.md 缺少:{section}")
@@ -698,7 +708,7 @@ def main() -> int:
)
p_sync.set_defaults(func=run_sync)
p_archive = sub.add_parser("archive", help="在 Gitea Wiki 创建任务归档")
p_archive = sub.add_parser("archive", help="显式在 Gitea Wiki 创建可选任务快照")
p_archive.add_argument("issue_number", help="Gitea 工单号,例如 123")
p_archive.add_argument("title", help="简短任务标题")
p_archive.add_argument(