soloforge 1.2.2 → 1.2.3

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 (156) hide show
  1. package/README.md +78 -18
  2. package/dist/adapters/claude_code/tools.d.ts.map +1 -1
  3. package/dist/adapters/claude_code/tools.js +319 -5
  4. package/dist/adapters/claude_code/tools.js.map +1 -1
  5. package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
  6. package/dist/adapters/shared/workflow_template.js +25 -0
  7. package/dist/adapters/shared/workflow_template.js.map +1 -1
  8. package/dist/bin/soloforge.js +169 -13
  9. package/dist/bin/soloforge.js.map +1 -1
  10. package/dist/engine/audit_pool.d.ts +36 -0
  11. package/dist/engine/audit_pool.d.ts.map +1 -0
  12. package/dist/engine/audit_pool.js +83 -0
  13. package/dist/engine/audit_pool.js.map +1 -0
  14. package/dist/engine/audit_sampler.d.ts +15 -0
  15. package/dist/engine/audit_sampler.d.ts.map +1 -0
  16. package/dist/engine/audit_sampler.js +26 -0
  17. package/dist/engine/audit_sampler.js.map +1 -0
  18. package/dist/engine/capability_action_advisor.d.ts +24 -0
  19. package/dist/engine/capability_action_advisor.d.ts.map +1 -0
  20. package/dist/engine/capability_action_advisor.js +147 -0
  21. package/dist/engine/capability_action_advisor.js.map +1 -0
  22. package/dist/engine/capability_registry.d.ts +23 -1
  23. package/dist/engine/capability_registry.d.ts.map +1 -1
  24. package/dist/engine/capability_registry.js +511 -19
  25. package/dist/engine/capability_registry.js.map +1 -1
  26. package/dist/engine/capability_state_store.d.ts +50 -0
  27. package/dist/engine/capability_state_store.d.ts.map +1 -0
  28. package/dist/engine/capability_state_store.js +123 -0
  29. package/dist/engine/capability_state_store.js.map +1 -0
  30. package/dist/engine/cognitive_anchor.d.ts +59 -0
  31. package/dist/engine/cognitive_anchor.d.ts.map +1 -0
  32. package/dist/engine/cognitive_anchor.js +68 -0
  33. package/dist/engine/cognitive_anchor.js.map +1 -0
  34. package/dist/engine/conflict_gate.d.ts +36 -0
  35. package/dist/engine/conflict_gate.d.ts.map +1 -0
  36. package/dist/engine/conflict_gate.js +73 -0
  37. package/dist/engine/conflict_gate.js.map +1 -0
  38. package/dist/engine/decision_contract.d.ts +29 -0
  39. package/dist/engine/decision_contract.d.ts.map +1 -0
  40. package/dist/engine/decision_contract.js +41 -0
  41. package/dist/engine/decision_contract.js.map +1 -0
  42. package/dist/engine/delivery.d.ts.map +1 -1
  43. package/dist/engine/delivery.js +83 -0
  44. package/dist/engine/delivery.js.map +1 -1
  45. package/dist/engine/developer_sovereignty.d.ts +62 -0
  46. package/dist/engine/developer_sovereignty.d.ts.map +1 -0
  47. package/dist/engine/developer_sovereignty.js +134 -0
  48. package/dist/engine/developer_sovereignty.js.map +1 -0
  49. package/dist/engine/diff_ownership.d.ts +74 -0
  50. package/dist/engine/diff_ownership.d.ts.map +1 -0
  51. package/dist/engine/diff_ownership.js +143 -0
  52. package/dist/engine/diff_ownership.js.map +1 -0
  53. package/dist/engine/diff_ownership_store.d.ts +76 -0
  54. package/dist/engine/diff_ownership_store.d.ts.map +1 -0
  55. package/dist/engine/diff_ownership_store.js +264 -0
  56. package/dist/engine/diff_ownership_store.js.map +1 -0
  57. package/dist/engine/escape_report.d.ts +45 -0
  58. package/dist/engine/escape_report.d.ts.map +1 -0
  59. package/dist/engine/escape_report.js +97 -0
  60. package/dist/engine/escape_report.js.map +1 -0
  61. package/dist/engine/exploration.d.ts +54 -0
  62. package/dist/engine/exploration.d.ts.map +1 -1
  63. package/dist/engine/exploration.js +138 -0
  64. package/dist/engine/exploration.js.map +1 -1
  65. package/dist/engine/governance_report.d.ts +36 -0
  66. package/dist/engine/governance_report.d.ts.map +1 -0
  67. package/dist/engine/governance_report.js +79 -0
  68. package/dist/engine/governance_report.js.map +1 -0
  69. package/dist/engine/java_quality_guard.d.ts +52 -0
  70. package/dist/engine/java_quality_guard.d.ts.map +1 -0
  71. package/dist/engine/java_quality_guard.js +237 -0
  72. package/dist/engine/java_quality_guard.js.map +1 -0
  73. package/dist/engine/job_manager.d.ts +76 -0
  74. package/dist/engine/job_manager.d.ts.map +1 -0
  75. package/dist/engine/job_manager.js +225 -0
  76. package/dist/engine/job_manager.js.map +1 -0
  77. package/dist/engine/knowledge_sovereignty.d.ts +61 -0
  78. package/dist/engine/knowledge_sovereignty.d.ts.map +1 -0
  79. package/dist/engine/knowledge_sovereignty.js +190 -0
  80. package/dist/engine/knowledge_sovereignty.js.map +1 -0
  81. package/dist/engine/mutation_audit.d.ts +43 -0
  82. package/dist/engine/mutation_audit.d.ts.map +1 -0
  83. package/dist/engine/mutation_audit.js +118 -0
  84. package/dist/engine/mutation_audit.js.map +1 -0
  85. package/dist/engine/policy_drift_detector.d.ts +46 -0
  86. package/dist/engine/policy_drift_detector.d.ts.map +1 -0
  87. package/dist/engine/policy_drift_detector.js +181 -0
  88. package/dist/engine/policy_drift_detector.js.map +1 -0
  89. package/dist/engine/regression_matrix.d.ts +102 -0
  90. package/dist/engine/regression_matrix.d.ts.map +1 -0
  91. package/dist/engine/regression_matrix.js +380 -0
  92. package/dist/engine/regression_matrix.js.map +1 -0
  93. package/dist/engine/risk_sampler.d.ts +37 -0
  94. package/dist/engine/risk_sampler.d.ts.map +1 -0
  95. package/dist/engine/risk_sampler.js +69 -0
  96. package/dist/engine/risk_sampler.js.map +1 -0
  97. package/dist/engine/runtime_safety.d.ts +80 -0
  98. package/dist/engine/runtime_safety.d.ts.map +1 -0
  99. package/dist/engine/runtime_safety.js +195 -0
  100. package/dist/engine/runtime_safety.js.map +1 -0
  101. package/dist/engine/scope_lease.d.ts +45 -0
  102. package/dist/engine/scope_lease.d.ts.map +1 -0
  103. package/dist/engine/scope_lease.js +122 -0
  104. package/dist/engine/scope_lease.js.map +1 -0
  105. package/dist/engine/semantic_evidence.d.ts +23 -0
  106. package/dist/engine/semantic_evidence.d.ts.map +1 -0
  107. package/dist/engine/semantic_evidence.js +81 -0
  108. package/dist/engine/semantic_evidence.js.map +1 -0
  109. package/dist/engine/task_context.d.ts +16 -0
  110. package/dist/engine/task_context.d.ts.map +1 -1
  111. package/dist/engine/task_context.js +58 -0
  112. package/dist/engine/task_context.js.map +1 -1
  113. package/dist/engine/verifier.d.ts.map +1 -1
  114. package/dist/engine/verifier.js +22 -1
  115. package/dist/engine/verifier.js.map +1 -1
  116. package/dist/engine/workspace_resumer.d.ts +43 -0
  117. package/dist/engine/workspace_resumer.d.ts.map +1 -1
  118. package/dist/engine/workspace_resumer.js +119 -4
  119. package/dist/engine/workspace_resumer.js.map +1 -1
  120. package/dist/engine/zero_config_init.d.ts +87 -0
  121. package/dist/engine/zero_config_init.d.ts.map +1 -0
  122. package/dist/engine/zero_config_init.js +427 -0
  123. package/dist/engine/zero_config_init.js.map +1 -0
  124. package/dist/knowledge/index_manager.d.ts +19 -0
  125. package/dist/knowledge/index_manager.d.ts.map +1 -1
  126. package/dist/knowledge/index_manager.js +31 -0
  127. package/dist/knowledge/index_manager.js.map +1 -1
  128. package/dist/knowledge/writer.d.ts.map +1 -1
  129. package/dist/knowledge/writer.js +1 -0
  130. package/dist/knowledge/writer.js.map +1 -1
  131. package/dist/types.d.ts +61 -1
  132. package/dist/types.d.ts.map +1 -1
  133. package/package.json +2 -2
  134. package/templates/knowledge/patterns/core/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +47 -0
  135. package/templates/knowledge/patterns/core/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +46 -0
  136. package/templates/knowledge/patterns/core/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +46 -0
  137. package/templates/knowledge/patterns/core//344/273/273/345/212/241/344/270/212/344/270/213/346/226/207/347/224/237/345/221/275/345/221/250/346/234/237.md +47 -0
  138. package/templates/knowledge/patterns/core//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +47 -0
  139. package/templates/knowledge/patterns/core//344/275/234/347/224/250/345/237/237/344/270/216/345/257/206/351/222/245/346/213/246/346/210/252.md +46 -0
  140. package/templates/knowledge/patterns/core//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +47 -0
  141. package/templates/knowledge/patterns/core//345/206/262/347/252/201/351/227/250/347/246/201.md +47 -0
  142. package/templates/knowledge/patterns/core//345/206/263/347/255/226/347/275/221/345/205/263.md +30 -11
  143. package/templates/knowledge/patterns/core//345/217/230/345/274/202/345/256/241/350/256/241.md +20 -0
  144. package/templates/knowledge/patterns/core//345/233/236/345/275/222/347/237/251/351/230/265.md +46 -0
  145. package/templates/knowledge/patterns/core//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +44 -0
  146. package/templates/knowledge/patterns/core//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +46 -0
  147. package/templates/knowledge/patterns/core//345/271/266/345/217/221/351/224/201.md +29 -16
  148. package/templates/knowledge/patterns/core//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +20 -0
  149. package/templates/knowledge/patterns/core//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +45 -0
  150. package/templates/knowledge/patterns/core//346/262/273/347/220/206/350/277/220/350/241/214/346/227/266/345/276/252/347/216/257.md +48 -0
  151. package/templates/knowledge/patterns/core//346/265/201/345/274/217/345/277/203/350/267/263.md +20 -0
  152. package/templates/knowledge/patterns/core//347/237/245/350/257/206/344/270/273/346/235/203.md +20 -0
  153. package/templates/knowledge/patterns/core//350/257/255/344/271/211/350/257/201/346/215/256.md +47 -0
  154. package/templates/knowledge/patterns/core//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +50 -0
  155. package/templates/knowledge/patterns/core//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +47 -0
  156. package/templates/knowledge/patterns/core//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +46 -0
