soloforge 1.3.0 → 1.3.2

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 (165) hide show
  1. package/README.md +15 -2
  2. package/dist/adapters/claude_code/claude_md.d.ts.map +1 -1
  3. package/dist/adapters/claude_code/claude_md.js +4 -0
  4. package/dist/adapters/claude_code/claude_md.js.map +1 -1
  5. package/dist/adapters/claude_code/tools.d.ts +36 -9
  6. package/dist/adapters/claude_code/tools.d.ts.map +1 -1
  7. package/dist/adapters/claude_code/tools.js +828 -19
  8. package/dist/adapters/claude_code/tools.js.map +1 -1
  9. package/dist/adapters/shared/workflow_template.d.ts +26 -0
  10. package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
  11. package/dist/adapters/shared/workflow_template.js +139 -40
  12. package/dist/adapters/shared/workflow_template.js.map +1 -1
  13. package/dist/bin/soloforge.d.ts.map +1 -1
  14. package/dist/bin/soloforge.js +220 -45
  15. package/dist/bin/soloforge.js.map +1 -1
  16. package/dist/engine/architecture_decision_workshop.d.ts +58 -0
  17. package/dist/engine/architecture_decision_workshop.d.ts.map +1 -0
  18. package/dist/engine/architecture_decision_workshop.js +118 -0
  19. package/dist/engine/architecture_decision_workshop.js.map +1 -0
  20. package/dist/engine/asset_manifest.d.ts +7 -1
  21. package/dist/engine/asset_manifest.d.ts.map +1 -1
  22. package/dist/engine/asset_manifest.js +36 -15
  23. package/dist/engine/asset_manifest.js.map +1 -1
  24. package/dist/engine/consumable_asset_registry.d.ts.map +1 -1
  25. package/dist/engine/consumable_asset_registry.js +90 -1
  26. package/dist/engine/consumable_asset_registry.js.map +1 -1
  27. package/dist/engine/consumption_trace_store.d.ts +8 -8
  28. package/dist/engine/consumption_trace_store.d.ts.map +1 -1
  29. package/dist/engine/consumption_trace_store.js +11 -7
  30. package/dist/engine/consumption_trace_store.js.map +1 -1
  31. package/dist/engine/decision_workshop.d.ts +160 -0
  32. package/dist/engine/decision_workshop.d.ts.map +1 -0
  33. package/dist/engine/decision_workshop.js +279 -0
  34. package/dist/engine/decision_workshop.js.map +1 -0
  35. package/dist/engine/design_artifact_pack.d.ts +44 -0
  36. package/dist/engine/design_artifact_pack.d.ts.map +1 -0
  37. package/dist/engine/design_artifact_pack.js +167 -0
  38. package/dist/engine/design_artifact_pack.js.map +1 -0
  39. package/dist/engine/dual_layer_mechanism_registry.d.ts.map +1 -1
  40. package/dist/engine/dual_layer_mechanism_registry.js +294 -0
  41. package/dist/engine/dual_layer_mechanism_registry.js.map +1 -1
  42. package/dist/engine/evidence_grounding_contract.d.ts +137 -0
  43. package/dist/engine/evidence_grounding_contract.d.ts.map +1 -0
  44. package/dist/engine/evidence_grounding_contract.js +410 -0
  45. package/dist/engine/evidence_grounding_contract.js.map +1 -0
  46. package/dist/engine/explicit_asset_registry.d.ts +30 -0
  47. package/dist/engine/explicit_asset_registry.d.ts.map +1 -0
  48. package/dist/engine/explicit_asset_registry.js +3508 -0
  49. package/dist/engine/explicit_asset_registry.js.map +1 -0
  50. package/dist/engine/implementation_roadmap_registry.d.ts +2 -2
  51. package/dist/engine/implementation_roadmap_registry.d.ts.map +1 -1
  52. package/dist/engine/implementation_roadmap_registry.js +163 -6
  53. package/dist/engine/implementation_roadmap_registry.js.map +1 -1
  54. package/dist/engine/instruction_contract.d.ts +8 -1
  55. package/dist/engine/instruction_contract.d.ts.map +1 -1
  56. package/dist/engine/instruction_contract.js +63 -1
  57. package/dist/engine/instruction_contract.js.map +1 -1
  58. package/dist/engine/intent_expander.d.ts.map +1 -1
  59. package/dist/engine/intent_expander.js +60 -2
  60. package/dist/engine/intent_expander.js.map +1 -1
  61. package/dist/engine/intent_router.d.ts +1 -1
  62. package/dist/engine/intent_router.d.ts.map +1 -1
  63. package/dist/engine/intent_router.js +2 -1
  64. package/dist/engine/intent_router.js.map +1 -1
  65. package/dist/engine/knowledge_injection_boundary.d.ts +3 -0
  66. package/dist/engine/knowledge_injection_boundary.d.ts.map +1 -1
  67. package/dist/engine/knowledge_injection_boundary.js +48 -5
  68. package/dist/engine/knowledge_injection_boundary.js.map +1 -1
  69. package/dist/engine/mechanism_contract_registry.d.ts +1 -1
  70. package/dist/engine/mechanism_contract_registry.d.ts.map +1 -1
  71. package/dist/engine/mechanism_contract_registry.js +138 -0
  72. package/dist/engine/mechanism_contract_registry.js.map +1 -1
  73. package/dist/engine/observed_consumption.d.ts +54 -0
  74. package/dist/engine/observed_consumption.d.ts.map +1 -0
  75. package/dist/engine/observed_consumption.js +377 -0
  76. package/dist/engine/observed_consumption.js.map +1 -0
  77. package/dist/engine/platform_context.d.ts.map +1 -1
  78. package/dist/engine/platform_context.js +6 -2
  79. package/dist/engine/platform_context.js.map +1 -1
  80. package/dist/engine/release_gate_scenario_registry.d.ts +16 -1
  81. package/dist/engine/release_gate_scenario_registry.d.ts.map +1 -1
  82. package/dist/engine/release_gate_scenario_registry.js +205 -2
  83. package/dist/engine/release_gate_scenario_registry.js.map +1 -1
  84. package/dist/engine/release_issue_scenario_registry.d.ts +64 -0
  85. package/dist/engine/release_issue_scenario_registry.d.ts.map +1 -0
  86. package/dist/engine/release_issue_scenario_registry.js +1349 -0
  87. package/dist/engine/release_issue_scenario_registry.js.map +1 -0
  88. package/dist/engine/release_readiness_gate.d.ts +8 -0
  89. package/dist/engine/release_readiness_gate.d.ts.map +1 -1
  90. package/dist/engine/release_readiness_gate.js +1144 -6
  91. package/dist/engine/release_readiness_gate.js.map +1 -1
  92. package/dist/engine/release_tool_harness.d.ts +71 -0
  93. package/dist/engine/release_tool_harness.d.ts.map +1 -0
  94. package/dist/engine/release_tool_harness.js +161 -0
  95. package/dist/engine/release_tool_harness.js.map +1 -0
  96. package/dist/engine/scaffolder.d.ts.map +1 -1
  97. package/dist/engine/scaffolder.js +144 -7
  98. package/dist/engine/scaffolder.js.map +1 -1
  99. package/dist/engine/standard_asset_contract.d.ts +75 -0
  100. package/dist/engine/standard_asset_contract.d.ts.map +1 -0
  101. package/dist/engine/standard_asset_contract.js +388 -0
  102. package/dist/engine/standard_asset_contract.js.map +1 -0
  103. package/dist/engine/standard_asset_coverage.d.ts +45 -0
  104. package/dist/engine/standard_asset_coverage.d.ts.map +1 -0
  105. package/dist/engine/standard_asset_coverage.js +220 -0
  106. package/dist/engine/standard_asset_coverage.js.map +1 -0
  107. package/dist/engine/task_context.d.ts +9 -2
  108. package/dist/engine/task_context.d.ts.map +1 -1
  109. package/dist/engine/task_context.js +49 -12
  110. package/dist/engine/task_context.js.map +1 -1
  111. package/dist/engine/template_asset_contract_registry.d.ts +162 -0
  112. package/dist/engine/template_asset_contract_registry.d.ts.map +1 -0
  113. package/dist/engine/template_asset_contract_registry.js +598 -0
  114. package/dist/engine/template_asset_contract_registry.js.map +1 -0
  115. package/dist/engine/template_asset_visibility.d.ts +109 -0
  116. package/dist/engine/template_asset_visibility.d.ts.map +1 -0
  117. package/dist/engine/template_asset_visibility.js +321 -0
  118. package/dist/engine/template_asset_visibility.js.map +1 -0
  119. package/dist/engine/template_init_sync.d.ts +68 -0
  120. package/dist/engine/template_init_sync.d.ts.map +1 -0
  121. package/dist/engine/template_init_sync.js +218 -0
  122. package/dist/engine/template_init_sync.js.map +1 -0
  123. package/dist/engine/template_manifest_io.d.ts +10 -0
  124. package/dist/engine/template_manifest_io.d.ts.map +1 -1
  125. package/dist/engine/template_manifest_io.js +63 -30
  126. package/dist/engine/template_manifest_io.js.map +1 -1
  127. package/dist/engine/template_mechanism_auditor.d.ts +3 -1
  128. package/dist/engine/template_mechanism_auditor.d.ts.map +1 -1
  129. package/dist/engine/template_mechanism_auditor.js +27 -24
  130. package/dist/engine/template_mechanism_auditor.js.map +1 -1
  131. package/dist/engine/tool_invocation_contract_registry.d.ts.map +1 -1
  132. package/dist/engine/tool_invocation_contract_registry.js +11 -1
  133. package/dist/engine/tool_invocation_contract_registry.js.map +1 -1
  134. package/dist/engine/verifier.d.ts.map +1 -1
  135. package/dist/engine/verifier.js +3 -40
  136. package/dist/engine/verifier.js.map +1 -1
  137. package/dist/engine/workflow_contract_registry.d.ts.map +1 -1
  138. package/dist/engine/workflow_contract_registry.js +4 -3
  139. package/dist/engine/workflow_contract_registry.js.map +1 -1
  140. package/dist/knowledge/index_manager.d.ts +20 -0
  141. package/dist/knowledge/index_manager.d.ts.map +1 -1
  142. package/dist/knowledge/index_manager.js +234 -3
  143. package/dist/knowledge/index_manager.js.map +1 -1
  144. package/dist/types.d.ts +47 -0
  145. package/dist/types.d.ts.map +1 -1
  146. package/package.json +5 -4
  147. package/templates/knowledge/acceptance_templates/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243/346/250/241/347/211/210.md +74 -0
  148. package/templates/knowledge/acceptance_templates//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/346/226/207/346/241/243/346/250/241/347/211/210.md +59 -0
  149. package/templates/knowledge/acceptance_templates//346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/347/211/210.md +27 -7
  150. package/templates/knowledge/acceptance_templates//350/256/276/350/256/241/344/270/200/350/207/264/346/200/247/351/252/214/346/224/266/346/212/245/345/221/212/346/250/241/347/211/210.md +47 -0
  151. package/templates/knowledge/procedures//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/345/267/245/344/275/234/346/265/201.md +51 -0
  152. package/templates/knowledge/procedures//346/236/266/346/236/204/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +16 -7
  153. package/templates/knowledge/procedures//350/256/276/350/256/241/344/272/247/347/211/251/347/224/237/346/210/220/344/270/216/345/244/215/351/252/214/345/267/245/344/275/234/346/265/201.md +45 -0
  154. package/templates/knowledge/rules//345/267/245/344/275/234/346/265/201/346/250/241/346/235/277/345/214/205/350/247/204/345/210/231.md +10 -0
  155. package/templates/knowledge/rules//346/211/251/345/261/225/347/224/237/345/221/275/345/221/250/346/234/237/350/247/204/345/210/231.md +10 -0
  156. package/templates/knowledge/rules//346/226/275/345/267/245/346/214/207/344/273/244/345/245/221/347/272/246/350/247/204/345/210/231.md +33 -4
  157. package/templates/knowledge/rules//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md +49 -0
  158. package/templates/knowledge/rules//346/240/207/345/207/206/350/265/204/344/272/247/350/246/206/347/233/226/350/247/204/345/210/231.md +29 -0
  159. package/templates/knowledge/rules//346/250/241/346/235/277/350/265/204/344/272/247/345/217/257/350/247/201/346/200/247/350/247/204/345/210/231.md +27 -0
  160. package/templates/knowledge/rules//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246/350/247/204/345/210/231.md +62 -1
  161. package/templates/knowledge/rules//350/256/276/350/256/241/344/272/247/347/211/251/345/214/205/350/247/204/345/210/231.md +55 -0
  162. package/templates/knowledge/rules//350/257/201/346/215/256/351/251/261/345/212/250/344/270/216/345/217/215/345/271/273/350/247/211/350/247/204/345/210/231.md +75 -0
  163. package/templates/knowledge/rules//350/267/250/345/271/263/345/217/260/350/267/257/345/276/204/345/256/211/345/205/250/350/247/204/345/210/231.md +10 -0
  164. package/templates/knowledge/rules//351/200/232/347/224/250/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md +30 -0
  165. package/templates/knowledge/rules//351/252/214/346/224/266/346/250/241/346/235/277/350/276/223/345/207/272/345/245/221/347/272/246/350/247/204/345/210/231.md +50 -0
