soloforge 1.3.2 → 1.3.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 +5 -0
- package/dist/adapters/claude_code/tools.d.ts.map +1 -1
- package/dist/adapters/claude_code/tools.js +287 -1
- package/dist/adapters/claude_code/tools.js.map +1 -1
- package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
- package/dist/adapters/shared/workflow_template.js +2 -1
- package/dist/adapters/shared/workflow_template.js.map +1 -1
- package/dist/bin/soloforge.d.ts.map +1 -1
- package/dist/bin/soloforge.js +231 -1
- package/dist/bin/soloforge.js.map +1 -1
- package/dist/engine/asset_manifest.d.ts.map +1 -1
- package/dist/engine/asset_manifest.js +13 -0
- package/dist/engine/asset_manifest.js.map +1 -1
- package/dist/engine/backend_implementation_contract.d.ts +51 -0
- package/dist/engine/backend_implementation_contract.d.ts.map +1 -0
- package/dist/engine/backend_implementation_contract.js +142 -0
- package/dist/engine/backend_implementation_contract.js.map +1 -0
- package/dist/engine/consumable_asset_registry.d.ts.map +1 -1
- package/dist/engine/consumable_asset_registry.js +133 -0
- package/dist/engine/consumable_asset_registry.js.map +1 -1
- package/dist/engine/dual_layer_mechanism_registry.d.ts.map +1 -1
- package/dist/engine/dual_layer_mechanism_registry.js +124 -0
- package/dist/engine/dual_layer_mechanism_registry.js.map +1 -1
- package/dist/engine/explicit_asset_registry.d.ts.map +1 -1
- package/dist/engine/explicit_asset_registry.js +204 -0
- package/dist/engine/explicit_asset_registry.js.map +1 -1
- package/dist/engine/implementation_roadmap_registry.d.ts.map +1 -1
- package/dist/engine/implementation_roadmap_registry.js +68 -2
- package/dist/engine/implementation_roadmap_registry.js.map +1 -1
- package/dist/engine/mechanism_contract_registry.d.ts.map +1 -1
- package/dist/engine/mechanism_contract_registry.js +68 -0
- package/dist/engine/mechanism_contract_registry.js.map +1 -1
- package/dist/engine/next_action_planner.d.ts +19 -0
- package/dist/engine/next_action_planner.d.ts.map +1 -0
- package/dist/engine/next_action_planner.js +453 -0
- package/dist/engine/next_action_planner.js.map +1 -0
- package/dist/engine/ood_solid_contract.d.ts +51 -0
- package/dist/engine/ood_solid_contract.d.ts.map +1 -0
- package/dist/engine/ood_solid_contract.js +115 -0
- package/dist/engine/ood_solid_contract.js.map +1 -0
- package/dist/engine/project_stage_detector.d.ts +17 -0
- package/dist/engine/project_stage_detector.d.ts.map +1 -0
- package/dist/engine/project_stage_detector.js +185 -0
- package/dist/engine/project_stage_detector.js.map +1 -0
- package/dist/engine/release_issue_scenario_registry.d.ts.map +1 -1
- package/dist/engine/release_issue_scenario_registry.js +14 -1
- package/dist/engine/release_issue_scenario_registry.js.map +1 -1
- package/dist/engine/release_readiness_gate.d.ts.map +1 -1
- package/dist/engine/release_readiness_gate.js +149 -3
- package/dist/engine/release_readiness_gate.js.map +1 -1
- package/dist/engine/stale_current_task_detector.d.ts +30 -0
- package/dist/engine/stale_current_task_detector.d.ts.map +1 -0
- package/dist/engine/stale_current_task_detector.js +168 -0
- package/dist/engine/stale_current_task_detector.js.map +1 -0
- package/dist/engine/task_stage_detector.d.ts +19 -0
- package/dist/engine/task_stage_detector.d.ts.map +1 -0
- package/dist/engine/task_stage_detector.js +201 -0
- package/dist/engine/task_stage_detector.js.map +1 -0
- package/dist/engine/tool_invocation_contract_registry.d.ts.map +1 -1
- package/dist/engine/tool_invocation_contract_registry.js +10 -0
- package/dist/engine/tool_invocation_contract_registry.js.map +1 -1
- package/dist/engine/workflow_navigation_contract.d.ts +115 -0
- package/dist/engine/workflow_navigation_contract.d.ts.map +1 -0
- package/dist/engine/workflow_navigation_contract.js +39 -0
- package/dist/engine/workflow_navigation_contract.js.map +1 -0
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/knowledge/acceptance_templates/OOD/350/256/276/350/256/241/346/221/230/350/246/201/346/250/241/347/211/210.md +60 -0
- package/templates/knowledge/acceptance_templates//345/220/216/347/253/257/345/256/236/347/216/260/351/252/214/346/224/266/346/270/205/345/215/225.md +46 -0
- package/templates/knowledge/procedures/OOD/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +50 -0
- package/templates/knowledge/procedures//345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201/345/257/274/350/210/252.md +100 -0
- package/templates/knowledge/procedures//345/220/216/347/253/257/346/216/245/345/217/243/345/256/236/347/216/260/345/267/245/344/275/234/346/265/201.md +50 -0
- package/templates/knowledge/review_rules/SOLID/344/273/243/347/240/201/345/256/241/346/237/245/350/247/204/345/210/231.md +40 -0
- package/templates/knowledge/review_rules//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/256/241/346/237/245/350/247/204/345/210/231.md +38 -0
- package/templates/knowledge/rules/OOD/344/270/216SOLID/350/256/276/350/256/241/350/247/204/345/210/231.md +62 -0
- package/templates/knowledge/rules//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/245/221/347/272/246/350/247/204/345/210/231.md +55 -0
- package/templates/knowledge/rules//345/267/245/344/275/234/346/265/201/345/257/274/350/210/252/345/245/221/347/272/246/350/247/204/345/210/231.md +113 -0
- package/templates/knowledge/rules//346/240/207/345/207/206/350/265/204/344/272/247/350/246/206/347/233/226/350/247/204/345/210/231.md +43 -0
- package/templates/knowledge/rules//346/250/241/346/235/277/350/265/204/344/272/247/345/217/257/350/247/201/346/200/247/350/247/204/345/210/231.md +44 -0
- package/templates/knowledge/rules//351/200/232/347/224/250/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md +47 -0
- package/templates/knowledge/rules//351/252/214/346/224/266/346/250/241/346/235/277/350/276/223/345/207/272/345/245/221/347/272/246/350/247/204/345/210/231.md +46 -0
- package/templates/patterns/SOLID/350/256/276/350/256/241/350/247/204/350/214/203.md +39 -0
- package/templates/patterns//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/350/247/204/350/214/203.md +39 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 后端接口实现工作流
|
|
3
|
+
type: procedure
|
|
4
|
+
when: '后端接口, Controller, DTO, API实现, 数据写入'
|
|
5
|
+
scope:
|
|
6
|
+
- backend
|
|
7
|
+
products:
|
|
8
|
+
- '*'
|
|
9
|
+
id: ka-procedure-后端接口实现工作流
|
|
10
|
+
asset_kind: procedure
|
|
11
|
+
lifecycle_status: active
|
|
12
|
+
authority: supporting
|
|
13
|
+
owner_mechanism_id: mc-backend-implementation-contract
|
|
14
|
+
routes:
|
|
15
|
+
- code_change
|
|
16
|
+
- artifact_generation
|
|
17
|
+
primary_triggers:
|
|
18
|
+
- 后端接口实现工作流
|
|
19
|
+
secondary_triggers:
|
|
20
|
+
- REST API
|
|
21
|
+
negative_triggers: []
|
|
22
|
+
priority: P1
|
|
23
|
+
specificity: 5
|
|
24
|
+
consumes:
|
|
25
|
+
- mc-backend-implementation-contract
|
|
26
|
+
emits:
|
|
27
|
+
- backend_work_package
|
|
28
|
+
- verification_result
|
|
29
|
+
required_evidence:
|
|
30
|
+
- execution_evidence
|
|
31
|
+
version: 1.0.0
|
|
32
|
+
last_reviewed: '2026-05-26'
|
|
33
|
+
status: active
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 步骤
|
|
37
|
+
|
|
38
|
+
1. 确认 OpenAPI、数据库 migration、权限与状态流转基线。
|
|
39
|
+
2. 定义请求 DTO、响应 DTO、字段校验、错误码和分页排序边界。
|
|
40
|
+
3. 定义应用服务事务边界、幂等策略、并发控制和审计事件。
|
|
41
|
+
4. 编码并执行单元、集成、权限、重复提交与契约一致性验证。
|
|
42
|
+
5. 审查 finding 清零并提供验收证据后交付。
|
|
43
|
+
|
|
44
|
+
## 工作包
|
|
45
|
+
|
|
46
|
+
| 类别 | 需明确内容 | 证据 |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| 接口边界 | DTO、统一响应、错误码、分页 | OpenAPI/测试 |
|
|
49
|
+
| 一致性 | 事务、幂等、并发、状态流转 | migration/集成测试 |
|
|
50
|
+
| 安全 | 权限、租户、审计、隐私 | 越权测试/审计日志 |
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: SOLID代码审查规则
|
|
3
|
+
type: review_rule
|
|
4
|
+
when: '代码审查, SOLID, 面向对象设计, controller, service'
|
|
5
|
+
scope:
|
|
6
|
+
- backend
|
|
7
|
+
- frontend
|
|
8
|
+
products:
|
|
9
|
+
- '*'
|
|
10
|
+
id: ka-review-rule-SOLID代码审查规则
|
|
11
|
+
asset_kind: review_rule
|
|
12
|
+
lifecycle_status: active
|
|
13
|
+
authority: canonical
|
|
14
|
+
owner_mechanism_id: mc-ood-solid-contract
|
|
15
|
+
routes:
|
|
16
|
+
- code_change
|
|
17
|
+
primary_triggers:
|
|
18
|
+
- SOLID代码审查规则
|
|
19
|
+
secondary_triggers:
|
|
20
|
+
- 重构
|
|
21
|
+
negative_triggers: []
|
|
22
|
+
priority: P1
|
|
23
|
+
specificity: 5
|
|
24
|
+
required_evidence:
|
|
25
|
+
- code_review_findings
|
|
26
|
+
version: 1.0.0
|
|
27
|
+
last_reviewed: '2026-05-26'
|
|
28
|
+
status: active
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 阻断项
|
|
32
|
+
|
|
33
|
+
| 原则 | 阻断表现 | 修复方向 |
|
|
34
|
+
|---|---|---|
|
|
35
|
+
| SRP | Controller 承担事务、持久化或业务计算 | 下沉至应用服务并只保留协议映射 |
|
|
36
|
+
| LSP | 子类型对父契约操作抛出 unsupported | 修正抽象层级或拆分契约 |
|
|
37
|
+
| ISP | 宽接口迫使实现提供空方法/异常 | 拆分客户端特定接口 |
|
|
38
|
+
| DIP | 业务服务直接构造外部 SDK 或仓储实现 | 引入端口并通过依赖注入装配 |
|
|
39
|
+
|
|
40
|
+
OCP 的多分支扩展风险可先作为 warning,但必须记录变化维度和后续扩展方案。
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 后端实现工程审查规则
|
|
3
|
+
type: review_rule
|
|
4
|
+
when: '后端审查, Controller, DTO, 事务, 幂等, 权限'
|
|
5
|
+
scope:
|
|
6
|
+
- backend
|
|
7
|
+
products:
|
|
8
|
+
- '*'
|
|
9
|
+
id: ka-review-rule-后端实现工程审查规则
|
|
10
|
+
asset_kind: review_rule
|
|
11
|
+
lifecycle_status: active
|
|
12
|
+
authority: canonical
|
|
13
|
+
owner_mechanism_id: mc-backend-implementation-contract
|
|
14
|
+
routes:
|
|
15
|
+
- code_change
|
|
16
|
+
primary_triggers:
|
|
17
|
+
- 后端实现工程审查规则
|
|
18
|
+
secondary_triggers:
|
|
19
|
+
- 接口审查
|
|
20
|
+
negative_triggers: []
|
|
21
|
+
priority: P1
|
|
22
|
+
specificity: 5
|
|
23
|
+
required_evidence:
|
|
24
|
+
- code_review_findings
|
|
25
|
+
version: 1.0.0
|
|
26
|
+
last_reviewed: '2026-05-26'
|
|
27
|
+
status: active
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 硬失败检查
|
|
31
|
+
|
|
32
|
+
| 分类 | 失败表现 | 修复要求 |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| Controller 边界 | 入参/出参使用数据库实体 | 改为 DTO/VO 并显式映射 |
|
|
35
|
+
| 参数校验 | POST/PUT/PATCH 未校验 | 补校验注解或验证器与失败测试 |
|
|
36
|
+
| 事务 | 事务中调用 HTTP/MQ/外部 SDK | 拆分边界或采用 outbox/补偿 |
|
|
37
|
+
| 幂等 | 支付、回调或写入无幂等证据 | 补请求键/唯一约束/重复提交测试 |
|
|
38
|
+
| 安全审计 | 敏感接口无权限、租户或审计 | 补安全校验和审计证据 |
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: OOD与SOLID设计规则
|
|
3
|
+
scope:
|
|
4
|
+
- backend
|
|
5
|
+
- frontend
|
|
6
|
+
products:
|
|
7
|
+
- '*'
|
|
8
|
+
id: ka-hard-rule-OOD与SOLID设计规则
|
|
9
|
+
asset_kind: hard_rule
|
|
10
|
+
lifecycle_status: active
|
|
11
|
+
authority: canonical
|
|
12
|
+
owner_mechanism_id: mc-ood-solid-contract
|
|
13
|
+
asset_role: required
|
|
14
|
+
consumed_by:
|
|
15
|
+
- mc-ood-solid-contract
|
|
16
|
+
routes:
|
|
17
|
+
- code_change
|
|
18
|
+
- artifact_generation
|
|
19
|
+
- multi_stage_plan
|
|
20
|
+
primary_triggers:
|
|
21
|
+
- 面向对象设计
|
|
22
|
+
- SOLID
|
|
23
|
+
secondary_triggers:
|
|
24
|
+
- 领域服务
|
|
25
|
+
- 重构
|
|
26
|
+
- 策略
|
|
27
|
+
negative_triggers:
|
|
28
|
+
- 文案
|
|
29
|
+
- 样式
|
|
30
|
+
priority: P1
|
|
31
|
+
specificity: 5
|
|
32
|
+
consumes:
|
|
33
|
+
- mc-coding-readiness
|
|
34
|
+
hard_blocks:
|
|
35
|
+
- ood_summary_missing
|
|
36
|
+
- solid_hard_fail_unresolved
|
|
37
|
+
fallback: manual_required
|
|
38
|
+
required_evidence:
|
|
39
|
+
- ood_design_summary
|
|
40
|
+
- code_review_findings
|
|
41
|
+
version: 1.0.0
|
|
42
|
+
last_reviewed: '2026-05-26'
|
|
43
|
+
status: active
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 编码前门禁
|
|
47
|
+
|
|
48
|
+
复杂业务逻辑、领域模型、服务边界、策略或重构任务在编码前必须给出:
|
|
49
|
+
|
|
50
|
+
- 对象及单一职责。
|
|
51
|
+
- 对外接口与依赖方向。
|
|
52
|
+
- 可变化点与扩展方式。
|
|
53
|
+
- SRP、OCP、LSP、ISP、DIP 风险及验证方式。
|
|
54
|
+
|
|
55
|
+
## 代码审查门禁
|
|
56
|
+
|
|
57
|
+
- Controller 不承担业务计算或持久化职责。
|
|
58
|
+
- 应用/领域服务依赖抽象端口,不直接构造基础设施依赖。
|
|
59
|
+
- 子类型不能拒绝父契约操作,接口不能迫使实现提供无效操作。
|
|
60
|
+
- 同一类型或状态的多处分支应判断是否需要策略扩展点。
|
|
61
|
+
|
|
62
|
+
硬失败未清零时,不得交付。简单文案或样式修改不强行引入对象设计。
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 后端实现工程契约规则
|
|
3
|
+
scope:
|
|
4
|
+
- backend
|
|
5
|
+
products:
|
|
6
|
+
- '*'
|
|
7
|
+
id: ka-hard-rule-后端实现工程契约规则
|
|
8
|
+
asset_kind: hard_rule
|
|
9
|
+
lifecycle_status: active
|
|
10
|
+
authority: canonical
|
|
11
|
+
owner_mechanism_id: mc-backend-implementation-contract
|
|
12
|
+
asset_role: required
|
|
13
|
+
consumed_by:
|
|
14
|
+
- mc-backend-implementation-contract
|
|
15
|
+
routes:
|
|
16
|
+
- code_change
|
|
17
|
+
- artifact_generation
|
|
18
|
+
- multi_stage_plan
|
|
19
|
+
primary_triggers:
|
|
20
|
+
- 后端实现
|
|
21
|
+
- 接口实现
|
|
22
|
+
secondary_triggers:
|
|
23
|
+
- Controller
|
|
24
|
+
- DTO
|
|
25
|
+
- 事务
|
|
26
|
+
- 幂等
|
|
27
|
+
negative_triggers:
|
|
28
|
+
- 文案
|
|
29
|
+
priority: P1
|
|
30
|
+
specificity: 5
|
|
31
|
+
consumes:
|
|
32
|
+
- mc-coding-readiness
|
|
33
|
+
hard_blocks:
|
|
34
|
+
- backend_work_package_missing
|
|
35
|
+
- backend_hard_fail_unresolved
|
|
36
|
+
fallback: manual_required
|
|
37
|
+
required_evidence:
|
|
38
|
+
- backend_work_package
|
|
39
|
+
- verification_result
|
|
40
|
+
version: 1.0.0
|
|
41
|
+
last_reviewed: '2026-05-26'
|
|
42
|
+
status: active
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 编码前必须确认
|
|
46
|
+
|
|
47
|
+
- Controller 只接收 DTO、执行校验、调用应用服务并返回统一响应对象。
|
|
48
|
+
- 写操作的事务、一致性、幂等键、并发冲突处理已定义。
|
|
49
|
+
- 权限、租户隔离、敏感字段与审计日志已定义。
|
|
50
|
+
- OpenAPI、请求/响应字段表、数据库 migration 和错误码有权威对齐依据。
|
|
51
|
+
- 验证计划包含成功、失败、重试、越权、重复提交和边界数据。
|
|
52
|
+
|
|
53
|
+
## 阻断规则
|
|
54
|
+
|
|
55
|
+
直接暴露实体、写接口无校验、事务内外部调用、高风险写入无幂等或敏感接口无安全审计证据,均不得交付。
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 工作流导航契约规则
|
|
3
|
+
scope:
|
|
4
|
+
- '*'
|
|
5
|
+
products:
|
|
6
|
+
- '*'
|
|
7
|
+
id: ka-hard-rule-工作流导航契约规则
|
|
8
|
+
asset_kind: hard_rule
|
|
9
|
+
lifecycle_status: active
|
|
10
|
+
authority: canonical
|
|
11
|
+
owner_mechanism_id: mc-workflow-navigation-contract
|
|
12
|
+
asset_role: required
|
|
13
|
+
consumed_by:
|
|
14
|
+
- mc-workflow-navigation-contract
|
|
15
|
+
- consumable_asset_registry
|
|
16
|
+
- knowledge_injection
|
|
17
|
+
routes:
|
|
18
|
+
- operation
|
|
19
|
+
- multi_stage_plan
|
|
20
|
+
- artifact_generation
|
|
21
|
+
primary_triggers:
|
|
22
|
+
- 工作流导航契约规则
|
|
23
|
+
secondary_triggers:
|
|
24
|
+
- 下一步
|
|
25
|
+
- 继续
|
|
26
|
+
- 现在能写代码吗
|
|
27
|
+
- 导航
|
|
28
|
+
- navigation
|
|
29
|
+
negative_triggers: []
|
|
30
|
+
priority: P0
|
|
31
|
+
specificity: 5
|
|
32
|
+
consumes:
|
|
33
|
+
- mc-workflow-navigation-contract
|
|
34
|
+
hard_blocks:
|
|
35
|
+
- stale_task_bypass
|
|
36
|
+
- disallowed_action_execution
|
|
37
|
+
fallback: manual_required
|
|
38
|
+
required_evidence:
|
|
39
|
+
- project_stage
|
|
40
|
+
- task_stage
|
|
41
|
+
version: 1.0.0
|
|
42
|
+
last_reviewed: '2026-05-26'
|
|
43
|
+
status: active
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 核心原则
|
|
47
|
+
|
|
48
|
+
执行任何开发动作前,必须先查询工作流导航状态。不得绕过导航机制凭经验操作。
|
|
49
|
+
|
|
50
|
+
查询方式:`soloforge next`(CLI)或 `sf_navigation`(MCP 工具)。
|
|
51
|
+
|
|
52
|
+
## 禁止动作规则
|
|
53
|
+
|
|
54
|
+
以下 7 条规则在工作流导航中强制执行:
|
|
55
|
+
|
|
56
|
+
1. **设计审计失败 → 禁止写业务代码**
|
|
57
|
+
- 条件:design_artifact_pack.status 不是 implementation_ready
|
|
58
|
+
- 阻断:sf_execute
|
|
59
|
+
- 必须先通过设计审计复验
|
|
60
|
+
|
|
61
|
+
2. **配置未确认 → 优先建议确认配置**
|
|
62
|
+
- 条件:项目阶段为 configuration_pending
|
|
63
|
+
- 阻断:除 sf_init、config_confirm 外的所有动作
|
|
64
|
+
- 必须先运行 soloforge config confirm
|
|
65
|
+
|
|
66
|
+
3. **决策未确认 → 禁止定稿架构/详细设计/代码**
|
|
67
|
+
- 条件:架构决策研讨中存在未确认域
|
|
68
|
+
- 阻断:sf_execute、sf_expand
|
|
69
|
+
- 必须先完成决策研讨并获取用户确认
|
|
70
|
+
|
|
71
|
+
4. **无开发切片计划 → 禁止大范围编码**
|
|
72
|
+
- 条件:expansion 存在但 planning 不存在
|
|
73
|
+
- 阻断:sf_execute(大范围)
|
|
74
|
+
- 必须先生成切片规划工作包
|
|
75
|
+
|
|
76
|
+
5. **修复重验指令未清零 → 禁止交付**
|
|
77
|
+
- 条件:repair_reverify_directive.blocked = true
|
|
78
|
+
- 阻断:sf_deliver
|
|
79
|
+
- 必须先完成修复和复验
|
|
80
|
+
|
|
81
|
+
6. **测试失败 → 禁止交付**
|
|
82
|
+
- 条件:verification_result.status = failed
|
|
83
|
+
- 阻断:sf_deliver
|
|
84
|
+
- 必须先修复测试
|
|
85
|
+
|
|
86
|
+
7. **本地验收缺失 → 禁止交付结论**
|
|
87
|
+
- 条件:delivery_ready 但无 local_acceptance_evidence
|
|
88
|
+
- 阻断:sf_deliver
|
|
89
|
+
- 必须先完成本地验收
|
|
90
|
+
|
|
91
|
+
## 陈旧任务处理协议
|
|
92
|
+
|
|
93
|
+
当检测到陈旧任务时(如 current-task.json 指向旧任务):
|
|
94
|
+
|
|
95
|
+
- **不得绕过 SoloForge 状态直接操作**
|
|
96
|
+
- **不得说"无需 SoloForge 状态"然后自由发挥**
|
|
97
|
+
- 必须从三个选项中选择:恢复旧任务 / 归档旧任务 / 开始新任务
|
|
98
|
+
- 旧任务文件不得静默删除,只处理 current-task 指针
|
|
99
|
+
- 选择必须留有审计痕迹
|
|
100
|
+
|
|
101
|
+
## Override 协议
|
|
102
|
+
|
|
103
|
+
用户可以显式 override 导航建议,但必须包含:
|
|
104
|
+
- override_reason:覆盖原因
|
|
105
|
+
- user_confirmation_ref:用户确认引用
|
|
106
|
+
- risk_acknowledged:已确认风险
|
|
107
|
+
|
|
108
|
+
无痕 override 不允许。
|
|
109
|
+
|
|
110
|
+
## JSON 输出契约
|
|
111
|
+
|
|
112
|
+
`soloforge next --json` 输出纯 JSON 到 stdout,无日志污染。
|
|
113
|
+
字段包含:project_stage、task_stage、confidence、stage_evidence、blocking_reasons、recommended_commands、recommended_prompt、disallowed_next_actions、work_package。
|
|
@@ -1,3 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 标准资产覆盖规则
|
|
3
|
+
scope:
|
|
4
|
+
- '*'
|
|
5
|
+
products:
|
|
6
|
+
- '*'
|
|
7
|
+
id: ka-hard-rule-标准资产覆盖规则
|
|
8
|
+
asset_kind: hard_rule
|
|
9
|
+
lifecycle_status: active
|
|
10
|
+
authority: canonical
|
|
11
|
+
owner_mechanism_id: mc-standard-asset-coverage
|
|
12
|
+
routes:
|
|
13
|
+
- artifact_generation
|
|
14
|
+
- code_change
|
|
15
|
+
- operation
|
|
16
|
+
primary_triggers:
|
|
17
|
+
- 标准资产覆盖
|
|
18
|
+
- 模板覆盖
|
|
19
|
+
- 资产契约
|
|
20
|
+
secondary_triggers:
|
|
21
|
+
- templates
|
|
22
|
+
- asset coverage
|
|
23
|
+
negative_triggers: []
|
|
24
|
+
priority: P0
|
|
25
|
+
specificity: 5
|
|
26
|
+
consumes:
|
|
27
|
+
- template_asset_contract_registry
|
|
28
|
+
- explicit_asset_registry
|
|
29
|
+
- observed_consumption
|
|
30
|
+
hard_blocks:
|
|
31
|
+
- unregistered_template_asset
|
|
32
|
+
- missing_runtime_consumer
|
|
33
|
+
- missing_revalidation_entrypoint
|
|
34
|
+
fallback: manual_required
|
|
35
|
+
required_evidence:
|
|
36
|
+
- asset_contract
|
|
37
|
+
- consumption_evidence
|
|
38
|
+
- validation_entrypoint
|
|
39
|
+
version: 1.0.0
|
|
40
|
+
last_reviewed: '2026-05-26'
|
|
41
|
+
status: active
|
|
42
|
+
---
|
|
43
|
+
|
|
1
44
|
# 标准资产覆盖规则
|
|
2
45
|
|
|
3
46
|
## 覆盖范围
|
|
@@ -1,3 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 模板资产可见性规则
|
|
3
|
+
scope:
|
|
4
|
+
- '*'
|
|
5
|
+
products:
|
|
6
|
+
- '*'
|
|
7
|
+
id: ka-hard-rule-模板资产可见性规则
|
|
8
|
+
asset_kind: hard_rule
|
|
9
|
+
lifecycle_status: active
|
|
10
|
+
authority: canonical
|
|
11
|
+
owner_mechanism_id: mc-template-asset-visibility
|
|
12
|
+
routes:
|
|
13
|
+
- operation
|
|
14
|
+
- code_change
|
|
15
|
+
- artifact_generation
|
|
16
|
+
primary_triggers:
|
|
17
|
+
- 模板资产可见性
|
|
18
|
+
- 内部资产
|
|
19
|
+
- 知识同步
|
|
20
|
+
secondary_triggers:
|
|
21
|
+
- sync-templates
|
|
22
|
+
- init
|
|
23
|
+
- visibility
|
|
24
|
+
negative_triggers: []
|
|
25
|
+
priority: P0
|
|
26
|
+
specificity: 5
|
|
27
|
+
consumes:
|
|
28
|
+
- template_asset_contract_registry
|
|
29
|
+
- template_init_sync
|
|
30
|
+
- knowledge_index_manager
|
|
31
|
+
hard_blocks:
|
|
32
|
+
- internal_asset_leak
|
|
33
|
+
- cross_stack_injection
|
|
34
|
+
- unregistered_asset_sync
|
|
35
|
+
fallback: manual_required
|
|
36
|
+
required_evidence:
|
|
37
|
+
- visibility_contract
|
|
38
|
+
- sync_manifest
|
|
39
|
+
- runtime_consumption_trace
|
|
40
|
+
version: 1.0.0
|
|
41
|
+
last_reviewed: '2026-05-26'
|
|
42
|
+
status: active
|
|
43
|
+
---
|
|
44
|
+
|
|
1
45
|
# 模板资产可见性规则
|
|
2
46
|
|
|
3
47
|
## 适用范围
|
|
@@ -1,3 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 通用决策研讨规则
|
|
3
|
+
scope:
|
|
4
|
+
- '*'
|
|
5
|
+
products:
|
|
6
|
+
- '*'
|
|
7
|
+
id: ka-hard-rule-通用决策研讨规则
|
|
8
|
+
asset_kind: hard_rule
|
|
9
|
+
lifecycle_status: active
|
|
10
|
+
authority: canonical
|
|
11
|
+
owner_mechanism_id: mc-decision-workshop
|
|
12
|
+
routes:
|
|
13
|
+
- analysis
|
|
14
|
+
- artifact_generation
|
|
15
|
+
- code_change
|
|
16
|
+
primary_triggers:
|
|
17
|
+
- 决策研讨
|
|
18
|
+
- 技术选型
|
|
19
|
+
- 数据迁移
|
|
20
|
+
- 安全策略
|
|
21
|
+
secondary_triggers:
|
|
22
|
+
- 架构设计
|
|
23
|
+
- 部署
|
|
24
|
+
- 重构
|
|
25
|
+
- 第三方集成
|
|
26
|
+
negative_triggers:
|
|
27
|
+
- 简单说明
|
|
28
|
+
- 低风险改字
|
|
29
|
+
priority: P0
|
|
30
|
+
specificity: 5
|
|
31
|
+
consumes:
|
|
32
|
+
- decision_workshop
|
|
33
|
+
- architecture_decision_workshop
|
|
34
|
+
hard_blocks:
|
|
35
|
+
- unconfirmed_decision_domain
|
|
36
|
+
- missing_candidate_options
|
|
37
|
+
- missing_user_confirmation
|
|
38
|
+
fallback: manual_required
|
|
39
|
+
required_evidence:
|
|
40
|
+
- decision_workshop
|
|
41
|
+
- user_confirmation_ref
|
|
42
|
+
- decision_domain_status
|
|
43
|
+
version: 1.0.0
|
|
44
|
+
last_reviewed: '2026-05-26'
|
|
45
|
+
status: active
|
|
46
|
+
---
|
|
47
|
+
|
|
1
48
|
# 通用决策研讨规则
|
|
2
49
|
|
|
3
50
|
## 触发条件
|
|
@@ -1,3 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 验收模板输出契约规则
|
|
3
|
+
scope:
|
|
4
|
+
- '*'
|
|
5
|
+
products:
|
|
6
|
+
- '*'
|
|
7
|
+
id: ka-hard-rule-验收模板输出契约规则
|
|
8
|
+
asset_kind: hard_rule
|
|
9
|
+
lifecycle_status: active
|
|
10
|
+
authority: canonical
|
|
11
|
+
owner_mechanism_id: mc-standard-asset-contract
|
|
12
|
+
routes:
|
|
13
|
+
- artifact_generation
|
|
14
|
+
- code_change
|
|
15
|
+
- verification
|
|
16
|
+
primary_triggers:
|
|
17
|
+
- 验收模板
|
|
18
|
+
- 标准输出
|
|
19
|
+
- 设计产物
|
|
20
|
+
secondary_triggers:
|
|
21
|
+
- API接口规格
|
|
22
|
+
- 数据库设计
|
|
23
|
+
- 架构设计
|
|
24
|
+
negative_triggers:
|
|
25
|
+
- 普通解释
|
|
26
|
+
- 简单 bugfix
|
|
27
|
+
priority: P0
|
|
28
|
+
specificity: 5
|
|
29
|
+
consumes:
|
|
30
|
+
- standard_asset_contract
|
|
31
|
+
- design_artifact_pack
|
|
32
|
+
- repair_reverify_directive
|
|
33
|
+
hard_blocks:
|
|
34
|
+
- template_contract_violation
|
|
35
|
+
- draft_artifact_consumed
|
|
36
|
+
- missing_authoritative_asset
|
|
37
|
+
fallback: manual_required
|
|
38
|
+
required_evidence:
|
|
39
|
+
- template_contract_result
|
|
40
|
+
- authoritative_asset
|
|
41
|
+
- repair_reverify_result
|
|
42
|
+
version: 1.0.0
|
|
43
|
+
last_reviewed: '2026-05-26'
|
|
44
|
+
status: active
|
|
45
|
+
---
|
|
46
|
+
|
|
1
47
|
# 验收模板输出契约规则
|
|
2
48
|
|
|
3
49
|
## 触发条件
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: solid-design-pattern
|
|
3
|
+
when: 'SOLID, 面向对象设计, 职责划分, 依赖倒置, 接口隔离'
|
|
4
|
+
scope:
|
|
5
|
+
- backend
|
|
6
|
+
- frontend
|
|
7
|
+
products:
|
|
8
|
+
- '*'
|
|
9
|
+
id: ka-pattern-solid-design
|
|
10
|
+
asset_kind: pattern
|
|
11
|
+
lifecycle_status: active
|
|
12
|
+
authority: supporting
|
|
13
|
+
owner_mechanism_id: mc-ood-solid-contract
|
|
14
|
+
routes:
|
|
15
|
+
- code_change
|
|
16
|
+
primary_triggers:
|
|
17
|
+
- SOLID
|
|
18
|
+
- 面向对象设计
|
|
19
|
+
priority: P1
|
|
20
|
+
specificity: 5
|
|
21
|
+
version: 1.0.0
|
|
22
|
+
last_reviewed: '2026-05-26'
|
|
23
|
+
consumes:
|
|
24
|
+
- mc-ood-solid-contract
|
|
25
|
+
emits: []
|
|
26
|
+
secondary_triggers: []
|
|
27
|
+
negative_triggers: []
|
|
28
|
+
type: pattern
|
|
29
|
+
status: active
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 规则
|
|
33
|
+
|
|
34
|
+
- 一个类只承担一个清晰可验证的业务原因。
|
|
35
|
+
- 新增行为优先扩展端口或策略,避免修改大量既有条件分支。
|
|
36
|
+
- 子类型必须保持父契约的有效输入、输出和错误语义。
|
|
37
|
+
- 接口按消费者需要拆分,禁止空实现和不支持异常。
|
|
38
|
+
- 业务核心依赖抽象,基础设施实现由装配层注入。
|
|
39
|
+
- 简单修改不建立无用抽象层,避免为原则之名过度设计。
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: backend-implementation-engineering
|
|
3
|
+
when: 'Controller, DTO, API实现, 事务, 幂等, 权限, 后端编码'
|
|
4
|
+
scope:
|
|
5
|
+
- backend
|
|
6
|
+
products:
|
|
7
|
+
- '*'
|
|
8
|
+
id: ka-pattern-backend-implementation-engineering
|
|
9
|
+
asset_kind: pattern
|
|
10
|
+
lifecycle_status: active
|
|
11
|
+
authority: supporting
|
|
12
|
+
owner_mechanism_id: mc-backend-implementation-contract
|
|
13
|
+
routes:
|
|
14
|
+
- code_change
|
|
15
|
+
primary_triggers:
|
|
16
|
+
- 后端实现
|
|
17
|
+
- API实现
|
|
18
|
+
priority: P1
|
|
19
|
+
specificity: 5
|
|
20
|
+
version: 1.0.0
|
|
21
|
+
last_reviewed: '2026-05-26'
|
|
22
|
+
consumes:
|
|
23
|
+
- mc-backend-implementation-contract
|
|
24
|
+
emits: []
|
|
25
|
+
secondary_triggers: []
|
|
26
|
+
negative_triggers: []
|
|
27
|
+
type: pattern
|
|
28
|
+
status: active
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 工程规则
|
|
32
|
+
|
|
33
|
+
- Controller 入参与出参按接口语义使用 DTO/VO,不暴露数据库实体。
|
|
34
|
+
- 参数必须验证必填、长度、枚举、金额、日期区间和关联对象存在性。
|
|
35
|
+
- 列表接口限制 page size 并对白名单排序;响应使用统一分页对象。
|
|
36
|
+
- 写操作在 Service 定义清晰事务边界;外部调用不放在长事务内。
|
|
37
|
+
- 支付、回调、创建与状态流转具备幂等键、并发控制和重复提交测试。
|
|
38
|
+
- 敏感操作必须校验权限和租户,并产出可追踪审计记录。
|
|
39
|
+
- OpenAPI、字段表、错误码和 migration 必须与实现同步复验。
|