soloforge 1.3.2 → 1.3.4

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 (124) hide show
  1. package/README.md +14 -0
  2. package/dist/adapters/claude_code/server.js +1 -1
  3. package/dist/adapters/claude_code/server.js.map +1 -1
  4. package/dist/adapters/claude_code/tools.d.ts.map +1 -1
  5. package/dist/adapters/claude_code/tools.js +385 -15
  6. package/dist/adapters/claude_code/tools.js.map +1 -1
  7. package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
  8. package/dist/adapters/shared/workflow_template.js +3 -2
  9. package/dist/adapters/shared/workflow_template.js.map +1 -1
  10. package/dist/bin/soloforge.d.ts.map +1 -1
  11. package/dist/bin/soloforge.js +296 -1
  12. package/dist/bin/soloforge.js.map +1 -1
  13. package/dist/engine/asset_manifest.d.ts.map +1 -1
  14. package/dist/engine/asset_manifest.js +24 -0
  15. package/dist/engine/asset_manifest.js.map +1 -1
  16. package/dist/engine/backend_implementation_contract.d.ts +51 -0
  17. package/dist/engine/backend_implementation_contract.d.ts.map +1 -0
  18. package/dist/engine/backend_implementation_contract.js +142 -0
  19. package/dist/engine/backend_implementation_contract.js.map +1 -0
  20. package/dist/engine/code_maintainability_observability_contract.d.ts +74 -0
  21. package/dist/engine/code_maintainability_observability_contract.d.ts.map +1 -0
  22. package/dist/engine/code_maintainability_observability_contract.js +473 -0
  23. package/dist/engine/code_maintainability_observability_contract.js.map +1 -0
  24. package/dist/engine/config_write_boundary.d.ts +29 -0
  25. package/dist/engine/config_write_boundary.d.ts.map +1 -0
  26. package/dist/engine/config_write_boundary.js +69 -0
  27. package/dist/engine/config_write_boundary.js.map +1 -0
  28. package/dist/engine/consumable_asset_registry.d.ts.map +1 -1
  29. package/dist/engine/consumable_asset_registry.js +182 -1
  30. package/dist/engine/consumable_asset_registry.js.map +1 -1
  31. package/dist/engine/diagnostic_registry.d.ts +12 -0
  32. package/dist/engine/diagnostic_registry.d.ts.map +1 -1
  33. package/dist/engine/diagnostic_registry.js +62 -0
  34. package/dist/engine/diagnostic_registry.js.map +1 -1
  35. package/dist/engine/dual_layer_mechanism_registry.d.ts.map +1 -1
  36. package/dist/engine/dual_layer_mechanism_registry.js +318 -1
  37. package/dist/engine/dual_layer_mechanism_registry.js.map +1 -1
  38. package/dist/engine/explicit_asset_registry.d.ts.map +1 -1
  39. package/dist/engine/explicit_asset_registry.js +338 -0
  40. package/dist/engine/explicit_asset_registry.js.map +1 -1
  41. package/dist/engine/implementation_roadmap_registry.d.ts.map +1 -1
  42. package/dist/engine/implementation_roadmap_registry.js +112 -2
  43. package/dist/engine/implementation_roadmap_registry.js.map +1 -1
  44. package/dist/engine/knowledge_governance_gate.d.ts +38 -0
  45. package/dist/engine/knowledge_governance_gate.d.ts.map +1 -0
  46. package/dist/engine/knowledge_governance_gate.js +123 -0
  47. package/dist/engine/knowledge_governance_gate.js.map +1 -0
  48. package/dist/engine/log_governance.d.ts +25 -0
  49. package/dist/engine/log_governance.d.ts.map +1 -0
  50. package/dist/engine/log_governance.js +76 -0
  51. package/dist/engine/log_governance.js.map +1 -0
  52. package/dist/engine/mechanism_contract_registry.d.ts +1 -0
  53. package/dist/engine/mechanism_contract_registry.d.ts.map +1 -1
  54. package/dist/engine/mechanism_contract_registry.js +172 -0
  55. package/dist/engine/mechanism_contract_registry.js.map +1 -1
  56. package/dist/engine/mechanism_health_check.d.ts +23 -0
  57. package/dist/engine/mechanism_health_check.d.ts.map +1 -0
  58. package/dist/engine/mechanism_health_check.js +140 -0
  59. package/dist/engine/mechanism_health_check.js.map +1 -0
  60. package/dist/engine/next_action_planner.d.ts +19 -0
  61. package/dist/engine/next_action_planner.d.ts.map +1 -0
  62. package/dist/engine/next_action_planner.js +453 -0
  63. package/dist/engine/next_action_planner.js.map +1 -0
  64. package/dist/engine/observability.js +1 -1
  65. package/dist/engine/observability.js.map +1 -1
  66. package/dist/engine/ood_solid_contract.d.ts +51 -0
  67. package/dist/engine/ood_solid_contract.d.ts.map +1 -0
  68. package/dist/engine/ood_solid_contract.js +115 -0
  69. package/dist/engine/ood_solid_contract.js.map +1 -0
  70. package/dist/engine/project_stage_detector.d.ts +17 -0
  71. package/dist/engine/project_stage_detector.d.ts.map +1 -0
  72. package/dist/engine/project_stage_detector.js +185 -0
  73. package/dist/engine/project_stage_detector.js.map +1 -0
  74. package/dist/engine/release_issue_scenario_registry.d.ts.map +1 -1
  75. package/dist/engine/release_issue_scenario_registry.js +230 -1
  76. package/dist/engine/release_issue_scenario_registry.js.map +1 -1
  77. package/dist/engine/release_readiness_gate.d.ts +3 -0
  78. package/dist/engine/release_readiness_gate.d.ts.map +1 -1
  79. package/dist/engine/release_readiness_gate.js +407 -9
  80. package/dist/engine/release_readiness_gate.js.map +1 -1
  81. package/dist/engine/stale_current_task_detector.d.ts +30 -0
  82. package/dist/engine/stale_current_task_detector.d.ts.map +1 -0
  83. package/dist/engine/stale_current_task_detector.js +168 -0
  84. package/dist/engine/stale_current_task_detector.js.map +1 -0
  85. package/dist/engine/task_stage_detector.d.ts +19 -0
  86. package/dist/engine/task_stage_detector.d.ts.map +1 -0
  87. package/dist/engine/task_stage_detector.js +201 -0
  88. package/dist/engine/task_stage_detector.js.map +1 -0
  89. package/dist/engine/team_awareness.js +6 -6
  90. package/dist/engine/team_awareness.js.map +1 -1
  91. package/dist/engine/tool_invocation_contract_registry.d.ts.map +1 -1
  92. package/dist/engine/tool_invocation_contract_registry.js +10 -0
  93. package/dist/engine/tool_invocation_contract_registry.js.map +1 -1
  94. package/dist/engine/workflow_navigation_contract.d.ts +115 -0
  95. package/dist/engine/workflow_navigation_contract.d.ts.map +1 -0
  96. package/dist/engine/workflow_navigation_contract.js +39 -0
  97. package/dist/engine/workflow_navigation_contract.js.map +1 -0
  98. package/dist/types.d.ts +12 -0
  99. package/dist/types.d.ts.map +1 -1
  100. package/package.json +1 -1
  101. package/templates/knowledge/acceptance_templates/OOD/350/256/276/350/256/241/346/221/230/350/246/201/346/250/241/347/211/210.md +60 -0
  102. package/templates/knowledge/acceptance_templates//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/351/252/214/346/224/266/346/250/241/346/235/277.md +78 -0
  103. package/templates/knowledge/acceptance_templates//345/220/216/347/253/257/345/256/236/347/216/260/351/252/214/346/224/266/346/270/205/345/215/225.md +46 -0
  104. package/templates/knowledge/procedures/OOD/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +50 -0
  105. package/templates/knowledge/procedures//345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201/345/257/274/350/210/252.md +100 -0
  106. package/templates/knowledge/procedures//345/220/216/347/253/257/346/216/245/345/217/243/345/256/236/347/216/260/345/267/245/344/275/234/346/265/201.md +50 -0
  107. package/templates/knowledge/review//344/273/243/347/240/201/345/217/257/347/273/264/346/212/244/346/200/247/344/270/216/345/217/257/350/247/202/346/265/213/346/200/247/345/256/241/346/237/245.md +81 -0
  108. package/templates/knowledge/review_rules/SOLID/344/273/243/347/240/201/345/256/241/346/237/245/350/247/204/345/210/231.md +40 -0
  109. package/templates/knowledge/review_rules//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/256/241/346/237/245/350/247/204/345/210/231.md +38 -0
  110. package/templates/knowledge/rules/OOD/344/270/216SOLID/350/256/276/350/256/241/350/247/204/345/210/231.md +62 -0
  111. package/templates/knowledge/rules//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/345/245/221/347/272/246/350/247/204/345/210/231.md +121 -0
  112. package/templates/knowledge/rules//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/245/221/347/272/246/350/247/204/345/210/231.md +55 -0
  113. package/templates/knowledge/rules//345/267/245/344/275/234/346/265/201/345/257/274/350/210/252/345/245/221/347/272/246/350/247/204/345/210/231.md +113 -0
  114. package/templates/knowledge/rules//346/225/217/346/204/237/344/277/241/346/201/257/346/227/245/345/277/227/350/247/204/345/210/231.md +69 -0
  115. package/templates/knowledge/rules//346/227/245/345/277/227/346/262/273/347/220/206/350/247/204/345/210/231.md +49 -0
  116. package/templates/knowledge/rules//346/234/272/345/210/266/350/207/252/346/262/273/347/220/206/350/247/204/345/210/231.md +48 -0
  117. 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 +43 -0
  118. 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 +44 -0
  119. package/templates/knowledge/rules//347/237/245/350/257/206/346/262/273/347/220/206/350/247/204/345/210/231.md +50 -0
  120. 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 +47 -0
  121. package/templates/knowledge/rules//351/205/215/347/275/256/350/220/275/347/233/230/350/276/271/347/225/214/350/247/204/345/210/231.md +47 -0
  122. 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 +46 -0
  123. package/templates/patterns/SOLID/350/256/276/350/256/241/350/247/204/350/214/203.md +39 -0
  124. package/templates/patterns//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/350/247/204/350/214/203.md +39 -0