@@ -13,18 +13,38 @@ routes:
13
13
  - 用户反馈契约规则
14
14
  primary_triggers:
15
15
  - 用户反馈契约规则
16
- secondary_triggers: []
16
+ - 用户反馈
17
+ - 实际使用反馈
18
+ - 问题反馈
19
+ - 机制缺口
20
+ - 设计缺陷
21
+ secondary_triggers:
22
+ - 全局抽象
23
+ - 系统性问题
24
+ - 机制族归因
25
+ - 用户项目路径
26
+ - 防回归
17
27
  negative_triggers: []
18
28
  priority: P0
19
29
  specificity: 5
20
30
  consumes:
21
31
  - mc-task-context-lifecycle
32
+ - mc-first-principles
33
+ - mc-detail-discipline
34
+ - mc-evolution-regression
22
35
  hard_blocks:
23
36
  - 反馈未响应
24
37
  - 阻塞性信息未展示
38
+ - 仅按表面文件或单个场景收窄处理
39
+ - 未做机制族归因
40
+ - 未分析 SoloForge 自身与用户项目双路径影响
41
+ - 未分析模板层、知识层、机制层、adapter、CLI、MCP、发布门禁、迁移和防回归影响
25
42
  fallback: manual_required
26
43
  required_evidence:
27
44
  - user_feedback_message
