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.
- package/README.md +78 -18
- package/dist/adapters/claude_code/server.d.ts.map +1 -1
- package/dist/adapters/claude_code/server.js +2 -25
- package/dist/adapters/claude_code/server.js.map +1 -1
- package/dist/adapters/claude_code/tools.d.ts +8 -13
- package/dist/adapters/claude_code/tools.d.ts.map +1 -1
- package/dist/adapters/claude_code/tools.js +508 -87
- package/dist/adapters/claude_code/tools.js.map +1 -1
- package/dist/adapters/codex/codex_rules.d.ts.map +1 -1
- package/dist/adapters/codex/codex_rules.js +23 -1
- package/dist/adapters/codex/codex_rules.js.map +1 -1
- package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
- package/dist/adapters/shared/workflow_template.js +25 -0
- package/dist/adapters/shared/workflow_template.js.map +1 -1
- package/dist/bin/soloforge.js +169 -18
- package/dist/bin/soloforge.js.map +1 -1
- package/dist/engine/audit_pool.d.ts +36 -0
- package/dist/engine/audit_pool.d.ts.map +1 -0
- package/dist/engine/audit_pool.js +83 -0
- package/dist/engine/audit_pool.js.map +1 -0
- package/dist/engine/audit_sampler.d.ts +15 -0
- package/dist/engine/audit_sampler.d.ts.map +1 -0
- package/dist/engine/audit_sampler.js +26 -0
- package/dist/engine/audit_sampler.js.map +1 -0
- package/dist/engine/audit_verifier.d.ts +1 -1
- package/dist/engine/audit_verifier.js +1 -1
- package/dist/engine/audit_verifier.js.map +1 -1
- package/dist/engine/capability_action_advisor.d.ts +24 -0
- package/dist/engine/capability_action_advisor.d.ts.map +1 -0
- package/dist/engine/capability_action_advisor.js +147 -0
- package/dist/engine/capability_action_advisor.js.map +1 -0
- package/dist/engine/capability_registry.d.ts +58 -0
- package/dist/engine/capability_registry.d.ts.map +1 -0
- package/dist/engine/capability_registry.js +625 -0
- package/dist/engine/capability_registry.js.map +1 -0
- package/dist/engine/capability_state_store.d.ts +50 -0
- package/dist/engine/capability_state_store.d.ts.map +1 -0
- package/dist/engine/capability_state_store.js +123 -0
- package/dist/engine/capability_state_store.js.map +1 -0
- package/dist/engine/cognitive_anchor.d.ts +59 -0
- package/dist/engine/cognitive_anchor.d.ts.map +1 -0
- package/dist/engine/cognitive_anchor.js +68 -0
- package/dist/engine/cognitive_anchor.js.map +1 -0
- package/dist/engine/conflict_gate.d.ts +36 -0
- package/dist/engine/conflict_gate.d.ts.map +1 -0
- package/dist/engine/conflict_gate.js +73 -0
- package/dist/engine/conflict_gate.js.map +1 -0
- package/dist/engine/decision_contract.d.ts +29 -0
- package/dist/engine/decision_contract.d.ts.map +1 -0
- package/dist/engine/decision_contract.js +41 -0
- package/dist/engine/decision_contract.js.map +1 -0
- package/dist/engine/delivery.d.ts.map +1 -1
- package/dist/engine/delivery.js +83 -0
- package/dist/engine/delivery.js.map +1 -1
- package/dist/engine/developer_sovereignty.d.ts +62 -0
- package/dist/engine/developer_sovereignty.d.ts.map +1 -0
- package/dist/engine/developer_sovereignty.js +134 -0
- package/dist/engine/developer_sovereignty.js.map +1 -0
- package/dist/engine/diff_ownership.d.ts +74 -0
- package/dist/engine/diff_ownership.d.ts.map +1 -0
- package/dist/engine/diff_ownership.js +143 -0
- package/dist/engine/diff_ownership.js.map +1 -0
- package/dist/engine/diff_ownership_store.d.ts +76 -0
- package/dist/engine/diff_ownership_store.d.ts.map +1 -0
- package/dist/engine/diff_ownership_store.js +264 -0
- package/dist/engine/diff_ownership_store.js.map +1 -0
- package/dist/engine/escape_report.d.ts +45 -0
- package/dist/engine/escape_report.d.ts.map +1 -0
- package/dist/engine/escape_report.js +97 -0
- package/dist/engine/escape_report.js.map +1 -0
- package/dist/engine/exploration.d.ts +54 -0
- package/dist/engine/exploration.d.ts.map +1 -1
- package/dist/engine/exploration.js +138 -0
- package/dist/engine/exploration.js.map +1 -1
- package/dist/engine/governance_report.d.ts +36 -0
- package/dist/engine/governance_report.d.ts.map +1 -0
- package/dist/engine/governance_report.js +79 -0
- package/dist/engine/governance_report.js.map +1 -0
- package/dist/engine/java_quality_guard.d.ts +52 -0
- package/dist/engine/java_quality_guard.d.ts.map +1 -0
- package/dist/engine/java_quality_guard.js +237 -0
- package/dist/engine/java_quality_guard.js.map +1 -0
- package/dist/engine/job_manager.d.ts +76 -0
- package/dist/engine/job_manager.d.ts.map +1 -0
- package/dist/engine/job_manager.js +225 -0
- package/dist/engine/job_manager.js.map +1 -0
- package/dist/engine/knowledge_config_loader.d.ts +1 -1
- package/dist/engine/knowledge_config_loader.js +1 -1
- package/dist/engine/knowledge_sovereignty.d.ts +61 -0
- package/dist/engine/knowledge_sovereignty.d.ts.map +1 -0
- package/dist/engine/knowledge_sovereignty.js +190 -0
- package/dist/engine/knowledge_sovereignty.js.map +1 -0
- package/dist/engine/llm_gateway.js +2 -2
- package/dist/engine/llm_gateway.js.map +1 -1
- package/dist/engine/mutation_audit.d.ts +43 -0
- package/dist/engine/mutation_audit.d.ts.map +1 -0
- package/dist/engine/mutation_audit.js +118 -0
- package/dist/engine/mutation_audit.js.map +1 -0
- package/dist/engine/policy_drift_detector.d.ts +46 -0
- package/dist/engine/policy_drift_detector.d.ts.map +1 -0
- package/dist/engine/policy_drift_detector.js +181 -0
- package/dist/engine/policy_drift_detector.js.map +1 -0
- package/dist/engine/regression_matrix.d.ts +102 -0
- package/dist/engine/regression_matrix.d.ts.map +1 -0
- package/dist/engine/regression_matrix.js +380 -0
- package/dist/engine/regression_matrix.js.map +1 -0
- package/dist/engine/risk_sampler.d.ts +37 -0
- package/dist/engine/risk_sampler.d.ts.map +1 -0
- package/dist/engine/risk_sampler.js +69 -0
- package/dist/engine/risk_sampler.js.map +1 -0
- package/dist/engine/runtime_safety.d.ts +80 -0
- package/dist/engine/runtime_safety.d.ts.map +1 -0
- package/dist/engine/runtime_safety.js +195 -0
- package/dist/engine/runtime_safety.js.map +1 -0
- package/dist/engine/scope_lease.d.ts +45 -0
- package/dist/engine/scope_lease.d.ts.map +1 -0
- package/dist/engine/scope_lease.js +122 -0
- package/dist/engine/scope_lease.js.map +1 -0
- package/dist/engine/semantic_evidence.d.ts +23 -0
- package/dist/engine/semantic_evidence.d.ts.map +1 -0
- package/dist/engine/semantic_evidence.js +81 -0
- package/dist/engine/semantic_evidence.js.map +1 -0
- package/dist/engine/task_context.d.ts +16 -0
- package/dist/engine/task_context.d.ts.map +1 -1
- package/dist/engine/task_context.js +59 -1
- package/dist/engine/task_context.js.map +1 -1
- package/dist/engine/test_quality.js +2 -2
- package/dist/engine/test_quality.js.map +1 -1
- package/dist/engine/verifier.d.ts.map +1 -1
- package/dist/engine/verifier.js +113 -20
- package/dist/engine/verifier.js.map +1 -1
- package/dist/engine/workspace_resumer.d.ts +43 -0
- package/dist/engine/workspace_resumer.d.ts.map +1 -1
- package/dist/engine/workspace_resumer.js +119 -4
- package/dist/engine/workspace_resumer.js.map +1 -1
- package/dist/engine/zero_config_init.d.ts +87 -0
- package/dist/engine/zero_config_init.d.ts.map +1 -0
- package/dist/engine/zero_config_init.js +427 -0
- package/dist/engine/zero_config_init.js.map +1 -0
- package/dist/knowledge/index_manager.d.ts +19 -0
- package/dist/knowledge/index_manager.d.ts.map +1 -1
- package/dist/knowledge/index_manager.js +31 -0
- package/dist/knowledge/index_manager.js.map +1 -1
- package/dist/knowledge/writer.d.ts.map +1 -1
- package/dist/knowledge/writer.js +1 -0
- package/dist/knowledge/writer.js.map +1 -1
- package/dist/types.d.ts +61 -85
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/templates/knowledge/domain//345/256/241/350/256/241/346/227/245/345/277/227.md +6 -7
- 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
- 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
- package/templates/knowledge/patterns/core/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +47 -0
- package/templates/knowledge/patterns/core/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +46 -0
- package/templates/knowledge/patterns/core/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +46 -0
- 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
- package/templates/knowledge/patterns/core//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +47 -0
- 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
- package/templates/knowledge/patterns/core//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +47 -0
- package/templates/knowledge/patterns/core//345/206/262/347/252/201/351/227/250/347/246/201.md +47 -0
- package/templates/knowledge/patterns/core//345/206/263/347/255/226/347/275/221/345/205/263.md +52 -0
- package/templates/knowledge/patterns/core/{mutation_audit.md → /345/217/230/345/274/202/345/256/241/350/256/241.md} +20 -0
- package/templates/knowledge/patterns/core//345/233/236/345/275/222/347/237/251/351/230/265.md +46 -0
- 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
- package/templates/knowledge/patterns/core//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +46 -0
- package/templates/knowledge/patterns/core//345/271/266/345/217/221/351/224/201.md +49 -0
- 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
- 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
- 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
- package/templates/knowledge/patterns/core/{streaming_protocol.md → /346/265/201/345/274/217/345/277/203/350/267/263.md} +20 -0
- package/templates/knowledge/patterns/core/{authority.md → /347/237/245/350/257/206/344/270/273/346/235/203.md} +20 -0
- package/templates/knowledge/patterns/core//350/257/255/344/271/211/350/257/201/346/215/256.md +47 -0
- package/templates/knowledge/patterns/core//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +50 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/templates/knowledge/patterns/core/concurrency_lock.md +0 -36
- package/templates/knowledge/patterns/core/decision_gateway.md +0 -33
- /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 证据
|
|
@@ -20,7 +20,7 @@ description: 写操作 Service 方法必须标注 @Transactional(rollbackFor = E
|
|
|
20
20
|
|
|
21
21
|
## API-03: 接口缺少权限注解
|
|
22
22
|
pattern: "@(PostMapping|PutMapping|DeleteMapping)"
|
|
23
|
-
severity:
|
|
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:
|
|
23
|
+
severity: critical
|
|
24
24
|
scope: backend
|
|
25
25
|
description: 写操作 Service 方法必须标注 @Transactional(rollbackFor = Exception.class)
|
|
26
26
|
|
|
@@ -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
|
|
File without changes
|