@mycodemap/mycodemap 0.5.1 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +84 -10
  3. package/dist/cli/commands/init.d.ts +7 -2
  4. package/dist/cli/commands/init.d.ts.map +1 -1
  5. package/dist/cli/commands/init.js +22 -34
  6. package/dist/cli/commands/init.js.map +1 -1
  7. package/dist/cli/commands/publish-status.d.ts +31 -0
  8. package/dist/cli/commands/publish-status.d.ts.map +1 -0
  9. package/dist/cli/commands/publish-status.js +101 -0
  10. package/dist/cli/commands/publish-status.js.map +1 -0
  11. package/dist/cli/commands/readiness-gate.d.ts +25 -0
  12. package/dist/cli/commands/readiness-gate.d.ts.map +1 -0
  13. package/dist/cli/commands/readiness-gate.js +197 -0
  14. package/dist/cli/commands/readiness-gate.js.map +1 -0
  15. package/dist/cli/commands/ship/checker.d.ts +4 -9
  16. package/dist/cli/commands/ship/checker.d.ts.map +1 -1
  17. package/dist/cli/commands/ship/checker.js +60 -22
  18. package/dist/cli/commands/ship/checker.js.map +1 -1
  19. package/dist/cli/commands/ship/monitor.d.ts +6 -1
  20. package/dist/cli/commands/ship/monitor.d.ts.map +1 -1
  21. package/dist/cli/commands/ship/monitor.js +223 -46
  22. package/dist/cli/commands/ship/monitor.js.map +1 -1
  23. package/dist/cli/commands/ship/pipeline.d.ts.map +1 -1
  24. package/dist/cli/commands/ship/pipeline.js +14 -5
  25. package/dist/cli/commands/ship/pipeline.js.map +1 -1
  26. package/dist/cli/commands/ship/rules/quality-rules.d.ts +12 -8
  27. package/dist/cli/commands/ship/rules/quality-rules.d.ts.map +1 -1
  28. package/dist/cli/commands/ship/rules/quality-rules.js +49 -34
  29. package/dist/cli/commands/ship/rules/quality-rules.js.map +1 -1
  30. package/dist/cli/config-loader.js +1 -1
  31. package/dist/cli/config-loader.js.map +1 -1
  32. package/dist/cli/first-run-guide.d.ts.map +1 -1
  33. package/dist/cli/first-run-guide.js +10 -12
  34. package/dist/cli/first-run-guide.js.map +1 -1
  35. package/dist/cli/index.js +8 -1
  36. package/dist/cli/index.js.map +1 -1
  37. package/dist/cli/init/hooks.d.ts +17 -0
  38. package/dist/cli/init/hooks.d.ts.map +1 -0
  39. package/dist/cli/init/hooks.js +220 -0
  40. package/dist/cli/init/hooks.js.map +1 -0
  41. package/dist/cli/init/receipt.d.ts +4 -0
  42. package/dist/cli/init/receipt.d.ts.map +1 -0
  43. package/dist/cli/init/receipt.js +117 -0
  44. package/dist/cli/init/receipt.js.map +1 -0
  45. package/dist/cli/init/reconciler.d.ts +44 -0
  46. package/dist/cli/init/reconciler.d.ts.map +1 -0
  47. package/dist/cli/init/reconciler.js +377 -0
  48. package/dist/cli/init/reconciler.js.map +1 -0
  49. package/dist/cli/init/rule-templates.d.ts +9 -0
  50. package/dist/cli/init/rule-templates.d.ts.map +1 -0
  51. package/dist/cli/init/rule-templates.js +105 -0
  52. package/dist/cli/init/rule-templates.js.map +1 -0
  53. package/dist/cli/init/rules.d.ts +13 -0
  54. package/dist/cli/init/rules.d.ts.map +1 -0
  55. package/dist/cli/init/rules.js +113 -0
  56. package/dist/cli/init/rules.js.map +1 -0
  57. package/dist/cli/paths.d.ts +4 -2
  58. package/dist/cli/paths.d.ts.map +1 -1
  59. package/dist/cli/paths.js +13 -5
  60. package/dist/cli/paths.js.map +1 -1
  61. package/dist/orchestrator/test-linker.d.ts.map +1 -1
  62. package/dist/orchestrator/test-linker.js +5 -36
  63. package/dist/orchestrator/test-linker.js.map +1 -1
  64. package/docs/AI_ASSISTANT_SETUP.md +4 -2
  65. package/docs/PUBLISHING.md +41 -12
  66. package/docs/SETUP_GUIDE.md +12 -12
  67. package/docs/agents/domain.md +36 -0
  68. package/docs/agents/issue-tracker.md +22 -0
  69. package/docs/agents/triage-labels.md +15 -0
  70. package/docs/ai-guide/COMMANDS.md +57 -3
  71. package/docs/ai-guide/INTEGRATION.md +1 -1
  72. package/docs/ai-guide/PATTERNS.md +3 -3
  73. package/docs/ai-guide/QUICKSTART.md +13 -4
  74. package/docs/ai-guide/README.md +7 -7
  75. package/docs/archive/ideation/2026-04-22-harness-rules-entry-docs-optimization-ideation.md +102 -0
  76. package/docs/archive/ideation/2026-04-22-rules-claude-agents-optimization-ideation.md +107 -0
  77. package/docs/brainstorms/2026-04-22-rules-entry-docs-phase1-structure-consolidation-requirements.md +110 -0
  78. package/docs/brainstorms/999.1-mycodemap-init-enhancements-requirements.md +166 -0
  79. package/docs/exec-plans/README.md +3 -0
  80. package/docs/ideation/2026-04-20-mycodemap-init-enhancements-ideation.md +96 -0
  81. package/docs/ideation/2026-04-22-rules-entry-docs-optimization-consolidated-ideation.md +119 -0
  82. package/docs/lesson-learn/2026-04-19-prerelease-trusted-publishing-fix.md +119 -0
  83. package/docs/lesson-learn/image.png +0 -0
  84. package/docs/rules/README.md +4 -1
  85. package/docs/rules/deployment.md +7 -0
  86. package/docs/rules/engineering-with-codex-openai.md +47 -8
  87. package/docs/rules/pre-release-checklist.md +53 -37
  88. package/docs/rules/release.md +303 -0
  89. package/docs/rules/testing.md +19 -0
  90. package/docs/rules/validation.md +18 -8
  91. package/mycodemap.config.schema.json +1 -1
  92. package/package.json +3 -3
  93. package/scripts/hooks/templates/commit-msg +38 -0
  94. package/scripts/hooks/templates/pre-commit +224 -0
  95. package/scripts/pre-release-check.js +6 -6
  96. package/scripts/release.sh +1 -1
  97. package/scripts/validate-docs.js +283 -14
  98. package/dist/ai/claude.d.ts +0 -38
  99. package/dist/ai/claude.d.ts.map +0 -1
  100. package/dist/ai/claude.js +0 -169
  101. package/dist/ai/claude.js.map +0 -1
  102. package/dist/ai/codex.d.ts +0 -38
  103. package/dist/ai/codex.d.ts.map +0 -1
  104. package/dist/ai/codex.js +0 -169
  105. package/dist/ai/codex.js.map +0 -1
  106. package/dist/ai/factory.d.ts +0 -48
  107. package/dist/ai/factory.d.ts.map +0 -1
  108. package/dist/ai/factory.js +0 -95
  109. package/dist/ai/factory.js.map +0 -1
  110. package/dist/ai/index.d.ts +0 -12
  111. package/dist/ai/index.d.ts.map +0 -1
  112. package/dist/ai/index.js +0 -29
  113. package/dist/ai/index.js.map +0 -1
  114. package/dist/ai/provider.d.ts +0 -70
  115. package/dist/ai/provider.d.ts.map +0 -1
  116. package/dist/ai/provider.js +0 -31
  117. package/dist/ai/provider.js.map +0 -1
  118. package/dist/ai/subagent-caller.d.ts +0 -90
  119. package/dist/ai/subagent-caller.d.ts.map +0 -1
  120. package/dist/ai/subagent-caller.js +0 -280
  121. package/dist/ai/subagent-caller.js.map +0 -1
  122. package/dist/ai/types.d.ts +0 -70
  123. package/dist/ai/types.d.ts.map +0 -1
  124. package/dist/ai/types.js +0 -5
  125. package/dist/ai/types.js.map +0 -1
  126. package/dist/cli/commands/server.d.ts +0 -9
  127. package/dist/cli/commands/server.d.ts.map +0 -1
  128. package/dist/cli/commands/server.js +0 -65
  129. package/dist/cli/commands/server.js.map +0 -1
  130. package/dist/cli-new/commands/server.d.ts +0 -13
  131. package/dist/cli-new/commands/server.d.ts.map +0 -1
  132. package/dist/cli-new/commands/server.js +0 -90
  133. package/dist/cli-new/commands/server.js.map +0 -1
  134. package/dist/generator/ai-overview.d.ts +0 -51
  135. package/dist/generator/ai-overview.d.ts.map +0 -1
  136. package/dist/generator/ai-overview.js +0 -160
  137. package/dist/generator/ai-overview.js.map +0 -1
  138. package/dist/infrastructure/storage/adapters/Neo4jStorage.d.ts +0 -41
  139. package/dist/infrastructure/storage/adapters/Neo4jStorage.d.ts.map +0 -1
  140. package/dist/infrastructure/storage/adapters/Neo4jStorage.js +0 -162
  141. package/dist/infrastructure/storage/adapters/Neo4jStorage.js.map +0 -1
  142. package/dist/orchestrator/ai-feed-generator.d.ts +0 -210
  143. package/dist/orchestrator/ai-feed-generator.d.ts.map +0 -1
  144. package/dist/orchestrator/ai-feed-generator.js +0 -377
  145. package/dist/orchestrator/ai-feed-generator.js.map +0 -1
  146. package/docs/archive/test-report-symbol-search.md +0 -384
  147. package/docs/archive/test-scenario-4-complexity-analysis.md +0 -460
  148. package/docs/archive/test_report_scenario5.md +0 -615
  149. package/docs/archive/test_scenario_3_impact_analysis_report.md +0 -520