@@ -1,24 +1,23 @@
1
1
  ---
2
2
  name: decision_gateway
3
3
  type: pattern
4
- when: "代码执行, 代码生成, 自动执行, 自动生成"
4
+ when: "代码执行, 代码生成, 自动执行, 自动生成, LLM 预算, Token 控制"
5
5
  scope: [shared]
6
6
  products: ["*"]
7
7
  status: active
8
8
  confidence: 1.0
9
9
  created_at: 2026-05-17
10
- updated_at: 2026-05-17
10
+ updated_at: 2026-05-18
11
11
  usage_count: 0
12
12
  ---
13
13
 
14
14
  ## 决策规则
15
15
 
16
- - 置信度阈值 Confidence_Threshold = 0.95,低于此值禁止直接输出执行代码
17
- - 低于阈值时必须调用 sf_brainstorm 向人类展示三轨方案(极简/工业/激进)
18
- - LLM Gateway Token 全局预算上限 Budget_Total = 100000
19
- - LLM Gateway 单任务预算上限 Task_Budget = 30000
20
- - 熔断触发比 Circuit_Breaker_Ratio = 0.9,超过即硬熔断
21
- - 重型操作分级 tier=heavy 自动启动流式心跳
16
+ - LLM Gateway Token 全局预算上限 Budget_Total = 100000(advisory,不 hard block)
17
+ - LLM Gateway 单任务预算上限 Task_Budget = 30000(advisory,预算耗尽返回 warning 不阻断)
18
+ - H1 handler 返回 h1_advisory warning,任务仍继续进入 executing
19
+ - 熔断触发比 Circuit_Breaker_Ratio = 0.9,超过即 advisory 告警并建议降级模型
20
+ - 重型操作分级 tier=heavy 自动启动流式心跳(advisory)
22
21
  - 心跳间隔 Heartbeat_Interval = 5000 毫秒