45
+ - global_abstraction_review
46
+ - mechanism_family_mapping
47
+ - cross_layer_impact_matrix
28
48
  version: 1.0.0
29
49
  last_reviewed: '2026-05-22'
30
50
  migration_note: 知识资产标准化迁移
@@ -42,6 +62,15 @@ status: active
42
62
  3. 技术内容(路径、命令、错误码)禁止翻译,必须保留原文。
43
63
  4. `blocked` 类型反馈必须包含阻塞原因和建议下一步。
44
64
  5. `failure` 类型反馈必须包含失败证据和 retry_hint。
65
+ 6. 任何用户反馈、缺陷、设计疑问或实际使用偏差,不得只按表面文件、单个目录或单个场景收窄处理。
66
+ 7. 进入修复讨论前,必须先完成全局抽象审查:
67
+ - 该问题属于哪个机制族?
68
+ - 是否只是某个现象暴露出来的系统性问题?
69
+ - 是否同时影响 SoloForge 自身与用户项目使用路径?
70
+ - 是否涉及模板层、知识层、机制层、adapter、CLI、MCP、发布门禁、迁移和防回归?
71
+ - 是否需要抽象成通用能力,而不是只修当前案例?
72
+ 8. 如果全局抽象审查未完成,只能输出待分析项、影响矩阵和建议讨论顺序,不得直接给单点修复结论。
73
+ 9. 如果当前案例只是系统性问题的一个样本,修复方案必须覆盖同类入口、同类资产、同类任务和新增资产防回归。
45
74
 