@@ -0,0 +1,69 @@
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-code-maintainability-observability-contract
12
+ routes:
13
+ - code_change
14
+ - artifact_generation
15
+ primary_triggers:
16
+ - 日志
17
+ - 输出
18
+ - console
19
+ - print
20
+ - log
21
+ secondary_triggers:
22
+ - 敏感信息
23
+ - 脱敏
24
+ - 隐私
25
+ negative_triggers:
26
+ - 文案
27
+ - 样式
28
+ priority: P0
29
+ specificity: 5
30
+ consumes:
31
+ - mc-code-maintainability-observability-contract
32
+ hard_blocks:
33
+ - sensitive_log_leak
34
+ - plaintext_credential_in_output
35
+ fallback: manual_required
36
+ required_evidence:
37
+ - sensitive_log_scan_result
38
+ - review_findings
39
+ version: 1.0.0
40
+ last_reviewed: '2026-05-26'
41
+ ---
42
+
43
+ ## 敏感信息绝对禁止进入日志
44
+
45
+ 以下字段必须脱敏或禁止输出到任何日志通道:
46
+
47
+ ### P0 阻断(发现即 hard_fail)
48
+ - password / passwd / pwd:禁止明文输出
49
+ - token / api_key / access_key / secret_key / private_key:禁止明文输出
50
+ - cookie / session_id / set_cookie:禁止输出完整值
51
+ - 身份证号:禁止输出 15/18 位全量
52
+ - 手机号:禁止输出 11 位全量
53
+ - 银行卡号:禁止输出全量
54
+ - 健康隐私信息(病历、诊断、处方)
55
+
56
+ ### 脱敏要求
57
+ - 手机号:仅显示前 3 后 4(如 138****5678)
58
+ - 身份证:仅显示前 3 后 4(如 310***********1234)
59
+ - 银行卡:仅显示后 4 位(如 ****5678)
60
+ - token/密钥:仅显示前 4 位或哈希值
61
+
62
+ ### 检查范围
63
+ - 用户项目代码中的日志输出语句
64
+ - 不检查测试文件中的 fixture 或 mock
65
+ - 不检查 SoloForge 自身日志(已有独立治理)
66
+
67
+ ### 误判防范
68
+ - 变量名含 password 但实际是布尔标志(如 requires_password)不误判
69
+ - 仅检查实际输出到日志的值,不检查声明和赋值
@@ -0,0 +1,49 @@
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-log-governance
12
+ routes:
13
+ - verification
14
+ - operation
15
+ primary_triggers:
16
+ - 日志治理
17
+ - 输出噪音
18
+ - json 输出
19
+ secondary_triggers:
20
+ - user feedback
21
+ - logger
22
+ negative_triggers:
23
+ - 用户项目业务日志
24
+ priority: P1
25
+ specificity: 4
26
+ consumes:
27
+ - log_governance
28
+ hard_blocks:
29
+ - raw_output_noise
30
+ - json_stdout_pollution
31
+ - direct_console_output
32
+ fallback: manual_required
33
+ required_evidence:
34
+ - log_governance_report
35
+ version: 1.0.0
36
+ last_reviewed: '2026-05-26'
37
+ status: active
38
+ ---
39
+
40
+ # 日志治理规则
41
+
42
+ SoloForge 自身输出必须通过统一日志模块,用户可见输出不得混入内部治理噪音。
43
+
44
+ ## 硬规则
45
+
46
+ - CLI 和 MCP 用户可见输出必须中文语义优先。
47
+ - `--json` 模式 stdout 必须是纯 JSON。
48
+ - 引擎内部 trace 默认不得输出。
49
+ - 直接 `console` 输出只能存在于日志封装层。
@@ -0,0 +1,48 @@
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-mechanism-health
12
+ routes:
13
+ - verification
14
+ - operation
15
+ primary_triggers:
16
+ - 机制健康
17
+ - 主链路消费
18
+ - 死代码
19
+ secondary_triggers:
20
+ - lazy import
21
+ - mechanism id
22
+ negative_triggers:
23
+ - 普通业务编码
24
+ priority: P1
25
+ specificity: 4
26
+ consumes:
27
+ - mechanism_health_check
28
+ hard_blocks:
29
+ - lazy_dead_import
30
+ - unconsumed_mechanism
31
+ fallback: manual_required
32
+ required_evidence:
33
+ - mechanism_health_report
34
+ version: 1.0.0
35
+ last_reviewed: '2026-05-26'
36
+ status: active
37
+ ---
38
+
39
+ # 机制自治理规则
40
+
41
+ 所有新增机制必须有真实生产消费路径,不能只停留在注册表、测试或文档。
42
+
43
+ ## 硬规则
44
+
45
+ - 引擎模块导出的核心函数必须被 CLI、MCP handler 或 release gate 消费。
46
+ - `lazy*` 声明必须在 handler 或治理入口中实际调用。
47
+ - `mechanism_id` 必须在双层注册、机制合同和资产清单中保持一致。
48
+ - 行为测试必须包含 must-fail 和 must-pass,不得只验证文件存在。
@@ -1,3 +1,46 @@
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-standard-asset-coverage
12
+ routes:
13
+ - artifact_generation
14
+ - code_change
15
+ - operation
16
+ primary_triggers:
17
+ - 标准资产覆盖
18
+ - 模板覆盖
19
+ - 资产契约
20
+ secondary_triggers:
21
+ - templates
22
+ - asset coverage
23
+ negative_triggers: []
24
+ priority: P0
25
+ specificity: 5
26
+ consumes:
27
+ - template_asset_contract_registry
28
+ - explicit_asset_registry
29
+ - observed_consumption
30
+ hard_blocks:
31
+ - unregistered_template_asset
32
+ - missing_runtime_consumer
33
+ - missing_revalidation_entrypoint
34
+ fallback: manual_required
35
+ required_evidence:
36
+ - asset_contract
37
+ - consumption_evidence
38
+ - validation_entrypoint
39
+ version: 1.0.0
40
+ last_reviewed: '2026-05-26'
41
+ status: active
42
+ ---
43
+
1
44
  # 标准资产覆盖规则