23
22
  - 控制流操作(classify/scope_resolve/drift_detect 等)走本地,不消耗 Token
24
23
  - 决策流操作(intent_refinement/solution_brainstorm/code_generation 等)走 Gateway,消耗 Token
@@ -26,8 +25,28 @@ usage_count: 0
26
25
 
27
26
  ## 验收项
28
27
 
29
- - [AC-01] 代码执行前检查置信度 >= Confidence_Threshold
30
- - [AC-02] Token 消耗监控按 operation_type 追踪
31
- - [AC-03] 熔断后所有 AI 操作返回 circuit_open = true
28
+ - [AC-01] Token 消耗监控按 operation_type 追踪
29
+ - [AC-02] 预算超限返回 advisory warning,不阻断任务
30
+ - [AC-03] 熔断后 AI 操作建议降级模型(advisory)
32
31
  - [AC-04] 心跳在重型操作期间每 Heartbeat_Interval 毫秒输出进度
33
32
  - [AC-05] 每次请求返回 remaining_budget 和 remaining_task_budget
33
+
34
+ ## 何时使用
35
+
36
+ advisory: 预算耗尽是 warning 不是 hard fail,不应阻断任务
37
+
38
+ ## 是否 hard block
39
+
40
+ 否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
41
+
42
+ ## 证据要求
43
+
44
+ - H1/H4 handler 测试通过
45
+ - heartbeat 测试通过
46
+ -
47
+
48
+ ## 人工确认/降级边界
49
+
50
+ - 此能力可被开发者决策覆盖
51
+ - 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
52
+ - 降级/禁用需经 sf_capability_update + 人工确认
@@ -28,3 +28,23 @@ usage_count: 0
28
28
  - [AC-03] 未覆盖行的变异被自动过滤