46
75
  ## 适用场景
47
76
 
@@ -49,9 +78,41 @@ status: active
49
78
  - sf_verify 结果反馈
50
79
  - sf_learn 学习反馈
51
80
  - sf_expand 降级/澄清反馈
81
+ - 用户反馈实际使用问题
82
+ - 讨论新增机制、模板、规则、流程、验收或发布风险
83
+ - 将问题落入 Batch、备忘录、发布门槛或施工合同前
52
84
 
53
85
  ## 违规处理
54
86
 
55
87
  - 禁止的反馈类型 → hard_fail,阻断输出
56
88
  - 空洞反馈 → advisory,标记质量降级
57
89
  - 翻译技术内容 → advisory,标记违规
90
+ - 未做全局抽象审查就收窄为单点修复 → hard_fail,退回机制族归因
91
+ - 只修当前文件/目录/样例但未覆盖同类路径和防回归 → hard_fail,要求补齐通用能力
92
+ - 未分析 SoloForge 自身与用户项目双路径影响 → hard_fail,要求补齐影响矩阵
93
+ - 未说明模板层、知识层、机制层、adapter、CLI、MCP、发布门禁、迁移和防回归影响 → hard_fail,要求补齐跨层影响
94
+
95
+ ## 全局抽象审查输出
96
+
97
+ 每次用户反馈进入讨论或施工合同前,必须形成以下结构化结论:
98
+
99
+ ```text
100
+ 1. 表面现象:
101
+ 2. 机制族归因:
102
+ 3. 是否系统性问题:
103
+ 4. SoloForge 自身影响:
104
+ 5. 用户项目影响:
105
+ 6. 涉及层级:
106
+ - 模板层:
107
+ - 知识层:
108
+ - 机制层:
109
+ - adapter:
110
+ - CLI:
111
+ - MCP:
112
+ - 发布门禁:
113
+ - 迁移:
114
+ - 防回归:
115
+ 7. 是否应抽象成通用能力:
116
+ 8. 不应只修的局部案例:
117
+ 9. 施工和验收必须覆盖的同类路径:
118
+ ```
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: 设计产物包规则
3
+ id: ka-rule-design-artifact-pack
4
+ asset_kind: hard_rule
5
+ lifecycle_status: active
6
+ authority: canonical
7
+ scope:
8
+ - all
9
+ products:
10
+ - '*'
11
+ routes:
12
+ - artifact_generation
13
+ - code_change
14
+ primary_triggers:
15
+ - 架构设计文档
16
+ - 数据库设计文档
17
+ - API接口规格文档
18
+ priority: P0
19
+ specificity: 5
20
+ version: 1.0.0
21
+ last_reviewed: '2026-05-25'
22
+ owner_mechanism_id: mc-design-artifact-pack
23
+ hard_blocks:
24
+ - 未经复验的设计文档支撑编码或交付
25
+ - API 缺字段级契约
26
+ - 数据库 SQL 不可执行
27
+ - 跨设计产物关键冲突
28
+ required_evidence:
29
+ - design_artifact_pack
30
+ - consistency_verification
31
+ consumes:
32
+ - architecture_decision_workshop
33
+ - docs/architecture/00-架构决策记录.md
34
+ - docs/architecture/01-架构设计文档.md
35
+ fallback: manual_required
36
+ type: rule
37
+ status: active
38
+ ---
39
+
40
+ # 设计产物包规则
41
+
42
+ ## 权威资产
43
+
44
+ - 决策和确认以 `00-架构决策记录.md` 为准。
45
+ - 总体架构以 `01-架构设计文档.md` 为准。
46
+ - 数据库物理结构以真实 SQL/migration 为准,`02-数据库设计文档.md` 解释和追踪。
47
+ - API 路径和字段 schema 以 `docs/api/openapi.yaml` 为准,`03-API接口规格文档.md` 补充业务语义。
48
+ - `99-设计一致性验收报告.md` 只记录真实验证结果。
49
+
50
+ ## 硬底线
51
+
52
+ - 每个 endpoint 必须具备请求和响应字段级说明,JSON 示例不能替代字段表。
53
+ - SQL、OpenAPI、架构、数据库和 API 文档出现关键漂移时必须阻断。
54
+ - 旧文档在新标准下必须先审计;未经确认和复验不得继续作为编码依据。
55
+ - 升级必须默认 dry-run,确认写入时归档原文件和 hash。
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: 证据驱动与反幻觉规则
3
+ scope:
4
+ - '*'
5
+ products:
6
+ - '*'
7
+ id: ka-hard-rule-证据驱动与反幻觉规则
8
+ asset_kind: hard_rule
9
+ lifecycle_status: active
10
+ authority: canonical
11
+ owner_mechanism_id: mc-evidence-grounding
12
+ routes:
13
+ - code_execution
14
+ - multi_stage_plan
15
+ primary_triggers:
16
+ - 事实声称
17
+ - 项目事实
18
+ - 验证结果
19
+ - 发布结论
20
+ secondary_triggers:
21
+ - 知识注入
22
+ - 方案生成
23
+ negative_triggers: []
24
+ priority: P0
25
+ specificity: 5
26
+ consumes:
27
+ - ka-hard-rule-核心工程执行原则
28
+ - ka-hard-rule-施工指令契约规则
29
+ hard_blocks:
30
+ - 无证据声称项目事实
31
+ - 把推测当事实
32
+ - 把验证计划当验证结果
33
+ - generated_inference 单独支撑事实
34
+ - forbidden evidence 被注入
35
+ - tests/scenario/gate 自证
36
+ fallback: manual_required
37
+ required_evidence:
38
+ - evidence_matrix
39
+ - fact_claim_verification
40
+ - unsupported_claim_gate_result
41
+ version: 1.0.0
42
+ last_reviewed: '2026-05-24'
43
+ ---
44
+
45
+ # 证据驱动与反幻觉规则
46
+
47
+ ## 硬规则
48
+
49
+ 1. **没证据,不得当事实** — 任何项目事实、技术栈、测试、发布状态的声明必须有可追溯证据
50
+ 2. **没检索,不得做高风险判断** — 架构、编码、发布、迁移任务必须先检索项目证据
51
+ 3. **有冲突,不得直接拍板** — 证据冲突时必须列出冲突、给出推荐、请求用户确认
52
+ 4. **有不确定,必须说清** — 不确定项必须明确标注并给出推荐方案
53
+ 5. **验证计划不是验证结果** — `validation_plan` 不得冒充 `validation_result`
54
+ 6. **模型推理不是事实证据** — `generated_inference` 不得单独支撑项目事实结论
55
+ 7. **测试/gate/scenario 不是主链路落地** — 只被测试文件调用不是真实消费证据
56
+ 8. **禁止源永远不得注入** — `forbidden` 权限的证据不得出现在 prompt 或 citation 中
57
+ 9. **过期证据不得用于高风险** — `stale` / `deprecated` 证据不得作为高风险任务唯一依据
58
+ 10. **失败必须修复复验** — 证据不足时不得假完成,必须修复并复验
59
+
60
+ ## 风险分级
61
+
62
+ - **critical**: 发布门禁、生产环境、安全相关 → 任何证据缺失必须阻断
63
+ - **high**: 架构、编码、迁移、验证 → 事实声明必须有权威证据
64
+ - **medium**: 普通功能开发 → 关键声明需要证据
65
+ - **low**: 通用问答、低风险操作 → 可标注为通用建议
66
+
67
+ ## 检查项
68
+
69
+ - [ ] 关键事实声明有 evidence_refs
70
+ - [ ] 无证据的声明已标注不确定
71
+ - [ ] 冲突证据已列出并裁决
72
+ - [ ] forbidden 证据未被注入
73
+ - [ ] 高风险声明未用 stale/deprecated 证据
74
+ - [ ] 验证结论基于真实执行结果
75
+ - [ ] 生成的推理未单独支撑事实
@@ -21,6 +21,16 @@ priority: P1
21
21
  specificity: 4