2
45
 
3
46
  ## 覆盖范围
@@ -1,3 +1,47 @@
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-template-asset-visibility
12
+ routes:
13
+ - operation
14
+ - code_change
15
+ - artifact_generation
16
+ primary_triggers:
17
+ - 模板资产可见性
18
+ - 内部资产
19
+ - 知识同步
20
+ secondary_triggers:
21
+ - sync-templates
22
+ - init
23
+ - visibility
24
+ negative_triggers: []
25
+ priority: P0
26
+ specificity: 5
27
+ consumes:
28
+ - template_asset_contract_registry
29
+ - template_init_sync
30
+ - knowledge_index_manager
31
+ hard_blocks:
32
+ - internal_asset_leak
33
+ - cross_stack_injection
34
+ - unregistered_asset_sync
35
+ fallback: manual_required
36
+ required_evidence:
37
+ - visibility_contract
38
+ - sync_manifest
39
+ - runtime_consumption_trace
40
+ version: 1.0.0
41
+ last_reviewed: '2026-05-26'
42
+ status: active
43
+ ---
44
+
1
45
  # 模板资产可见性规则
2
46
 
3
47
  ## 适用范围
@@ -0,0 +1,50 @@
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-knowledge-governance
12
+ routes:
13
+ - verification
14
+ - operation
15
+ - knowledge_update
16
+ primary_triggers:
17
+ - 知识治理
18
+ - 知识演进
19
+ - 文档治理
20
+ secondary_triggers:
21
+ - 中文语义
22
+ - language policy
23
+ negative_triggers:
24
+ - 普通代码修改
25
+ priority: P0
26
+ specificity: 5
27
+ consumes:
28
+ - knowledge_governance_gate
29
+ hard_blocks:
30
+ - promotion_without_evidence
31
+ - unauthorized_design_doc_fact
32
+ - language_policy_missing
33
+ fallback: manual_required
34
+ required_evidence:
35
+ - knowledge_governance_report
36
+ version: 1.0.0
37
+ last_reviewed: '2026-05-26'
38
+ status: active
39
+ ---
40
+
41
+ # 知识治理规则
42
+
43
+ 知识资产从草稿、演进、同步到注入必须有统一治理入口。
44
+
45
+ ## 硬规则
46
+
47
+ - 知识晋级必须有证据,不能由 AI 推理直接变成核心事实。
48
+ - 中文优先项目的用户可见语义不得被英文默认模板污染。
49
+ - 设计文档只能承载已验证事实,不能承载施工日志或未验证假设。
50
+ - 多语言策略必须显式声明,不能用日志或 stderr 替代用户反馈。
@@ -1,3 +1,50 @@
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-decision-workshop
12
+ routes:
13
+ - analysis
14
+ - artifact_generation
15
+ - code_change
16
+ primary_triggers:
17
+ - 决策研讨
18
+ - 技术选型
19
+ - 数据迁移
20
+ - 安全策略
21
+ secondary_triggers:
22
+ - 架构设计
23
+ - 部署
24
+ - 重构
25
+ - 第三方集成
26
+ negative_triggers:
27
+ - 简单说明
28
+ - 低风险改字
29
+ priority: P0
30
+ specificity: 5
31
+ consumes:
32
+ - decision_workshop
33
+ - architecture_decision_workshop
34
+ hard_blocks:
35
+ - unconfirmed_decision_domain
36
+ - missing_candidate_options
37
+ - missing_user_confirmation
38
+ fallback: manual_required
39
+ required_evidence:
40
+ - decision_workshop
41
+ - user_confirmation_ref
42
+ - decision_domain_status
43
+ version: 1.0.0
44
+ last_reviewed: '2026-05-26'
45
+ status: active
46
+ ---
47
+
1
48
  # 通用决策研讨规则