@@ -9,6 +9,21 @@
9
9
 
10
10
  ## 核心命令
11
11
 
12
+ ### init - 收敛项目状态
13
+
14
+ ```bash
15
+ mycodemap init # 默认显示 reconciliation preview
16
+ mycodemap init --interactive # 显式显示 preview(不写入)
17
+ mycodemap init -y # 使用默认选择直接写入
18
+ ```
19
+
20
+ **行为说明**:
21
+
22
+ - `init` 会收敛 `.mycodemap/config.json`、`.mycodemap/status/init-last.json`、`.mycodemap/hooks/` 与 `.mycodemap/rules/`
23
+ - 默认先显示 receipt preview;只有 `-y/--yes` 才真正写入
24
+ - 若 receipt 中仍有 `manual action`,请先处理这些动作,再继续自动化流程
25
+ - `init` 不会自动改写 `CLAUDE.md` 或 `AGENTS.md`,只会输出可复制的 rules 引用片段
26
+
12
27
  ### generate - 生成代码地图
13
28
 
14
29
  ```bash
@@ -35,12 +50,12 @@ mycodemap generate --ai-context # 生成 AI 描述
35
50
  - `generate` 完成后,`codemap.json` 会带 `graphStatus`、`failedFileCount` 与可选 `parseFailureFiles`;若 `graphStatus = "partial"`,不要把结果当成完整图。
36
51
 
37
52
  **插件运行时说明**:
38
- - `generate` 不提供独立 `--plugin` flags;插件通过 `mycodemap.config.json` 的 `plugins` 段声明。
53
+ - `generate` 不提供独立 `--plugin` flags;插件通过 `.mycodemap/config.json` 的 `plugins` 段声明。
39
54
  - 只有显式存在 `plugins` 段时,`generate` 才会加载插件并运行 analyze / generate hooks。
40
55
  - `AI_MAP.md` 会增加 `Plugin Summary`,`codemap.json` 会增加 `pluginReport`,stdout 会输出插件诊断摘要。
41
56
 
42
57
  **图存储运行时说明**:
43
- - `generate` 会读取 `mycodemap.config.json.storage`,并把 CodeGraph 写入所选后端。
58
+ - `generate` 会读取 `.mycodemap/config.json` 的 `storage` 段,并把 CodeGraph 写入所选后端。
44
59
  - `storage.type` 支持 `filesystem`、`sqlite`、`memory`、`auto`;默认是 `filesystem`。
45
60
  - 旧的 `neo4j` / `kuzudb` 配置会直接报迁移错误;显式选择 `sqlite` 但运行时缺少 `better-sqlite3` 或 Node.js `<20` 时也会直接报错,不会静默 fallback 到 `filesystem`。
46
61
  - `storage.type = "auto"` 当前优先走 `sqlite`;只有 SQLite 不可用时才 warning 后回退 `filesystem`。
@@ -521,7 +536,7 @@ mycodemap export mermaid # Mermaid 语法
521
536
  mycodemap export json -o ./output.json # 指定输出
522
537
  ```
523
538
 
524
- - `export json|graphml|dot` 会从 `mycodemap.config.json.storage` 指定的后端读取 CodeGraph。
539
+ - `export json|graphml|dot` 会从 `.mycodemap/config.json` 的 `storage` 段指定后端读取 CodeGraph。
525
540
  - `export mermaid` 仍直接读取 `.mycodemap/codemap.json`,这是当前保留的文件出口,不代表 graph backend 未接入主路径。
