soloforge 1.3.4 → 1.3.6
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 +12 -5
- package/dist/adapters/claude_code/tools.d.ts.map +1 -1
- package/dist/adapters/claude_code/tools.js +80 -44
- package/dist/adapters/claude_code/tools.js.map +1 -1
- package/dist/adapters/shared/workflow_template.js +1 -1
- package/dist/bin/soloforge.d.ts.map +1 -1
- package/dist/bin/soloforge.js +83 -1
- package/dist/bin/soloforge.js.map +1 -1
- package/dist/engine/backend_implementation_contract.d.ts +1 -1
- package/dist/engine/backend_implementation_contract.d.ts.map +1 -1
- package/dist/engine/backend_implementation_contract.js +22 -0
- package/dist/engine/backend_implementation_contract.js.map +1 -1
- package/dist/engine/brainstorm_contract.d.ts +1 -1
- package/dist/engine/brainstorm_contract.js +1 -1
- package/dist/engine/code_maintainability_observability_contract.d.ts +1 -1
- package/dist/engine/code_maintainability_observability_contract.d.ts.map +1 -1
- package/dist/engine/code_maintainability_observability_contract.js +241 -3
- package/dist/engine/code_maintainability_observability_contract.js.map +1 -1
- package/dist/engine/contract_registry.js +1 -1
- package/dist/engine/diagnostic_registry.d.ts +1 -0
- package/dist/engine/diagnostic_registry.d.ts.map +1 -1
- package/dist/engine/diagnostic_registry.js +6 -0
- package/dist/engine/diagnostic_registry.js.map +1 -1
- package/dist/engine/dual_layer_mechanism_registry.js +1 -1
- package/dist/engine/extension_scenario_registry.js +4 -4
- package/dist/engine/extension_scenario_registry.js.map +1 -1
- package/dist/engine/foundation_scenario_runners.d.ts.map +1 -1
- package/dist/engine/foundation_scenario_runners.js +4 -2
- package/dist/engine/foundation_scenario_runners.js.map +1 -1
- package/dist/engine/historical_issue_mechanization_matrix.d.ts +28 -0
- package/dist/engine/historical_issue_mechanization_matrix.d.ts.map +1 -0
- package/dist/engine/historical_issue_mechanization_matrix.js +134 -0
- package/dist/engine/historical_issue_mechanization_matrix.js.map +1 -0
- package/dist/engine/implementation_roadmap_registry.d.ts.map +1 -1
- package/dist/engine/implementation_roadmap_registry.js +70 -13
- package/dist/engine/implementation_roadmap_registry.js.map +1 -1
- package/dist/engine/intent_expander.d.ts.map +1 -1
- package/dist/engine/intent_expander.js +151 -1
- package/dist/engine/intent_expander.js.map +1 -1
- package/dist/engine/next_action_planner.d.ts.map +1 -1
- package/dist/engine/next_action_planner.js +72 -4
- package/dist/engine/next_action_planner.js.map +1 -1
- package/dist/engine/project_knowledge_contract.d.ts +58 -0
- package/dist/engine/project_knowledge_contract.d.ts.map +1 -0
- package/dist/engine/project_knowledge_contract.js +298 -0
- package/dist/engine/project_knowledge_contract.js.map +1 -0
- package/dist/engine/project_knowledge_system_regression_matrix.d.ts +27 -0
- package/dist/engine/project_knowledge_system_regression_matrix.d.ts.map +1 -0
- package/dist/engine/project_knowledge_system_regression_matrix.js +295 -0
- package/dist/engine/project_knowledge_system_regression_matrix.js.map +1 -0
- package/dist/engine/release_issue_scenario_registry.d.ts.map +1 -1
- package/dist/engine/release_issue_scenario_registry.js +297 -102
- package/dist/engine/release_issue_scenario_registry.js.map +1 -1
- package/dist/engine/release_readiness_gate.d.ts +1 -0
- package/dist/engine/release_readiness_gate.d.ts.map +1 -1
- package/dist/engine/release_readiness_gate.js +384 -5
- package/dist/engine/release_readiness_gate.js.map +1 -1
- package/dist/engine/technology_decision.js +5 -5
- package/dist/engine/technology_decision.js.map +1 -1
- package/dist/engine/template_asset_contract_registry.d.ts.map +1 -1
- package/dist/engine/template_asset_contract_registry.js +6 -5
- package/dist/engine/template_asset_contract_registry.js.map +1 -1
- package/dist/engine/verifier.js +1 -1
- package/dist/engine/verifier.js.map +1 -1
- package/dist/engine/workflow_navigation_contract.d.ts +10 -0
- package/dist/engine/workflow_navigation_contract.d.ts.map +1 -1
- package/dist/knowledge/loader.d.ts +3 -1
- package/dist/knowledge/loader.d.ts.map +1 -1
- package/dist/knowledge/loader.js +2 -2
- package/dist/knowledge/loader.js.map +1 -1
- package/dist/types.d.ts +19 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/knowledge/acceptance_templates//351/200/232/347/224/250/350/264/250/351/207/217/351/252/214/346/224/266/346/270/205/345/215/225.md +1 -1
- package/templates/knowledge/acceptance_templates//351/207/215/346/236/204/346/226/271/346/241/210/346/250/241/347/211/210.md +1 -1
- package/templates/knowledge/domain//346/224/257/344/273/230/350/247/204/345/210/231.md +1 -1
- package/templates/knowledge/procedures//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273/346/265/201/347/250/213.md +1 -1
- package/templates/knowledge/procedures//351/203/250/347/275/262/345/217/221/345/270/203/346/265/201/347/250/213.md +1 -1
- package/templates/knowledge/procedures//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +1 -1
- package/templates/knowledge/review_rules//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/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 +3 -3
- package/templates/knowledge/rules//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/345/245/221/347/272/246/350/247/204/345/210/231.md +32 -3
- package/templates/knowledge/rules//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +1 -1
- package/templates/knowledge/rules//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/345/216/237/345/210/231.md +2 -2
- package/templates/knowledge/rules//346/274/224/350/277/233/345/233/236/345/275/222/351/227/250/346/216/247/350/247/204/345/210/231.md +1 -1
- package/templates/patterns/Git/346/223/215/344/275/234/350/247/204/350/214/203.md +1 -1
- package/templates/scaffolds/react/Form.tsx.hbs +11 -3
- package/templates/scaffolds/react/List.tsx.hbs +11 -3
- package/templates/scaffolds/react/Page.tsx.hbs +1 -1
- package/templates/scaffolds/react/types.ts.hbs +4 -1
- package/templates/scaffolds/spring-boot/Controller.java.hbs +18 -4
- package/templates/scaffolds/spring-boot/DTO.java.hbs +4 -1
- package/templates/scaffolds/spring-boot/Entity.java.hbs +8 -3
- package/templates/scaffolds/spring-boot/Mapper.java.hbs +4 -1
- package/templates/scaffolds/spring-boot/ServiceImpl.java.hbs +34 -10
- package/templates/scaffolds/spring-boot/ServiceTest.java.hbs +0 -1
package/README.md
CHANGED
|
@@ -14,8 +14,8 @@ AI 编程助手的项目工作流配置器。SoloForge 帮你把 Claude Code、C
|
|
|
14
14
|
|
|
15
15
|
- **下一步导航**: `soloforge next` 会根据当前阶段、阻断项和已有证据提示下一步,而不是只报告状态。
|
|
16
16
|
- **设计产物包审计**: 架构、数据库、API、OpenAPI、SQL/migration 和一致性报告按统一合同审计,避免文档之间漂移。
|
|
17
|
-
- **工程实现契约**: 编码阶段会约束 OOD/SOLID、Controller 入参出参、参数校验、事务、幂等、权限、日志和错误处理等实现细节。
|
|
18
|
-
- **注释与日志治理**:
|
|
17
|
+
- **工程实现契约**: 编码阶段会约束 OOD/SOLID、Controller/Handler/Router 入参出参、参数校验、事务、幂等、权限、日志和错误处理等实现细节。
|
|
18
|
+
- **注释与日志治理**: 后端写操作、前端关键交互、状态变更、支付/权限/安全路径、异常处理和迁移脚本需要可定位日志、埋点/错误上报或必要注释;敏感信息不得进入日志。
|
|
19
19
|
- **长期机制化门禁**: SoloForge 自身发布前会检查机制消费链路、知识治理、配置落盘边界、日志治理和诊断码集中注册,防止只靠文档或测试自证。
|
|
20
20
|
|
|
21
21
|
## 最短成功路径
|
|
@@ -70,7 +70,7 @@ soloforge init --adapter all # 同时生成所有适配器配置
|
|
|
70
70
|
|
|
71
71
|
| 位置 | 用途 |
|
|
72
72
|
|------|------|
|
|
73
|
-
| `.soloforge/knowledge/` |
|
|
73
|
+
| `.soloforge/knowledge/` | 项目知识模板和规则;内置同步资产受 manifest/hash 保护,用户自定义规则会被审计为 hard rule、injectable 或 index_only |
|
|
74
74
|
| `.soloforge/config.yaml` | 可选项目配置,仅在高置信度或手动确认后生成 |
|
|
75
75
|
| `~/.soloforge/patterns/` | 全局默认模板(所有项目共享),init 时自动同步、已有文件不覆盖 |
|
|
76
76
|
| `.claude/settings.json` / `CLAUDE.md` / `.mcp.json` | Claude Code 配置 |
|
|
@@ -88,6 +88,7 @@ soloforge next # 查看当前阶段、阻断项和下一步可执
|
|
|
88
88
|
soloforge stage # 查看项目阶段与当前任务阶段
|
|
89
89
|
soloforge config resolve # 查看配置解析结果和来源
|
|
90
90
|
soloforge config explain # 解释某项配置为什么是当前值
|
|
91
|
+
soloforge audit-project-knowledge # 审计项目自定义知识规则是否可被稳定消费
|
|
91
92
|
soloforge version # 查看版本
|
|
92
93
|
```
|
|
93
94
|
|
|
@@ -130,6 +131,10 @@ soloforge migrate --apply --confirm # 执行项目迁移
|
|
|
130
131
|
- 你手动修改过的模板和适配器文件(如 `CLAUDE.md`)不会被静默覆盖——SoloForge 会检测文件是否被用户修改,修改过的文件在同步时自动跳过并报告。
|
|
131
132
|
- 核心知识模板受保护,即使 apply 也不会被自动同步覆盖。
|
|
132
133
|
- dry-run 中的“应用安全: 需确认”表示发现用户已有文件或需要人工确认;这不是命令失败,只有加 `--apply --confirm` 才会写入。
|
|
134
|
+
- 用户自己新增到 `.soloforge/knowledge/**` 的规则不会被当成普通静态文件。带有 `asset_kind: hard_rule`、`routes`、`primary_triggers` 或 `enforcement.level` 的项目规则会进入审计和任务选择;缺少触发条件的 hard rule 会被 `audit-project-knowledge` 标为阻断。
|
|
135
|
+
- 项目规则进入 `sf_expand` 时会按 intent、route、技术栈和触发词筛选,不会整库塞进 prompt;`sf_review`、`sf_verify`、`sf_deliver` 会在项目规则不可消费或冲突时阻断。
|
|
136
|
+
- 项目规则可用 `conflict_group` + `rule_value` 或 `conflicts_with` 声明互斥口径,例如 API 响应格式、分页格式、日志字段、数据库命名和权限模型。冲突不会由 AI 直接拍板,必须先由用户确认。
|
|
137
|
+
- 知识资产与项目规则消费体系受 20 项防回归矩阵约束:模板卫生、脚手架质量、项目知识承载、选择注入、冲突确认、`next` 消费、同步保护、技术栈过滤、设计产物消费、消费 trace 和用户可见解释都必须有真实入口和 release gate。
|
|
133
138
|
|
|
134
139
|
**典型升级流程:**
|
|
135
140
|
|
|
@@ -166,8 +171,8 @@ soloforge migrate --apply --confirm # 确认后迁移
|
|
|
166
171
|
- **存量设计复验** — 升级 SoloForge 后,已有架构/数据库/API 文档不会被默认信任。运行 `soloforge audit-design-artifacts` 可得到差距报告;需要升级时先 dry-run,再经 `--apply --confirm` 归档旧文件并写入升级契约,修订后的文档必须重新复验。
|
|
167
172
|
- **下一步导航** — 不确定接下来该做什么时,运行 `soloforge next`,或向 AI 直接说“下一步/继续/现在能写代码吗”。SoloForge 会依据配置、设计验收、当前任务、修复指令和验证证据输出阶段、阻断原因与工作包;陈旧任务不会被静默绕过。
|
|
168
173
|
- **OOD 与 SOLID 编码约束** — 复杂业务、领域服务、策略和重构类实现会先要求对象职责、接口与依赖方向摘要;代码审查可识别职责膨胀、直接依赖基础设施、宽接口和替换违约。文案或简单配置修改不会被强行复杂化。
|
|
169
|
-
- **后端实现工程约束** — 实现后端接口前会要求 DTO/校验、响应与分页、事务与幂等、安全审计、OpenAPI
|
|
170
|
-
-
|
|
174
|
+
- **后端实现工程约束** — 实现后端接口前会要求 DTO/校验、响应与分页、事务与幂等、安全审计、OpenAPI/数据库对齐和测试证据;Spring Boot Entity 默认保持 `@Getter`/`@Setter`,DTO/VO/Request/Response 默认使用 `@Data`;实体泄漏、写接口无校验、事务内外调、关键写入无幂等或敏感接口无安全证据会阻断交付。
|
|
175
|
+
- **日志与注释清晰** — 用户可见输出中文优先;JSON 模式(`--json`)输出保持纯 JSON,不混入内部日志。用户项目业务日志和注释也必须中文;后端类需要说明类作用的 Javadoc,方法需要说明方法、入参和出参,关键业务行需要中文行注释。
|
|
171
176
|
- 写代码类任务会更明确 scope、验收项和验证命令。
|
|
172
177
|
- 生成文档、提取说明、分析日志等产物型任务会默认输出到 `.soloforge/output/`,不会默认修改 `src/`。
|
|
173
178
|
- 遇到缺少路径、源码包、日志等必需输入时,会先澄清,而不是猜着执行。
|
|
@@ -192,6 +197,8 @@ SoloForge 对验证和交付有严格的分层设计:
|
|
|
192
197
|
- **可修复失败有预算**:重试次数有上限,超预算后停止并升级。
|
|
193
198
|
- **范围不足不越权**:如果失败是因为 scope 不够,SoloForge 会请求扩大范围,不会静默越权写入。
|
|
194
199
|
- **错误信息已脱敏**:失败报告中的敏感信息(密钥、密码、原始输出)会自动脱敏,只保留摘要和哈希。
|
|
200
|
+
- **项目知识可审计**:项目自定义规则必须能说明适用路由、触发词和技术栈。能执行的规则会被选中或注入;只适合作为背景资料的规则会标为 `index_only`,不得冒充已执行约束。`soloforge next` 会显示下一步会参考哪些项目规则,`audit-project-knowledge` 会显示冲突、身份、可消费性和修复建议。
|
|
201
|
+
- **历史问题机制化**:新反馈不会只按表面文件或单个场景处理。SoloForge 的发布门禁要求历史问题先归入长期机制族,并具备第一性原理不变量、生产入口、用户项目路径、must-fail 和 must-pass。
|
|
195
202
|
|
|
196
203
|
### 安全护栏
|
|
197
204
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/adapters/claude_code/tools.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/adapters/claude_code/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1087,6 +1087,43 @@ export async function registerTools(server, deps) {
|
|
|
1087
1087
|
};
|
|
1088
1088
|
}
|
|
1089
1089
|
}
|
|
1090
|
+
// 用户项目知识门禁: review/verify/deliver 不能绕过不可消费的项目 hard rule。
|
|
1091
|
+
if (["sf_review", "sf_verify", "sf_deliver"].includes(name)) {
|
|
1092
|
+
const { auditProjectKnowledge } = await import("../../engine/project_knowledge_contract.js");
|
|
1093
|
+
const pkReport = auditProjectKnowledge(projectPath, config);
|
|
1094
|
+
if (pkReport.hard_fail_count > 0) {
|
|
1095
|
+
const pkFindings = pkReport.assets.flatMap((asset) => asset.findings
|
|
1096
|
+
.filter((finding) => finding.severity === "hard_fail")
|
|
1097
|
+
.map((finding) => `${asset.rel_path}: [${finding.code}] ${finding.message_zh}`));
|
|
1098
|
+
const pkViolation = {
|
|
1099
|
+
invocation_id: invocationId,
|
|
1100
|
+
tool_name: name,
|
|
1101
|
+
violation_type: "guard_blocked",
|
|
1102
|
+
severity: "hard_fail",
|
|
1103
|
+
reason: `用户项目知识存在 ${pkReport.hard_fail_count} 个不可消费阻断项`,
|
|
1104
|
+
recovery: "运行 soloforge audit-project-knowledge,修复 hard rule 的 routes、primary_triggers 或身份冲突后重试",
|
|
1105
|
+
};
|
|
1106
|
+
const pkTrace = createToolTrace({
|
|
1107
|
+
tool_name: name, invocation_id: invocationId, task_id: taskId,
|
|
1108
|
+
actual_side_effects: effectiveSideEffects,
|
|
1109
|
+
next_allowed_tools: ["sf_expand", "sf_status"],
|
|
1110
|
+
forbidden_tools: ["sf_review", "sf_verify", "sf_deliver"],
|
|
1111
|
+
authorization, bypass,
|
|
1112
|
+
});
|
|
1113
|
+
if (taskId && ctx)
|
|
1114
|
+
await taskContext.setToolTrace(taskId, pkTrace, [pkViolation]);
|
|
1115
|
+
return {
|
|
1116
|
+
content: [{ type: "text", text: JSON.stringify({
|
|
1117
|
+
error: pkViolation.reason,
|
|
1118
|
+
violation: pkViolation,
|
|
1119
|
+
diagnostic_code: TOOL_DIAGNOSTIC_CODES.projectKnowledgeBlocked,
|
|
1120
|
+
findings: pkFindings,
|
|
1121
|
+
recovery: pkViolation.recovery,
|
|
1122
|
+
}) }],
|
|
1123
|
+
isError: true,
|
|
1124
|
+
};
|
|
1125
|
+
}
|
|
1126
|
+
}
|
|
1090
1127
|
// 合同验证
|
|
1091
1128
|
const lastTrace = ctx?.last_tool_trace;
|
|
1092
1129
|
// 为动态工具构建有效的合同覆盖(如 sf_status cancel)
|
|
@@ -1707,7 +1744,7 @@ export async function registerTools(server, deps) {
|
|
|
1707
1744
|
};
|
|
1708
1745
|
}
|
|
1709
1746
|
}
|
|
1710
|
-
//
|
|
1747
|
+
// 问题四十二(brainstorm): 脑暴契约 gate — 不确定项缺方案探索时 blocked
|
|
1711
1748
|
{
|
|
1712
1749
|
const brainstormGate = await checkBrainstormGate({ ctx, route: expansionRoute });
|
|
1713
1750
|
if (!brainstormGate.allowed) {
|
|
@@ -1721,8 +1758,11 @@ export async function registerTools(server, deps) {
|
|
|
1721
1758
|
};
|
|
1722
1759
|
}
|
|
1723
1760
|
}
|
|
1724
|
-
//
|
|
1761
|
+
// 问题六十六/六十七/六十八: 编码前工程约束必须聚合返回。
|
|
1762
|
+
// 不能让 OOD 或后端工程门禁抢先返回,遮蔽用户项目的注释/日志契约。
|
|
1725
1763
|
{
|
|
1764
|
+
const preImplementationBlocks = [];
|
|
1765
|
+
const preImplementationPayload = {};
|
|
1726
1766
|
const oodModule = await lazyOodSolid();
|
|
1727
1767
|
const oodGate = oodModule.evaluateOodDesignGate({
|
|
1728
1768
|
task_id: args.task_id,
|
|
@@ -1732,22 +1772,14 @@ export async function registerTools(server, deps) {
|
|
|
1732
1772
|
});
|
|
1733
1773
|
if (oodGate.applicable) {
|
|
1734
1774
|
ctx.ood_solid_summary = oodGate.required_summary;
|
|
1735
|
-
|
|
1775
|
+
preImplementationPayload.ood_solid_summary = oodGate.required_summary;
|
|
1736
1776
|
}
|
|
1737
1777
|
if (!oodGate.allowed) {
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
diagnostic_code: TOOL_DIAGNOSTIC_CODES.oodMissingSummary,
|
|
1743
|
-
ood_solid_summary: oodGate.required_summary,
|
|
1744
|
-
recovery: "请确认对象职责、接口边界、依赖方向、变化点和 SOLID 风险后重新调用 sf_expand",
|
|
1745
|
-
},
|
|
1746
|
-
};
|
|
1778
|
+
preImplementationBlocks.push({
|
|
1779
|
+
code: TOOL_DIAGNOSTIC_CODES.oodMissingSummary,
|
|
1780
|
+
reason_zh: oodGate.reason_zh,
|
|
1781
|
+
});
|
|
1747
1782
|
}
|
|
1748
|
-
}
|
|
1749
|
-
// 问题六十七: 后端接口编码必须先确认工程边界与验收证据。
|
|
1750
|
-
{
|
|
1751
1783
|
const backendModule = await lazyBackendImplementation();
|
|
1752
1784
|
const backendGate = backendModule.evaluateBackendImplementationGate({
|
|
1753
1785
|
task_id: args.task_id,
|
|
@@ -1757,42 +1789,46 @@ export async function registerTools(server, deps) {
|
|
|
1757
1789
|
});
|
|
1758
1790
|
if (backendGate.applicable) {
|
|
1759
1791
|
ctx.backend_implementation_work_package = backendGate.work_package;
|
|
1760
|
-
|
|
1792
|
+
preImplementationPayload.backend_implementation_work_package = backendGate.work_package;
|
|
1761
1793
|
}
|
|
1762
1794
|
if (!backendGate.allowed) {
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
diagnostic_code: TOOL_DIAGNOSTIC_CODES.backendMissingSummary,
|
|
1768
|
-
backend_implementation_work_package: backendGate.work_package,
|
|
1769
|
-
recovery: "请补齐 DTO/校验、事务一致性、安全审计、契约对齐与测试证据后重新调用 sf_expand",
|
|
1770
|
-
},
|
|
1771
|
-
};
|
|
1795
|
+
preImplementationBlocks.push({
|
|
1796
|
+
code: TOOL_DIAGNOSTIC_CODES.backendMissingSummary,
|
|
1797
|
+
reason_zh: backendGate.reason_zh,
|
|
1798
|
+
});
|
|
1772
1799
|
}
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1800
|
+
if (ctx.classification.task_type !== "scaffold") {
|
|
1801
|
+
const obsModule = await lazyCodeObservability();
|
|
1802
|
+
const obsGate = obsModule.evaluateCodeObservabilityGate({
|
|
1803
|
+
task_id: args.task_id,
|
|
1804
|
+
intent: ctx.intent,
|
|
1805
|
+
route: expansionRoute,
|
|
1806
|
+
changed_files: ctx.execution?.changed_files,
|
|
1807
|
+
work_package: ctx.code_observability_work_package,
|
|
1808
|
+
});
|
|
1809
|
+
if (obsGate.applicable) {
|
|
1810
|
+
ctx.code_observability_work_package = obsGate.work_package;
|
|
1811
|
+
preImplementationPayload.code_observability_work_package = obsGate.work_package;
|
|
1812
|
+
}
|
|
1813
|
+
if (!obsGate.allowed) {
|
|
1814
|
+
preImplementationBlocks.push({
|
|
1815
|
+
code: TOOL_DIAGNOSTIC_CODES.codeObservabilityWorkPackage,
|
|
1816
|
+
reason_zh: obsGate.reason_zh,
|
|
1817
|
+
});
|
|
1818
|
+
}
|
|
1819
|
+
}
|
|
1820
|
+
if (Object.keys(preImplementationPayload).length > 0) {
|
|
1786
1821
|
await taskContext.save(ctx);
|
|
1787
1822
|
}
|
|
1788
|
-
if (
|
|
1823
|
+
if (preImplementationBlocks.length > 0) {
|
|
1789
1824
|
return {
|
|
1790
1825
|
result: {
|
|
1791
|
-
error:
|
|
1792
|
-
status: "
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1826
|
+
error: "编码前工程契约未全部确认,不得开始实现",
|
|
1827
|
+
status: "awaiting_implementation_contracts",
|
|
1828
|
+
diagnostic_codes: preImplementationBlocks.map((b) => b.code),
|
|
1829
|
+
blocking_findings: preImplementationBlocks,
|
|
1830
|
+
...preImplementationPayload,
|
|
1831
|
+
recovery: "请同时确认 OOD/SOLID、后端工程边界、代码注释与日志契约后重新调用 sf_expand",
|
|
1796
1832
|
},
|
|
1797
1833
|
};
|
|
1798
1834
|
}
|