29
29
  - [AC-04] 变异审计未通过时测试文件打回重写
30
30
  - [AC-05] 随机种子基于源码内容哈希,可复现
31
+
32
+ ## 何时使用
33
+
34
+ advisory: 变异测试是质量建议,非强制要求
35
+
36
+ ## 是否 hard block
37
+
38
+ 否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
39
+
40
+ ## 证据要求
41
+
42
+ - 变异算子测试通过
43
+ - 评分一致性测试通过
44
+ -
45
+
46
+ ## 人工确认/降级边界
47
+
48
+ - 此能力可被开发者决策覆盖
49
+ - 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
50
+ - 降级/禁用需经 sf_capability_update + 人工确认
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: regression_matrix
3
+ type: pattern
4
+ when: "回归测试, fixture 项目, 兼容性验证, 复杂度预算"
5
+ scope: [shared]
6
+ products: ["*"]
7
+ status: active
8
+ confidence: 1.0
9
+ created_at: 2026-05-18
10
+ updated_at: 2026-05-18
11
+ usage_count: 0
12
+ ---
13
+
14
+ ## 决策规则
15
+
16
+ - fixture 项目模板: Spring Boot、React、Go 的标准结构
17
+ - 回归矩阵对 fixture 验证 classify/expand/verify 兼容性
18
+ - 复杂度预算: 每个能力模块有代码行数预算,超出产生 advisory
19
+ - fixture 使用真实 detectFingerprint 进行项目检测
20
+
21
+ ## 验收项
22
+
23
+ - [AC-01] fixture 项目定义完整
24
+ - [AC-02] 回归矩阵覆盖所有 fixture
25
+ - [AC-03] 复杂度预算超出时产生 advisory
26
+ - [AC-04] 真实 detectFingerprint 通过 fixture 检测
27
+
28
+ ## 何时使用
29
+
30
+ advisory: 回归矩阵是质量保证工具,复杂度超预算不阻断
31
+
32
+ ## 是否 hard block
33
+
34
+ 否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
35
+
36
+ ## 证据要求
37
+
38
+ - 回归矩阵测试通过
39
+ - 复杂度预算报告正确
40
+ -
41
+
42
+ ## 人工确认/降级边界
43
+
44
+ - 此能力可被开发者决策覆盖
45
+ - 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
46
+ - 降级/禁用需经 sf_capability_update + 人工确认
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: io_lock
3
+ type: pattern
4
+ when: "互斥锁, 工作区, 并发控制, 写入冲突"
5
+ scope: [shared]
6
+ products: ["*"]
7
+ status: active
8
+ confidence: 1.0
9
+ created_at: 2026-05-18
10
+ updated_at: 2026-05-18
11
+ usage_count: 0
12
+ ---
13
+
14
+ ## 决策规则
15
+
16
+ - P0 已移除持久锁 acquire/release,仅保留 isLocked() 查询
17
+ - 锁机制为 advisory check,不强制阻断操作
18
+ - 写入前冲突检测是建议性的,开发者可选择忽略
19
+
20
+ ## 验收项
21
+
22
+ - [AC-01] isLocked() 查询返回正确状态
23
+ - [AC-02] 写入前冲突检测正常工作
24
+ - [AC-03] 不强制阻断操作
25
+
26
+ ## 何时使用
27
+
28
+ advisory: 锁机制为 advisory check,不强制阻断
29
+
30
+ ## 是否 hard block
31
+
32
+ 否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
33
+
34
+ ## 证据要求
35
+
36
+ - isLocked() 查询测试通过
37
+ - 写入前冲突检测测试通过
38
+ -
39
+
40
+ ## 人工确认/降级边界
41
+
42
+ - 此能力可被开发者决策覆盖
43
+ - 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
44
+ - 降级/禁用需经 sf_capability_update + 人工确认
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: resume_workspace
3
+ type: pattern
4
+ when: "会话恢复, 工作区状态, 中断恢复, state 目录"
5
+ scope: [shared]
6
+ products: ["*"]
7
+ status: active
8
+ confidence: 1.0
9
+ created_at: 2026-05-18
10
+ updated_at: 2026-05-18
11
+ usage_count: 0
12
+ ---
13
+
14
+ ## 决策规则
15
+
16
+ - scanAndResume() 扫描 state 目录恢复中断任务
17
+ - 恢复是 advisory 级别,新会话可忽略恢复直接新建任务
18
+ - corrupt state 文件降级处理,产生 advisory 报告不阻断
19
+ - 恢复后任务可无缝继续执行
20
+
21
+ ## 验收项
22
+
23
+ - [AC-01] 中断任务可被恢复
24
+ - [AC-02] corrupt state 不阻断新任务
25
+ - [AC-03] 无活跃任务时不强制恢复
26
+ - [AC-04] 多任务时标记 needs_human_confirm
27
+
28
+ ## 何时使用
29
+
30
+ advisory: 恢复是最佳实践但非强制,新会话可忽略恢复直接新建任务
31
+
32
+ ## 是否 hard block
33
+
34
+ 否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
35
+
36
+ ## 证据要求
37
+
38
+ - 中断恢复测试通过
39
+ - corrupt state 处理测试通过
40
+ -
41
+
42
+ ## 人工确认/降级边界
43
+
44
+ - 此能力可被开发者决策覆盖
45
+ - 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
46
+ - 降级/禁用需经 sf_capability_update + 人工确认
@@ -7,30 +7,43 @@ products: ["*"]
7
7
  status: active