22
22
  consumes:
23
23
  - ka-hard-rule-核心工程执行原则
24
+ hard_blocks:
25
+ - 路径逃逸 scope 边界
26
+ - 符号链接指向 scope 外
27
+ - 大小写冲突未处理
28
+ fallback: manual_required
29
+ required_evidence:
30
+ - path_normalization_result
31
+ - scope_boundary_check
32
+ version: 1.0.0
33
+ last_reviewed: '2026-05-24'
24
34
  ---
25
35
 
26
36
  # 跨平台路径安全规则
@@ -0,0 +1,30 @@
1
+ # 通用决策研讨规则
2
+
3
+ ## 触发条件
4
+
5
+ 以下任务类型必须在执行前完成决策研讨与用户确认:
6
+
7
+ - 架构设计(六域决策子包)
8
+ - 技术选型
9
+ - 数据迁移
10
+ - 安全策略变更
11
+ - 部署基础设施变更
12
+ - 产品范围变更
13
+ - 重构/迁移方案
14
+ - 第三方集成
15
+
16
+ ## 决策域记录要求
17
+
18
+ 每个决策域必须包含:
19
+
20
+ 1. **事实与约束** — 客观现状、技术限制、业务约束
21
+ 2. **候选方案** — 至少两个可行方案,含收益与风险
22
+ 3. **推荐方案** — 附推荐理由
23
+ 4. **用户确认引用** — 必须有明确的用户确认记录
24
+
25
+ ## 门禁规则
26
+
27
+ - 所有必须域未确认时,阻断正式生成/执行
28
+ - 现有系统变更必须提供现状分析和差距分析证据
29
+ - 标记 `not_applicable` 的域必须提供不适用理由
30
+ - 标记 `deferred` 的域必须列出延期影响
@@ -0,0 +1,50 @@
1
+ # 验收模板输出契约规则
2
+
3
+ ## 触发条件
4
+
5
+ 当任务产出正式设计文档、架构设计、数据库设计、API 接口规格、原型说明或验收报告时,必须按标准资产契约验收。
6
+
7
+ ## 适用范围
8
+
9
+ - 架构设计文档(01-架构设计文档.md)
10
+ - 数据库设计文档(02-数据库设计文档.md)
11
+ - API 接口规格(03-API接口规格文档.md)
12
+ - 设计一致性验收报告(99-设计一致性验收报告.md)
13
+ - 原型说明文档
14
+
15
+ ## 契约要求
16
+
17
+ 每个 P0 模板输出必须满足:
18
+
19
+ 1. **章节检查**: 必填章节存在、顺序合理、不得只有空标题。
20
+ 2. **表格检查**: 必填表格存在、表头正确、行内容覆盖必要对象。
21
+ 3. **字段检查**: API/数据/追踪字段具备类型、必填、来源、说明、示例、校验规则、错误语义。
22
+ 4. **权威资产检查**: 必须引用并对齐 OpenAPI、SQL/migration 等机器权威资产。
23
+ 5. **语义检查**: Mermaid 图、字段、实体与当前业务相关,不得用无关内容凑数。
24
+
25
+ ## API 字段表最小列
26
+
27
+ 字段名 / 类型 / 必填 / 来源 / 说明 / 示例 / 校验规则 / 错误语义
28
+
29
+ ## Mermaid 检查规则
30
+
31
+ - fence 语法合法。
32
+ - 图类型符合模板要求(sequenceDiagram、flowchart 等)。
33
+ - 图内容与当前业务相关。
34
+
35
+ ## 修复闭环
36
+
37
+ 模板契约验收失败必须进入修复重验:
38
+
39
+ 1. sf_verify 报告缺口和诊断码。
40
+ 2. 修复后重新 sf_verify。
41
+ 3. 仍然失败则继续循环或请求用户确认。
42
+ 4. 修复期间交付被阻断。
43
+
44
+ ## 草稿状态
45
+
46
+ 草稿必须显式标记 `draft`、`not_for_implementation` 或 `needs_template_verification`。草稿不进入编码消费。
47
+
48
+ ## 低风险跳过
49
+
50
+ 普通 bugfix、样式修复、只读解释和小范围改动不触发模板契约验收。