2
49
 
3
50
  ## 触发条件
@@ -0,0 +1,47 @@
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-config-write-boundary
12
+ routes:
13
+ - operation
14
+ primary_triggers:
15
+ - init
16
+ - sync-templates
17
+ - 配置落盘
18
+ secondary_triggers:
19
+ - config.yaml
20
+ - .soloforge
21
+ negative_triggers:
22
+ - 只读验证
23
+ priority: P1
24
+ specificity: 4
25
+ consumes:
26
+ - config_write_boundary
27
+ hard_blocks:
28
+ - runtime_inference_persisted
29
+ - existing_project_write_without_confirm
30
+ fallback: manual_required
31
+ required_evidence:
32
+ - config_write_decision
33
+ version: 1.0.0
34
+ last_reviewed: '2026-05-26'
35
+ status: active
36
+ ---
37
+
38
+ # 配置落盘边界规则
39
+
40
+ 运行时推断、已有项目探测和空项目蓝图必须区分处理。
41
+
42
+ ## 硬规则
43
+
44
+ - 运行时推断结果不得自动写入项目配置。
45
+ - 已有项目写入 `.soloforge/`、`.mcp.json`、`CLAUDE.md` 或 adapter 配置时必须有用户确认。
46
+ - 空项目初始化可以创建 SoloForge 管理文件。
47
+ - 同步模板不得覆盖用户已修改资产。
@@ -1,3 +1,49 @@
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-standard-asset-contract
12
+ routes:
13
+ - artifact_generation
14
+ - code_change
15
+ - verification
16
+ primary_triggers:
17
+ - 验收模板
18
+ - 标准输出
19
+ - 设计产物
20
+ secondary_triggers:
21
+ - API接口规格
22
+ - 数据库设计
23
+ - 架构设计
24
+ negative_triggers:
25
+ - 普通解释
26
+ - 简单 bugfix
27
+ priority: P0
28
+ specificity: 5
29
+ consumes:
30
+ - standard_asset_contract
31
+ - design_artifact_pack
32
+ - repair_reverify_directive
33
+ hard_blocks:
34
+ - template_contract_violation
35
+ - draft_artifact_consumed
36
+ - missing_authoritative_asset
37
+ fallback: manual_required
38
+ required_evidence:
39
+ - template_contract_result
40
+ - authoritative_asset
41
+ - repair_reverify_result
42
+ version: 1.0.0
43
+ last_reviewed: '2026-05-26'
44
+ status: active
45
+ ---
46
+
1
47
  # 验收模板输出契约规则