8
8
  confidence: 1.0
9
9
  created_at: 2026-05-17
10
- updated_at: 2026-05-17
10
+ updated_at: 2026-05-18
11
11
  usage_count: 0
12
12
  ---
13
13
 
14
14
  ## 决策规则
15
15
 
16
16
  - 人类主权高于 AI 推演,AI 不得静默覆盖人类的代码修改
17
- - 长耗时任务(影响 3+ 文件)写入前必须生成 .soloforge.lock
18
- - 锁文件包含: task_id、git_tree_hash、file_snapshots(每文件 mtime_ms + size + sha256)
19
- - 写入前调用 assertClean() 校验 Git Hash 和文件 SHA256
20
- - 若校验失败抛出 DirtyWorkspaceError,禁止覆盖并报错
21
- - 任务完成后必须调用 release() 释放锁
22
- - 已有锁且属于其他任务时,等待或报错,不得强制覆盖
17
+ - 作用域租约(scope lease)为 advisory check,不强制阻断操作
18
+ - 租约查询 isLocked() 供开发者参考,可选择忽略
19
+ - ConflictGate preWriteGate 执行 CAS 校验,冲突为 advisory 报告
20
+ - 标记确认 markConfirmed() 后冲突状态更新,允许写入继续
21
+ - 任务完成或取消时建议释放租约(advisory,不强制)
22
+ - P0 已移除持久锁 acquire/release,仅保留 isLocked() 查询
23
23
 
24
24
  ## 验收项
25
25
 
26
- - [AC-01] 长耗时任务写入前 .soloforge.lock 存在
27
- - [AC-02] DirtyWorkspaceError 消息包含冲突文件的文件名和修改时间
28
- - [AC-03] 锁释放后 .soloforge.lock 文件被删除
29
- - [AC-04] 任务异常中断后锁不会泄漏(下次 acquire 时检测 stale lock)
26
+ - [AC-01] 租约 acquire/release 测试通过
27
+ - [AC-02] CAS 冲突检测测试通过
28
+ - [AC-03] 锁机制不强制阻断操作
29
+ - [AC-04] 冲突报告包含完整信息供开发者决策
30
30
 
31
- ## DirtyWorkspaceError 处理流程
31
+ ## 何时使用
32
32
 