526
541
  - 图存储后端收口不等于重新开放公共 `mycodemap server` 产品面;`Server Layer` 仍是内部层。
527
542
 
@@ -563,6 +578,45 @@ mycodemap ship --yes # 置信度 60-75 时自动确认
563
578
 
564
579
  ---
565
580
 
581
+ ### publish-status - 发布后的只读 snapshot 复核
582
+
583
+ > `publish-status` 是 `ship` / `/release` 之后的 follow-up observability surface;它不触发发布、不重跑 workflow,也不猜“最新一条 run”。
584
+
585
+ ```bash
586
+ mycodemap publish-status --tag v1.9.0 --sha abcdef123456
587
+ mycodemap publish-status --tag v1.9.0 --sha abcdef123456 --json
588
+ mycodemap publish-status --tag v1.9.0 --sha abcdef123456 --json --structured
589
+ mycodemap publish-status --tag v1.9.0 --sha abcdef123456 --workflow-file publish.yml
590
+ ```
591
+
592
+ | 选项 | 说明 | 默认值 |
593
+ |------|------|--------|
594
+ | `--tag <tag>` | 发布 tag,必须精确提供 | - |
595
+ | `--sha <sha>` | 发布 commit SHA,必须精确提供 | - |
596
+ | `--workflow-file <file>` | GitHub Actions workflow 文件名 | `publish.yml` |
597
+ | `--json` | 输出 machine-readable JSON | `false` |
598
+ | `--structured` | 去掉自然语言 `content`,需配合 `--json` 使用 | `false` |
599
+
600
+ **状态语义:**
601
+ - `success`:找到唯一精确匹配 run,且 workflow 成功
602
+ - `failure`:找到唯一精确匹配 run,且 workflow 明确失败
603
+ - `pending`:还没观察到精确匹配 run,或 run 仍在执行中
604
+ - `ambiguous`:出现多个同时匹配 `tag + sha` 的 runs;不会猜哪一个才是“最新”
605
+ - `unavailable`:repo slug、GitHub API、权限或最终 truth 无法精确确认
606
+
607
+ **输出契约:**
608
+ - 默认输出终端摘要
609
+ - `--json` 输出 machine-readable payload,并保留 `content`
610
+ - `--json --structured` 移除自然语言字段,仅保留结构化 truth
611
+ - payload 至少包含 `status`、`workflowUrl`、`releaseUrl`、`runId`、`failedJobs`、`reason`、`details`
612
+
613
+ **边界:**
614
+ - 只做一次 snapshot read,不内置轮询
615
+ - 只读;不会 rerun workflow、dispatch workflow、`npm publish`、`git push`
616
+ - 它不会替代 `ship` 或 `/release`,发布 authority 仍在 `docs/rules/release.md`
617
+
618
+ ---
619
+
566
620
  ## 全局选项
567
621
 
568
622
  所有命令支持:
@@ -216,4 +216,4 @@ npm ls better-sqlite3
216
216
  - 命令参考:`docs/ai-guide/COMMANDS.md`
217
217
  - 输出契约:`docs/ai-guide/OUTPUT.md`
218
218
  - 主索引:`AI_GUIDE.md`
219
- - 执行手册:`CLAUDE.md`
219
+ - 入口路由:`CLAUDE.md`
@@ -271,14 +271,14 @@ node dist/cli/index.js check --contract mycodemap.design.md --against src --base
271
271
  **执行步骤**:
272
272
 
273
273
  ```bash
274
- # Step 1: 编辑配置文件
275
- cat mycodemap.config.json
274
+ # Step 1: 编辑 canonical 配置文件
275
+ cat .mycodemap/config.json
276
276
 
277
277
  # Step 2: 选择后端
278
278
  # {
279
279
  # "storage": {
280
280
  # "type": "sqlite",
281
- # "databasePath": ".codemap/governance.sqlite"
281
+ # "databasePath": ".mycodemap/governance.sqlite"
282
282
  # }
283
283
  # }
284
284
 
@@ -9,16 +9,25 @@
9
9
  ## 快速开始
10
10
 
11
11
  ```bash
12
- # Step 1: 生成代码地图(必须在其他命令之前执行)
12
+ # Step 0: 若项目还没初始化,先预览 init 收敛结果
13
+ node dist/cli/index.js init --interactive
14
+
15
+ # Step 1: 确认 receipt 后执行 init(只在需要写入时)
16
+ node dist/cli/index.js init --yes
17
+
18
+ # Step 2: 生成代码地图(必须在其他命令之前执行)
13
19
  node dist/cli/index.js generate
14
20
 
15
- # Step 2: 阅读生成的 AI_MAP.md 获取项目概览(若显式配置了 plugins,也要看 Plugin Summary)
21
+ # Step 3: 阅读生成的 AI_MAP.md 获取项目概览(若显式配置了 plugins,也要看 Plugin Summary)
16
22
  # stdout 还会显示当前写入的 `MVP3 Storage (...)`
17
23
  cat .mycodemap/AI_MAP.md
18
24
 
