soloforge 1.2.1 → 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 (185) hide show
  1. package/README.md +78 -18
  2. package/dist/adapters/claude_code/server.d.ts.map +1 -1
  3. package/dist/adapters/claude_code/server.js +2 -25
  4. package/dist/adapters/claude_code/server.js.map +1 -1
  5. package/dist/adapters/claude_code/tools.d.ts +8 -13
  6. package/dist/adapters/claude_code/tools.d.ts.map +1 -1
  7. package/dist/adapters/claude_code/tools.js +508 -87
  8. package/dist/adapters/claude_code/tools.js.map +1 -1
  9. package/dist/adapters/codex/codex_rules.d.ts.map +1 -1
  10. package/dist/adapters/codex/codex_rules.js +23 -1
  11. package/dist/adapters/codex/codex_rules.js.map +1 -1
  12. package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
  13. package/dist/adapters/shared/workflow_template.js +25 -0
  14. package/dist/adapters/shared/workflow_template.js.map +1 -1
  15. package/dist/bin/soloforge.js +169 -18
  16. package/dist/bin/soloforge.js.map +1 -1
  17. package/dist/engine/audit_pool.d.ts +36 -0
  18. package/dist/engine/audit_pool.d.ts.map +1 -0
  19. package/dist/engine/audit_pool.js +83 -0
  20. package/dist/engine/audit_pool.js.map +1 -0
  21. package/dist/engine/audit_sampler.d.ts +15 -0
  22. package/dist/engine/audit_sampler.d.ts.map +1 -0
  23. package/dist/engine/audit_sampler.js +26 -0
  24. package/dist/engine/audit_sampler.js.map +1 -0
  25. package/dist/engine/audit_verifier.d.ts +1 -1
  26. package/dist/engine/audit_verifier.js +1 -1
  27. package/dist/engine/audit_verifier.js.map +1 -1
  28. package/dist/engine/capability_action_advisor.d.ts +24 -0
  29. package/dist/engine/capability_action_advisor.d.ts.map +1 -0
  30. package/dist/engine/capability_action_advisor.js +147 -0
  31. package/dist/engine/capability_action_advisor.js.map +1 -0
  32. package/dist/engine/capability_registry.d.ts +58 -0
  33. package/dist/engine/capability_registry.d.ts.map +1 -0
  34. package/dist/engine/capability_registry.js +625 -0
  35. package/dist/engine/capability_registry.js.map +1 -0
  36. package/dist/engine/capability_state_store.d.ts +50 -0
  37. package/dist/engine/capability_state_store.d.ts.map +1 -0
  38. package/dist/engine/capability_state_store.js +123 -0
  39. package/dist/engine/capability_state_store.js.map +1 -0
  40. package/dist/engine/cognitive_anchor.d.ts +59 -0
  41. package/dist/engine/cognitive_anchor.d.ts.map +1 -0
  42. package/dist/engine/cognitive_anchor.js +68 -0
  43. package/dist/engine/cognitive_anchor.js.map +1 -0
  44. package/dist/engine/conflict_gate.d.ts +36 -0
  45. package/dist/engine/conflict_gate.d.ts.map +1 -0
  46. package/dist/engine/conflict_gate.js +73 -0
  47. package/dist/engine/conflict_gate.js.map +1 -0
  48. package/dist/engine/decision_contract.d.ts +29 -0
  49. package/dist/engine/decision_contract.d.ts.map +1 -0
  50. package/dist/engine/decision_contract.js +41 -0
  51. package/dist/engine/decision_contract.js.map +1 -0
  52. package/dist/engine/delivery.d.ts.map +1 -1
  53. package/dist/engine/delivery.js +83 -0
  54. package/dist/engine/delivery.js.map +1 -1
  55. package/dist/engine/developer_sovereignty.d.ts +62 -0
  56. package/dist/engine/developer_sovereignty.d.ts.map +1 -0
  57. package/dist/engine/developer_sovereignty.js +134 -0
  58. package/dist/engine/developer_sovereignty.js.map +1 -0
  59. package/dist/engine/diff_ownership.d.ts +74 -0
  60. package/dist/engine/diff_ownership.d.ts.map +1 -0
  61. package/dist/engine/diff_ownership.js +143 -0
  62. package/dist/engine/diff_ownership.js.map +1 -0
  63. package/dist/engine/diff_ownership_store.d.ts +76 -0
  64. package/dist/engine/diff_ownership_store.d.ts.map +1 -0
  65. package/dist/engine/diff_ownership_store.js +264 -0
  66. package/dist/engine/diff_ownership_store.js.map +1 -0
  67. package/dist/engine/escape_report.d.ts +45 -0
  68. package/dist/engine/escape_report.d.ts.map +1 -0
  69. package/dist/engine/escape_report.js +97 -0
  70. package/dist/engine/escape_report.js.map +1 -0
  71. package/dist/engine/exploration.d.ts +54 -0
  72. package/dist/engine/exploration.d.ts.map +1 -1
  73. package/dist/engine/exploration.js +138 -0
  74. package/dist/engine/exploration.js.map +1 -1
  75. package/dist/engine/governance_report.d.ts +36 -0
  76. package/dist/engine/governance_report.d.ts.map +1 -0
  77. package/dist/engine/governance_report.js +79 -0
  78. package/dist/engine/governance_report.js.map +1 -0
  79. package/dist/engine/java_quality_guard.d.ts +52 -0
  80. package/dist/engine/java_quality_guard.d.ts.map +1 -0
  81. package/dist/engine/java_quality_guard.js +237 -0
  82. package/dist/engine/java_quality_guard.js.map +1 -0
  83. package/dist/engine/job_manager.d.ts +76 -0
  84. package/dist/engine/job_manager.d.ts.map +1 -0
  85. package/dist/engine/job_manager.js +225 -0
  86. package/dist/engine/job_manager.js.map +1 -0
  87. package/dist/engine/knowledge_config_loader.d.ts +1 -1
  88. package/dist/engine/knowledge_config_loader.js +1 -1
  89. package/dist/engine/knowledge_sovereignty.d.ts +61 -0
  90. package/dist/engine/knowledge_sovereignty.d.ts.map +1 -0
  91. package/dist/engine/knowledge_sovereignty.js +190 -0
  92. package/dist/engine/knowledge_sovereignty.js.map +1 -0
  93. package/dist/engine/llm_gateway.js +2 -2
  94. package/dist/engine/llm_gateway.js.map +1 -1
  95. package/dist/engine/mutation_audit.d.ts +43 -0
  96. package/dist/engine/mutation_audit.d.ts.map +1 -0
  97. package/dist/engine/mutation_audit.js +118 -0
  98. package/dist/engine/mutation_audit.js.map +1 -0
  99. package/dist/engine/policy_drift_detector.d.ts +46 -0
  100. package/dist/engine/policy_drift_detector.d.ts.map +1 -0
  101. package/dist/engine/policy_drift_detector.js +181 -0
  102. package/dist/engine/policy_drift_detector.js.map +1 -0
  103. package/dist/engine/regression_matrix.d.ts +102 -0
  104. package/dist/engine/regression_matrix.d.ts.map +1 -0
  105. package/dist/engine/regression_matrix.js +380 -0
  106. package/dist/engine/regression_matrix.js.map +1 -0
  107. package/dist/engine/risk_sampler.d.ts +37 -0
  108. package/dist/engine/risk_sampler.d.ts.map +1 -0
  109. package/dist/engine/risk_sampler.js +69 -0
  110. package/dist/engine/risk_sampler.js.map +1 -0
  111. package/dist/engine/runtime_safety.d.ts +80 -0
  112. package/dist/engine/runtime_safety.d.ts.map +1 -0
  113. package/dist/engine/runtime_safety.js +195 -0
  114. package/dist/engine/runtime_safety.js.map +1 -0
  115. package/dist/engine/scope_lease.d.ts +45 -0
  116. package/dist/engine/scope_lease.d.ts.map +1 -0
  117. package/dist/engine/scope_lease.js +122 -0
  118. package/dist/engine/scope_lease.js.map +1 -0
  119. package/dist/engine/semantic_evidence.d.ts +23 -0
  120. package/dist/engine/semantic_evidence.d.ts.map +1 -0
  121. package/dist/engine/semantic_evidence.js +81 -0
  122. package/dist/engine/semantic_evidence.js.map +1 -0
  123. package/dist/engine/task_context.d.ts +16 -0
  124. package/dist/engine/task_context.d.ts.map +1 -1
  125. package/dist/engine/task_context.js +59 -1
  126. package/dist/engine/task_context.js.map +1 -1
  127. package/dist/engine/test_quality.js +2 -2
  128. package/dist/engine/test_quality.js.map +1 -1
  129. package/dist/engine/verifier.d.ts.map +1 -1
  130. package/dist/engine/verifier.js +113 -20
  131. package/dist/engine/verifier.js.map +1 -1
  132. package/dist/engine/workspace_resumer.d.ts +43 -0
  133. package/dist/engine/workspace_resumer.d.ts.map +1 -1
  134. package/dist/engine/workspace_resumer.js +119 -4
  135. package/dist/engine/workspace_resumer.js.map +1 -1
  136. package/dist/engine/zero_config_init.d.ts +87 -0
  137. package/dist/engine/zero_config_init.d.ts.map +1 -0
  138. package/dist/engine/zero_config_init.js +427 -0
  139. package/dist/engine/zero_config_init.js.map +1 -0
  140. package/dist/knowledge/index_manager.d.ts +19 -0
  141. package/dist/knowledge/index_manager.d.ts.map +1 -1
  142. package/dist/knowledge/index_manager.js +31 -0
  143. package/dist/knowledge/index_manager.js.map +1 -1
  144. package/dist/knowledge/writer.d.ts.map +1 -1
  145. package/dist/knowledge/writer.js +1 -0
  146. package/dist/knowledge/writer.js.map +1 -1
  147. package/dist/types.d.ts +61 -85
  148. package/dist/types.d.ts.map +1 -1
  149. package/package.json +2 -2
  150. package/templates/knowledge/domain//345/256/241/350/256/241/346/227/245/345/277/227.md +6 -7
  151. package/templates/knowledge/domain//345/257/274/345/205/245/345/257/274/345/207/272/350/247/204/345/210/231.md +3 -3
  152. package/templates/knowledge/domain//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +24 -14
  153. package/templates/knowledge/patterns/core/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +47 -0
  154. package/templates/knowledge/patterns/core/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +46 -0
  155. package/templates/knowledge/patterns/core/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +46 -0
  156. 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
  157. package/templates/knowledge/patterns/core//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +47 -0
  158. 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
  159. package/templates/knowledge/patterns/core//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +47 -0
  160. package/templates/knowledge/patterns/core//345/206/262/347/252/201/351/227/250/347/246/201.md +47 -0
  161. package/templates/knowledge/patterns/core//345/206/263/347/255/226/347/275/221/345/205/263.md +52 -0
  162. package/templates/knowledge/patterns/core/{mutation_audit.md → /345/217/230/345/274/202/345/256/241/350/256/241.md} +20 -0
  163. package/templates/knowledge/patterns/core//345/233/236/345/275/222/347/237/251/351/230/265.md +46 -0
  164. 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
  165. package/templates/knowledge/patterns/core//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +46 -0
  166. package/templates/knowledge/patterns/core//345/271/266/345/217/221/351/224/201.md +49 -0
  167. package/templates/knowledge/patterns/core/{developer_constitution.md → /345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md} +20 -0
  168. 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
  169. 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
  170. package/templates/knowledge/patterns/core/{streaming_protocol.md → /346/265/201/345/274/217/345/277/203/350/267/263.md} +20 -0
  171. package/templates/knowledge/patterns/core/{authority.md → /347/237/245/350/257/206/344/270/273/346/235/203.md} +20 -0
  172. package/templates/knowledge/patterns/core//350/257/255/344/271/211/350/257/201/346/215/256.md +47 -0
  173. package/templates/knowledge/patterns/core//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +50 -0
  174. 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
  175. 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
  176. package/templates/knowledge/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +1 -1
  177. package/templates/knowledge/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/347/250/213.md +1 -1
  178. package/templates/knowledge/review_rules//345/271/266/345/217/221/345/256/241/346/237/245/350/247/204/345/210/231.md +1 -1
  179. package/templates/knowledge/review_rules//346/200/247/350/203/275/345/256/241/346/237/245/350/247/204/345/210/231.md +1 -1
  180. package/templates/knowledge/review_rules//346/216/245/345/217/243/345/245/221/347/272/246/345/256/241/346/237/245/350/247/204/345/210/231.md +1 -1
  181. package/templates/knowledge/review_rules//346/236/266/346/236/204/345/256/241/346/237/245/350/247/204/345/210/231.md +1 -1
  182. package/templates/knowledge/review_rules//350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +1 -1
  183. package/templates/knowledge/patterns/core/concurrency_lock.md +0 -36
  184. package/templates/knowledge/patterns/core/decision_gateway.md +0 -33
  185. /package/templates/knowledge/checklists/{session_recovery.md → /344/274/232/350/257/235/346/201/242/345/244/215.md"} +0 -0
@@ -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 证据
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: hotfix-pipeline
3
3
  type: pipeline_procedure
4
- when: "线上故障紧急修复, 生产事故处理, P0紧急修复, 线上报错紧急处理, hotfix"
4
+ when: "紧急修复管线, 生产事故处理管线, P0管线, 热修复管线, hotfix pipeline, 线上故障管线"
5
5
  scope: [backend, frontend]
6
6
  products: ["*"]
7
7
  ---
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: hotfix-procedure
3
3
  type: procedure
4
- when: 紧急修复, hotfix, 线上问题修复, 生产事故, 线上报错, 紧急上线, 线上故障, P0, P1, 事故修复
4
+ when: 紧急修复, hotfix, 线上问题修复, 线上报错, 紧急上线, P0, P1, 事故修复, 止血
5
5
  scope: [backend, frontend]
6
6
  products: ["*"]
7
7
  ---
@@ -8,7 +8,7 @@ products: ["*"]
8
8
 
9
9
  ## CON-01: 共享可变状态无并发保护
10
10
  pattern: "synchronized|ReentrantLock|AtomicInteger|volatile"
11
- severity: warning
11
+ severity: critical
12
12
  scope: backend
13
13
  description: 涉及金额、库存、计数器的操作必须显式声明并发控制策略。若未使用任何并发控制原语,标记为需人工确认
14
14
 
@@ -8,7 +8,7 @@ products: ["*"]
8
8
 
9
9
  ## PER-01: 循环内逐条数据库调用(N+1 问题)
10
10
  pattern: /(?:for|while)\s*\(.*\)[\s\S]*?\.(?:save|insert|update|delete|query|select|findBy)\s*\(/
11
- severity: warning
11
+ severity: critical
12
12
  scope: backend
13
13
  description: 循环内禁止逐条数据库操作,必须使用批量 SQL 或 IN 查询
14
14
 
@@ -20,7 +20,7 @@ description: 写操作 Service 方法必须标注 @Transactional(rollbackFor = E
20
20
 
21
21
  ## API-03: 接口缺少权限注解
22
22
  pattern: "@(PostMapping|PutMapping|DeleteMapping)"
23
- severity: warning
23
+ severity: critical
24
24
  scope: backend
25
25
  description: 写接口必须有 @PreAuthorize 或 @Secured 注解,禁止裸露写操作
26
26
 
@@ -20,7 +20,7 @@ description: Controller 返回类型禁止使用 Entity,必须通过 DTO/VO
20
20
 
21
21
  ## ARC-03: 缺少 @Transactional 注解的写操作
22
22
  pattern: /public\s+\w+\s+(?:save|create|update|delete|insert|remove)\w*\s*\(/
23
- severity: warning
23
+ severity: critical
24
24
  scope: backend
25
25
  description: 写操作 Service 方法必须标注 @Transactional(rollbackFor = Exception.class)
26
26
 
@@ -32,7 +32,7 @@ description: 服务地址禁止硬编码,必须使用环境变量或配置文
32
32
 
33
33
  ## QUA-05: catch 块吞掉异常不处理
34
34
  pattern: /catch\s*\([^)]*\)\s*\{\s*\}/
35
- severity: warning
35
+ severity: critical
36
36
  scope: [backend, frontend]
37
37
  description: 空的 catch 块会隐藏错误,至少需要记录日志或明确注释忽略原因
38
38
 
@@ -1,36 +0,0 @@
1
- ---
2
- name: concurrency_lock
3
- type: pattern
4
- when: "文件写入, 代码修改, 重构, 全量重构, 大规模验证, 批量操作"
5
- scope: [shared]
6
- products: ["*"]
7
- status: active
8
- confidence: 1.0
9
- created_at: 2026-05-17
10
- updated_at: 2026-05-17
11
- usage_count: 0
12
- ---
13
-
14
- ## 决策规则
15
-
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
- - 已有锁且属于其他任务时,等待或报错,不得强制覆盖
23
-
24
- ## 验收项
25
-
26
- - [AC-01] 长耗时任务写入前 .soloforge.lock 存在
27
- - [AC-02] DirtyWorkspaceError 消息包含冲突文件的文件名和修改时间
28
- - [AC-03] 锁释放后 .soloforge.lock 文件被删除
29
- - [AC-04] 任务异常中断后锁不会泄漏(下次 acquire 时检测 stale lock)
30
-
31
- ## DirtyWorkspaceError 处理流程
32
-
33
- 1. 向人类展示冲突文件列表和差异概要
34
- 2. 人类选择: 保留人类版本 / 保留 AI 版本 / 手动合并
35
- 3. 根据选择执行: 丢弃 AI 产出 / 覆盖 / 打开合并视图
36
- 4. 重新执行 assertClean() 确认状态干净
@@ -1,33 +0,0 @@
1
- ---
2
- name: decision_gateway
3
- type: pattern
4
- when: "代码执行, 代码生成, 自动执行, 自动生成"
5
- scope: [shared]
6
- products: ["*"]
7
- status: active
8
- confidence: 1.0
9
- created_at: 2026-05-17
10
- updated_at: 2026-05-17
11
- usage_count: 0
12
- ---
13
-
14
- ## 决策规则
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 自动启动流式心跳
22
- - 心跳间隔 Heartbeat_Interval = 5000 毫秒
23
- - 控制流操作(classify/scope_resolve/drift_detect 等)走本地,不消耗 Token
24
- - 决策流操作(intent_refinement/solution_brainstorm/code_generation 等)走 Gateway,消耗 Token
25
- - AI 操作分级: light(<2000)/ medium(2000-3000)/ heavy(>3000)
26
-
27
- ## 验收项
28
-
29
- - [AC-01] 代码执行前检查置信度 >= Confidence_Threshold
30
- - [AC-02] Token 消耗监控按 operation_type 追踪
31
- - [AC-03] 熔断后所有 AI 操作返回 circuit_open = true
32
- - [AC-04] 心跳在重型操作期间每 Heartbeat_Interval 毫秒输出进度
33
- - [AC-05] 每次请求返回 remaining_budget 和 remaining_task_budget