33
- 1. 向人类展示冲突文件列表和差异概要
34
- 2. 人类选择: 保留人类版本 / 保留 AI 版本 / 手动合并
35
- 3. 根据选择执行: 丢弃 AI 产出 / 覆盖 / 打开合并视图
36
- 4. 重新执行 assertClean() 确认状态干净
33
+ advisory: 租约是写入前建议检查,不强制阻断
34
+
35
+ ## 是否 hard block
36
+
37
+ 否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
38
+
39
+ ## 证据要求
40
+
41
+ - acquire/release 测试通过
42
+ - 过期清理测试通过
43
+ -
44
+
45
+ ## 人工确认/降级边界
46
+
47
+ - 此能力可被开发者决策覆盖
48
+ - 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
49
+ - 降级/禁用需经 sf_capability_update + 人工确认
@@ -37,3 +37,23 @@ usage_count: 0
37
37
  - [AC-03] 抽检问题基于实际任务摘要生成
38
38
  - [AC-04] 逻辑奇点警告以 ⚠ 符号开头并包含具体触发原因
39
39
  - [AC-05] core/ 目录下的规则修改需人工签署双重确认
40
+
41
+ ## 何时使用
42
+
43
+ advisory: 开发者主权的审查建议不 hard block 交付
44
+
45
+ ## 是否 hard block
46
+
47
+ 否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
48
+
49
+ ## 证据要求
50
+
51
+ - preDeliveryReview 测试通过
52
+ - veto 逻辑测试通过
53
+ -
54
+
55
+ ## 人工确认/降级边界
56
+
57
+ - 此能力可被开发者决策覆盖
58
+ - 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
59
+ - 降级/禁用需经 sf_capability_update + 人工确认
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: secret_scan
3
+ type: pattern
4
+ when: "密钥检测, 敏感信息, gitleaks, 安全扫描"
5
+ scope: [shared]
6
+ products: ["*"]
7
+ status: active
8
+ confidence: 1.0
9
+ created_at: 2026-05-18
10
+ updated_at: 2026-05-18
11
+ usage_count: 0
12
+ ---
13
+
14
+ ## 决策规则
15
+
16
+ - detectSecrets() 使用正则匹配 + gitleaks 回退链检测密钥
17
+ - severity=blocked 的密钥(AWS key、API key 等)阻断写入
18
+ - 扫描覆盖写入内容的每一行
19
+ - gitleaks 不可用时回退到内置正则规则
20
+
21
+ ## 验收项
22
+
23
+ - [AC-01] 已知密钥格式被检测
24
+ - [AC-02] blocked 级别密钥阻断写入
25
+ - [AC-03] gitleaks 回退正常工作
26
+ - [AC-04] 误报率 < 1%
27
+
28
+ ## 何时使用
29
+
30
+ 密钥泄露是最高风险,必须 hard fail
31
+
32
+ ## 是否 hard block
33
+
34
+ 是。此能力为 enforced 状态,违规即 hard fail 阻断流程。
35
+
36
+ ## 证据要求
37
+
38
+ - golden set 密钥检测通过
39
+ - 误报率测试通过
40
+ - 无已知密钥泄露事件
41
+
42
+ ## 人工确认/降级边界
43
+
44
+ - enforced 能力不可跳过,违反即阻断
45
+ - 降级需经 sf_capability_update + 人工确认,提供 escape report 证据
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: governance_runtime_loop
3
+ type: pattern
4
+ when: "治理闭环, 抽检, 逃逸报告, 能力状态, 审计"
5
+ scope: [shared]
6
+ products: ["*"]
7
+ status: active
8
+ confidence: 1.0
9
+ created_at: 2026-05-18
10
+ updated_at: 2026-05-18
11
+ usage_count: 0
12
+ ---
13
+
14
+ ## 决策规则
15
+
16
+ - 治理闭环: sample → escape → report → capability_update
17
+ - 抽检使用风险加权抽样,critical 风险 100% 抽中
18
+ - 逃逸报告记录发现的问题,不自动降级
19
+ - 治理报告汇总全局状态,只读不改
20
+ - 能力状态更新必须经 sf_capability_update + 人工确认
21
+
22
+ ## 验收项
23
+
24
+ - [AC-01] 抽检→逃逸→报告闭环测试通过
25
+ - [AC-02] 无自动降级行为
26
+ - [AC-03] 状态更新需人工确认
27
+ - [AC-04] report 数据与实际 escape 一致
28
+
29
+ ## 何时使用
30
+
31
+ advisory: 治理闭环只读不改,状态更新必须经 sf_capability_update + 人工确认
32
+
33
+ ## 是否 hard block
34
+
35
+ 否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
36
+
37
+ ## 证据要求
38
+
39
+ - 抽检→逃逸→报告→显式更新闭环测试通过
40
+ - MCP handler 闭环测试通过
41
+ - 无自动降级行为
42
+ -
43
+
44
+ ## 人工确认/降级边界
45
+
46
+ - 此能力可被开发者决策覆盖
47
+ - 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
48
+ - 降级/禁用需经 sf_capability_update + 人工确认
@@ -34,3 +34,23 @@ usage_count: 0
34
34
  ```
35
35
  [SoloForge Heartbeat] 代码生成 执行中... 已耗时 10s,当前任务已用 5000/30000 Token
36
36
  ```