19
- # Step 3: 根据任务选择命令...
25
+ # Step 4: 根据任务选择命令...
20
26
  ```
21
27
 
28
+ - `init` 的 receipt 会把 `done`、`manual action`、`conflict`、`skipped` 分开显示
29
+ - 如果 receipt 提示需要手动把 `.mycodemap/rules/` 片段加入 `CLAUDE.md` / `AGENTS.md`,请先处理该动作
30
+
22
31
  ---
23
32
 
24
33
  ## 输出契约速查
@@ -69,7 +78,7 @@ cat .mycodemap/AI_MAP.md
69
78
  |---------|---------|---------|---------|
70
79
  | "项目结构是什么" | `generate` + 读 `AI_MAP.md` | `analyze -i show -t "src/" --json` | 文本 |
71
80
  | "插件是否真的加载成功" | `generate` + 读 `AI_MAP.md` 的 `Plugin Summary` | 解析 `.mycodemap/codemap.json` 的 `pluginReport` | 机器可读优先 |
72
- | "需要切换/排查图存储后端" | 编辑 `mycodemap.config.json.storage` 后运行 `generate` | `export json` 验证是否能从同一 backend 读回 | 文本 + 机器可读 |
81
+ | "需要切换/排查图存储后端" | 编辑 `.mycodemap/config.json` 的 `storage` 段后运行 `generate` | `export json` 验证是否能从同一 backend 读回 | 文本 + 机器可读 |
73
82
  | "XXX 在哪里定义" | `query -s "XXX"` | `query -S "XXX"` | 文本 |
74
83
  | "修改 XXX 会影响什么" | `impact -f "XXX" -t -j` | `analyze -i read -t "XXX" --scope transitive --json` | 机器可读优先 |
75
84
  | "XXX 模块依赖什么" | `deps -m "XXX" -j` | `analyze -i link -t "XXX" --json` | 机器可读优先 |
@@ -55,13 +55,13 @@
55
55
 
56
56
  | 文档 | 行数 | 核心内容 |
57
57
  |------|------|---------|
58
- | QUICKSTART.md | ~120 | 决策树、场景映射 |
59
- | COMMANDS.md | ~350 | 核心分析命令 + 移除命令迁移说明 |
60
- | OUTPUT.md | ~320 | 目标契约、当前 CLI 现实与 JSON 结构 |
61
- | PATTERNS.md | ~290 | 核心分析模式 + 过渡 workflow 说明 |
62
- | PROMPTS.md | ~300 | 8个提示词模板 |
63
- | INTEGRATION.md | ~420 | MCP、Skill、错误处理 |
64
- | **总计** | **~1800** | **完整 AI 使用指南** |
58
+ | QUICKSTART.md | 130 | 决策树、场景映射 |
59
+ | COMMANDS.md | 574 | 核心分析命令 + 移除命令迁移说明 |
60
+ | OUTPUT.md | 1546 | 目标契约、当前 CLI 现实与 JSON 结构 |
61
+ | PATTERNS.md | 498 | 核心分析模式 + 过渡 workflow 说明 |
62
+ | PROMPTS.md | 463 | 9个提示词模板 |
63
+ | INTEGRATION.md | 219 | MCP、Skill、错误处理 |
64
+ | **总计** | **3430** | **完整 AI 使用指南** |
65
65
 
66
66
  ---
67
67
 
@@ -0,0 +1,102 @@
1
+ ---
2
+ date: 2026-04-22
3
+ topic: harness-rules-entry-docs-optimization
4
+ focus: 基于 harness mode 优点与 2026-04 最新 Codex / Claude Code 官方 + 社区实践,重构 rules、AGENTS.md、CLAUDE.md 的职责与加载方式
5
+ mode: repo-grounded
6
+ ---
7
+
8
+ # Ideation: Harness-aligned rules and entry docs optimization
9
+
10
+ ## Grounding Context
11
+
12
+ ### Codebase Context
13
+
14
+ - [证据] 仓库已经明确把入口文档定义为“强约束 + 路由”,并把 `AGENTS.md` 定义为仓库级强约束、把 `CLAUDE.md` 定义为启动清单与最小操作手册:`AGENTS.md:3`、`AGENTS.md:14`、`AGENTS.md:15`。
15
+ - [证据] `CLAUDE.md` 仍同时承载固定 post-edit 命令、rule-system 默认值与交付清单,已经不只是“入口路由”:`CLAUDE.md:25`、`CLAUDE.md:41`、`CLAUDE.md:59`、`CLAUDE.md:63`、`CLAUDE.md:83`。
16
+ - [证据] `docs/rules/README.md` 已主张“先路由、再按需下钻”,`docs/rules/validation.md` 已主张“按改动类型做最小验证”,与根入口中的“统一大礼包命令”存在张力:`docs/rules/README.md:19`、`docs/rules/validation.md:5`、`docs/rules/validation.md:29`、`docs/rules/validation.md:31`。
17
+ - [证据] 任务分级、可信度自评、代码红线等核心治理内容已在多处重复陈述,truth source 不单一:`AGENTS.md:43`、`AGENTS.md:100`、`AGENTS.md:127`、`docs/rules/engineering-with-codex-openai.md:15`、`docs/rules/engineering-with-codex-openai.md:89`、`docs/rules/engineering-with-codex-openai.md:193`。
18
+ - [推论] 当前问题更像“入口过载 + 多真相竞争”,而不是“规则还不够多”;优化重点应是职责重划与加载路径重写,而不是继续往根文件里加内容。
19
+
20
+ ### External Context
21
+
22
+ - [证据] OpenAI Codex 官方 `AGENTS.md` 指南强调:指令文件要长期有效、优先写项目特有信息、复杂说明要拆到配套 markdown,并且“保持可快速扫读”;同时建议通过回顾重复错误,把稳定流程沉淀成更专门的技能而不是不断膨胀入口文件。来源:https://developers.openai.com/codex/guides/agents-md 与 https://developers.openai.com/codex/learn/best-practices 。
23
+ - [证据] Claude Code 官方 memory 文档明确建议把共享 memory 控制在约 200 行以内;超过后应拆到额外文件并用 `@path` 导入;同时支持在 `CLAUDE.md` 中直接导入 `AGENTS.md`,以及用 `.claude/rules/` + `paths:` 做按路径加载。来源:https://code.claude.com/docs/en/memory 。
24
+ - [证据] Claude Code 官方 best practices 强调:上下文窗口很快会塞满,长会话性能会下降;应把通用或高频操作下沉为子目录 `CLAUDE.md`、hooks、命令或技能,而不是让根文件继续变长;hooks 适合确定性动作,`CLAUDE.md` 更适合行为指导。来源:https://code.claude.com/docs/en/best-practices 与 https://docs.anthropic.com/en/docs/claude-code/hooks 。
25
+ - [证据] 2026-04-21 的社区语料分析(RepoRails)统计了 28,721 个 coding-agent 项目,发现 instruction 文件只有 27.2% 的原子陈述是真正可执行指令,89.9% 缺少具体构造;同时 37% 的项目已是多 agent 配置,最常见组合之一就是 Claude + Codex。来源:https://dev.to/reporails/the-state-of-ai-instruction-quality-35mn 。
26
+ - [证据] 2026-02-12 的论文《Do AGENTS.md Files Help LLM-Based Code Generation Agents?》指出:上下文文件并非总是提升效果,过量要求会拉低成功率并增加 token 消耗;作者建议只保留执行任务所需的最小要求。来源:https://arxiv.org/abs/2602.11988 。
27
+ - [证据] 高信号社区实践也在收敛到“基础记忆 + hooks/settings + skills/agents/rules 分层”而不是单一超级入口文件。一个近期公开示例把 `CLAUDE.md`、settings、hooks、agents、skills、`rules/` 分成独立治理面。来源:https://github.com/ChrisWiles/claude-code-showcase 。
28
+
29
+ ### Past Learnings
30
+
31
+ - [推论] 本仓库已经具备 harness 友好的关键机制:`route_by_edit_path`、`soft_gate` / `hard_gate`、场景化验证矩阵、短入口路线图;真正缺的是“谁是 live truth source”的清晰边界,而不是新机制本身:`CLAUDE.md:61`、`CLAUDE.md:62`、`CLAUDE.md:63`、`docs/rules/validation.md:10`、`docs/rules/validation.md:21`。
32
+ - [推论] 因为仓库已经同时面向 Claude 与 Codex,任何继续复制规则到多份入口文件的做法,都会与外部多-agent 收敛趋势正面冲突。
33
+
34
+ ## Ranked Ideas
35
+
36
+ ### 1. One Constitution, Two Adapters
37
+ **Description:** [推论] 把 `AGENTS.md` 收缩为唯一共享“治理宪法”:只保留风险分级、证据协议、改动边界、truth-source map、文档职责分层;把 `CLAUDE.md` 收缩为 Claude 适配层,只保留 `@AGENTS.md`、Claude 专属能力边界、检索顺序、最小入口 checklist。
38
+ **Rationale:** [推论] 这条路最直接利用了 Codex 原生 `AGENTS.md` 与 Claude 官方“`CLAUDE.md` 可导入 `AGENTS.md`”的交集;它把双 agent 共识收敛成一份 shared constitution,再用极薄 adapter 承载每个 harness 的差异。
39
+ **Downsides:** [观点] 初次重写需要明确“什么必须共享、什么必须保留为 Claude/Codex delta”,否则容易把 adapter 又写胖。
40
+ **Confidence:** 96%
41
+ **Complexity:** Medium
42
+ **Status:** Explored
43
+
44
+ ### 2. Validation Decision Tree, Not Post-Edit Bundle
45
+ **Description:** [推论] 把 `CLAUDE.md` 里的“修改后必须执行”改成 1 屏决策树:先判断改动类型,再跳到 `docs/rules/validation.md` 的最小验证矩阵;根文件只保留“如何选路径”,不再内嵌固定大礼包命令。
46
+ **Rationale:** [推论] 这最贴合 harness mode 的优势:让 agent 在当前改动上做最小充分验证,而不是默认加载一整套命令;也能把 `CLAUDE.md:25` 与 `docs/rules/validation.md:5` 的冲突消掉。
47
+ **Downsides:** [观点] 决策树如果写得太抽象,用户会失去“一眼能 copy”的即时性;需要在短小与可执行之间拿捏。
48
+ **Confidence:** 94%
49
+ **Complexity:** Medium
50
+ **Status:** Explored
51
+
52
+ ### 3. Behavior / Enforcement Split
53
+ **Description:** [推论] 明确宣布:`AGENTS.md` / `CLAUDE.md` 只负责行为协议与路由;`.claude/settings*.json`、hooks、`scripts/validate-rules.py`、CI 才负责确定性 enforcement;`docs/rules/*` 解释何时、为何、怎样触发这些护栏。
54
+ **Rationale:** [推论] 这同时对齐了 Claude 官方“technical enforcement 用 settings,behavioral guidance 用 `CLAUDE.md`”与本仓库已有 soft/hard gate 设计;一旦边界清晰,入口文件自然会瘦下来。
55
+ **Downsides:** [观点] 需要重写若干表述,把“必须执行”改成“默认路由 / 真正阻断点”,否则读者会误会要求被削弱。
56
+ **Confidence:** 92%
57
+ **Complexity:** Medium
58
+ **Status:** Explored
59
+
60
+ ### 4. Path-Scoped Governance Packs
61
+ **Description:** [推论] 把高细节治理内容继续下沉到按路径加载的文件:Codex 用更近的 `AGENTS.md`,Claude 用 `.claude/rules/**` 的 `paths:`;根入口只保留“何时去哪个包里读”。
62
+ **Rationale:** [推论] 这是把 progressive disclosure 真正落地成结构,而不是口号。Claude 官方已经给出路径规则机制,Codex 也原生按目录查找 `AGENTS.md`;本仓库正好同时受益。
63
+ **Downsides:** [观点] 如果没有严格的命名和归档规则,治理文件数量会增加,反而形成“散落的小真相”。
64
+ **Confidence:** 90%
65
+ **Complexity:** Medium-High
66
+ **Status:** Unexplored
67
+
68
+ ### 5. Live Rulebook / Archive Demotion
69
+ **Description:** [推论] 显式定义 live governance surface:只认 `AGENTS.md`、`CLAUDE.md`、`docs/rules/README.md` 与活跃 `docs/rules/*`;已完成 rollout、模板参考、历史提案全部改成 reference/archive 身份,并在文件头标出“不可作为当前执行真相”。
70
+ **Rationale:** [推论] 这会直接消灭当前最伤 harness 的问题之一——第二真相来源。对于 agent 来说,“哪些文件是历史,哪些文件能执行”比多一条规则更重要。
71
+ **Downsides:** [观点] 文档本身的“身份治理”不性感,短期收益不如入口重写直观;但如果不做,后续任何瘦身都可能再次被旧文档反污染。
72
+ **Confidence:** 91%
73
+ **Complexity:** Low-Medium
74
+ **Status:** Explored
75
+
76
+ ### 6. Retrospective-Driven Rule Admission
77
+ **Description:** [推论] 新规则只允许通过三种入口进入根治理文档:重复性错误、人工 review 反复发现、或 deterministic hook 仍覆盖不了的高风险缺口;其余内容默认进入 scoped rules、skill、prompt template 或参考文档。
78
+ **Rationale:** [推论] 这直接吸收了 Codex 官方“把重复流程沉淀为技能”的建议,以及社区/论文对“说明文件一旦膨胀就掉质”的共同结论;它能防止这次瘦身后再反弹。
79
+ **Downsides:** [观点] 这是治理纪律,不是一次性重构;需要 owner 持续执行,否则很容易回到“先塞进根文件再说”。
80
+ **Confidence:** 89%
81
+ **Complexity:** Low
82
+ **Status:** Unexplored
83
+
84
+ ## Rejection Summary
85
+
86
+ | # | Idea | Reason Rejected |
87
+ |---|------|-----------------|
88
+ | 1 | `Root 200-Line Budget` | [推论] 很好的 guardrail,但它更适合作为 #1 / #4 的验收指标,而不是顶层方向。 |
89
+ | 2 | `Command Cookbook Extraction` | [推论] 本质上是 #2 的实现动作,不值得单列为产品级 ideation winner。 |
90
+ | 3 | `Assistant Compatibility Matrix` | [观点] 更像 #1 的附属表格,用于落地 shared constitution,而不是单独战略。 |
91
+ | 4 | `Current-vs-Target Architecture Banner` | [推论] 价值很高,但更像 #4 / #5 的具体机制;单独成项会让 ideation 过碎。 |
92
+ | 5 | `Rule Delta Log / Governance Changelog` | [推论] 是 #5 的配套治理件,不是独立顶层方向。 |
93
+ | 6 | `Deterministic Guardrail Ledger` | [推论] 核心价值已被 #3 吸收;单列会重复“behavior vs enforcement”主轴。 |
94
+ | 7 | `Skill-First Escape Hatch` | [观点] 是 #6 的优先级规则,不是独立结构重写。 |
95
+ | 8 | `Per-Tool Twin Rulebooks` | [推论] 与 Claude 官方 `@AGENTS.md` 导入机制和多-agent single-source 方向相冲突,会扩大漂移面。 |
96
+ | 9 | `Universal Mega Entry File` | [推论] 与 Codex / Claude 官方“短入口 + 分层导入 + 作用域加载”全部背离,是反 harness 方案。 |
97
+
98
+ ## Session Log
99
+
100
+ - [证据] 2026-04-22:交叉阅读本仓库 `AGENTS.md`、`CLAUDE.md`、`docs/rules/README.md`、`docs/rules/validation.md`、`docs/rules/engineering-with-codex-openai.md`,确认当前痛点是“入口过载 + 多真相竞争”。
101
+ - [证据] 2026-04-22:补充 OpenAI Codex 官方 `AGENTS.md` / best practices、Claude Code 官方 memory / best practices / hooks,以及 2026 社区语料分析与论文证据。
102
+ - [推论] 2026-04-22:最终收敛结论不是“再加更多规则”,而是“重建 single source of truth、把 deterministic enforcement 与行为指导拆开、让作用域加载真正生效”。
@@ -0,0 +1,107 @@
1
+ ---
2
+ date: 2026-04-22
3
+ topic: rules-claude-agents-optimization
4
+ focus: 基于 harness 模式优点优化 rules、CLAUDE.md 和 AGENTS.md
5
+ ---
6
+
7
+ # Ideation: Rules / CLAUDE.md / AGENTS.md 优化
8
+
9
+ ## Codebase Context
10
+
11
+ **项目形状**:TypeScript CLI 工具(`@mycodemap/mycodemap`),为 AI 辅助开发提供代码地图与结构化上下文。采用 MVP3 五层架构,构建输出到 `dist/`,CLI 入口为 `dist/cli/index.js`。
12
+
13
+ **关键痛点**:
14
+ 1. **规则重复**:代码红线在 3 处出现(code-quality-redlines.md、AGENTS.md 7.1、engineering-with-codex-openai.md §6),阈值相同但格式不同步
15
+ 2. **路径路由缺失**:CLAUDE.md 路由表仅覆盖 5 个 src/ 子目录,遗漏 worker/、cache/、watcher/、plugins/ 等活跃目录
16
+ 3. **幽灵命令**:`check:architecture` 和 `check:unused` 是 echo stub,但文档当作真实命令引用
17
+ 4. **交付清单无 enforcement**:CLAUDE.md 要求"失败场景+可信度自评",但无自动化检查点
18
+ 5. **双 CLAUDE.md**:根目录与 `.claude/` 各有一份,内容重叠且部分矛盾
19
+ 6. **无解决方案归档**:`docs/solutions/` 不存在,知识随会话结束蒸发
20
+ 7. **规则自身无审计**:链接失效、命令更名、路径迁移无自动检测
21
+
22
+ ## Ranked Ideas
23
+
24
+ ### 1. 规则去重即活契约 (Single-Source-of-Truth Rules)
25
+ **Description:** 将分散在 3 份文档中的代码红线合并为单一结构化数据源(YAML/JSON),通过生成脚本自动渲染所有 markdown 表格。规则变更时,一次编辑、全处同步。
26
+ **Rationale:** 当前同一规则在 3 处出现,格式不同(AGENTS.md 无"阻断标准"列,engineering-with-codex-openai.md 有"阻断标准"列,code-quality-redlines.md 有"失败后果"列),已存在漂移证据。单一数据源消除同步负担,让规则系统自身可维护。
27
+ **Downsides:** 需要编写和维护生成脚本;迁移期间需人工比对确保无遗漏;新同事需要学习"编辑源文件而非 markdown"的工作流。
28
+ **Confidence:** 90%
29
+ **Complexity:** Medium
30
+ **Status:** Unexplored
31
+
32
+ ### 2. CLAUDE.md 路径路由自动补全
33
+ **Description:** 补全路径路由表缺失的 `src/worker/`、`src/cache/`、`src/watcher/`、`src/plugins/` 映射。同时添加 CI 检查:若新增 `src/*/` 目录而无路由条目,构建失败。
34
+ **Rationale:** 当前 14 个 src/ 子目录中仅 5 个有路由映射。AI 助手触碰未映射目录时要么防御性读取全部规则(烧 token),要么在无知觉中违反约束。自动化检查防止路由表永远滞后于代码现实。
35
+ **Downsides:** 目录归属可能存在争议(如 worker/ 应映射到 architecture-guardrails.md 还是 testing.md);遗留目录 orchestrator/、core/ 需明确策略。
36
+ **Confidence:** 95%
37
+ **Complexity:** Low
38
+ **Status:** Unexplored
39
+
40
+ ### 3. 替换 Echo Stub 为真实检查
41
+ **Description:** `npm run check:architecture` 和 `check:unused` 当前是 echo 占位符,但 architecture-guardrails.md 将其列为"快速验证"步骤。dependency-cruiser 已在 dependencies 中,应配置真实规则并启用。
42
+ **Rationale:** "幽灵命令"摧毁信任——操作者运行后获得虚假安全感。这是 harness rollout doc 中标记为"已配置"但实际不可用的项目。修复后架构护栏真正生效,每次提交自动验证分层依赖。
43
+ **Downsides:** dependency-cruiser 规则配置需要校准(false positive 可能很多);可能暴露现有违规需批量清理;knip 仍需安装。
44
+ **Confidence:** 85%
45
+ **Complexity:** Medium
46
+ **Status:** Unexplored
47
+
48
+ ### 4. 可信度自评结构化输出
49
+ **Description:** 当前可信度自评(AGENTS.md 5.1)是纯散文,写后即弃。定义轻量 schema(YAML frontmatter 或 JSON),AI 在任务完成时输出结构化数据,收集为 per-task 日志。
50
+ **Rationale:** 从"荣誉系统"转变为可分析数据集。长期可识别:哪些风险标记最常被忽略、哪些"确定信息"后来被证伪、哪些任务类型的自评最不可靠。数据驱动的可信度校准比直觉更可靠。
51
+ **Downsides:** 需要定义和迭代 schema;历史数据无法回溯;存储和索引结构化日志需要基础设施。
52
+ **Confidence:** 80%
53
+ **Complexity:** Medium
54
+ **Status:** Unexplored
55
+
56
+ ### 5. 双 CLAUDE.md 职责澄清/合并
57
+ **Description:** 根目录 `CLAUDE.md`(自称为"入口路由")与 `.claude/CLAUDE.md`(自称为"项目特定指令")内容重叠且部分矛盾(如交付清单项目不同、TDD 要求表述不同)。需明确职责分割或合并为单一入口。
58
+ **Rationale:** 每次新会话都要在脑中协调两份"主文档",决策疲劳真实存在。根目录 CLAUDE.md 说"只做入口路由"却包含路由表、规则默认值、dogfood 命令、交付清单——它实际上在做 `.claude/CLAUDE.md` 的事。
59
+ **Downsides:** 合并可能丢失 Claude Code 自动读取 `.claude/CLAUDE.md` 的便利性;分割需要精心设计边界,否则会变成"三份文档"问题。
60
+ **Confidence:** 85%
61
+ **Complexity:** Low
62
+ **Status:** Unexplored
63
+
64
+ ### 6. 解决方案归档 (Post-Task Diff as Institutional Memory)
65
+ **Description:** 每次 L1+ 任务完成后,将 diff、计划、验证命令、结果捕获为结构化记录存入 `docs/solutions/`。按问题类型、受影响模块、解决模式索引。
66
+ **Rationale:** 当前知识随会话结束而蒸发。`docs/exec-plans/completed/` 有计划记录但无解决方案记录。"我们上次如何解决跨层导入违规?""那个 YAML 正则 prerelease 坑是什么来着?"无法回答。
67
+ **Downsides:** 需要建立记录格式和索引约定;维护负担随时间增长;可能变成垃圾堆(需要定期清理)。
68
+ **Confidence:** 75%
69
+ **Complexity:** Medium
70
+ **Status:** Unexplored
71
+
72
+ ### 7. 规则系统自我审计
73
+ **Description:** 系统定期自动审计自身健康:检查 AGENTS.md / CLAUDE.md 中所有链接是否有效、引用的命令是否存在、路径路由是否覆盖实际目录、每条规则是否有对应自动化检测。生成"规则健康报告"。
74
+ **Rationale:** 规则自身也会腐烂——链接失效(如 AGENTS.md §6 引用 `analyze` 命令参数可能已变化)、命令更名、路径迁移、阈值过时。当前是"被动修复"模式,发现问题才修复。主动审计防止规则系统悄悄失效。
75
+ **Downsides:** 审计规则本身也需要维护;可能产生误报(如某些链接故意指向外部资源);需要决定审计频率和触发条件。
76
+ **Confidence:** 70%
77
+ **Complexity:** Medium
78
+ **Status:** Unexplored
79
+
80
+ ## Rejection Summary
81
+
82
+ | # | Idea | Reason Rejected |
83
+ |---|------|-----------------|
84
+ | 1 | 单文件真相源(YAML 替换 AGENTS.md + CLAUDE.md + ARCHITECTURE.md) | 过于激进,会破坏现有工作流;#1 已覆盖规则去重痛点 |
85
+ | 2 | 规则数据库(SQLite/JSON) | 过度工程化,500 行规则不需要数据库查询能力 |
86
+ | 3 | 路径路由自动推导 | 有趣但复杂;静态补全 + CI 检查(#2)更务实 |
87
+ | 4 | Harness 可执行化(TypeScript 模块) | 工程量大;当前核心痛点是同步而非可执行性 |
88
+ | 5 | Harness MCP Server | 同 #4,范围过大,不适合当前阶段 |
89
+ | 6 | Harness 即测试框架 | 同 #4,当前阶段不适用 |
90
+ | 7 | 文档漂移自动检测修复 | 价值高但实现复杂,需解析 markdown 中代码片段 |
91
+ | 8 | 自收缩文档系统 | "零引用"不等于"无价值",误伤风险高 |
92
+ | 9 | 活架构(自动生成 ARCHITECTURE.md) | 设计决策和迁移计划无法从代码自动生成 |
93
+ | 10 | TODO-DEBT 激活 | 问题真实但范围小,当前优先级不高 |
94
+ | 11 | 自动可信度回填(基于执行轨迹) | 太复杂,需大量基础设施;#4 更务实 |
95
+ | 12 | 自动验证交付(git post-commit) | 被 #4 部分覆盖,实现复杂 |
96
+ | 13 | 验证命令依赖图(DAG) | `check:all` 硬编码问题不严重 |
97
+ | 14 | Agent 性能遥测 | 数据驱动好,但当前更紧迫的是修复规则系统 |
98
+ | 15 | 规则变更金丝雀流水线 | 高杠杆但复杂,适合未来考虑 |
99
+ | 16 | Context Injection API | 太抽象,项目已有 CodeMap CLI |
100
+ | 17 | 类型化文档(TypeScript 接口生成 md) | 与 #1 类似但更局限 |
101
+ | 18 | 自动任务分级 | L0-L3 主观判断难完全自动化 |
102
+ | 19 | 自我修复验证(ESLint auto-fix 扩展) | ESLint --fix 已存在,增量价值有限 |
103
+ | 20 | 失败场景注册表 | 范围较小,当前优先级不高 |
104
+
105
+ ## Session Log
106
+
107
+ - 2026-04-22: Initial ideation — 40 raw candidates generated across 4 frames (user pain, inversion/automation, assumption-breaking, leverage), 7 survivors after adversarial filtering
@@ -0,0 +1,110 @@
1
+ ---
2
+ date: 2026-04
3
+ topic: rules-entry-docs-phase1-structure-consolidation
4
+ ---
5
+
6
+ # Rules 入口文档一期结构收敛
7
+
8
+ ## Problem Frame
9
+
10
+ 当前仓库存在三层入口文档面:`AGENTS.md`、根 `CLAUDE.md`、`.claude/CLAUDE.md`。它们在治理规则、执行流程、验证要求和交付约束上存在交叠,导致 agent 和人类贡献者难以快速判断:
11
+
12
+ - 哪份文档才是权威来源
13
+ - 哪份文档只是入口路由
14
+ - 被移出的内容应该落到哪里维护
15
+
16
+ 本期要解决的问题不是“规则不够多”,而是“入口面职责不清、共享真相源不清、入口文档容易再次膨胀”。第一阶段因此聚焦**结构收敛**:先把三层入口文档的角色和内容归宿切清,再把后续信任修复、自审机制、历史文档治理等议题留给后续阶段。
17
+
18
+ | 文档 | 一期目标角色 | 允许内容 | 必须移出 |
19
+ |---|---|---|---|
20
+ | `AGENTS.md` | 严格宪法 | 风险分级、证据协议、文档职责、改动边界、交付底线 | 操作清单、工具专属适配、长命令列表 |
21
+ | `CLAUDE.md` | 纯路由页 | 加载顺序、去哪读下一份文档、去哪找验证规则 | 策略正文、命令清单、默认值、dogfood、交付 checklist |
22
+ | `.claude/CLAUDE.md` | 超薄 adapter | 仅 Claude 专属导入/适配差异 | 通用执行规则、TDD/commit/验证政策、第二套手册 |
23
+
24
+ ## Requirements
25
+
26
+ **权威模型**
27
+
28
+ - R1. `AGENTS.md` 必须成为仓库级治理主题的唯一权威来源,覆盖风险分级、证据协议、文档职责分层、改动边界与交付底线。
29
+ - R2. 根 `CLAUDE.md` 必须收缩为纯路由页,只负责告诉 agent 去哪里读,不再作为独立规则面存在。
30
+ - R3. `.claude/CLAUDE.md` 必须收缩为 Claude 专属 adapter,只保留 Claude 需要的导入或装配差异。
31
+ - R4. 每一条规范性要求必须只有一个权威文件;其他入口文档只允许链接或导入,不允许复述为第二套规则面。
32
+ - R5. 本阶段采用零重复原则:入口文档之间不保留提醒式摘要、简化 checklist 或重复政策条目。
33
+
34
+ **内容归宿**
35
+
36
+ - R6. 本阶段从 `AGENTS.md`、`CLAUDE.md`、`.claude/CLAUDE.md` 中移出的内容,必须在同一轮迁移到现有文档归宿,不允许留下悬空 `TODO` 作为规范性承接。
37
+ - R7. 本阶段只复用现有文档体系承接迁移内容,例如 `docs/rules/*.md`、`AI_GUIDE.md`、`ARCHITECTURE.md`,不新增中间治理文档。
38
+ - R8. 验证顺序、验证命令、gate 说明等操作性内容,必须归入现有验证或工程规则文档,不再停留在三份入口文档中。
39
+ - R9. 工具发现、命令速查、dogfood、使用提示等内容,必须归入现有 AI 指南或其他既有归宿,不再停留在三份入口文档中。
40
+ - R10. `AGENTS.md` 不得承接从两份 `CLAUDE` 文档移出的操作性细节;宪法层必须保持窄而稳定。
41
+ - R11. 本阶段交付物必须明确给出“被移出内容 → 新归宿文件”的映射,保证后续维护者知道去哪里编辑。
42
+
43
+ **路由与可发现性**
44
+
45
+ - R12. 重构完成后,无论从 `AGENTS.md`、根 `CLAUDE.md` 还是 `.claude/CLAUDE.md` 开始,贡献者都应能快速回答三个问题:哪份是权威、下一步去哪读、规则变更时该改哪一份。
46
+ - R13. 收敛后的入口面必须同时保持对 Codex 风格 `AGENTS.md` 读取和 Claude 专属 adapter 加载方式的可发现性。
47
+ - R14. 路由面必须保持简洁,表达导航关系而不是重新长成第二本执行手册。
48
+
49
+ **阶段范围控制**
50
+
51
+ - R15. 第一阶段只解决结构角色澄清与内容迁移,不要求同时完成治理自审、自动生成表格或文档防漂移系统。
52
+ - R16. 第一阶段不新增治理中间层、生成式文档系统或新的规则承接机制。
53
+ - R17. 第一阶段不要求重写所有规则本身;只在消除重复、明确权威和修正归宿所必需时调整措辞。
54
+ - R18. 第一阶段不以“完全修复 ghost commands / 验证信任 / archive 身份治理”为成功前提,除非这些问题会阻断结构迁移本身。
55
+
56
+ ## Success Criteria
57
+
58
+ - [ ] `AGENTS.md` 只保留宪法级内容,不再承载操作清单或工具专属执行细节
59
+ - [ ] 根 `CLAUDE.md` 变为纯路由页,不再内嵌命令清单、默认值、dogfood 或交付 checklist
60
+ - [ ] `.claude/CLAUDE.md` 只保留 Claude 专属 adapter 内容,不再重复通用执行政策
61
+ - [ ] 三份入口文档之间不存在重复的规范性要求
62
+ - [ ] 每一类从入口文档移出的内容都有明确且现成的目标文档承接
63
+ - [ ] 本阶段未引入新的中间治理文档
64
+ - [ ] 维护者能从任一入口文档快速定位权威文件与下一步阅读路径
65
+
66
+ ## Scope Boundaries
67
+
68
+ - 不在本阶段新增新的治理承接文档
69
+ - 不在本阶段引入文档生成器、自审框架或重复检测自动化
70
+ - 不在本阶段重写全部规则正文,只做必要的归宿与措辞收敛
71
+ - 不把 ghost commands、验证可信度或 archive/live 身份治理作为本阶段主目标
72
+ - 不把 `.claude/CLAUDE.md` 扩展为第二套 Claude 独立规则手册
73
+
74
+ ## Key Decisions
75
+
76
+ - **D1** `AGENTS.md` 定位为严格宪法:仓库级规范只在这里定权
77
+ - **D2** 根 `CLAUDE.md` 定位为纯路由页:负责导航,不负责再定义规则
78
+ - **D3** `.claude/CLAUDE.md` 定位为超薄 adapter:只保留 Claude 专属差异
79
+ - **D4** 零重复是硬约束:入口文档之间不保留摘要式复述
80
+ - **D5** 所有被移出内容必须同轮迁移,且只允许迁移到现有文档体系
81
+ - **D6** 第一阶段是结构收敛,不是一次性解决全部治理问题
82
+
83
+ ## Alternatives Considered
84
+
85
+ - **根 `CLAUDE.md` 继续保留轻量执行面**:被否决,因为会继续让路由页承担规则职责
86
+ - **`.claude/CLAUDE.md` 保留完整 Claude 手册**:被否决,因为会继续制造第二套权威入口
87
+ - **`AGENTS.md` 承接更多执行框架或 checklist**:被否决,因为会让宪法层重新膨胀成超级入口
88
+
89
+ ## Dependencies / Assumptions
90
+
91
+ - 现有 `docs/rules/*.md`、`AI_GUIDE.md`、`ARCHITECTURE.md` 会继续作为 live 文档面存在
92
+ - Claude 侧可以通过 adapter/import 方式消费共享规则,而不必复制整套规则正文
93
+ - 后续规划阶段可以逐项确认“旧 section → 新文件”的精确映射与改写顺序
94
+
95
+ ## Outstanding Questions
96
+
97
+ ### Resolve Before Planning
98
+
99
+ _None — 本阶段的产品级结构决策已收敛。_
100
+
101
+ ### Deferred to Planning
102
+
103
+ - [Technical] 根 `CLAUDE.md` 最终采用什么路由表现形式最清晰:路径表、场景表、还是最小导航清单
104
+ - [Technical] `.claude/CLAUDE.md` 采用何种最小导入/引用写法,既满足 Claude 使用,又不形成第二套文本面
105
+ - [Technical] 现有入口文档中的每个 section 应如何一对一映射到现有目标文档
106
+ - [Technical] 为保证迁移后仍可发现,是否需要同步微调 `docs/rules/README.md` 或 `AI_GUIDE.md` 的导航表达
107
+
108
+ ## Next Steps
109
+
110
+ -> `/ce:plan` for structured implementation planning