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,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: job_manager
|
|
3
|
+
type: pattern
|
|
4
|
+
when: "任务管理, checkpoint, heartbeat, 恢复, 认知锚点"
|
|
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
|
+
- JobManager 管理 任务生命周期: 创建、更新 checkpoint、heartbeat、恢复、取消
|
|
17
|
+
- CognitiveAnchor 记录阶段、摘要、关键决策、待办事项
|
|
18
|
+
- resumeFromCheckpoint 从最近 checkpoint 恢复任务
|
|
19
|
+
- listActiveJobs 列出活跃任务,过滤过期任务
|
|
20
|
+
- checkpoint 用于中断恢复和进度追踪
|
|
21
|
+
|
|
22
|
+
## 验收项
|
|
23
|
+
|
|
24
|
+
- [AC-01] 任务创建返回有效 ID
|
|
25
|
+
- [AC-02] checkpoint 更新正确
|
|
26
|
+
- [AC-03] 过期任务被过滤
|
|
27
|
+
- [AC-04] 恢复从 checkpoint 继续
|
|
28
|
+
|
|
29
|
+
## 何时使用
|
|
30
|
+
|
|
31
|
+
advisory: 任务管理是辅助工具,不强制要求使用
|
|
32
|
+
|
|
33
|
+
## 是否 hard block
|
|
34
|
+
|
|
35
|
+
否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
|
|
36
|
+
|
|
37
|
+
## 证据要求
|
|
38
|
+
|
|
39
|
+
- checkpoint 更新测试通过
|
|
40
|
+
- 恢复测试通过
|
|
41
|
+
-
|
|
42
|
+
|
|
43
|
+
## 人工确认/降级边界
|
|
44
|
+
|
|
45
|
+
- 此能力可被开发者决策覆盖
|
|
46
|
+
- 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
|
|
47
|
+
- 降级/禁用需经 sf_capability_update + 人工确认
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scope_hook
|
|
3
|
+
type: pattern
|
|
4
|
+
when: "文件范围, 路径校验, 越权检测, symlink 解析"
|
|
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
|
+
- checkScope() 校验文件路径是否在 allowed_paths 范围内
|
|
17
|
+
- symlink 解析后校验真实路径,防止路径穿越
|
|
18
|
+
- 路径匹配使用规范化比较,支持通配符
|
|
19
|
+
- 越权访问为 enforced 级别,违规即 hard fail
|
|
20
|
+
|
|
21
|
+
## 验收项
|
|
22
|
+
|
|
23
|
+
- [AC-01] 合法路径通过校验
|
|
24
|
+
- [AC-02] symlink 路径穿越被拦截
|
|
25
|
+
- [AC-03] 越权路径产生 hard fail
|
|
26
|
+
- [AC-04] 通配符匹配正确
|
|
27
|
+
|
|
28
|
+
## 何时使用
|
|
29
|
+
|
|
30
|
+
文件范围和安全是强制门禁
|
|
31
|
+
|
|
32
|
+
## 是否 hard block
|
|
33
|
+
|
|
34
|
+
是。此能力为 enforced 状态,违规即 hard fail 阻断流程。
|
|
35
|
+
|
|
36
|
+
## 证据要求
|
|
37
|
+
|
|
38
|
+
- 路径匹配 + symlink 测试通过
|
|
39
|
+
- 密钥扫描 golden set 通过
|
|
40
|
+
- 无已知越权逃逸
|
|
41
|
+
-
|
|
42
|
+
|
|
43
|
+
## 人工确认/降级边界
|
|
44
|
+
|
|
45
|
+
- enforced 能力不可跳过,违反即阻断
|
|
46
|
+
- 降级需经 sf_capability_update + 人工确认,提供 escape report 证据
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scope_lease
|
|
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
|
+
- 写入文件前必须获取作用域租约(scope lease),同一文件不可被多个任务同时持有
|
|
17
|
+
- 租约包含: task_id、allowed_paths、acquired_at、expires_at
|
|
18
|
+
- 租约超时后自动失效,其他任务可重新获取
|
|
19
|
+
- 任务完成或取消时必须释放租约
|
|
20
|
+
- 租约查询 isLocked() 为 advisory check,不阻断流程
|
|
21
|
+
|
|
22
|
+
## 验收项
|
|
23
|
+
|
|
24
|
+
- [AC-01] acquire 返回有效租约,release 后 isLocked 返回 false
|
|
25
|
+
- [AC-02] 同一文件不可被两个任务同时租约
|
|
26
|
+
- [AC-03] 过期租约自动清理
|
|
27
|
+
- [AC-04] clear() 清理所有租约
|
|
28
|
+
|
|
29
|
+
## 何时使用
|
|
30
|
+
|
|
31
|
+
advisory: 租约是写入前建议检查,不强制阻断
|
|
32
|
+
|
|
33
|
+
## 是否 hard block
|
|
34
|
+
|
|
35
|
+
否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
|
|
36
|
+
|
|
37
|
+
## 证据要求
|
|
38
|
+
|
|
39
|
+
- acquire/release 测试通过
|
|
40
|
+
- 过期清理测试通过
|
|
41
|
+
-
|
|
42
|
+
|
|
43
|
+
## 人工确认/降级边界
|
|
44
|
+
|
|
45
|
+
- 此能力可被开发者决策覆盖
|
|
46
|
+
- 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
|
|
47
|
+
- 降级/禁用需经 sf_capability_update + 人工确认
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: conflict_gate
|
|
3
|
+
type: pattern
|
|
4
|
+
when: "写入前检查, 冲突检测, CAS 校验, 文件冲突"
|
|
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
|
+
- 写入前执行 CAS(Compare-And-Swap)校验:比较文件当前 hash 与预期 hash
|
|
17
|
+
- CAS 不匹配表示文件被外部修改,必须报告冲突
|
|
18
|
+
- 冲突报告包含: file_path、expected_hash、actual_hash、task_id
|
|
19
|
+
- 统一 CAS + Lease 冲突报告,一个接口返回所有冲突信息
|
|
20
|
+
- markConfirmed() 将冲突标记为已确认,允许写入继续
|
|
21
|
+
|
|
22
|
+
## 验收项
|
|
23
|
+
|
|
24
|
+
- [AC-01] 文件未被修改时 preWriteGate 返回无冲突
|
|
25
|
+
- [AC-02] 文件被修改后 preWriteGate 返回 CAS 冲突
|
|
26
|
+
- [AC-03] markConfirmed 后冲突状态更新
|
|
27
|
+
- [AC-04] 租约冲突和 CAS 冲突统一报告
|
|
28
|
+
|
|
29
|
+
## 何时使用
|
|
30
|
+
|
|
31
|
+
advisory: 冲突检测是建议性的,开发者可选择覆盖
|
|
32
|
+
|
|
33
|
+
## 是否 hard block
|
|
34
|
+
|
|
35
|
+
否。此能力为 advisory 状态,违规仅产生 advisory 警告,不阻断流程。
|
|
36
|
+
|
|
37
|
+
## 证据要求
|
|
38
|
+
|
|
39
|
+
- CAS 校验测试通过
|
|
40
|
+
- 冲突报告测试通过
|
|
41
|
+
-
|
|
42
|
+
|
|
43
|
+
## 人工确认/降级边界
|
|
44
|
+
|
|
45
|
+
- 此能力可被开发者决策覆盖
|
|
46
|
+
- 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
|
|
47
|
+
- 降级/禁用需经 sf_capability_update + 人工确认
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: decision_gateway
|
|
3
|
+
type: pattern
|
|
4
|
+
when: "代码执行, 代码生成, 自动执行, 自动生成, LLM 预算, Token 控制"
|
|
5
|
+
scope: [shared]
|
|
6
|
+
products: ["*"]
|
|
7
|
+
status: active
|
|
8
|
+
confidence: 1.0
|
|
9
|
+
created_at: 2026-05-17
|
|
10
|
+
updated_at: 2026-05-18
|
|
11
|
+
usage_count: 0
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 决策规则
|
|
15
|
+
|
|
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)
|
|
21
|
+
- 心跳间隔 Heartbeat_Interval = 5000 毫秒
|
|
22
|
+
- 控制流操作(classify/scope_resolve/drift_detect 等)走本地,不消耗 Token
|
|
23
|
+
- 决策流操作(intent_refinement/solution_brainstorm/code_generation 等)走 Gateway,消耗 Token
|
|
24
|
+
- AI 操作分级: light(<2000)/ medium(2000-3000)/ heavy(>3000)
|
|
25
|
+
|
|
26
|
+
## 验收项
|
|
27
|
+
|
|
28
|
+
- [AC-01] Token 消耗监控按 operation_type 追踪
|
|
29
|
+
- [AC-02] 预算超限返回 advisory warning,不阻断任务
|
|
30
|
+
- [AC-03] 熔断后 AI 操作建议降级模型(advisory)
|
|
31
|
+
- [AC-04] 心跳在重型操作期间每 Heartbeat_Interval 毫秒输出进度
|
|
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 + 人工确认
|
|
@@ -0,0 +1,49 @@
|
|
|
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-18
|
|
11
|
+
usage_count: 0
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 决策规则
|
|
15
|
+
|
|
16
|
+
- 人类主权高于 AI 推演,AI 不得静默覆盖人类的代码修改
|
|
17
|
+
- 作用域租约(scope lease)为 advisory check,不强制阻断操作
|
|
18
|
+
- 租约查询 isLocked() 供开发者参考,可选择忽略
|
|
19
|
+
- ConflictGate preWriteGate 执行 CAS 校验,冲突为 advisory 报告
|
|
20
|
+
- 标记确认 markConfirmed() 后冲突状态更新,允许写入继续
|
|
21
|
+
- 任务完成或取消时建议释放租约(advisory,不强制)
|
|
22
|
+
- P0 已移除持久锁 acquire/release,仅保留 isLocked() 查询
|
|
23
|
+
|
|
24
|
+
## 验收项
|
|
25
|
+
|
|
26
|
+
- [AC-01] 租约 acquire/release 测试通过
|
|
27
|
+
- [AC-02] CAS 冲突检测测试通过
|
|
28
|
+
- [AC-03] 锁机制不强制阻断操作
|
|
29
|
+
- [AC-04] 冲突报告包含完整信息供开发者决策
|
|
30
|
+
|
|
31
|
+
## 何时使用
|
|
32
|
+
|
|
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 + 人工确认
|