37
+
38
+ ## 何时使用
39
+
40
+ advisory: 预算耗尽是 warning 不是 hard fail,不应阻断任务
41
+
42
+ ## 是否 hard block
43
+
44
+ 否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
45
+
46
+ ## 证据要求
47
+
48
+ - H1/H4 handler 测试通过
49
+ - heartbeat 测试通过
50
+ -
51
+
52
+ ## 人工确认/降级边界
53
+
54
+ - 此能力可被开发者决策覆盖
55
+ - 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
56
+ - 降级/禁用需经 sf_capability_update + 人工确认
@@ -36,3 +36,23 @@ usage_count: 0
36
36
 
37
37
  - 连续 3 次 drift 检测均为 code_degradation 时,暂停自动自愈
38
38
  - 暂停后需人工审查代码库状态,确认不是 AI 连续敷衍导致的退化
39
+
40
+ ## 何时使用
41
+
42
+ advisory: 知识治理是建议性的,尚未接入强制门禁
43
+
44
+ ## 是否 hard block
45
+
46
+ 否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
47
+
48
+ ## 证据要求
49
+
50
+ - 知识模板格式验证测试通过
51
+ - 中文语义化路径测试通过
52
+ -
53
+
54
+ ## 人工确认/降级边界
55
+
56
+ - 此能力可被开发者决策覆盖
57
+ - 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
58
+ - 降级/禁用需经 sf_capability_update + 人工确认
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: semantic_evidence
3
+ type: pattern
4
+ when: "代码交付, 需求覆盖, 验证证据, 语义分析"
5
+ scope: [shared]
6
+ products: ["*"]
7
+ status: active
8
+ confidence: 1.0
9
+ created_at: 2026-05-18
10
+ updated_at: 2026-05-18
11
+ usage_count: 0
12
+ ---
13
+
14
+ ## 决策规则
15
+
16
+ - 需求点(requirement_points)必须与代码变更关联,形成可追踪的证据链
17
+ - computeSemanticEvidence 计算每个需求点的覆盖状态:covered / partial / uncovered
18
+ - buildDeliveryEvidenceChain 构建交付证据链,包含需求覆盖 + 变更摘要 + 验证结果
19
+ - 证据链使用 SHA256 hash chain 保证不可篡改
20
+ - 未覆盖需求点生成 advisory 警告,不阻断交付
21
+
22
+ ## 验收项
23
+
24
+ - [AC-01] 所有需求点都有覆盖状态
25
+ - [AC-02] 证据链 hash 校验通过
26
+ - [AC-03] uncovered 需求点产生 advisory
27
+ - [AC-04] 证据链可验证完整性
28
+
29
+ ## 何时使用
30
+
31
+ advisory: 需求覆盖是质量建议,uncovered 不阻断交付
32
+
33
+ ## 是否 hard block
34
+
35
+ 否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
36
+
37
+ ## 证据要求
38
+
39
+ - 语义证据计算测试通过
40
+ - 证据链完整性测试通过
41
+ -
42
+
43
+ ## 人工确认/降级边界
44
+
45
+ - 此能力可被开发者决策覆盖
46
+ - 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
47
+ - 降级/禁用需经 sf_capability_update + 人工确认
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: runtime_safety
3
+ type: pattern
4
+ when: "运行安全, 证据链, 命令分级, 供应链, 迁移回滚"
5
+ scope: [shared]
6
+ products: ["*"]
7
+ status: active
8
+ confidence: 1.0
9
+ created_at: 2026-05-18
10
+ updated_at: 2026-05-18
11
+ usage_count: 0
12
+ ---
13
+
14
+ ## 决策规则
15
+
16
+ - 证据 hash chain: SHA256 链式连接,每块包含 prev_hash + chain_hash + data_hash
17
+ - verifyEvidenceChain 从 payload 重算 data_hash,再重算 chain_hash
18
+ - 命令副作用分级: read_only / mutating / destructive
19
+ - destructive 命令(rm -rf、git push --force、DROP TABLE)需人工确认
20
+ - 供应链治理: 验证依赖有 lockfile 和完整性 hash
21
+ - 迁移回滚契约: schema 变更必须有回滚路径
22
+
23
+ ## 验收项
24
+
25
+ - [AC-01] 证据链构建和验证一致
26
+ - [AC-02] payload 篡改被检测
27
+ - [AC-03] destructive 命令标记需人工确认
28
+ - [AC-04] 无 lockfile 依赖产生 advisory
29
+ - [AC-05] 迁移无回滚命令产生 advisory
30
+
31
+ ## 何时使用
32
+
33
+ advisory: 只有 destructive 命令需人工确认,其余为 advisory 警告
34
+
35
+ ## 是否 hard block
36
+
37
+ 否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
38
+
39
+ ## 证据要求
40
+
41
+ - 证据链构建/验证测试通过
42
+ - 命令分级测试通过
43
+ - 供应链检查测试通过
44
+ -
45
+
46
+ ## 人工确认/降级边界
47
+
48
+ - 此能力可被开发者决策覆盖
49
+ - 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
50
+ - 降级/禁用需经 sf_capability_update + 人工确认
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: zero_config_init
3
+ type: pattern
4
+ when: "项目初始化, 技术栈检测, 零配置, fingerprint"
5
+ scope: [shared]
6
+ products: ["*"]
7
+ status: active
8
+ confidence: 1.0
9
+ created_at: 2026-05-18
10
+ updated_at: 2026-05-18
11
+ usage_count: 0
12
+ ---
13
+
14
+ ## 决策规则
15
+
16
+ - detectFingerprint 确定性检测项目技术栈
17
+ - 后端检测: pom.xml → Spring Boot、go.mod → Go、Cargo.toml → Rust、build.gradle → Gradle
18
+ - 前端检测: package.json → React/Vue/Angular
19
+ - generateConfigDraft 根据 fingerprint 生成配置草案
20
+ - 检测失败时返回 null,不强制要求配置
21
+
22
+ ## 验收项
23
+
24
+ - [AC-01] 主流项目类型正确检测
25
+ - [AC-02] 无配置文件时返回 null
26
+ - [AC-03] 配置草案格式正确
27
+ - [AC-04] 多框架共存时分别检测
28
+
29
+ ## 何时使用
30
+
31
+ advisory: 自动检测是便利功能,可手动配置覆盖
32
+
33
+ ## 是否 hard block
34
+
35
+ 否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
36
+
37
+ ## 证据要求
38
+
39
+ - fingerprint 检测测试通过
40
+ - 配置草案格式验证通过
41
+ -
42
+
43
+ ## 人工确认/降级边界
44
+
45
+ - 此能力可被开发者决策覆盖
46
+ - 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
47
+ - 降级/禁用需经 sf_capability_update + 人工确认
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: verify_command_generation
3
+ type: pattern
4
+ when: "验证, 编译, 测试命令, 项目类型检测"
5
+ scope: [shared]
6
+ products: ["*"]
7
+ status: active
8
+ confidence: 1.0
9
+ created_at: 2026-05-18
10
+ updated_at: 2026-05-18
11
+ usage_count: 0
12
+ ---
13
+
14
+ ## 决策规则
15
+
16
+ - generateVerifyCommands 根据项目类型生成编译和测试命令
17
+ - 三个分支: config(有 sf.yaml)、doc-only(无代码项目)、repo(标准项目)
18
+ - repo 分支通过 detectFingerprint 识别技术栈
19
+ - 生成的命令必须可执行,且覆盖编译 + 测试两个阶段
20
+ - 边界项目(无 package.json)必须有 fallback 处理
21
+
22
+ ## 验收项
23
+
24
+ - [AC-01] config/doc-only/repo 三分支覆盖
25
+ - [AC-02] 生成的命令格式正确
26
+ - [AC-03] 边界项目有 fallback
27
+ - [AC-04] 自定义命令模板覆盖默认命令
28
+
29
+ ## 何时使用
30
+
31
+ 编译和测试命令是质量门禁的基础
32
+
33
+ ## 是否 hard block
34
+
35
+ 是。此能力为 enforced 状态,违规即 hard fail 阻断流程。
36
+
37
+ ## 证据要求
38
+
39
+ - config/doc-only/repo 三分支测试通过
40
+ - 边界项目(无 package.json)验证通过
41
+ -
42
+
43
+ ## 人工确认/降级边界
44
+
45
+ - enforced 能力不可跳过,违反即阻断
46
+ - 降级需经 sf_capability_update + 人工确认,提供 escape report 证据