2
48
 
3
49
  ## 触发条件
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: solid-design-pattern
3
+ when: 'SOLID, 面向对象设计, 职责划分, 依赖倒置, 接口隔离'
4
+ scope:
5
+ - backend
6
+ - frontend
7
+ products:
8
+ - '*'
9
+ id: ka-pattern-solid-design
10
+ asset_kind: pattern
11
+ lifecycle_status: active
12
+ authority: supporting
13
+ owner_mechanism_id: mc-ood-solid-contract
14
+ routes:
15
+ - code_change
16
+ primary_triggers:
17
+ - SOLID
18
+ - 面向对象设计
19
+ priority: P1
20
+ specificity: 5
21
+ version: 1.0.0
22
+ last_reviewed: '2026-05-26'
23
+ consumes:
24
+ - mc-ood-solid-contract
25
+ emits: []
26
+ secondary_triggers: []
27
+ negative_triggers: []
28
+ type: pattern
29
+ status: active
30
+ ---
31
+
32
+ ## 规则
33
+
34
+ - 一个类只承担一个清晰可验证的业务原因。
35
+ - 新增行为优先扩展端口或策略,避免修改大量既有条件分支。
36
+ - 子类型必须保持父契约的有效输入、输出和错误语义。
37
+ - 接口按消费者需要拆分,禁止空实现和不支持异常。
38
+ - 业务核心依赖抽象,基础设施实现由装配层注入。
39
+ - 简单修改不建立无用抽象层,避免为原则之名过度设计。
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: backend-implementation-engineering
3
+ when: 'Controller, DTO, API实现, 事务, 幂等, 权限, 后端编码'
4
+ scope:
5
+ - backend
6
+ products:
7
+ - '*'
8
+ id: ka-pattern-backend-implementation-engineering
9
+ asset_kind: pattern
10
+ lifecycle_status: active
11
+ authority: supporting
12
+ owner_mechanism_id: mc-backend-implementation-contract
13
+ routes:
14
+ - code_change
15
+ primary_triggers:
16
+ - 后端实现
17
+ - API实现
18
+ priority: P1
19
+ specificity: 5
20
+ version: 1.0.0
21
+ last_reviewed: '2026-05-26'
22
+ consumes:
23
+ - mc-backend-implementation-contract
24
+ emits: []
25
+ secondary_triggers: []
26
+ negative_triggers: []
27
+ type: pattern
28
+ status: active
29
+ ---
30
+
31
+ ## 工程规则
32
+
33
+ - Controller 入参与出参按接口语义使用 DTO/VO,不暴露数据库实体。
34
+ - 参数必须验证必填、长度、枚举、金额、日期区间和关联对象存在性。
35
+ - 列表接口限制 page size 并对白名单排序;响应使用统一分页对象。
36
+ - 写操作在 Service 定义清晰事务边界;外部调用不放在长事务内。
37
+ - 支付、回调、创建与状态流转具备幂等键、并发控制和重复提交测试。
38
+ - 敏感操作必须校验权限和租户,并产出可追踪审计记录。
39
+ - OpenAPI、字段表、错误码和 migration 必须与实现同步复验。