soloforge 1.4.16 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (721) hide show
  1. package/README.md +76 -3
  2. package/dist/adapters/claude_code/claude_md.d.ts +1 -1
  3. package/dist/adapters/claude_code/claude_md.d.ts.map +1 -1
  4. package/dist/adapters/claude_code/claude_md.js.map +1 -1
  5. package/dist/adapters/claude_code/pre_prompt_contract.d.ts +4 -59
  6. package/dist/adapters/claude_code/pre_prompt_contract.d.ts.map +1 -1
  7. package/dist/adapters/claude_code/pre_prompt_contract.js +3 -111
  8. package/dist/adapters/claude_code/pre_prompt_contract.js.map +1 -1
  9. package/dist/adapters/claude_code/server.d.ts +1 -1
  10. package/dist/adapters/claude_code/server.d.ts.map +1 -1
  11. package/dist/adapters/claude_code/server.js.map +1 -1
  12. package/dist/adapters/claude_code/tools.d.ts +1 -1
  13. package/dist/adapters/claude_code/tools.d.ts.map +1 -1
  14. package/dist/adapters/claude_code/tools.js +65 -46
  15. package/dist/adapters/claude_code/tools.js.map +1 -1
  16. package/dist/adapters/codex/codex_rules.d.ts +1 -1
  17. package/dist/adapters/codex/codex_rules.d.ts.map +1 -1
  18. package/dist/adapters/codex/codex_rules.js +1 -24
  19. package/dist/adapters/codex/codex_rules.js.map +1 -1
  20. package/dist/adapters/shared/workflow_template.d.ts +8 -12
  21. package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
  22. package/dist/adapters/shared/workflow_template.js +16 -78
  23. package/dist/adapters/shared/workflow_template.js.map +1 -1
  24. package/dist/adapters/trae/trae_rules.d.ts +1 -1
  25. package/dist/adapters/trae/trae_rules.d.ts.map +1 -1
  26. package/dist/adapters/trae/trae_rules.js +1 -10
  27. package/dist/adapters/trae/trae_rules.js.map +1 -1
  28. package/dist/bin/soloforge.d.ts.map +1 -1
  29. package/dist/bin/soloforge.js +53 -100
  30. package/dist/bin/soloforge.js.map +1 -1
  31. package/dist/engine/asset_manifest.d.ts.map +1 -1
  32. package/dist/engine/asset_manifest.js +118 -120
  33. package/dist/engine/asset_manifest.js.map +1 -1
  34. package/dist/engine/audit_pool.js.map +1 -1
  35. package/dist/engine/capability_registry.js +25 -25
  36. package/dist/engine/capability_registry.js.map +1 -1
  37. package/dist/engine/capability_state_store.js.map +1 -1
  38. package/dist/engine/change_coordinator.d.ts +1 -1
  39. package/dist/engine/change_coordinator.d.ts.map +1 -1
  40. package/dist/engine/change_coordinator.js.map +1 -1
  41. package/dist/engine/classifier.d.ts +1 -1
  42. package/dist/engine/classifier.d.ts.map +1 -1
  43. package/dist/engine/classifier.js +1 -1
  44. package/dist/engine/classifier.js.map +1 -1
  45. package/dist/engine/code_reviewer.d.ts +1 -1
  46. package/dist/engine/code_reviewer.d.ts.map +1 -1
  47. package/dist/engine/code_reviewer.js +1 -1
  48. package/dist/engine/code_reviewer.js.map +1 -1
  49. package/dist/engine/confidence_scorer.d.ts +1 -1
  50. package/dist/engine/confidence_scorer.d.ts.map +1 -1
  51. package/dist/engine/config_auto_repair.js.map +1 -1
  52. package/dist/engine/config_precedence_contract.js.map +1 -1
  53. package/dist/engine/consumable_asset_registry.d.ts +1 -1
  54. package/dist/engine/consumable_asset_registry.d.ts.map +1 -1
  55. package/dist/engine/consumable_asset_registry.js +236 -126
  56. package/dist/engine/consumable_asset_registry.js.map +1 -1
  57. package/dist/engine/consumption_trace_store.d.ts +40 -6
  58. package/dist/engine/consumption_trace_store.d.ts.map +1 -1
  59. package/dist/engine/consumption_trace_store.js +90 -47
  60. package/dist/engine/consumption_trace_store.js.map +1 -1
  61. package/dist/engine/contract_guard.d.ts +1 -1
  62. package/dist/engine/contract_guard.d.ts.map +1 -1
  63. package/dist/engine/contract_guard.js +9 -8
  64. package/dist/engine/contract_guard.js.map +1 -1
  65. package/dist/engine/contract_registry.d.ts.map +1 -1
  66. package/dist/engine/contract_registry.js +9 -11
  67. package/dist/engine/contract_registry.js.map +1 -1
  68. package/dist/engine/control_plane_contract.d.ts.map +1 -1
  69. package/dist/engine/control_plane_contract.js +7 -3
  70. package/dist/engine/control_plane_contract.js.map +1 -1
  71. package/dist/engine/convention_detector.js.map +1 -1
  72. package/dist/engine/core_engineering_principles.d.ts +1 -1
  73. package/dist/engine/core_engineering_principles.d.ts.map +1 -1
  74. package/dist/engine/core_engineering_principles.js +6 -6
  75. package/dist/engine/core_engineering_principles.js.map +1 -1
  76. package/dist/engine/core_experience_principle.d.ts +2 -2
  77. package/dist/engine/core_experience_principle.d.ts.map +1 -1
  78. package/dist/engine/core_experience_principle.js +4 -4
  79. package/dist/engine/core_experience_principle.js.map +1 -1
  80. package/dist/engine/debt_reporter.d.ts +1 -1
  81. package/dist/engine/debt_reporter.d.ts.map +1 -1
  82. package/dist/engine/debt_tracker.d.ts +1 -1
  83. package/dist/engine/debt_tracker.d.ts.map +1 -1
  84. package/dist/engine/debt_tracker.js.map +1 -1
  85. package/dist/engine/debugger.d.ts +1 -1
  86. package/dist/engine/debugger.d.ts.map +1 -1
  87. package/dist/engine/delivery.d.ts +1 -1
  88. package/dist/engine/delivery.d.ts.map +1 -1
  89. package/dist/engine/delivery.js.map +1 -1
  90. package/dist/engine/delivery_readiness.d.ts +2 -2
  91. package/dist/engine/delivery_readiness.d.ts.map +1 -1
  92. package/dist/engine/delivery_readiness.js.map +1 -1
  93. package/dist/engine/dependency_scanner.d.ts +1 -1
  94. package/dist/engine/dependency_scanner.d.ts.map +1 -1
  95. package/dist/engine/design_lifecycle_contract.js +2 -2
  96. package/dist/engine/design_lifecycle_contract.js.map +1 -1
  97. package/dist/engine/developer_sovereignty.d.ts +1 -1
  98. package/dist/engine/developer_sovereignty.d.ts.map +1 -1
  99. package/dist/engine/developer_sovereignty.js.map +1 -1
  100. package/dist/engine/diff_ownership_store.js.map +1 -1
  101. package/dist/engine/dual_layer_mechanism_registry.d.ts +1 -1
  102. package/dist/engine/dual_layer_mechanism_registry.d.ts.map +1 -1
  103. package/dist/engine/dual_layer_mechanism_registry.js +206 -84
  104. package/dist/engine/dual_layer_mechanism_registry.js.map +1 -1
  105. package/dist/engine/evolution_regression_gate.d.ts +2 -2
  106. package/dist/engine/evolution_regression_gate.js +3 -3
  107. package/dist/engine/evolution_regression_gate.js.map +1 -1
  108. package/dist/engine/evolver.d.ts +1 -1
  109. package/dist/engine/evolver.d.ts.map +1 -1
  110. package/dist/engine/evolver.js +1 -1
  111. package/dist/engine/evolver.js.map +1 -1
  112. package/dist/engine/expand_pipeline.d.ts +1 -1
  113. package/dist/engine/expand_pipeline.d.ts.map +1 -1
  114. package/dist/engine/explicit_asset_registry.d.ts.map +1 -1
  115. package/dist/engine/explicit_asset_registry.js +641 -268
  116. package/dist/engine/explicit_asset_registry.js.map +1 -1
  117. package/dist/engine/exploration.d.ts +1 -1
  118. package/dist/engine/exploration.d.ts.map +1 -1
  119. package/dist/engine/extension_platform_contracts.d.ts +2 -4
  120. package/dist/engine/extension_platform_contracts.d.ts.map +1 -1
  121. package/dist/engine/extension_platform_contracts.js +2 -3
  122. package/dist/engine/extension_platform_contracts.js.map +1 -1
  123. package/dist/engine/extension_scenario_registry.d.ts.map +1 -1
  124. package/dist/engine/extension_scenario_registry.js +5 -18
  125. package/dist/engine/extension_scenario_registry.js.map +1 -1
  126. package/dist/engine/failure_classifier.d.ts +1 -1
  127. package/dist/engine/failure_classifier.d.ts.map +1 -1
  128. package/dist/engine/feasibility_checker.d.ts +1 -1
  129. package/dist/engine/feasibility_checker.d.ts.map +1 -1
  130. package/dist/engine/foundation_scenario_registry.d.ts +3 -35
  131. package/dist/engine/foundation_scenario_registry.d.ts.map +1 -1
  132. package/dist/engine/foundation_scenario_registry.js +4 -181
  133. package/dist/engine/foundation_scenario_registry.js.map +1 -1
  134. package/dist/engine/foundation_scenario_runners.js +5 -5
  135. package/dist/engine/foundation_scenario_runners.js.map +1 -1
  136. package/dist/engine/gate_checks/checkAdapterLayerConsistency.d.ts +6 -0
  137. package/dist/engine/gate_checks/checkAdapterLayerConsistency.d.ts.map +1 -0
  138. package/dist/engine/gate_checks/checkAdapterLayerConsistency.js +117 -0
  139. package/dist/engine/gate_checks/checkAdapterLayerConsistency.js.map +1 -0
  140. package/dist/engine/gate_checks/checkCodeObservability.d.ts +6 -0
  141. package/dist/engine/gate_checks/checkCodeObservability.d.ts.map +1 -0
  142. package/dist/engine/gate_checks/checkCodeObservability.js +252 -0
  143. package/dist/engine/gate_checks/checkCodeObservability.js.map +1 -0
  144. package/dist/engine/gate_checks/checkCodeStyleEnforcement.d.ts +7 -0
  145. package/dist/engine/gate_checks/checkCodeStyleEnforcement.d.ts.map +1 -0
  146. package/dist/engine/gate_checks/checkCodeStyleEnforcement.js +73 -0
  147. package/dist/engine/gate_checks/checkCodeStyleEnforcement.js.map +1 -0
  148. package/dist/engine/gate_checks/checkControlPlaneTrust.d.ts +9 -0
  149. package/dist/engine/gate_checks/checkControlPlaneTrust.d.ts.map +1 -0
  150. package/dist/engine/gate_checks/checkControlPlaneTrust.js +111 -0
  151. package/dist/engine/gate_checks/checkControlPlaneTrust.js.map +1 -0
  152. package/dist/engine/gate_checks/checkCriticalProblemConsumption.d.ts +6 -0
  153. package/dist/engine/gate_checks/checkCriticalProblemConsumption.d.ts.map +1 -0
  154. package/dist/engine/gate_checks/checkCriticalProblemConsumption.js +476 -0
  155. package/dist/engine/gate_checks/checkCriticalProblemConsumption.js.map +1 -0
  156. package/dist/engine/gate_checks/checkDependencyAudit.d.ts +6 -0
  157. package/dist/engine/gate_checks/checkDependencyAudit.d.ts.map +1 -0
  158. package/dist/engine/gate_checks/checkDependencyAudit.js +40 -0
  159. package/dist/engine/gate_checks/checkDependencyAudit.js.map +1 -0
  160. package/dist/engine/gate_checks/checkDeprecatedCode.d.ts +6 -0
  161. package/dist/engine/gate_checks/checkDeprecatedCode.d.ts.map +1 -0
  162. package/dist/engine/gate_checks/checkDeprecatedCode.js +262 -0
  163. package/dist/engine/gate_checks/checkDeprecatedCode.js.map +1 -0
  164. package/dist/engine/gate_checks/checkDiagnosticCentralization.d.ts +9 -0
  165. package/dist/engine/gate_checks/checkDiagnosticCentralization.d.ts.map +1 -0
  166. package/dist/engine/gate_checks/checkDiagnosticCentralization.js +24 -0
  167. package/dist/engine/gate_checks/checkDiagnosticCentralization.js.map +1 -0
  168. package/dist/engine/gate_checks/checkDistFreshness.d.ts +6 -0
  169. package/dist/engine/gate_checks/checkDistFreshness.d.ts.map +1 -0
  170. package/dist/engine/gate_checks/checkDistFreshness.js +57 -0
  171. package/dist/engine/gate_checks/checkDistFreshness.js.map +1 -0
  172. package/dist/engine/gate_checks/checkDualLayerSemantics.d.ts +6 -0
  173. package/dist/engine/gate_checks/checkDualLayerSemantics.d.ts.map +1 -0
  174. package/dist/engine/gate_checks/checkDualLayerSemantics.js +88 -0
  175. package/dist/engine/gate_checks/checkDualLayerSemantics.js.map +1 -0
  176. package/dist/engine/gate_checks/checkImplementationContract.d.ts +6 -0
  177. package/dist/engine/gate_checks/checkImplementationContract.d.ts.map +1 -0
  178. package/dist/engine/gate_checks/checkImplementationContract.js +90 -0
  179. package/dist/engine/gate_checks/checkImplementationContract.js.map +1 -0
  180. package/dist/engine/gate_checks/checkKnowledgeAssetSchemaP0.d.ts +6 -0
  181. package/dist/engine/gate_checks/checkKnowledgeAssetSchemaP0.d.ts.map +1 -0
  182. package/dist/engine/gate_checks/checkKnowledgeAssetSchemaP0.js +30 -0
  183. package/dist/engine/gate_checks/checkKnowledgeAssetSchemaP0.js.map +1 -0
  184. package/dist/engine/gate_checks/checkKnowledgeLayer.d.ts +6 -0
  185. package/dist/engine/gate_checks/checkKnowledgeLayer.d.ts.map +1 -0
  186. package/dist/engine/gate_checks/checkKnowledgeLayer.js +163 -0
  187. package/dist/engine/gate_checks/checkKnowledgeLayer.js.map +1 -0
  188. package/dist/engine/gate_checks/checkLongTermMechanization.d.ts +6 -0
  189. package/dist/engine/gate_checks/checkLongTermMechanization.d.ts.map +1 -0
  190. package/dist/engine/gate_checks/checkLongTermMechanization.js +55 -0
  191. package/dist/engine/gate_checks/checkLongTermMechanization.js.map +1 -0
  192. package/dist/engine/gate_checks/checkMainlineConsumption.d.ts +6 -0
  193. package/dist/engine/gate_checks/checkMainlineConsumption.d.ts.map +1 -0
  194. package/dist/engine/gate_checks/checkMainlineConsumption.js +312 -0
  195. package/dist/engine/gate_checks/checkMainlineConsumption.js.map +1 -0
  196. package/dist/engine/gate_checks/checkMechanismChain.d.ts +6 -0
  197. package/dist/engine/gate_checks/checkMechanismChain.d.ts.map +1 -0
  198. package/dist/engine/gate_checks/checkMechanismChain.js +196 -0
  199. package/dist/engine/gate_checks/checkMechanismChain.js.map +1 -0
  200. package/dist/engine/gate_checks/checkMechanismIdentity.d.ts +6 -0
  201. package/dist/engine/gate_checks/checkMechanismIdentity.d.ts.map +1 -0
  202. package/dist/engine/gate_checks/checkMechanismIdentity.js +125 -0
  203. package/dist/engine/gate_checks/checkMechanismIdentity.js.map +1 -0
  204. package/dist/engine/gate_checks/checkReleaseIssueDesignPath.d.ts +6 -0
  205. package/dist/engine/gate_checks/checkReleaseIssueDesignPath.d.ts.map +1 -0
  206. package/dist/engine/gate_checks/checkReleaseIssueDesignPath.js +736 -0
  207. package/dist/engine/gate_checks/checkReleaseIssueDesignPath.js.map +1 -0
  208. package/dist/engine/gate_checks/checkStandardAssetCoverage.d.ts +6 -0
  209. package/dist/engine/gate_checks/checkStandardAssetCoverage.d.ts.map +1 -0
  210. package/dist/engine/gate_checks/checkStandardAssetCoverage.js +34 -0
  211. package/dist/engine/gate_checks/checkStandardAssetCoverage.js.map +1 -0
  212. package/dist/engine/gate_checks/checkStateChainHealth.d.ts +6 -0
  213. package/dist/engine/gate_checks/checkStateChainHealth.d.ts.map +1 -0
  214. package/dist/engine/gate_checks/checkStateChainHealth.js +147 -0
  215. package/dist/engine/gate_checks/checkStateChainHealth.js.map +1 -0
  216. package/dist/engine/gate_checks/checkTemplateKnowledgeHygiene.d.ts +10 -0
  217. package/dist/engine/gate_checks/checkTemplateKnowledgeHygiene.d.ts.map +1 -0
  218. package/dist/engine/gate_checks/checkTemplateKnowledgeHygiene.js +314 -0
  219. package/dist/engine/gate_checks/checkTemplateKnowledgeHygiene.js.map +1 -0
  220. package/dist/engine/gate_checks/checkTestPollution.d.ts +6 -0
  221. package/dist/engine/gate_checks/checkTestPollution.d.ts.map +1 -0
  222. package/dist/engine/gate_checks/checkTestPollution.js +67 -0
  223. package/dist/engine/gate_checks/checkTestPollution.js.map +1 -0
  224. package/dist/engine/gate_checks/checkWorkflowNavigation.d.ts +6 -0
  225. package/dist/engine/gate_checks/checkWorkflowNavigation.d.ts.map +1 -0
  226. package/dist/engine/gate_checks/checkWorkflowNavigation.js +168 -0
  227. package/dist/engine/gate_checks/checkWorkflowNavigation.js.map +1 -0
  228. package/dist/engine/gate_checks/helpers.d.ts +28 -0
  229. package/dist/engine/gate_checks/helpers.d.ts.map +1 -0
  230. package/dist/engine/gate_checks/helpers.js +91 -0
  231. package/dist/engine/gate_checks/helpers.js.map +1 -0
  232. package/dist/engine/gate_checks/types.d.ts +38 -0
  233. package/dist/engine/gate_checks/types.d.ts.map +1 -0
  234. package/dist/engine/gate_checks/types.js +5 -0
  235. package/dist/engine/gate_checks/types.js.map +1 -0
  236. package/dist/engine/governance_report.d.ts +1 -1
  237. package/dist/engine/governance_report.d.ts.map +1 -1
  238. package/dist/engine/helpers.d.ts +9 -0
  239. package/dist/engine/helpers.d.ts.map +1 -0
  240. package/dist/engine/helpers.js +13 -0
  241. package/dist/engine/helpers.js.map +1 -0
  242. package/dist/engine/hook_context_types.d.ts +66 -0
  243. package/dist/engine/hook_context_types.d.ts.map +1 -0
  244. package/dist/engine/hook_context_types.js +118 -0
  245. package/dist/engine/hook_context_types.js.map +1 -0
  246. package/dist/engine/impact_analyzer.d.ts +1 -1
  247. package/dist/engine/impact_analyzer.d.ts.map +1 -1
  248. package/dist/engine/impact_analyzer.js.map +1 -1
  249. package/dist/engine/input_material_extractor.d.ts.map +1 -1
  250. package/dist/engine/input_material_extractor.js +10 -9
  251. package/dist/engine/input_material_extractor.js.map +1 -1
  252. package/dist/engine/instruction_contract.d.ts +6 -0
  253. package/dist/engine/instruction_contract.d.ts.map +1 -1
  254. package/dist/engine/instruction_contract.js +2 -3
  255. package/dist/engine/instruction_contract.js.map +1 -1
  256. package/dist/engine/intent_expander.d.ts +10 -1
  257. package/dist/engine/intent_expander.d.ts.map +1 -1
  258. package/dist/engine/intent_expander.js +49 -9
  259. package/dist/engine/intent_expander.js.map +1 -1
  260. package/dist/engine/intent_router.d.ts +2 -0
  261. package/dist/engine/intent_router.d.ts.map +1 -1
  262. package/dist/engine/intent_router.js +1 -1
  263. package/dist/engine/intent_router.js.map +1 -1
  264. package/dist/engine/job_manager.js.map +1 -1
  265. package/dist/engine/knowledge_acceptance_registry.d.ts.map +1 -1
  266. package/dist/engine/knowledge_acceptance_registry.js +0 -10
  267. package/dist/engine/knowledge_acceptance_registry.js.map +1 -1
  268. package/dist/engine/knowledge_asset_consumer.d.ts +1 -1
  269. package/dist/engine/knowledge_asset_consumer.js +11 -11
  270. package/dist/engine/knowledge_asset_consumer.js.map +1 -1
  271. package/dist/engine/knowledge_asset_schema.d.ts +1 -1
  272. package/dist/engine/knowledge_asset_schema.js +1 -1
  273. package/dist/engine/knowledge_config_loader.d.ts.map +1 -1
  274. package/dist/engine/knowledge_config_loader.js +35 -4
  275. package/dist/engine/knowledge_config_loader.js.map +1 -1
  276. package/dist/engine/knowledge_injection_boundary.d.ts +1 -1
  277. package/dist/engine/knowledge_injection_boundary.d.ts.map +1 -1
  278. package/dist/engine/knowledge_injection_boundary.js +10 -4
  279. package/dist/engine/knowledge_injection_boundary.js.map +1 -1
  280. package/dist/engine/knowledge_manager.d.ts +1 -1
  281. package/dist/engine/knowledge_manager.d.ts.map +1 -1
  282. package/dist/engine/knowledge_scenario_registry.d.ts.map +1 -1
  283. package/dist/engine/knowledge_scenario_registry.js +0 -8
  284. package/dist/engine/knowledge_scenario_registry.js.map +1 -1
  285. package/dist/engine/knowledge_sovereignty.js.map +1 -1
  286. package/dist/engine/knowledge_template_contracts.d.ts +0 -1
  287. package/dist/engine/knowledge_template_contracts.d.ts.map +1 -1
  288. package/dist/engine/knowledge_template_contracts.js.map +1 -1
  289. package/dist/engine/legacy_type_migration.d.ts +63 -0
  290. package/dist/engine/legacy_type_migration.d.ts.map +1 -0
  291. package/dist/engine/legacy_type_migration.js +227 -0
  292. package/dist/engine/legacy_type_migration.js.map +1 -0
  293. package/dist/engine/lifecycle_knowledge_contract.d.ts +1 -1
  294. package/dist/engine/lifecycle_knowledge_contract.d.ts.map +1 -1
  295. package/dist/engine/local_docker_acceptance.js.map +1 -1
  296. package/dist/engine/log_governance.js +1 -1
  297. package/dist/engine/log_governance.js.map +1 -1
  298. package/dist/engine/main_path_integration_contract.js.map +1 -1
  299. package/dist/engine/mechanism_contract_registry.d.ts.map +1 -1
  300. package/dist/engine/mechanism_contract_registry.js +79 -14
  301. package/dist/engine/mechanism_contract_registry.js.map +1 -1
  302. package/dist/engine/mechanism_health_check.d.ts.map +1 -1
  303. package/dist/engine/mechanism_health_check.js +2 -3
  304. package/dist/engine/mechanism_health_check.js.map +1 -1
  305. package/dist/engine/migration_guard.d.ts +1 -1
  306. package/dist/engine/migration_guard.d.ts.map +1 -1
  307. package/dist/engine/mutation_audit.d.ts +1 -1
  308. package/dist/engine/mutation_audit.d.ts.map +1 -1
  309. package/dist/engine/next_action_planner.d.ts +1 -1
  310. package/dist/engine/next_action_planner.d.ts.map +1 -1
  311. package/dist/engine/next_action_planner.js +32 -36
  312. package/dist/engine/next_action_planner.js.map +1 -1
  313. package/dist/engine/observability.d.ts +1 -1
  314. package/dist/engine/observability.d.ts.map +1 -1
  315. package/dist/engine/observability.js.map +1 -1
  316. package/dist/engine/observed_consumption.d.ts.map +1 -1
  317. package/dist/engine/observed_consumption.js +5 -2
  318. package/dist/engine/observed_consumption.js.map +1 -1
  319. package/dist/engine/onboarding.d.ts +1 -1
  320. package/dist/engine/onboarding.d.ts.map +1 -1
  321. package/dist/engine/privacy_secret_contract.js +1 -1
  322. package/dist/engine/privacy_secret_contract.js.map +1 -1
  323. package/dist/engine/project_knowledge_contract.d.ts +1 -1
  324. package/dist/engine/project_knowledge_contract.d.ts.map +1 -1
  325. package/dist/engine/project_knowledge_contract.js +2 -1
  326. package/dist/engine/project_knowledge_contract.js.map +1 -1
  327. package/dist/engine/project_stage_detector.js.map +1 -1
  328. package/dist/engine/regression_matrix.js.map +1 -1
  329. package/dist/engine/release_issue_scenario_registry.d.ts +1 -3
  330. package/dist/engine/release_issue_scenario_registry.d.ts.map +1 -1
  331. package/dist/engine/release_issue_scenario_registry.js +7 -49
  332. package/dist/engine/release_issue_scenario_registry.js.map +1 -1
  333. package/dist/engine/release_readiness_gate.d.ts +25 -39
  334. package/dist/engine/release_readiness_gate.d.ts.map +1 -1
  335. package/dist/engine/release_readiness_gate.js +129 -3353
  336. package/dist/engine/release_readiness_gate.js.map +1 -1
  337. package/dist/engine/release_tool_harness.d.ts +2 -2
  338. package/dist/engine/release_tool_harness.d.ts.map +1 -1
  339. package/dist/engine/release_tool_harness.js +1 -1
  340. package/dist/engine/rollback_router.d.ts +35 -0
  341. package/dist/engine/rollback_router.d.ts.map +1 -0
  342. package/dist/engine/rollback_router.js +50 -0
  343. package/dist/engine/rollback_router.js.map +1 -0
  344. package/dist/engine/scaffolder.d.ts +1 -1
  345. package/dist/engine/scaffolder.d.ts.map +1 -1
  346. package/dist/engine/scope_controller.d.ts +1 -1
  347. package/dist/engine/scope_controller.d.ts.map +1 -1
  348. package/dist/engine/scope_controller.js +1 -1
  349. package/dist/engine/scope_controller.js.map +1 -1
  350. package/dist/engine/scope_resolver.d.ts +1 -1
  351. package/dist/engine/scope_resolver.d.ts.map +1 -1
  352. package/dist/engine/semantic_evidence.d.ts +1 -1
  353. package/dist/engine/semantic_evidence.d.ts.map +1 -1
  354. package/dist/engine/slice_executor.d.ts +79 -0
  355. package/dist/engine/slice_executor.d.ts.map +1 -0
  356. package/dist/engine/slice_executor.js +100 -0
  357. package/dist/engine/slice_executor.js.map +1 -0
  358. package/dist/engine/source_code_matcher.js +1 -1
  359. package/dist/engine/source_code_matcher.js.map +1 -1
  360. package/dist/engine/stage_gate_engine.d.ts +32 -0
  361. package/dist/engine/stage_gate_engine.d.ts.map +1 -0
  362. package/dist/engine/stage_gate_engine.js +105 -0
  363. package/dist/engine/stage_gate_engine.js.map +1 -0
  364. package/dist/engine/stale_current_task_detector.js.map +1 -1
  365. package/dist/engine/standard_asset_contract.d.ts +1 -1
  366. package/dist/engine/standard_asset_contract.d.ts.map +1 -1
  367. package/dist/engine/standard_asset_contract.js +7 -7
  368. package/dist/engine/standard_asset_contract.js.map +1 -1
  369. package/dist/engine/standard_asset_coverage.js +19 -19
  370. package/dist/engine/standard_asset_coverage.js.map +1 -1
  371. package/dist/engine/task_context.d.ts +6 -6
  372. package/dist/engine/task_context.d.ts.map +1 -1
  373. package/dist/engine/task_context.js +22 -20
  374. package/dist/engine/task_context.js.map +1 -1
  375. package/dist/engine/task_planner.d.ts +2 -2
  376. package/dist/engine/task_planner.d.ts.map +1 -1
  377. package/dist/engine/task_planner.js.map +1 -1
  378. package/dist/engine/task_stage_detector.d.ts +7 -1
  379. package/dist/engine/task_stage_detector.d.ts.map +1 -1
  380. package/dist/engine/task_stage_detector.js +82 -123
  381. package/dist/engine/task_stage_detector.js.map +1 -1
  382. package/dist/engine/team_awareness.d.ts +1 -1
  383. package/dist/engine/team_awareness.d.ts.map +1 -1
  384. package/dist/engine/team_awareness.js.map +1 -1
  385. package/dist/engine/template_asset_contract_registry.d.ts +2 -2
  386. package/dist/engine/template_asset_contract_registry.d.ts.map +1 -1
  387. package/dist/engine/template_asset_contract_registry.js +37 -10
  388. package/dist/engine/template_asset_contract_registry.js.map +1 -1
  389. package/dist/engine/template_asset_visibility.js +1 -1
  390. package/dist/engine/template_asset_visibility.js.map +1 -1
  391. package/dist/engine/template_init_sync.d.ts +29 -0
  392. package/dist/engine/template_init_sync.d.ts.map +1 -1
  393. package/dist/engine/template_init_sync.js +246 -69
  394. package/dist/engine/template_init_sync.js.map +1 -1
  395. package/dist/engine/template_manifest_io.d.ts +1 -1
  396. package/dist/engine/template_manifest_io.d.ts.map +1 -1
  397. package/dist/engine/template_manifest_io.js +13 -9
  398. package/dist/engine/template_manifest_io.js.map +1 -1
  399. package/dist/engine/template_mechanism_auditor.d.ts +1 -1
  400. package/dist/engine/template_mechanism_auditor.d.ts.map +1 -1
  401. package/dist/engine/template_mechanism_auditor.js +10 -10
  402. package/dist/engine/template_mechanism_auditor.js.map +1 -1
  403. package/dist/engine/test_generator.d.ts +1 -1
  404. package/dist/engine/test_generator.d.ts.map +1 -1
  405. package/dist/engine/test_quality.d.ts +1 -1
  406. package/dist/engine/test_quality.d.ts.map +1 -1
  407. package/dist/engine/tool_invocation_contract_registry.js +7 -7
  408. package/dist/engine/tool_invocation_contract_registry.js.map +1 -1
  409. package/dist/engine/traceability.d.ts +3 -3
  410. package/dist/engine/traceability.d.ts.map +1 -1
  411. package/dist/engine/traceability.js +1 -1
  412. package/dist/engine/traceability.js.map +1 -1
  413. package/dist/engine/user_feedback_contract.d.ts +1 -1
  414. package/dist/engine/user_feedback_contract.d.ts.map +1 -1
  415. package/dist/engine/user_feedback_contract.js +5 -5
  416. package/dist/engine/user_feedback_contract.js.map +1 -1
  417. package/dist/engine/verifier.d.ts +1 -1
  418. package/dist/engine/verifier.d.ts.map +1 -1
  419. package/dist/engine/verifier.js +1 -1
  420. package/dist/engine/verifier.js.map +1 -1
  421. package/dist/engine/workflow_contract_registry.d.ts +80 -42
  422. package/dist/engine/workflow_contract_registry.d.ts.map +1 -1
  423. package/dist/engine/workflow_contract_registry.js +341 -152
  424. package/dist/engine/workflow_contract_registry.js.map +1 -1
  425. package/dist/engine/workflow_navigation_contract.d.ts +17 -3
  426. package/dist/engine/workflow_navigation_contract.d.ts.map +1 -1
  427. package/dist/engine/workflow_navigation_contract.js +8 -16
  428. package/dist/engine/workflow_navigation_contract.js.map +1 -1
  429. package/dist/engine/workflow_rule_generator.d.ts +22 -0
  430. package/dist/engine/workflow_rule_generator.d.ts.map +1 -0
  431. package/dist/engine/workflow_rule_generator.js +83 -0
  432. package/dist/engine/workflow_rule_generator.js.map +1 -0
  433. package/dist/engine/zero_config_init.js.map +1 -1
  434. package/dist/knowledge/conflict_detector.d.ts +1 -1
  435. package/dist/knowledge/conflict_detector.d.ts.map +1 -1
  436. package/dist/knowledge/conflict_detector.js +2 -1
  437. package/dist/knowledge/conflict_detector.js.map +1 -1
  438. package/dist/knowledge/health_checker.d.ts +1 -1
  439. package/dist/knowledge/health_checker.d.ts.map +1 -1
  440. package/dist/knowledge/index_manager.d.ts +1 -1
  441. package/dist/knowledge/index_manager.d.ts.map +1 -1
  442. package/dist/knowledge/index_manager.js +7 -5
  443. package/dist/knowledge/index_manager.js.map +1 -1
  444. package/dist/knowledge/loader.d.ts +1 -1
  445. package/dist/knowledge/loader.d.ts.map +1 -1
  446. package/dist/knowledge/loader.js +7 -5
  447. package/dist/knowledge/loader.js.map +1 -1
  448. package/dist/knowledge/writer.d.ts +1 -1
  449. package/dist/knowledge/writer.d.ts.map +1 -1
  450. package/dist/types/analysis.d.ts +353 -0
  451. package/dist/types/analysis.d.ts.map +1 -0
  452. package/dist/types/analysis.js +2 -0
  453. package/dist/types/analysis.js.map +1 -0
  454. package/dist/types/base.d.ts +11 -0
  455. package/dist/types/base.d.ts.map +1 -0
  456. package/dist/{types.js → types/base.js} +1 -1
  457. package/dist/types/base.js.map +1 -0
  458. package/dist/types/config.d.ts +128 -0
  459. package/dist/types/config.d.ts.map +1 -0
  460. package/dist/types/config.js +2 -0
  461. package/dist/types/config.js.map +1 -0
  462. package/dist/types/delivery.d.ts +261 -0
  463. package/dist/types/delivery.d.ts.map +1 -0
  464. package/dist/types/delivery.js +2 -0
  465. package/dist/types/delivery.js.map +1 -0
  466. package/dist/types/dual_layer.d.ts +97 -0
  467. package/dist/types/dual_layer.d.ts.map +1 -0
  468. package/dist/types/dual_layer.js +3 -0
  469. package/dist/types/dual_layer.js.map +1 -0
  470. package/dist/types/evidence.d.ts +41 -0
  471. package/dist/types/evidence.d.ts.map +1 -0
  472. package/dist/types/evidence.js +3 -0
  473. package/dist/types/evidence.js.map +1 -0
  474. package/dist/types/execution.d.ts +31 -0
  475. package/dist/types/execution.d.ts.map +1 -0
  476. package/dist/types/execution.js +3 -0
  477. package/dist/types/execution.js.map +1 -0
  478. package/dist/types/index.d.ts +13 -0
  479. package/dist/types/index.d.ts.map +1 -0
  480. package/dist/types/index.js +13 -0
  481. package/dist/types/index.js.map +1 -0
  482. package/dist/types/knowledge.d.ts +105 -0
  483. package/dist/types/knowledge.d.ts.map +1 -0
  484. package/dist/types/knowledge.js +5 -0
  485. package/dist/types/knowledge.js.map +1 -0
  486. package/dist/types/phase.d.ts +50 -0
  487. package/dist/types/phase.d.ts.map +1 -0
  488. package/dist/types/phase.js +3 -0
  489. package/dist/types/phase.js.map +1 -0
  490. package/dist/types/pipeline.d.ts +353 -0
  491. package/dist/types/pipeline.d.ts.map +1 -0
  492. package/dist/types/pipeline.js +2 -0
  493. package/dist/types/pipeline.js.map +1 -0
  494. package/dist/types/review.d.ts +149 -0
  495. package/dist/types/review.d.ts.map +1 -0
  496. package/dist/types/review.js +2 -0
  497. package/dist/types/review.js.map +1 -0
  498. package/dist/types/task.d.ts +203 -0
  499. package/dist/types/task.d.ts.map +1 -0
  500. package/dist/types/task.js +2 -0
  501. package/dist/types/task.js.map +1 -0
  502. package/package.json +3 -6
  503. package/templates/artifacts/existing-system//344/270/200/351/224/256/345/274/200/345/205/263/351/205/215/347/275/256/346/250/241/347/211/210.json +24 -0
  504. package/templates/artifacts/existing-system//345/216/206/345/217/262/346/225/260/346/215/256/346/270/205/346/264/227/350/204/232/346/234/254/346/250/241/347/211/210.md +44 -0
  505. package/templates/artifacts/existing-system//345/216/206/345/217/262/351/201/227/347/225/231/351/233/267/345/214/272/346/270/205/345/215/225/346/250/241/347/211/210.md +43 -0
  506. package/templates/artifacts/existing-system//345/220/221/345/220/216/345/205/274/345/256/271/346/200/247/345/220/210/350/247/204/346/212/245/345/221/212/346/250/241/347/211/210.md +36 -0
  507. package/templates/artifacts/existing-system//345/242/236/351/207/217/350/276/271/347/225/214/347/225/214/345/256/232/346/226/207/346/241/243/346/250/241/347/211/210.md +36 -0
  508. package/templates/artifacts/existing-system//346/224/271/351/200/240/345/275/261/345/223/215/350/214/203/345/233/264/350/257/204/344/274/260/346/250/241/347/211/210.md +39 -0
  509. package/templates/artifacts/existing-system//346/225/260/346/215/256/350/241/200/347/274/230/345/233/276/346/250/241/347/211/210.md +36 -0
  510. package/templates/artifacts/existing-system//346/226/260/350/200/201/351/200/273/350/276/221/346/257/224/345/257/271/346/227/245/345/277/227/346/250/241/347/211/210.md +29 -0
  511. package/templates/artifacts/existing-system//347/264/247/346/200/245/345/233/236/346/273/232/346/211/213/345/206/214/346/250/241/347/211/210.md +38 -0
  512. package/templates/artifacts/existing-system//351/232/224/347/246/273/351/200/202/351/205/215/345/231/250/346/226/271/346/241/210/346/250/241/347/211/210.md +34 -0
  513. package/templates/artifacts/shared/ADR/346/250/241/347/211/210.md +41 -0
  514. package/templates/{knowledge/acceptance_templates → artifacts/shared}/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243/346/250/241/347/211/210.md +25 -0
  515. package/templates/artifacts/shared//344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212/346/250/241/347/211/210.md +33 -0
  516. package/templates/artifacts/shared//345/210/207/347/211/207/350/256/241/345/210/222/346/250/241/347/211/210.md +45 -0
  517. package/templates/{knowledge/acceptance_templates → artifacts/shared}//345/216/237/345/236/213/350/257/264/346/230/216/346/250/241/347/211/210.md +2 -0
  518. package/templates/{knowledge/acceptance_templates → artifacts/shared}//346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/347/211/210.md +7 -0
  519. package/templates/gates/existing-system/gate-/347/216/260/346/234/211/347/263/273/347/273/237/345/210/206/346/236/220.yaml +13 -0
  520. package/templates/gates/existing-system/gate-/347/274/226/347/240/201/344/270/216/345/215/225/345/205/203/346/265/213/350/257/225.yaml +18 -0
  521. package/templates/gates/existing-system/gate-/350/257/225/350/277/220/350/241/214.yaml +21 -0
  522. package/templates/gates/shared/gate-/344/273/273/345/212/241/350/247/204/345/210/222.yaml +18 -0
  523. package/templates/gates/shared/gate-/347/274/226/347/240/201/344/270/216/345/215/225/345/205/203/346/265/213/350/257/225.yaml +14 -0
  524. package/templates/{knowledge/rules//346/225/217/346/204/237/344/277/241/346/201/257/346/227/245/345/277/227 → internal/rules//346/225/217/346/204/237/344/277/241/346/201/257/345/244/204/347/220/206}/350/247/204/345/210/231.md +42 -19
  525. package/templates/{knowledge → internal}/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 +2 -0
  526. package/templates/{knowledge/procedures → procedures}//346/236/266/346/236/204/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +1 -1
  527. package/templates/{knowledge/procedures → 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
  528. package/templates/{knowledge/procedures → procedures}//350/260/203/350/257/225/346/216/222/346/237/245/346/265/201/347/250/213.md +1 -1
  529. package/templates/{knowledge/procedures → procedures}//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +1 -1
  530. package/templates/rules/existing-system//345/205/274/345/256/271/346/200/247/346/243/200/346/237/245/350/247/204/345/210/231.md +33 -0
  531. package/templates/rules/existing-system//350/200/246/345/220/210/346/243/200/346/265/213/350/247/204/345/210/231.md +35 -0
  532. package/templates/rules/existing-system//350/257/225/350/277/220/350/241/214/347/206/224/346/226/255/350/247/204/345/210/231.md +39 -0
  533. package/templates/rules/existing-system//351/230/262/345/276/241/346/200/247/347/274/226/347/240/201/350/247/204/345/210/231.md +35 -0
  534. package/templates/rules/existing-system//351/233/267/345/214/272/345/217/215/346/250/241/345/274/217/346/270/205/345/215/225.md +34 -0
  535. package/templates/rules/new-system//350/201/224/350/260/203/350/256/276/350/256/241/347/274/272/351/231/267/345/210/244/345/256/232/350/247/204/345/210/231.md +36 -0
  536. package/templates/rules/shared//344/270/200/350/207/264/346/200/247/346/240/241/351/252/214/350/247/204/345/210/231.md +21 -0
  537. package/templates/rules/shared//350/201/224/350/260/203/351/252/214/350/257/201/346/270/205/345/215/225.md +29 -0
  538. package/templates/rules/shared//350/246/206/347/233/226/347/216/207/346/240/207/345/207/206.md +26 -0
  539. package/dist/engine/deprecated_contract.d.ts +0 -21
  540. package/dist/engine/deprecated_contract.d.ts.map +0 -1
  541. package/dist/engine/deprecated_contract.js +0 -14
  542. package/dist/engine/deprecated_contract.js.map +0 -1
  543. package/dist/engine/historical_issue_mechanization_matrix.d.ts +0 -28
  544. package/dist/engine/historical_issue_mechanization_matrix.d.ts.map +0 -1
  545. package/dist/engine/historical_issue_mechanization_matrix.js +0 -134
  546. package/dist/engine/historical_issue_mechanization_matrix.js.map +0 -1
  547. package/dist/engine/implementation_roadmap_registry.d.ts +0 -105
  548. package/dist/engine/implementation_roadmap_registry.d.ts.map +0 -1
  549. package/dist/engine/implementation_roadmap_registry.js +0 -1340
  550. package/dist/engine/implementation_roadmap_registry.js.map +0 -1
  551. package/dist/engine/mechanism_family_registry.d.ts +0 -48
  552. package/dist/engine/mechanism_family_registry.d.ts.map +0 -1
  553. package/dist/engine/mechanism_family_registry.js +0 -197
  554. package/dist/engine/mechanism_family_registry.js.map +0 -1
  555. package/dist/engine/project_knowledge_system_regression_matrix.d.ts +0 -27
  556. package/dist/engine/project_knowledge_system_regression_matrix.d.ts.map +0 -1
  557. package/dist/engine/project_knowledge_system_regression_matrix.js +0 -295
  558. package/dist/engine/project_knowledge_system_regression_matrix.js.map +0 -1
  559. package/dist/engine/release_gate.d.ts +0 -29
  560. package/dist/engine/release_gate.d.ts.map +0 -1
  561. package/dist/engine/release_gate.js +0 -675
  562. package/dist/engine/release_gate.js.map +0 -1
  563. package/dist/types.d.ts +0 -1737
  564. package/dist/types.d.ts.map +0 -1
  565. package/dist/types.js.map +0 -1
  566. package/templates/knowledge/acceptance_templates//346/216/245/345/217/243/350/256/276/350/256/241/346/250/241/347/211/210.md +0 -82
  567. package/templates/knowledge/procedures//346/236/266/346/236/204/350/256/276/350/256/241/346/265/201/347/250/213.md +0 -57
  568. package/templates/knowledge/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/347/250/213.md +0 -60
  569. package/templates/knowledge/procedures//347/274/272/351/231/267/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +0 -55
  570. package/templates/knowledge/procedures//351/252/214/350/257/201/350/256/241/345/210/222/346/265/201/347/250/213.md +0 -59
  571. package/templates/knowledge/rules//346/225/217/346/204/237/344/277/241/346/201/257/345/244/204/347/220/206/350/247/204/345/210/231.md +0 -56
  572. package/templates/knowledge/rules//346/274/224/350/277/233/345/233/236/345/275/222/350/247/204/345/210/231.md +0 -51
  573. /package/templates/{knowledge/acceptance_templates → artifacts/shared}/Bug/345/210/206/346/236/220/346/250/241/347/211/210.md" +0 -0
  574. /package/templates/{knowledge/acceptance_templates → artifacts/shared}/OOD/350/256/276/350/256/241/346/221/230/350/246/201/346/250/241/347/211/210.md" +0 -0
  575. /package/templates/{knowledge/acceptance_templates → artifacts/shared}/POC/347/273/223/350/256/272/346/250/241/347/211/210.md" +0 -0
  576. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//344/273/243/347/240/201/346/263/250/351/207/212/344/270/216/346/227/245/345/277/227/351/252/214/346/224/266/346/250/241/346/235/277.md" +0 -0
  577. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//345/211/215/347/253/257/351/241/265/351/235/242/351/252/214/346/224/266/346/270/205/345/215/225.md" +0 -0
  578. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//345/220/216/347/253/257API/351/252/214/346/224/266/346/270/205/345/215/225.md" +0 -0
  579. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//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" +0 -0
  580. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//345/256/211/345/205/250/345/256/241/350/256/241/346/250/241/347/211/210.md" +0 -0
  581. /package/templates/{knowledge/templates → artifacts/shared}//345/256/241/346/237/245/346/221/230/350/246/201.md" +0 -0
  582. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//346/200/247/350/203/275/345/210/206/346/236/220/346/250/241/347/211/210.md" +0 -0
  583. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//346/212/200/346/234/257/351/200/211/345/236/213/351/252/214/346/224/266/346/270/205/345/215/225.md" +0 -0
  584. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//346/216/245/345/217/243/345/257/271/346/216/245/346/226/271/346/241/210/346/250/241/347/211/210.md" +0 -0
  585. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//346/225/205/351/232/234/345/244/215/347/233/230/346/250/241/347/211/210.md" +0 -0
  586. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/346/226/271/346/241/210/346/250/241/347/211/210.md" +0 -0
  587. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/351/252/214/346/224/266/346/270/205/345/215/225.md" +0 -0
  588. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/346/226/207/346/241/243/346/250/241/347/211/210.md" +0 -0
  589. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//346/265/213/350/257/225/350/256/241/345/210/222/346/250/241/347/211/210.md" +0 -0
  590. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//350/256/276/350/256/241/344/270/200/350/207/264/346/200/247/351/252/214/346/224/266/346/212/245/345/221/212/346/250/241/347/211/210.md" +0 -0
  591. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//350/257/246/347/273/206/350/256/276/350/256/241/346/250/241/347/211/210.md" +0 -0
  592. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//350/277/201/347/247/273/350/257/204/344/274/260/346/250/241/347/211/210.md" +0 -0
  593. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//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" +0 -0
  594. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//351/207/215/346/236/204/346/226/271/346/241/210/346/250/241/347/211/210.md" +0 -0
  595. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//351/234/200/346/261/202/345/210/206/346/236/220/346/250/241/347/211/210.md" +0 -0
  596. /package/templates/{knowledge/acceptance_templates → artifacts/shared}//351/234/200/346/261/202/345/216/237/345/236/213/350/256/276/350/256/241/345/256/236/347/216/260/350/277/275/350/270/252/347/237/251/351/230/265/346/250/241/347/211/210.md" +0 -0
  597. /package/templates/{knowledge/checklists → checklists}//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md" +0 -0
  598. /package/templates/{knowledge/checklists → checklists}//344/274/232/350/257/235/346/201/242/345/244/215.md" +0 -0
  599. /package/templates/{knowledge/checklists → checklists}//345/267/245/344/275/234/346/265/201/351/252/214/346/224/266/346/270/205/345/215/225.md" +0 -0
  600. /package/templates/{knowledge/checklists → checklists}//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/351/252/214/346/224/266/346/270/205/345/215/225.md" +0 -0
  601. /package/templates/{knowledge/checklists → checklists}//347/237/245/350/257/206/346/263/250/345/205/245/351/252/214/346/224/266/346/270/205/345/215/225.md" +0 -0
  602. /package/templates/{knowledge/checklists → checklists}//351/232/220/347/247/201/345/256/241/346/237/245/346/270/205/345/215/225.md" +0 -0
  603. /package/templates/{knowledge/checklists → checklists}//351/252/214/350/257/201/351/252/214/346/224/266/346/270/205/345/215/225.md" +0 -0
  604. /package/templates/{knowledge/domain → domain}//345/244/232/347/247/237/346/210/267.md" +0 -0
  605. /package/templates/{knowledge/domain → domain}//345/256/241/350/256/241/346/227/245/345/277/227.md" +0 -0
  606. /package/templates/{knowledge/domain → domain}//345/257/274/345/205/245/345/257/274/345/207/272/350/247/204/345/210/231.md" +0 -0
  607. /package/templates/{knowledge/domain → domain}//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md" +0 -0
  608. /package/templates/{knowledge/domain → domain}//346/212/245/350/241/250/347/273/237/350/256/241.md" +0 -0
  609. /package/templates/{knowledge/domain → domain}//346/224/257/344/273/230/350/247/204/345/210/231.md" +0 -0
  610. /package/templates/{knowledge/domain → domain}//346/225/260/346/215/256/346/235/203/351/231/220.md" +0 -0
  611. /package/templates/{knowledge/domain → domain}//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md" +0 -0
  612. /package/templates/{knowledge/domain → domain}//351/200/232/347/237/245/350/247/204/345/210/231.md" +0 -0
  613. /package/templates/{knowledge/patterns/core → internal/patterns}/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md" +0 -0
  614. /package/templates/{knowledge/patterns/core → internal/patterns}/Java/350/264/250/351/207/217/351/227/250/347/246/201.md" +0 -0
  615. /package/templates/{knowledge/patterns/core → internal/patterns}/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md" +0 -0
  616. /package/templates/{knowledge/patterns/core → internal/patterns}//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" +0 -0
  617. /package/templates/{knowledge/patterns/core → internal/patterns}//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md" +0 -0
  618. /package/templates/{knowledge/patterns/core → internal/patterns}//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" +0 -0
  619. /package/templates/{knowledge/patterns/core → internal/patterns}//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md" +0 -0
  620. /package/templates/{knowledge/patterns/core → internal/patterns}//345/206/262/347/252/201/351/227/250/347/246/201.md" +0 -0
  621. /package/templates/{knowledge/patterns/core → internal/patterns}//345/206/263/347/255/226/347/275/221/345/205/263.md" +0 -0
  622. /package/templates/{knowledge/patterns/core → internal/patterns}//345/217/230/345/274/202/345/256/241/350/256/241.md" +0 -0
  623. /package/templates/{knowledge/patterns/core → internal/patterns}//345/233/236/345/275/222/347/237/251/351/230/265.md" +0 -0
  624. /package/templates/{knowledge/patterns/core → internal/patterns}//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md" +0 -0
  625. /package/templates/{knowledge/patterns/core → internal/patterns}//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md" +0 -0
  626. /package/templates/{knowledge/patterns/core → internal/patterns}//345/271/266/345/217/221/351/224/201.md" +0 -0
  627. /package/templates/{knowledge/patterns/core → internal/patterns}//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md" +0 -0
  628. /package/templates/{knowledge/patterns/core → internal/patterns}//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md" +0 -0
  629. /package/templates/{knowledge/patterns/core → internal/patterns}//346/262/273/347/220/206/350/277/220/350/241/214/346/227/266/345/276/252/347/216/257.md" +0 -0
  630. /package/templates/{knowledge/patterns/core → internal/patterns}//346/265/201/345/274/217/345/277/203/350/267/263.md" +0 -0
  631. /package/templates/{knowledge/patterns/core → internal/patterns}//347/237/245/350/257/206/344/270/273/346/235/203.md" +0 -0
  632. /package/templates/{knowledge/patterns/core → internal/patterns}//350/257/255/344/271/211/350/257/201/346/215/256.md" +0 -0
  633. /package/templates/{knowledge/patterns/core → internal/patterns}//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md" +0 -0
  634. /package/templates/{knowledge/patterns/core → internal/patterns}//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md" +0 -0
  635. /package/templates/{knowledge/patterns/core → internal/patterns}//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md" +0 -0
  636. /package/templates/{knowledge → internal}/rules/OOD/344/270/216SOLID/350/256/276/350/256/241/350/247/204/345/210/231.md" +0 -0
  637. /package/templates/{knowledge → internal}/rules//344/272/247/347/211/251/345/245/221/347/272/246/350/247/204/345/210/231.md" +0 -0
  638. /package/templates/{knowledge → internal}/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" +0 -0
  639. /package/templates/{knowledge → internal}/rules//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/350/247/204/345/210/231.md" +0 -0
  640. /package/templates/{knowledge → internal}/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" +0 -0
  641. /package/templates/{knowledge → internal}/rules//345/221/275/344/273/244/346/211/247/350/241/214/350/247/204/345/210/231.md" +0 -0
  642. /package/templates/{knowledge → internal}/rules//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246/350/247/204/345/210/231.md" +0 -0
  643. /package/templates/{knowledge → internal}/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" +0 -0
  644. /package/templates/{knowledge → internal}/rules//345/267/245/344/275/234/346/265/201/346/250/241/346/235/277/345/214/205/350/247/204/345/210/231.md" +0 -0
  645. /package/templates/{knowledge → internal}/rules//345/267/245/345/205/267/350/260/203/347/224/250/350/247/204/345/210/231.md" +0 -0
  646. /package/templates/{knowledge → internal}/rules//346/204/217/345/233/276/350/267/257/347/224/261/350/247/204/345/210/231.md" +0 -0
  647. /package/templates/{knowledge → internal}/rules//346/211/247/350/241/214/345/256/210/345/215/253/350/257/204/344/274/260/350/247/204/345/210/231.md" +0 -0
  648. /package/templates/{knowledge → internal}/rules//346/211/251/345/261/225/347/224/237/345/221/275/345/221/250/346/234/237/350/247/204/345/210/231.md" +0 -0
  649. /package/templates/{knowledge → internal}/rules//346/212/200/346/234/257/345/206/263/347/255/226/344/270/273/346/235/203/350/247/204/345/210/231.md" +0 -0
  650. /package/templates/{knowledge → internal}/rules//346/226/275/345/267/245/346/214/207/344/273/244/345/245/221/347/272/246/350/247/204/345/210/231.md" +0 -0
  651. /package/templates/{knowledge → internal}/rules//346/227/245/345/277/227/346/262/273/347/220/206/350/247/204/345/210/231.md" +0 -0
  652. /package/templates/{knowledge → internal}/rules//346/234/272/345/210/266/350/207/252/346/262/273/347/220/206/350/247/204/345/210/231.md" +0 -0
  653. /package/templates/{knowledge → internal}/rules//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/350/247/204/345/210/231.md" +0 -0
  654. /package/templates/{knowledge → internal}/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" +0 -0
  655. /package/templates/{knowledge → internal}/rules//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md" +0 -0
  656. /package/templates/{knowledge → internal}/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" +0 -0
  657. /package/templates/{knowledge → internal}/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" +0 -0
  658. /package/templates/{knowledge → internal}/rules//346/263/250/345/206/214/350/241/250/345/237/272/347/241/200/350/256/276/346/226/275/350/247/204/345/210/231.md" +0 -0
  659. /package/templates/{knowledge → internal}/rules//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246/350/247/204/345/210/231.md" +0 -0
  660. /package/templates/{knowledge → internal}/rules//347/237/245/350/257/206/346/262/273/347/220/206/350/247/204/345/210/231.md" +0 -0
  661. /package/templates/{knowledge → internal}/rules//347/237/245/350/257/206/346/263/250/345/205/245/350/276/271/347/225/214/350/247/204/345/210/231.md" +0 -0
  662. /package/templates/{knowledge → internal}/rules//347/237/245/350/257/206/350/265/204/344/272/247/346/262/273/347/220/206/350/247/204/345/210/231.md" +0 -0
  663. /package/templates/{knowledge → internal}/rules//347/254/254/344/270/200/346/200/247/345/216/237/347/220/206/346/216/250/347/220/206/350/247/204/345/210/231.md" +0 -0
  664. /package/templates/{knowledge → internal}/rules//347/273/206/350/212/202/347/272/252/345/276/213/350/247/204/345/210/231.md" +0 -0
  665. /package/templates/{knowledge → internal}/rules//350/204/221/346/232/264/344/270/216/346/226/271/346/241/210/346/216/242/347/264/242/350/247/204/345/210/231.md" +0 -0
  666. /package/templates/{knowledge → internal}/rules//350/256/241/345/210/222/345/211/215/347/275/256/351/227/250/350/247/204/345/210/231.md" +0 -0
  667. /package/templates/{knowledge → internal}/rules//350/256/276/350/256/241/344/272/247/347/211/251/345/214/205/350/247/204/345/210/231.md" +0 -0
  668. /package/templates/{knowledge → internal}/rules//350/257/201/346/215/256/351/251/261/345/212/250/344/270/216/345/217/215/345/271/273/350/247/211/350/247/204/345/210/231.md" +0 -0
  669. /package/templates/{knowledge → internal}/rules//350/267/250/345/271/263/345/217/260/350/267/257/345/276/204/345/256/211/345/205/250/350/247/204/345/210/231.md" +0 -0
  670. /package/templates/{knowledge → internal}/rules//350/276/223/345/205/245/346/235/220/346/226/231/345/245/221/347/272/246/350/247/204/345/210/231.md" +0 -0
  671. /package/templates/{knowledge → internal}/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" +0 -0
  672. /package/templates/{knowledge → internal}/rules//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247/350/247/204/345/210/231.md" +0 -0
  673. /package/templates/{knowledge → internal}/rules//351/205/215/347/275/256/350/220/275/347/233/230/350/276/271/347/225/214/350/247/204/345/210/231.md" +0 -0
  674. /package/templates/{knowledge → internal}/rules//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260/350/247/204/345/210/231.md" +0 -0
  675. /package/templates/{knowledge → internal}/rules//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226/350/247/204/345/210/231.md" +0 -0
  676. /package/templates/{knowledge → internal}/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" +0 -0
  677. /package/templates/{knowledge → internal}/rules//351/252/214/350/257/201/345/245/221/347/272/246/350/247/204/345/210/231.md" +0 -0
  678. /package/templates/{knowledge/procedures → procedures}/OOD/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md" +0 -0
  679. /package/templates/{knowledge/procedures → procedures}/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md" +0 -0
  680. /package/templates/{knowledge/procedures → procedures}//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/350/257/201/346/265/201/347/250/213.md" +0 -0
  681. /package/templates/{knowledge/procedures → procedures}//344/273/243/347/240/201/351/227/250/347/246/201/346/265/201/347/250/213.md" +0 -0
  682. /package/templates/{knowledge/procedures → procedures}//344/273/273/345/212/241/346/213/206/350/247/243/346/265/201/347/250/213.md" +0 -0
  683. /package/templates/{knowledge/procedures → 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" +0 -0
  684. /package/templates/{knowledge/procedures → procedures}//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md" +0 -0
  685. /package/templates/{knowledge/procedures → 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" +0 -0
  686. /package/templates/{knowledge/procedures → procedures}//345/221/275/344/273/244/346/211/247/350/241/214/346/265/201/347/250/213.md" +0 -0
  687. /package/templates/{knowledge/procedures → procedures}//345/256/211/345/205/250/345/212/240/345/233/272/346/265/201/346/260/264/347/272/277.md" +0 -0
  688. /package/templates/{knowledge/procedures → procedures}//345/267/245/345/205/267/350/260/203/347/224/250/346/265/201/347/250/213.md" +0 -0
  689. /package/templates/{knowledge/procedures → procedures}//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md" +0 -0
  690. /package/templates/{knowledge/procedures → procedures}//346/204/217/345/233/276/350/267/257/347/224/261/346/265/201/347/250/213.md" +0 -0
  691. /package/templates/{knowledge/procedures → procedures}//346/216/245/345/217/243/351/233/206/346/210/220/346/265/201/346/260/264/347/272/277.md" +0 -0
  692. /package/templates/{knowledge/procedures → procedures}//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273/346/265/201/347/250/213.md" +0 -0
  693. /package/templates/{knowledge/procedures → procedures}//346/234/254/345/234/260/346/265/217/350/247/210/345/231/250/351/252/214/346/224/266/345/267/245/344/275/234/346/265/201.md" +0 -0
  694. /package/templates/{knowledge/procedures → procedures}//346/236/266/346/236/204/345/206/263/347/255/226/347/240/224/350/256/250/345/267/245/344/275/234/346/265/201.md" +0 -0
  695. /package/templates/{knowledge/procedures → procedures}//346/246/202/345/277/265/351/252/214/350/257/201/346/265/201/346/260/264/347/272/277.md" +0 -0
  696. /package/templates/{knowledge/procedures → procedures}//346/265/213/350/257/225/344/274/230/345/205/210/347/274/226/347/240/201/345/267/245/344/275/234/346/265/201.md" +0 -0
  697. /package/templates/{knowledge/procedures → procedures}//346/272/220/347/240/201/345/216/237/345/236/213/344/272/244/344/273/230/346/265/201/347/250/213.md" +0 -0
  698. /package/templates/{knowledge/procedures → procedures}//347/216/260/346/234/211/347/263/273/347/273/237/345/267/256/350/267/235/345/210/206/346/236/220/345/267/245/344/275/234/346/265/201.md" +0 -0
  699. /package/templates/{knowledge/procedures → procedures}//347/237/245/350/257/206/347/273/264/346/212/244/346/265/201/346/260/264/347/272/277.md" +0 -0
  700. /package/templates/{knowledge/procedures → procedures}//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205/346/265/201/347/250/213.md" +0 -0
  701. /package/templates/{knowledge/procedures → procedures}//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md" +0 -0
  702. /package/templates/{knowledge/procedures → procedures}//350/256/276/350/256/241/344/272/247/347/211/251/347/224/237/346/210/220/344/270/216/345/244/215/351/252/214/345/267/245/344/275/234/346/265/201.md" +0 -0
  703. /package/templates/{knowledge/procedures → procedures}//350/257/246/347/273/206/350/256/276/350/256/241/346/265/201/347/250/213.md" +0 -0
  704. /package/templates/{knowledge/procedures → procedures}//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md" +0 -0
  705. /package/templates/{knowledge/procedures → procedures}//351/203/250/347/275/262/345/217/221/345/270/203/346/265/201/347/250/213.md" +0 -0
  706. /package/templates/{knowledge/procedures → procedures}//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md" +0 -0
  707. /package/templates/{knowledge/procedures → procedures}//351/233/206/346/210/220/351/252/214/350/257/201/346/265/201/347/250/213.md" +0 -0
  708. /package/templates/{knowledge/procedures → procedures}//351/234/200/346/261/202/346/276/204/346/270/205/346/265/201/347/250/213.md" +0 -0
  709. /package/templates/{knowledge/product_profiles → profiles}/b2b-internal.yaml +0 -0
  710. /package/templates/{knowledge/product_profiles → profiles}/b2c.yaml +0 -0
  711. /package/templates/{knowledge/product_profiles → profiles}/saas.yaml +0 -0
  712. /package/templates/{knowledge/review_rules → rules/shared}/SOLID/344/273/243/347/240/201/345/256/241/346/237/245/350/247/204/345/210/231.md" +0 -0
  713. /package/templates/{knowledge/review_rules → rules/shared}//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" +0 -0
  714. /package/templates/{knowledge/review → rules/shared}//344/273/243/347/240/201/345/217/257/347/273/264/346/212/244/346/200/247/344/270/216/345/217/257/350/247/202/346/265/213/346/200/247/345/256/241/346/237/245.md" +0 -0
  715. /package/templates/{knowledge/review_rules → rules/shared}//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" +0 -0
  716. /package/templates/{knowledge/review_rules → rules/shared}//345/256/211/345/205/250/345/256/241/346/237/245/350/247/204/345/210/231.md" +0 -0
  717. /package/templates/{knowledge/review_rules → rules/shared}//345/271/266/345/217/221/345/256/241/346/237/245/350/247/204/345/210/231.md" +0 -0
  718. /package/templates/{knowledge/review_rules → rules/shared}//346/200/247/350/203/275/345/256/241/346/237/245/350/247/204/345/210/231.md" +0 -0
  719. /package/templates/{knowledge/review_rules → rules/shared}//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" +0 -0
  720. /package/templates/{knowledge/review_rules → rules/shared}//346/236/266/346/236/204/345/256/241/346/237/245/350/247/204/345/210/231.md" +0 -0
  721. /package/templates/{knowledge/review_rules → rules/shared}//350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md" +0 -0
@@ -1,1340 +0,0 @@
1
- import { debug } from "./logger.js";
2
- // ── 数据 ──
3
- const PROBLEM_ENTRIES = [
4
- // ── 前置完成 ──
5
- {
6
- id: "problem-1", label: "问题一",
7
- title: "自动膨胀入口被 task_type 绑死,导致大量产物型/提取型/分析型语义被跳过",
8
- status: "completed", priority: "pre_completed", batch_id: "batch-1",
9
- completion_evidence: "4e98eb3",
10
- related_mechanism_ids: ["mc-intent-router"], related_capability_ids: [],
11
- owner_module: "src/engine/intent_router.ts",
12
- test_files: ["tests/engine/intent_router.test.ts"],
13
- memo_section: "## ",
14
- },
15
- {
16
- id: "problem-2", label: "问题二",
17
- title: "setup.sh 是历史遗留入口,应删除避免安装心智冲突",
18
- status: "completed", priority: "pre_completed", batch_id: "batch-1",
19
- completion_evidence: "73286ef",
20
- related_mechanism_ids: [], related_capability_ids: [],
21
- owner_module: null,
22
- test_files: ["tests/templates/no_setup_sh.test.ts"],
23
- memo_section: "## ",
24
- },
25
- {
26
- id: "problem-3", label: "问题三",
27
- title: "verify-test-counts.mjs 是过时测试数量门禁,应删除",
28
- status: "completed", priority: "pre_completed", batch_id: "batch-1",
29
- completion_evidence: "f514032",
30
- related_mechanism_ids: [], related_capability_ids: [],
31
- owner_module: null,
32
- test_files: [],
33
- memo_section: "## ",
34
- },
35
- {
36
- id: "problem-4", label: "问题四",
37
- title: "SoloForge 可消费资产缺少消费覆盖矩阵",
38
- status: "completed", priority: "pre_completed", batch_id: "batch-1",
39
- completion_evidence: "2d71d40",
40
- related_mechanism_ids: [], related_capability_ids: [],
41
- owner_module: "src/engine/consumable_asset_registry.ts",
42
- test_files: ["tests/engine/consumable_asset_registry.test.ts"],
43
- memo_section: "## ",
44
- },
45
- {
46
- id: "problem-5", label: "问题五",
47
- title: "机制层缺少自治理,无法系统发现机制失效、空转和状态污染",
48
- status: "completed", priority: "pre_completed", batch_id: "batch-1",
49
- completion_evidence: "a344c85",
50
- related_mechanism_ids: ["mc-intent-router", "mc-intent-expander", "mc-knowledge-injection-boundary", "mc-task-context-lifecycle", "mc-verifier"],
51
- related_capability_ids: [],
52
- owner_module: "src/engine/mechanism_contract_registry.ts",
53
- test_files: ["tests/engine/mechanism_contract_registry.test.ts"],
54
- memo_section: "## ",
55
- },
56
- // ── P0 / 第 1 批 ──
57
- {
58
- id: "problem-6", label: "问题六",
59
- title: "项目配置不应默认自动落盘,必须区分运行时推断、现有项目探测和空项目蓝图",
60
- status: "completed", priority: "P0", batch_id: "batch-1",
61
- completion_evidence: "2707dbc",
62
- related_mechanism_ids: ["mc-zero-config-init"], related_capability_ids: [],
63
- owner_module: "src/engine/zero_config_init.ts",
64
- test_files: ["tests/engine/zero_config_init.test.ts", "tests/engine/auto_init_cli.test.ts", "tests/engine/auto_init.test.ts"],
65
- memo_section: "## ",
66
- },
67
- {
68
- id: "problem-8", label: "问题八",
69
- title: "知识注入边界过粗,缺少分层优先级、状态约束、注入原因和排除原因",
70
- status: "completed", priority: "P0", batch_id: "batch-1",
71
- completion_evidence: "d4e1731",
72
- related_mechanism_ids: ["mc-knowledge-injection-boundary", "mc-knowledge-matching"],
73
- related_capability_ids: ["knowledge_sovereignty"],
74
- owner_module: "src/engine/knowledge_injection_boundary.ts",
75
- test_files: ["tests/engine/knowledge_injection_boundary.test.ts"],
76
- memo_section: "## ",
77
- },
78
- {
79
- id: "problem-9", label: "问题九",
80
- title: "机制层核心工作流停留在概念流程,缺少可执行契约、机制分工、降级边界和防退化治理",
81
- status: "completed", priority: "P0", batch_id: "batch-1",
82
- related_mechanism_ids: ["mc-task-context-lifecycle"],
83
- related_capability_ids: ["task_context_lifecycle"],
84
- owner_module: "src/engine/workflow_contract_registry.ts",
85
- test_files: ["tests/engine/workflow_contract_registry.test.ts"],
86
- completion_evidence: "workflow_contract_registry",
87
- memo_section: "## ",
88
- },
89
- {
90
- id: "problem-22", label: "问题二十二",
91
- title: "MCP 工具 / 适配器边界缺少 Tool Invocation Contract",
92
- status: "completed", priority: "P0", batch_id: "batch-1",
93
- related_mechanism_ids: [], related_capability_ids: [],
94
- owner_module: "src/engine/tool_invocation_contract_registry.ts",
95
- test_files: ["tests/engine/tool_invocation_contract_registry.test.ts"],
96
- completion_evidence: "tool_invocation_contract_registry",
97
- memo_section: "## ",
98
- },
99
- {
100
- id: "problem-23", label: "问题二十三",
101
- title: "外部材料摄取边界缺少 Input Material Contract",
102
- status: "implemented_verified", priority: "P0", batch_id: "batch-1",
103
- related_mechanism_ids: ["mc-input-material-contract"], related_capability_ids: [],
104
- owner_module: "src/engine/input_material_contract_registry.ts", test_files: ["tests/engine/input_material_contract_registry.test.ts"],
105
- completion_evidence: "input_material_contract_registry.ts(4 exports) + tools.ts(sf_expand 行1280 await lazyInputMaterial → classifyIngestionStatus) + 输入材料契约规则.md + input_material_contract_registry.test.ts + validate-release Phase9",
106
- memo_section: "## ",
107
- },
108
- {
109
- id: "problem-24", label: "问题二十四",
110
- title: "输出产物管理缺少 Artifact Contract",
111
- status: "completed", priority: "P0", batch_id: "batch-1",
112
- related_mechanism_ids: [], related_capability_ids: [],
113
- owner_module: "src/engine/artifact_contract_registry.ts", test_files: ["tests/engine/artifact_contract_registry.test.ts"],
114
- completion_evidence: "artifact_contract_registry",
115
- memo_section: "## ",
116
- },
117
- {
118
- id: "problem-29", label: "问题二十九",
119
- title: "用户可见反馈体验缺少 User Feedback Contract",
120
- status: "completed", priority: "P0", batch_id: "batch-1",
121
- related_mechanism_ids: [], related_capability_ids: [],
122
- owner_module: "src/engine/user_feedback_contract.ts", test_files: ["tests/engine/user_feedback_contract.test.ts"],
123
- completion_evidence: "user_feedback_contract",
124
- memo_section: "## ",
125
- },
126
- {
127
- id: "problem-32", label: "问题三十二",
128
- title: "权限、隐私与敏感信息边界缺少 Privacy / Secret / Data Sovereignty Contract",
129
- status: "completed", priority: "P0", batch_id: "batch-1",
130
- related_mechanism_ids: [], related_capability_ids: ["secret_scan", "scope_hook"],
131
- owner_module: "src/engine/privacy_secret_contract.ts", test_files: ["tests/engine/privacy_secret_contract.test.ts"],
132
- completion_evidence: "privacy_secret_contract",
133
- memo_section: "## ",
134
- },
135
- {
136
- id: "problem-33", label: "问题三十三",
137
- title: "真实命令执行边界缺少 Command Execution Contract",
138
- status: "completed", priority: "P0", batch_id: "batch-1",
139
- related_mechanism_ids: [], related_capability_ids: [],
140
- owner_module: "src/engine/command_execution_contract.ts", test_files: ["tests/engine/command_execution_contract.test.ts"],
141
- completion_evidence: "command_execution_contract",
142
- memo_section: "## ",
143
- },
144
- {
145
- id: "problem-37", label: "问题三十七",
146
- title: "配置优先级与覆盖规则缺少 Configuration Precedence Contract",
147
- status: "completed", priority: "P0", batch_id: "batch-1",
148
- related_mechanism_ids: [], related_capability_ids: [],
149
- owner_module: "src/engine/config_precedence_contract.ts", test_files: ["tests/engine/config_precedence_contract.test.ts"],
150
- completion_evidence: "config_precedence_contract",
151
- memo_section: "## ",
152
- },
153
- // ── P1 / 第 2 批 ──
154
- {
155
- id: "problem-11", label: "问题十一",
156
- title: "机制层强制护栏边界过窄且缺少统一 Enforcement Contract",
157
- status: "implemented_verified", priority: "P1", batch_id: "batch-2",
158
- related_mechanism_ids: [], related_capability_ids: ["scope_hook", "secret_scan"],
159
- owner_module: "src/engine/enforcement_guard.ts", test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
160
- memo_section: "## ",
161
- },
162
- {
163
- id: "problem-12", label: "问题十二",
164
- title: "机制层验证与交付缺少 Verification/Delivery Contract",
165
- status: "implemented_verified", priority: "P1", batch_id: "batch-2",
166
- related_mechanism_ids: ["mc-verifier"], related_capability_ids: ["verify_command_generation"],
167
- owner_module: "src/engine/verification_contract.ts", test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
168
- memo_section: "## ",
169
- },
170
- {
171
- id: "problem-13", label: "问题十三",
172
- title: "机制层失败处理缺少 Failure Contract",
173
- status: "implemented_verified", priority: "P1", batch_id: "batch-2",
174
- related_mechanism_ids: [], related_capability_ids: [],
175
- owner_module: "src/engine/failure_report.ts", test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
176
- memo_section: "## ",
177
- },
178
- {
179
- id: "problem-15", label: "问题十五",
180
- title: "机制族缺少 Mechanism Family Implementation Map",
181
- status: "implemented_verified", priority: "P1", batch_id: "batch-2",
182
- related_mechanism_ids: [], related_capability_ids: [],
183
- owner_module: "src/engine/mechanism_family_registry.ts", test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
184
- memo_section: "## ",
185
- },
186
- {
187
- id: "problem-17", label: "问题十七",
188
- title: "TaskContext 边界缺少 State Fact Contract",
189
- status: "implemented_verified", priority: "P1", batch_id: "batch-2",
190
- related_mechanism_ids: ["mc-task-context-lifecycle"], related_capability_ids: ["task_context_lifecycle"],
191
- owner_module: "src/engine/task_context.ts", test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
192
- memo_section: "## ",
193
- },
194
- {
195
- id: "problem-18", label: "问题十八",
196
- title: "降级与容错策略过粗,缺少 Degradation Contract",
197
- status: "implemented_verified", priority: "P1", batch_id: "batch-2",
198
- related_mechanism_ids: [], related_capability_ids: [],
199
- owner_module: "src/engine/degradation.ts", test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
200
- memo_section: "## ",
201
- },
202
- {
203
- id: "problem-20", label: "问题二十",
204
- title: "契约治理内核缺少统一 Contract Registry",
205
- status: "implemented_verified", priority: "P1", batch_id: "batch-2",
206
- related_mechanism_ids: [], related_capability_ids: ["governance_runtime_loop"],
207
- owner_module: "src/engine/contract_registry.ts", test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
208
- memo_section: "## ",
209
- },
210
- {
211
- id: "problem-28", label: "问题二十八",
212
- title: "多任务、并发与工作区污染缺少 Concurrency / Workspace Isolation Contract",
213
- status: "implemented_verified", priority: "P1", batch_id: "batch-2",
214
- related_mechanism_ids: [], related_capability_ids: ["io_lock", "scope_lease"],
215
- owner_module: "src/engine/workspace_lease.ts", test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
216
- memo_section: "## ",
217
- },
218
- {
219
- id: "problem-34", label: "问题三十四",
220
- title: "测试策略缺少 Test Strategy Contract",
221
- status: "implemented_verified", priority: "P1", batch_id: "batch-2",
222
- related_mechanism_ids: [], related_capability_ids: [],
223
- owner_module: "src/engine/test_strategy.ts", test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
224
- memo_section: "## ",
225
- },
226
- {
227
- id: "problem-36", label: "问题三十六",
228
- title: "错误码 / 诊断码体系缺少 Diagnostic Code Contract",
229
- status: "implemented_verified", priority: "P1", batch_id: "batch-2",
230
- related_mechanism_ids: [], related_capability_ids: [],
231
- owner_module: "src/engine/diagnostic_registry.ts", test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
232
- memo_section: "## ",
233
- },
234
- {
235
- id: "problem-38", label: "问题三十八",
236
- title: "日志 / 审计 / 可观测性存储边界缺少 Observability Storage Contract",
237
- status: "implemented_verified", priority: "P1", batch_id: "batch-2",
238
- related_mechanism_ids: [], related_capability_ids: [],
239
- owner_module: "src/engine/retention_policy.ts", test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
240
- memo_section: "## ",
241
- },
242
- {
243
- id: "problem-48", label: "问题四十八",
244
- title: "中文语义优先与 Language Policy Contract 缺失",
245
- status: "implemented_verified", priority: "P3", batch_id: "batch-2",
246
- related_mechanism_ids: [], related_capability_ids: [],
247
- owner_module: "src/engine/language_policy_contract.ts", test_files: ["tests/engine/verification_scenario_matrix.test.ts"],
248
- memo_section: "## ",
249
- },
250
- // ── P2 / 第 3 批 ──
251
- {
252
- id: "problem-7", label: "问题七",
253
- title: "知识生命周期缺少自治理,且 active/core、staged/draft 等概念混淆",
254
- status: "implemented_verified", priority: "P2", batch_id: "batch-3",
255
- completion_evidence: "knowledge_lifecycle_enforced",
256
- related_mechanism_ids: [], related_capability_ids: ["knowledge_sovereignty"],
257
- owner_module: "src/engine/knowledge_lifecycle.ts",
258
- test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
259
- memo_section: "## ",
260
- },
261
- {
262
- id: "problem-10", label: "问题十",
263
- title: "用户项目内缺少中文语义优先机制",
264
- status: "implemented_verified", priority: "P2", batch_id: "batch-3",
265
- completion_evidence: "chinese_semantic_priority_enforced",
266
- related_mechanism_ids: [], related_capability_ids: [],
267
- owner_module: "src/engine/chinese_semantic_priority.ts",
268
- test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
269
- memo_section: "## ",
270
- },
271
- {
272
- id: "problem-14", label: "问题十四",
273
- title: "知识演进缺少 Evidence-based Promotion Contract",
274
- status: "implemented_verified", priority: "P2", batch_id: "batch-3",
275
- completion_evidence: "knowledge_evolution_enforced",
276
- related_mechanism_ids: [], related_capability_ids: [],
277
- owner_module: "src/engine/knowledge_evolution.ts",
278
- test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
279
- memo_section: "## ",
280
- },
281
- {
282
- id: "problem-21", label: "问题二十一",
283
- title: "文档维护边界缺少 Documentation Governance Contract",
284
- status: "implemented_verified", priority: "P2", batch_id: "batch-3",
285
- completion_evidence: "documentation_governance_enforced",
286
- related_mechanism_ids: [], related_capability_ids: [],
287
- owner_module: "src/engine/documentation_governance.ts",
288
- test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
289
- memo_section: "## ",
290
- },
291
- {
292
- id: "problem-25", label: "问题二十五",
293
- title: "模板与知识同步升级缺少 Template Sync / Migration Contract",
294
- status: "implemented_verified", priority: "P2", batch_id: "batch-3",
295
- completion_evidence: "template_sync_enforced",
296
- related_mechanism_ids: [], related_capability_ids: [],
297
- owner_module: "src/engine/template_sync.ts",
298
- test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
299
- memo_section: "## ",
300
- },
301
- {
302
- id: "problem-30", label: "问题三十",
303
- title: "CLI / README / 用户心智边界缺少 User Promise Contract",
304
- status: "implemented_verified", priority: "P2", batch_id: "batch-3",
305
- completion_evidence: "user_promise_enforced",
306
- related_mechanism_ids: [], related_capability_ids: [],
307
- owner_module: "src/engine/user_promise.ts",
308
- test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
309
- memo_section: "## ",
310
- },
311
- {
312
- id: "problem-31", label: "问题三十一",
313
- title: "适配器工作流模板缺少 Adapter Prompt Contract",
314
- status: "implemented_verified", priority: "P2", batch_id: "batch-3",
315
- completion_evidence: "adapter_prompt_contract_enforced",
316
- related_mechanism_ids: [], related_capability_ids: [],
317
- owner_module: "src/engine/adapter_prompt_contract.ts",
318
- test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
319
- memo_section: "## ",
320
- },
321
- {
322
- id: "problem-35", label: "问题三十五",
323
- title: "Release / 版本兼容 / 迁移策略缺少 Release Compatibility Contract",
324
- status: "implemented_verified", priority: "P2", batch_id: "batch-3",
325
- completion_evidence: "release_compatibility_enforced",
326
- related_mechanism_ids: [], related_capability_ids: [],
327
- owner_module: "src/engine/release_compatibility.ts",
328
- test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
329
- memo_section: "## ",
330
- },
331
- {
332
- id: "problem-41", label: "问题四十一",
333
- title: "国际化与多语言项目覆盖缺少 Language Policy Override Contract",
334
- status: "implemented_verified", priority: "P2", batch_id: "batch-3",
335
- completion_evidence: "language_policy_override_enforced",
336
- related_mechanism_ids: [], related_capability_ids: [],
337
- owner_module: "src/engine/language_policy.ts",
338
- test_files: ["tests/engine/knowledge_scenario_matrix.test.ts"],
339
- memo_section: "## ",
340
- },
341
- // ── P3 / 第 4 批 ──
342
- {
343
- id: "problem-16", label: "问题十六",
344
- title: "自主技术选型缺少 Decision Sovereignty Contract",
345
- status: "implemented_verified", priority: "P3", batch_id: "batch-4",
346
- completion_evidence: "tools.ts checkDecisionSovereigntyGate (脱离 hasInstructionContract, requiresDecisionSovereignty 触发, 缺证据 blocked) → lazyTechnologyDecision → validateTechnologyDecision + evaluateDecisionExecution",
347
- related_mechanism_ids: ["mc-decision-sovereignty"], related_capability_ids: [],
348
- owner_module: "src/engine/technology_decision.ts",
349
- test_files: ["tests/engine/extension_scenario_matrix.test.ts", "tests/engine/s4_enforcement_gates.test.ts"],
350
- memo_section: "## ",
351
- },
352
- {
353
- id: "problem-19", label: "问题十九",
354
- title: "质量指标与监控缺少 Metric Contract 和 Action Binding",
355
- status: "implemented_verified", priority: "P3", batch_id: "batch-4",
356
- completion_evidence: "metric_governance_enforced",
357
- related_mechanism_ids: ["mc-metric-governance"], related_capability_ids: [],
358
- owner_module: "src/engine/metric_governance.ts",
359
- test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
360
- memo_section: "## ",
361
- },
362
- {
363
- id: "problem-26", label: "问题二十六",
364
- title: "SoloForge 缺少 Detail Discipline Contract",
365
- status: "implemented_verified", priority: "P3", batch_id: "batch-4",
366
- completion_evidence: "tools.ts checkDetailDisciplineGate (脱离 hasInstructionContract, requiresDetailDiscipline 触发, 缺证据 blocked) → lazyDetailDiscipline → performDetailCheck + generateRiskItems",
367
- related_mechanism_ids: ["mc-detail-discipline"], related_capability_ids: [],
368
- owner_module: "src/engine/detail_discipline.ts",
369
- test_files: ["tests/engine/extension_scenario_matrix.test.ts", "tests/engine/s4_enforcement_gates.test.ts"],
370
- memo_section: "## ",
371
- },
372
- {
373
- id: "problem-27", label: "问题二十七",
374
- title: "SoloForge 缺少 First Principles Reasoning Contract",
375
- status: "implemented_verified", priority: "P3", batch_id: "batch-4",
376
- completion_evidence: "tools.ts checkFirstPrinciplesGate (脱离 hasInstructionContract, requiresFirstPrinciples 触发, 缺证据 blocked) → lazyFirstPrinciples → validateFirstPrinciplesForHighImpact",
377
- related_mechanism_ids: ["mc-first-principles"], related_capability_ids: [],
378
- owner_module: "src/engine/first_principles.ts",
379
- test_files: ["tests/engine/extension_scenario_matrix.test.ts", "tests/engine/s4_enforcement_gates.test.ts"],
380
- memo_section: "## ",
381
- },
382
- {
383
- id: "problem-39", label: "问题三十九",
384
- title: "插件 / 扩展机制边界缺少 Extension Contract",
385
- status: "implemented_verified", priority: "P3", batch_id: "batch-4",
386
- completion_evidence: "extension_contract_enforced",
387
- related_mechanism_ids: ["mc-extension-contract"], related_capability_ids: [],
388
- owner_module: "src/engine/extension_contract.ts",
389
- test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
390
- memo_section: "## ",
391
- },
392
- {
393
- id: "problem-40", label: "问题四十",
394
- title: "跨平台路径与环境兼容缺少 Platform Compatibility Contract",
395
- status: "implemented_verified", priority: "P3", batch_id: "batch-4",
396
- completion_evidence: "platform_context_enforced",
397
- related_mechanism_ids: ["mc-platform-compatibility"], related_capability_ids: [],
398
- owner_module: "src/engine/platform_context.ts",
399
- test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
400
- memo_section: "## ",
401
- },
402
- {
403
- id: "problem-42", label: "问题四十二",
404
- title: "脑暴与方案探索缺少 Brainstorm / Option Exploration Contract",
405
- status: "implemented_verified", priority: "P3", batch_id: "batch-4",
406
- completion_evidence: "tools.ts checkBrainstormGate (脱离 hasInstructionContract, requiresBrainstorm 触发, 缺证据 blocked) → lazyBrainstormContract → validateBrainstormSession + canBrainstormAutoExecute",
407
- related_mechanism_ids: ["mc-brainstorm-contract"], related_capability_ids: [],
408
- owner_module: "src/engine/brainstorm_contract.ts",
409
- test_files: ["tests/engine/extension_scenario_matrix.test.ts", "tests/engine/s4_enforcement_gates.test.ts"],
410
- memo_section: "## ",
411
- },
412
- {
413
- id: "problem-43", label: "问题四十三",
414
- title: "落地修复优先级与分批方案缺少 Implementation Roadmap Contract",
415
- status: "completed", priority: "P3", batch_id: "batch-4",
416
- completion_evidence: "roadmap_registry",
417
- related_mechanism_ids: [], related_capability_ids: [],
418
- owner_module: "src/engine/implementation_roadmap_registry.ts",
419
- test_files: ["tests/engine/implementation_roadmap_registry.test.ts"],
420
- memo_section: "## ",
421
- },
422
- {
423
- id: "problem-49", label: "问题四十九",
424
- title: "架构设计工作流缺少 Architecture Design Contract",
425
- status: "implemented_verified", priority: "P3", batch_id: "batch-4",
426
- completion_evidence: "architecture_design_enforced",
427
- related_mechanism_ids: ["mc-architecture-design"], related_capability_ids: [],
428
- owner_module: "src/engine/architecture_design_contract.ts",
429
- test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
430
- memo_section: "## ",
431
- },
432
- {
433
- id: "problem-50", label: "问题五十",
434
- title: "现有系统分析与差距分析缺少 ExistingSystemAnalysis + RequirementGapAnalysis",
435
- status: "implemented_verified", priority: "P3", batch_id: "batch-4",
436
- completion_evidence: "existing_system_analysis_enforced",
437
- related_mechanism_ids: ["mc-existing-system-analysis"], related_capability_ids: [],
438
- owner_module: "src/engine/existing_system_analysis.ts",
439
- test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
440
- memo_section: "## ",
441
- },
442
- {
443
- id: "problem-51", label: "问题五十一",
444
- title: "编码准备与测试优先缺少 CodingReadinessGate + TestFirstPlan Contract",
445
- status: "implemented_verified", priority: "P3", batch_id: "batch-4",
446
- completion_evidence: "coding_readiness_gate_enforced",
447
- related_mechanism_ids: ["mc-coding-readiness"], related_capability_ids: [],
448
- owner_module: "src/engine/coding_readiness_gate.ts",
449
- test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
450
- memo_section: "## ",
451
- },
452
- {
453
- id: "problem-52", label: "问题五十二",
454
- title: "本地 Docker/浏览器验收缺少 LocalDockerAcceptance Contract",
455
- status: "implemented_verified", priority: "P3", batch_id: "batch-4",
456
- completion_evidence: "local_docker_acceptance_enforced",
457
- related_mechanism_ids: ["mc-local-acceptance"], related_capability_ids: [],
458
- owner_module: "src/engine/local_docker_acceptance.ts",
459
- test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
460
- memo_section: "## ",
461
- },
462
- {
463
- id: "problem-53", label: "问题五十三",
464
- title: "工作流模板包缺少 WorkflowTemplatePack Contract",
465
- status: "implemented_verified", priority: "P3", batch_id: "batch-4",
466
- completion_evidence: "workflow_template_pack_enforced",
467
- related_mechanism_ids: ["mc-workflow-template-pack"], related_capability_ids: [],
468
- owner_module: "src/engine/workflow_template_pack.ts",
469
- test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
470
- memo_section: "## ",
471
- },
472
- {
473
- id: "problem-54", label: "问题五十四",
474
- title: "新增问题/批次/工作流缺少 Evolution Regression Gate",
475
- status: "implemented_verified", priority: "P3", batch_id: "batch-4",
476
- completion_evidence: "evolution_regression_gate_enforced",
477
- related_mechanism_ids: ["mc-evolution-regression"], related_capability_ids: [],
478
- owner_module: "src/engine/evolution_regression_gate.ts",
479
- test_files: ["tests/engine/extension_scenario_matrix.test.ts"],
480
- memo_section: "## ",
481
- },
482
- // ── : 主链路接入防孤岛 ──
483
- {
484
- id: "problem-44", label: "问题四十四",
485
- title: "新增能力主链路接入防孤岛机制 (Main Path Integration Contract)",
486
- status: "completed", priority: "P0", batch_id: "batch-1",
487
- completion_evidence: "wired_into_verifier_and_task_context_and_tools",
488
- related_mechanism_ids: ["mc-verifier", "mc-task-context-lifecycle"],
489
- related_capability_ids: ["verify_command_generation", "task_context_lifecycle"],
490
- owner_module: "src/engine/main_path_integration_contract.ts",
491
- test_files: [
492
- "tests/engine/main_path_integration_contract.test.ts",
493
- "tests/adapters/main_path_integration_gate.test.ts",
494
- ],
495
- memo_section: "## ",
496
- },
497
- {
498
- id: "problem-45", label: "问题四十五",
499
- title: "双-layer 机制治理完整性 — 所有机制必须双-layer enforced",
500
- status: "completed", priority: "P0", batch_id: "batch-1",
501
- related_mechanism_ids: ["mc-intent-router", "mc-workflow-contract", "mc-knowledge-injection-boundary", "mc-tool-invocation-contract", "mc-verifier", "mc-main-path-integration", "mc-privacy-boundary", "mc-command-execution", "mc-core-engineering-principles", "mc-delivery-gate", "mc-task-context-lifecycle", "mc-guard-evaluation", "mc-registry-infrastructure", "mc-zero-config-init", "mc-input-material-contract", "mc-user-feedback", "mc-artifact-contract", "mc-config-precedence", "mc-decision-sovereignty", "mc-brainstorm-contract", "mc-detail-discipline", "mc-first-principles", "mc-architecture-design", "mc-existing-system-analysis", "mc-coding-readiness", "mc-local-acceptance", "mc-evolution-regression", "mc-plan-proposal-gate", "mc-core-experience-principle", "mc-knowledge-asset-governance", "mc-intent-expander", "mc-extension-contract", "mc-platform-compatibility", "mc-workflow-template-pack", "mc-metric-governance", "mc-instruction-contract", "mc-evidence-grounding", "mc-architecture-decision-workshop", "mc-design-artifact-pack", "mc-standard-asset-contract", "mc-template-asset-visibility", "mc-decision-workshop", "mc-standard-asset-coverage", "mc-workflow-navigation-contract", "mc-ood-solid-contract", "mc-backend-implementation-contract", "mc-code-maintainability-observability-contract", "mc-mechanism-health", "mc-config-write-boundary", "mc-knowledge-governance", "mc-log-governance"],
502
- related_capability_ids: [],
503
- owner_module: "src/engine/dual_layer_mechanism_registry.ts",
504
- test_files: ["tests/engine/dual_layer_mechanism_registry.test.ts"],
505
- completion_evidence: "dual_layer_all_18",
506
- memo_section: "## ",
507
- },
508
- {
509
- id: "problem-46", label: "问题四十六",
510
- title: "核心工程执行原则缺少统一契约,Think Before Coding / Simplicity First / Surgical Changes / Goal-Driven Execution 散落在流程模板中,尚未形成可注入、可验证、可阻断的双层机制",
511
- status: "implemented_verified", priority: "P0", batch_id: "batch-1",
512
- related_mechanism_ids: ["mc-core-engineering-principles"],
513
- related_capability_ids: [],
514
- owner_module: "src/engine/core_engineering_principles.ts",
515
- test_files: ["tests/engine/core_engineering_principles.test.ts"],
516
- completion_evidence: "mc-core-engineering-principles 已实现并由 sf_expand/sf_verify 消费;Think Before Coding、Simplicity First、Surgical Changes、Goal-Driven Execution 均有真实验证路径;双层资产、引擎测试与 foundation 场景覆盖均已接入",
517
- memo_section: "## ",
518
- },
519
- {
520
- id: "problem-47", label: "问题四十七",
521
- title: "入口自然语言语义路由与 RouteDecision 主链路事实合同治理缺失,导致用户自然语言可能无法触发 SoloForge,或入口语义在膨胀、知识、workflow、验证、交付中被静默重判、覆盖或丢失",
522
- status: "implemented_verified", priority: "P0", batch_id: "batch-1",
523
- related_mechanism_ids: ["mc-intent-router"],
524
- related_capability_ids: [],
525
- owner_module: "src/engine/intent_router.ts",
526
- test_files: ["tests/engine/intent_router.test.ts"],
527
- completion_evidence: "IntentRouteDecision 新增 inferred_materials/scope/constraints/language_policy/evidence/rejected_routes/conflicts 字段;UserPromptSubmit→sf_classify→IntentRouter→RouteDecision→sf_expand 主链路消费和 TaskContext 持久化已验证",
528
- memo_section: "## ",
529
- },
530
- {
531
- id: "problem-58", label: "问题五十八",
532
- title: "Instruction Contract 施工指令契约缺失",
533
- status: "implemented_verified", priority: "P0", batch_id: "batch-5",
534
- related_mechanism_ids: ["mc-instruction-contract"],
535
- related_capability_ids: [],
536
- owner_module: "src/engine/instruction_contract.ts",
537
- test_files: ["tests/engine/instruction_contract.test.ts"],
538
- completion_evidence: "instruction_contract_wired_into_tools_middleware",
539
- memo_section: "## ",
540
- },
541
- {
542
- id: "problem-60", label: "问题六十",
543
- title: "Evidence-Grounded / Anti-Hallucination Contract 缺失",
544
- status: "implemented_verified", priority: "P0", batch_id: "batch-5",
545
- related_mechanism_ids: ["mc-evidence-grounding"],
546
- related_capability_ids: [],
547
- owner_module: "src/engine/evidence_grounding_contract.ts",
548
- test_files: ["tests/engine/evidence_grounding_contract.test.ts"],
549
- completion_evidence: "evidence_grounding_contract_wired_into_sf_expand_verify_deliver",
550
- memo_section: "## ",
551
- },
552
- // ── 第 5 批 / P0 ──
553
- {
554
- id: "problem-55", label: "问题五十五",
555
- title: "AI 执行前缺少 Plan / Proposal First Gate,导致任何任务都可能不先给计划和方案就直接执行",
556
- status: "implemented_verified", priority: "P0", batch_id: "batch-5",
557
- completion_evidence: "plan_proposal_gate_enforced",
558
- related_mechanism_ids: ["mc-plan-proposal-gate"], related_capability_ids: [],
559
- owner_module: "src/engine/plan_proposal_gate.ts",
560
- test_files: ["tests/engine/release_gate_scenario_matrix.test.ts"],
561
- memo_section: "## ",
562
- },
563
- {
564
- id: "problem-56", label: "问题五十六",
565
- title: "SoloForge 缺少 Core Experience Principle,导致机制可能很重、路径变长、规则变软、证据啰嗦或失败被伪完成",
566
- status: "implemented_verified", priority: "P0", batch_id: "batch-5",
567
- completion_evidence: "core_experience_principle_enforced",
568
- related_mechanism_ids: ["mc-core-experience-principle"], related_capability_ids: [],
569
- owner_module: "src/engine/core_experience_principle.ts",
570
- test_files: ["tests/engine/release_gate_scenario_matrix.test.ts"],
571
- memo_section: "## ",
572
- },
573
- {
574
- id: "problem-57", label: "问题五十七",
575
- title: "知识资产标准化与反退化治理缺失,导致 templates/knowledge 与 templates/patterns 存在重复定义、格式漂移、权威边界不清和消费链路不可追踪",
576
- status: "implemented_verified", priority: "P0", batch_id: "batch-5",
577
- completion_evidence: "knowledge_asset_governance_enforced",
578
- related_mechanism_ids: ["mc-knowledge-asset-governance"], related_capability_ids: [],
579
- owner_module: "src/engine/knowledge_asset_schema.ts",
580
- test_files: ["tests/engine/release_gate_scenario_matrix.test.ts", "tests/engine/verification_scenario_matrix.test.ts"],
581
- memo_section: "## ",
582
- },
583
- {
584
- id: "problem-59", label: "问题五十九",
585
- title: "日志治理与用户可见输出标准化",
586
- status: "implemented_verified", priority: "P0", batch_id: "batch-5",
587
- completion_evidence: "logger_governance_enforced",
588
- related_mechanism_ids: [], related_capability_ids: [],
589
- owner_module: "src/engine/logger.ts",
590
- test_files: ["tests/engine/logger.test.ts", "tests/engine/cli_output.test.ts"],
591
- memo_section: "## ",
592
- },
593
- {
594
- id: "problem-61", label: "问题六十一",
595
- title: "高影响/不确定任务缺少通用决策研讨与用户确认闭环",
596
- status: "implemented_verified", priority: "P0", batch_id: "batch-6",
597
- completion_evidence: "正式发布复验通过: sf_accept 为 strict_controlled 且要求 authorization + confirmed_by + confirmation_ref; delivery-validation 使用真实 sf_classify→sf_expand→sf_verify→sf_record_verification_execution→sf_accept→sf_deliver 工具链; 未显式确认负例不得写验收证据或放行交付; 组合意图覆盖 data_migration + security_policy; release issue scenario runner 具备 production_trace",
598
- related_mechanism_ids: ["mc-decision-workshop", "mc-architecture-decision-workshop", "mc-decision-sovereignty"],
599
- related_capability_ids: [],
600
- owner_module: "src/engine/decision_workshop.ts",
601
- test_files: ["tests/engine/decision_workshop.test.ts"],
602
- memo_section: "docs/SoloForge-Batch6问题集.md#问题六十一",
603
- },
604
- {
605
- id: "problem-62", label: "问题六十二",
606
- title: "标准资产覆盖审计必须使用真实注册表与消费证据",
607
- status: "implemented_verified", priority: "P0", batch_id: "batch-6",
608
- completion_evidence: "正式发布复验通过: 标准资产覆盖由权威显式注册、真实消费追踪和设计产物行为复验共同约束;不得仅凭注册存在关闭状态;audit-template-visibility 覆盖 215/215 且 0 未注册/0 泄漏",
609
- related_mechanism_ids: ["mc-standard-asset-coverage", "mc-design-artifact-pack"],
610
- related_capability_ids: [],
611
- owner_module: "src/engine/standard_asset_coverage.ts",
612
- test_files: ["tests/engine/standard_asset_coverage.test.ts"],
613
- memo_section: "docs/SoloForge-Batch6问题集.md#问题六十二",
614
- },
615
- {
616
- id: "problem-63", label: "问题六十三",
617
- title: "标准资产契约化缺失,templates/** 全类型资产必须有权威元数据",
618
- status: "implemented_verified", priority: "P0", batch_id: "batch-6",
619
- completion_evidence: "正式发布复验通过: 同一正式 api_spec 产物与同一 task 走真实 MCP 链路,已确认项目 PRD 作为 project_source_file 证据;sf_verify(draft)→sf_deliver(SF-CONTRACT-0003) 阻断,修复且补 OpenAPI 后 sf_verify 清零指令→sf_record_verification_execution→sf_accept(显式确认)→sf_deliver;api_spec 与标准 API 契约类型/路由路径口径已对齐",
620
- related_mechanism_ids: ["mc-standard-asset-contract"],
621
- related_capability_ids: [],
622
- owner_module: "src/engine/standard_asset_contract.ts",
623
- test_files: ["tests/engine/standard_asset_contract.test.ts"],
624
- memo_section: "docs/SoloForge-Batch6问题集.md#问题六十三",
625
- },
626
- {
627
- id: "problem-64", label: "问题六十四",
628
- title: "可见性必须覆盖同步、索引、查询、回退、注入、脚手架、CLI 与 MCP 全链路",
629
- status: "implemented_verified", priority: "P0", batch_id: "batch-6",
630
- completion_evidence: "正式发布复验通过: 内置 React 与 Spring Boot 脚手架合同具备真实 applicable_tech_stack;sf_scaffold 对匹配栈生成、对不匹配栈零生成;测试不再使用 test-java 内存伪资产或技术栈 skip;同步/索引/注入边界已由 release issue scenario matrix、contract fail-closed 测试和 fresh smoke 覆盖",
631
- related_mechanism_ids: ["mc-template-asset-visibility"],
632
- related_capability_ids: [],
633
- owner_module: "src/engine/template_asset_visibility.ts",
634
- test_files: ["tests/engine/template_asset_visibility.test.ts"],
635
- memo_section: "docs/SoloForge-Batch6问题集.md#问题六十四",
636
- },
637
- {
638
- id: "problem-65", label: "问题六十五",
639
- title: "全生命周期工作流导航契约缺失,用户和 AI 不知道下一步、边界与验收",
640
- status: "implemented_verified", priority: "P0", batch_id: "batch-6",
641
- completion_evidence: "全部验证通过: mc-workflow-navigation-contract 已实现,soloforge next/next --json/stage 命令正常,sf_navigation MCP 工具已注册;init 后 configuration_pending 不再重复提示 init,陈旧任务在 sf_classify 被导航阻断;7 条禁止动作、release gate phase 16 及 3 个测试文件 48 条行为测试覆盖",
642
- related_mechanism_ids: ["mc-workflow-navigation-contract"],
643
- related_capability_ids: [],
644
- owner_module: "src/engine/next_action_planner.ts",
645
- test_files: ["tests/engine/workflow_navigation_contract.test.ts", "tests/bin/cli_next_action.test.ts", "tests/adapters/workflow_navigation_mainpath.test.ts"],
646
- memo_section: "docs/SoloForge-Batch6问题集.md#问题六十五",
647
- },
648
- {
649
- id: "problem-66", label: "问题六十六",
650
- title: "OOD/SOLID 设计与代码审查契约缺失,无法稳定产出符合面向对象设计原则的实现",
651
- status: "implemented_verified", priority: "P1", batch_id: "batch-7",
652
- completion_evidence: "mc-ood-solid-contract 已实现并由 sf_expand/sf_review/sf_verify/sf_deliver 消费;复杂编码无 OOD 摘要返回 SF-OOD-6601,SRP/LSP/ISP/DIP 硬失败以 SF-OOD-6602 阻断交付;低风险任务不误阻断;双层资产、引擎测试、真实 MCP 测试与发布门禁行为检查均已接入",
653
- related_mechanism_ids: ["mc-ood-solid-contract"],
654
- related_capability_ids: [],
655
- owner_module: "src/engine/ood_solid_contract.ts",
656
- test_files: ["tests/engine/ood_solid_contract.test.ts", "tests/adapters/implementation_contract_mainpath.test.ts"],
657
- memo_section: "docs/SoloForge-Batch7问题集.md#问题六十六",
658
- },
659
- {
660
- id: "problem-67", label: "问题六十七",
661
- title: "后端实现工程契约缺失,无法稳定约束 Controller、DTO、校验、事务、幂等、安全、审计和 API/DB 对齐",
662
- status: "implemented_verified", priority: "P1", batch_id: "batch-7",
663
- completion_evidence: "mc-backend-implementation-contract 已实现并由 sf_expand/sf_review/sf_verify/sf_deliver 消费;后端实现无工作包返回 SF-BACKEND-6701,实体泄漏、无校验、事务外调、无幂等或安全证据不足以 SF-BACKEND-6702 阻断;API/OpenAPI/migration 对齐 finding、双层资产、真实 MCP 测试和发布门禁行为检查均已接入",
664
- related_mechanism_ids: ["mc-backend-implementation-contract"],
665
- related_capability_ids: [],
666
- owner_module: "src/engine/backend_implementation_contract.ts",
667
- test_files: ["tests/engine/backend_implementation_contract.test.ts", "tests/adapters/implementation_contract_mainpath.test.ts"],
668
- memo_section: "docs/SoloForge-Batch7问题集.md#问题六十七",
669
- },
670
- {
671
- id: "problem-68", label: "问题六十八",
672
- title: "用户项目代码可维护性与可观测性契约缺失,无法强制必要注释、结构化日志、敏感信息脱敏和审计日志",
673
- status: "implemented_verified", priority: "P1", batch_id: "batch-8",
674
- completion_evidence: "mc-code-maintainability-observability-contract 已实现并由 sf_expand/sf_review/sf_verify/sf_deliver 消费;业务编码无注释/日志工作包返回 SF-OBS-6801~6804 阻断;敏感信息泄漏、catch 吞异常、支付/权限无日志、迁移无审计日志以 hard_fail 阻断;低风险任务不误阻断;双层资产、引擎测试、真实 MCP 测试与发布门禁行为检查均已接入",
675
- related_mechanism_ids: ["mc-code-maintainability-observability-contract"],
676
- related_capability_ids: [],
677
- owner_module: "src/engine/code_maintainability_observability_contract.ts",
678
- test_files: ["tests/engine/code_maintainability_observability_contract.test.ts", "tests/adapters/implementation_contract_mainpath.test.ts"],
679
- memo_section: "docs/SoloForge-Batch8问题集.md#问题六十八",
680
- },
681
- {
682
- id: "problem-69", label: "问题六十九",
683
- title: "知识资产与项目规则消费体系缺少完整防回归矩阵,templates/** 与 .soloforge/knowledge/** 无法保证长期真实消费",
684
- status: "implemented_verified", priority: "P0", batch_id: "batch-8",
685
- completion_evidence: "已修复并复验:project_knowledge_system_regression_matrix.ts 固化 20 项完整矩阵,每项包含机制族、生产入口、must-fail、must-pass、release gate code 和文档引用;release gate 执行 PROJECT_KNOWLEDGE_SYSTEM_MATRIX_INCOMPLETE;项目知识合同、audit-project-knowledge、next/expand/review/verify/deliver 消费、sync 保护、技术栈过滤、可见性和消费 trace 已纳入防回归。",
686
- related_mechanism_ids: ["mc-knowledge-injection-boundary", "mc-knowledge-asset-governance", "mc-template-asset-visibility", "mc-standard-asset-contract", "mc-workflow-navigation-contract"],
687
- related_capability_ids: [],
688
- owner_module: "src/engine/project_knowledge_system_regression_matrix.ts",
689
- test_files: ["tests/engine/project_knowledge_system_regression_matrix.test.ts", "tests/engine/project_knowledge_contract.test.ts"],
690
- memo_section: "docs/SoloForge-Batch8问题集.md#问题六十九",
691
- },
692
- {
693
- id: "problem-70", label: "问题七十",
694
- title: "历史问题未按第一性原理抽象为长期机制族复审,容易按表面现象重复修补",
695
- status: "implemented_verified", priority: "P0", batch_id: "batch-8",
696
- completion_evidence: "已修复并复验:historical_issue_mechanization_matrix.ts 覆盖 1..73 canonical 问题编号,每个机制族声明第一性原理不变量、生产入口、用户项目路径、must-fail、must-pass 和 release gate;禁止全编号兜底自证;validate-release 执行 HISTORICAL_FIRST_PRINCIPLES_MATRIX,缺编号、缺入口、缺行为证据即 hard_fail。",
697
- related_mechanism_ids: ["mc-registry-infrastructure", "mc-workflow-navigation-contract", "mc-knowledge-injection-boundary", "mc-code-maintainability-observability-contract"],
698
- related_capability_ids: [],
699
- owner_module: "src/engine/historical_issue_mechanization_matrix.ts",
700
- test_files: ["tests/engine/historical_issue_mechanization_matrix.test.ts", "tests/scripts/batch_issue_details.test.ts"],
701
- memo_section: "docs/SoloForge-Batch8问题集.md#问题七十",
702
- },
703
- {
704
- id: "problem-71", label: "问题七十一",
705
- title: "Java 后端模型分层注解契约缺失,Entity/DTO/VO/Request Lombok 策略无法稳定落地",
706
- status: "implemented_verified", priority: "P1", batch_id: "batch-8",
707
- completion_evidence: "已并入 mc-backend-implementation-contract:reviewBackendImplementationFiles 对 Java Entity 使用 @Data、Entity 缺 @Getter/@Setter、DTO/VO/Request/Response 缺 @Data 产生 model_lombok_contract hard_fail;Spring Boot 脚手架 Entity 默认 @Getter/@Setter,DTO 默认 @Data;release gate 行为检查 BACKEND_MODEL_LOMBOK_CONTRACT_FALSE_PASS 防回归。",
708
- related_mechanism_ids: ["mc-backend-implementation-contract"],
709
- related_capability_ids: [],
710
- owner_module: "src/engine/backend_implementation_contract.ts",
711
- test_files: ["tests/engine/backend_implementation_contract.test.ts", "tests/engine/scaffolder.test.ts"],
712
- memo_section: "docs/SoloForge-Batch8问题集.md#问题七十一",
713
- },
714
- {
715
- id: "problem-73", label: "问题七十三",
716
- title: "需求原型到设计实现追踪契约缺失,编码可能脱离已确认需求、原型、架构、详细设计、切片和验收标准",
717
- status: "implemented_verified", priority: "P0", batch_id: "batch-8",
718
- completion_evidence: "已实现 mc-design-implementation-traceability-contract:traceability.ts 审计 REQ/PROTO/ARCH/DD/PHASE/SLICE/AC 追踪矩阵,audit-design-artifacts 将追踪矩阵纳入设计产物包,sf_expand 编码前要求 PHASE/SLICE/DD/AC 绑定,sf_verify 对真实 changed_files 复验追踪绑定,sf_deliver 阻断未闭合追踪状态;release gate 含缺矩阵、缺绑定和合法绑定 must-fail/must-pass 行为复验。",
719
- related_mechanism_ids: ["mc-design-artifact-pack", "mc-evidence-grounding", "mc-workflow-navigation-contract"],
720
- related_capability_ids: [],
721
- owner_module: "src/engine/traceability.ts",
722
- test_files: ["tests/engine/traceability.test.ts", "tests/engine/design_artifact_pack.test.ts"],
723
- memo_section: "docs/SoloForge-Batch8问题集.md#问题七十三",
724
- },
725
- {
726
- id: "problem-72", label: "问题七十二",
727
- title: "MCP 控制面可信与受控生成链路缺失,AI 旁路实现后验证可能失效",
728
- status: "implemented_verified", priority: "P0", batch_id: "batch-9",
729
- completion_evidence: "mc-control-plane-trust-contract 已实现:control_plane_contract.ts 固化 15 类控制面问题和 30+ 枝叶细节,soloforge doctor 提供 MCP/adapter/state 诊断,check-bash 阻断 Bash 直接写 .soloforge/state,工具契约验证防止 read_only 写状态和 strict 死链路,受控生成链路评估阻断非 MCP 来源、验证范围不完整、验证计划冒充结果和 degraded 假交付;validate-release 新增 MCP 控制面可信与受控生成链路阶段防回归。",
730
- related_mechanism_ids: ["mc-tool-invocation-contract", "mc-main-path-integration", "mc-workflow-navigation-contract", "mc-verifier", "mc-delivery-gate"],
731
- related_capability_ids: [],
732
- owner_module: "src/engine/control_plane_contract.ts",
733
- test_files: ["tests/engine/control_plane_contract.test.ts", "tests/adapters/mcp_tool_boundary.test.ts"],
734
- memo_section: "docs/SoloForge-Batch9问题集.md#问题七十二",
735
- },
736
- ];
737
- const IMPLEMENTATION_BATCHES = [
738
- {
739
- batch_id: "batch-1", priority: "P0",
740
- goal: "主链路可用,不误判、不乱写",
741
- included_problem_ids: ["problem-6", "problem-8", "problem-9", "problem-22", "problem-23", "problem-24", "problem-29", "problem-32", "problem-33", "problem-37", "problem-44", "problem-45", "problem-46", "problem-47"],
742
- depends_on_batch_ids: [],
743
- depends_on_pre_completed: ["problem-1", "problem-2", "problem-3", "problem-4", "problem-5"],
744
- deliverables: [
745
- "sf_expand 根据 route/execution_shape 选择 prompt",
746
- "source extraction 能正确处理源码包输入",
747
- "output artifact 默认写 .soloforge/output/{task_id}/",
748
- "knowledge injection 生成 required/supporting/excluded report",
749
- "strict controlled 工具受 next_allowed_tools 控制",
750
- "基础 privacy/command guard 生效",
751
- "用户反馈能区分 artifact_ready、manual_required、blocked、completed",
752
- "配置解析能区分 runtime inference、confirmed config 和临时覆盖",
753
- ],
754
- acceptance_criteria: [
755
- "从源码包抓取原型说明不得 skip",
756
- "只读提取任务不得改业务源码",
757
- "外部 zip 不得变成 write scope",
758
- "required knowledge 缺失不得伪装完整注入",
759
- "artifact 不得覆盖旧产物",
760
- "sf_verify 默认 plan_only",
761
- "secret 不得进入 prompt",
762
- "completed 不得包含 blocking/manual_required/degraded",
763
- ],
764
- not_in_scope: [
765
- "不做完整插件系统",
766
- "不做全部 metrics/governance action",
767
- "不重写所有知识生命周期",
768
- "不更新正式设计文档为最终事实",
769
- ],
770
- },
771
- {
772
- batch_id: "batch-2", priority: "P1",
773
- goal: "状态、证据、失败恢复和治理底座",
774
- included_problem_ids: ["problem-11", "problem-12", "problem-13", "problem-15", "problem-17", "problem-18", "problem-20", "problem-28", "problem-34", "problem-36", "problem-38", "problem-48"],
775
- depends_on_batch_ids: ["batch-1"],
776
- depends_on_pre_completed: ["problem-5"],
777
- deliverables: [
778
- "TaskContext 只存 facts/refs",
779
- "VerificationPlan 和 VerificationEvidence 分离",
780
- "GuardEvaluationReport 接入写入/交付前",
781
- "FailureReport + RecoveryPolicy 接入验证失败",
782
- "DegradationEvent + RecoveryGate 接入能力不可用",
783
- "WorkspaceLease 接入写入/交付",
784
- "DiagnosticCode registry 初版",
785
- "Observability storage 分层",
786
- "TestStrategyContract 接入 contract registry",
787
- "Mechanism family 映射表能反映真实实现状态",
788
- ],
789
- acceptance_criteria: [
790
- "failed/blocked/requires_human 不能静默 done",
791
- "delivery_readiness 不能触发 delivery execution",
792
- "active write lease 冲突时 delivery blocked",
793
- "blocking/critical 必须有 diagnostic code",
794
- "stdout/stderr 不进 TaskContext 原文",
795
- "enforced contract 无 lifecycle test 必须 fail",
796
- "degradation 必须用户可见",
797
- "retry budget exceeded 必须进入 FailureReport",
798
- ],
799
- not_in_scope: [
800
- "不追求全部 capability enforced",
801
- "不做复杂 dashboard",
802
- "不自动降级/晋级能力状态",
803
- ],
804
- },
805
- {
806
- batch_id: "batch-3", priority: "P2",
807
- goal: "知识、模板、文档和升级健康",
808
- included_problem_ids: ["problem-7", "problem-10", "problem-14", "problem-21", "problem-25", "problem-30", "problem-31", "problem-35", "problem-41"],
809
- depends_on_batch_ids: ["batch-1", "batch-2"],
810
- depends_on_pre_completed: ["problem-4"],
811
- deliverables: [
812
- "Knowledge status + sovereignty 新模型",
813
- "Evidence-based promotion gate",
814
- "soloforge sync-templates dry-run/apply",
815
- "soloforge sync-adapters dry-run/apply",
816
- ".soloforge/version.json + soloforge migrate",
817
- "CLI behavior matrix",
818
- "README 与 CLI contract 对齐测试",
819
- "LanguagePolicyConfig 支持 zh/en/bilingual",
820
- "文档 eligibility 流程",
821
- ],
822
- acceptance_criteria: [
823
- "用户修改模板不得覆盖",
824
- "core knowledge 不得自动改",
825
- "AI inference 不得直接 active/core",
826
- "adapter prompt 不得含 forbidden claim",
827
- "README 命令必须映射真实 CLI contract",
828
- "migrate 默认 dry-run",
829
- "未 verified 的备忘录决策不得写入正式设计文档",
830
- "英文项目可配置 en_first,中文项目不被英文模板污染",
831
- ],
832
- not_in_scope: [
833
- "不自动三方合并用户模板",
834
- "不让设计文档记录施工流水",
835
- "不一次性翻译所有模板",
836
- ],
837
- },
838
- {
839
- batch_id: "batch-4", priority: "P3",
840
- goal: "扩展、平台兼容、高级治理、架构设计、编码准备、本地验收、模板包与演进回归",
841
- included_problem_ids: [
842
- "problem-16", "problem-19", "problem-26", "problem-27",
843
- "problem-39", "problem-40", "problem-42", "problem-43",
844
- "problem-49", "problem-50", "problem-51", "problem-52", "problem-53", "problem-54",
845
- ],
846
- depends_on_batch_ids: ["batch-1", "batch-2", "batch-3"],
847
- depends_on_pre_completed: [],
848
- deliverables: [
849
- "ExtensionManifest / ExtensionGrant / ExtensionAuditReport",
850
- "MetricContract + GovernanceFinding + GovernanceActionBinding",
851
- "PlatformContext / NormalizedPathRef / PathSafetyCheck",
852
- "TechnologyDecisionContract + DecisionSovereignty",
853
- "DetailDisciplineCheck + DetailRiskItem",
854
- "FirstPrinciplesFrame + FirstPrinciplesCheck",
855
- "BrainstormSession + OptionExplorationRecord + OptionTradeoffMatrix",
856
- "ArchitectureDesignContract + ArchitectureDesignReview",
857
- "ExistingSystemAnalysisContract + RequirementGapAnalysis",
858
- "CodingReadinessGate + TestFirstPlan + CodingCompletionReview",
859
- "LocalDockerAcceptanceContract + BrowserAcceptanceEvidence",
860
- "WorkflowTemplatePackContract + MechanismConsumptionMap",
861
- "NewIssueRegressionGate + TemplateEvolutionImpact",
862
- ],
863
- acceptance_criteria: [
864
- "第三方扩展不能自称 enforced",
865
- "metrics 不得把 skipped/manual_required/degraded/plan_only 算 passed",
866
- "governance action 不得自动触发高风险动作",
867
- "symlink/case sensitivity/path separator/shell 差异不能绕过 scope",
868
- "destructive/irreversible tech decision 必须 human gate",
869
- "技术推荐不等于可执行决策",
870
- "高影响机制变更必须有 fundamental_need",
871
- "写入/覆盖/迁移必须有细节检查并接入验证与交付 gate",
872
- "脑暴必须形成候选方案、取舍、反证、推荐与非目标",
873
- "脑暴推荐不得绕过 Decision Sovereignty human gate",
874
- "架构设计必须按 Architecture Design Contract 产出",
875
- "输出目录名必须用户确认,未确认不得 delivered",
876
- "后端默认优先 Java,前端默认优先最新稳定 Vue 生态",
877
- "Mermaid sequenceDiagram 必须可渲染",
878
- "existing_system + new_requirement 必须先做分析",
879
- "coding 不能作为第一步,必须先通过 CodingReadinessGate",
880
- "readiness_status=blocked/manual_required 时不得写实现代码",
881
- "有可运行前端/全栈服务时不得只停在单测",
882
- "浏览器验收失败必须 capture/classify/map/repair/rebuild/redeploy/rerun",
883
- "最终必须给用户本地可访问 URL",
884
- "workflow template pack 必须 indexed/registered/injected/consumed/verified",
885
- "新增问题/Batch/workflow 必须经过 DuplicateIssueCheck",
886
- "没有 NewIssueRegressionGate 的新增问题不得 accepted",
887
- ],
888
- not_in_scope: [
889
- "不开放不受控插件生态",
890
- "不为了跨平台支持绕过安全",
891
- "不把全局原则变成空泛口号",
892
- "不做真实 Docker 镜像构建(仅契约验证)",
893
- "不做真实浏览器测试执行(仅计划验证)",
894
- ],
895
- },
896
- {
897
- batch_id: "batch-5", priority: "P0",
898
- goal: "施工指令契约 + 日志治理 + 证据驱动与反幻觉",
899
- included_problem_ids: ["problem-55", "problem-56", "problem-57", "problem-58", "problem-59", "problem-60"],
900
- depends_on_batch_ids: ["batch-1", "batch-2", "batch-3", "batch-4"],
901
- depends_on_pre_completed: [],
902
- deliverables: [
903
- "PlanProposalFirstGate 含 task_type→plan_level 映射与执行前拦截",
904
- "CoreExperiencePrincipleContract 含 mechanism_strength/path_shortness/rule_hardness/experience_lightness",
905
- "KnowledgeAssetSchema + Audit + Registry + DuplicateAndConflictDetector + ConsumptionSnapshot",
906
- "InstructionContract + InstructionContractGate + InstructionContractAmendment",
907
- "Logger 统一模块替代散落 console 调用 + OUTPUT_NOISE 门禁强化",
908
- "EvidenceGroundingContract + UnsupportedClaimGate + FactClaimVerifier",
909
- ],
910
- acceptance_criteria: [
911
- "无计划直接执行写入/编码/构建/迁移/发布 → hard fail",
912
- "机制未接主链路或路径过长 → hard fail",
913
- "知识资产缺 frontmatter/重复 canonical/缺 owner → hard fail",
914
- "P0/P1 任务无 Instruction Contract 不得执行",
915
- "console 调用未统一到 logger → OUTPUT_NOISE hard fail",
916
- "无证据高风险 claim → blocked",
917
- "generated_inference 不得单独支撑事实结论",
918
- "validation_plan 不得冒充 validation_results",
919
- "关键事实和交付结论必须有 evidence_refs",
920
- ],
921
- not_in_scope: [
922
- "不要求所有问答都有完整计划",
923
- "不一次性手工改写 170 个知识资产文件",
924
- "不引入外部日志框架",
925
- "不在 P0 MVP 强制接入 ES/Milvus",
926
- ],
927
- },
928
- {
929
- batch_id: "batch-6", priority: "P0",
930
- goal: "架构决策研讨、可执行设计产物包、标准资产契约化与模板资产可见性闭环",
931
- included_problem_ids: ["problem-61", "problem-62", "problem-63", "problem-64", "problem-65"],
932
- depends_on_batch_ids: ["batch-1", "batch-2", "batch-3", "batch-4", "batch-5"],
933
- depends_on_pre_completed: [],
934
- deliverables: [
935
- "ArchitectureDecisionWorkshopContract 六域确认门",
936
- "DesignArtifactPackContract 与真实文件复验",
937
- "API 字段级/OpenAPI/SQL/跨文档一致性阻断",
938
- "既有设计文档 dry-run 审计与确认升级边界",
939
- "StandardAssetContract 每类资产契约字段与 repair_reverify",
940
- "TemplateAssetVisibilityContract 全链路访问控制与旧项目迁移",
941
- ],
942
- acceptance_criteria: [
943
- "六域未确认不得生成正式架构设计",
944
- "设计包未 implementation_ready 不得交付",
945
- "字段缺失、SQL 无效和跨文档冲突必须阻断",
946
- "普通 bugfix 不误触发完整设计工作流",
947
- "P0 模板具备机器可读契约与 verifier",
948
- "内部资产不进入用户项目,scaffold 不进入知识索引",
949
- ],
950
- not_in_scope: [
951
- "不静默覆盖用户已有业务文档",
952
- "不以 Markdown 替代 OpenAPI 或 SQL 权威",
953
- "不删除 SoloForge 内部治理资产",
954
- "不要求普通用户理解 asset_visibility 字段",
955
- ],
956
- },
957
- {
958
- batch_id: "batch-7", priority: "P1",
959
- goal: "OOD/SOLID 与高级后端实现工程契约闭环,避免泛泛编码、过度设计和后端工程细节遗漏",
960
- included_problem_ids: ["problem-66", "problem-67"],
961
- depends_on_batch_ids: ["batch-1", "batch-2", "batch-3", "batch-4", "batch-5", "batch-6"],
962
- depends_on_pre_completed: [],
963
- deliverables: [
964
- "OodSolidContract 与 SOLID 五原则 verifier",
965
- "复杂业务编码前 OOD 设计摘要或工作包",
966
- "sf_review 输出 SRP/OCP/LSP/ISP/DIP finding",
967
- "sf_deliver 对高风险 SOLID hard_fail 阻断",
968
- "简单任务 low-risk skip 与 overdesign finding",
969
- "BackendImplementationContract 与后端实现工作包",
970
- "Controller/DTO/Validation/Transaction/Idempotency/Permission/Audit/API-DB finding",
971
- "sf_deliver 对高风险后端工程 hard_fail 阻断",
972
- ],
973
- acceptance_criteria: [
974
- "复杂业务编码触发 OOD/SOLID 契约",
975
- "Java/Spring、TypeScript/Node、React/Vue 有适配规则",
976
- "SRP/OCP/LSP/ISP/DIP 典型违反可被真实审查路径识别",
977
- "后端接口实现触发 Controller/DTO/校验/事务/幂等/安全/审计/API-DB 对齐契约",
978
- "Controller 暴露 Entity、缺 DTO/校验、缺幂等、缺租户 scope、API/DB 漂移等高风险缺口可被真实路径识别",
979
- "typo、配置、小脚本和简单 CRUD 不被重流程误拦",
980
- "用户可见知识资产和 release gate 行为复验完成",
981
- ],
982
- not_in_scope: [
983
- "不强制所有任务使用设计模式",
984
- "不把简单 CRUD 全部改成 DDD",
985
- "不把所有入参出参机械包装为对象",
986
- "不替代项目自身架构规范",
987
- "不把 SOLID 简化为静态关键字扫描",
988
- ],
989
- },
990
- {
991
- batch_id: "batch-8", priority: "P1",
992
- goal: "用户项目代码可维护性与可观测性契约闭环,强制必要注释、结构化日志、敏感信息脱敏和审计日志",
993
- included_problem_ids: ["problem-68", "problem-69", "problem-70", "problem-71", "problem-73"],
994
- depends_on_batch_ids: ["batch-1", "batch-2", "batch-3", "batch-4", "batch-5", "batch-6", "batch-7"],
995
- depends_on_pre_completed: [],
996
- deliverables: [
997
- "CodeMaintainabilityObservabilityContract 与代码可维护性/可观测性门禁",
998
- "业务编码前注释与日志工作包",
999
- "sf_review 输出日志缺失、敏感信息泄漏、注释质量 finding",
1000
- "sf_deliver 对 P0/P1 未闭合硬失败阻断",
1001
- "敏感信息泄漏 must-fail、catch 吞异常 must-fail",
1002
- "低风险任务 low-risk skip",
1003
- "项目 logger 识别与适配",
1004
- "Java Entity/DTO/VO/Request Lombok 分层契约",
1005
- "需求/原型/架构/详细设计/切片/验收追踪契约",
1006
- ],
1007
- acceptance_criteria: [
1008
- "业务编码触发注释与日志契约",
1009
- "支付/金额/权限/状态变更/外部调用有结构化日志",
1010
- "敏感信息泄漏被 hard_fail 阻断",
1011
- "catch 吞异常被 hard_fail 阻断",
1012
- "数据修复/迁移有审计日志",
1013
- "简单 getter/setter、文案、样式、测试 fixture 不被误拦",
1014
- "不同语言/框架识别项目现有 logger",
1015
- "用户可见知识资产和 release gate 行为复验完成",
1016
- "Spring Boot 脚手架生成物遵守 Entity @Getter/@Setter、DTO/VO/Request @Data",
1017
- "编码任务必须绑定 PHASE/SLICE/DD/AC,设计产物审计必须覆盖追踪矩阵",
1018
- ],
1019
- not_in_scope: [
1020
- "不强制每一行代码写注释",
1021
- "不强制所有项目使用同一个日志库",
1022
- "不治理 SoloForge 自身 logger.ts(已在 Batch 4 完成)",
1023
- "不把简单 CRUD 全部改成带日志的复杂代码",
1024
- "不替代项目自身日志规范",
1025
- "不为既有项目重新生成业务需求,只做追踪矩阵回填和后续切片绑定",
1026
- ],
1027
- },
1028
- {
1029
- batch_id: "batch-9", priority: "P0",
1030
- goal: "MCP 控制面可信与受控生成链路闭环,确保规则、契约、状态、验证和交付不能被旁路或假闭环绕过",
1031
- included_problem_ids: ["problem-72"],
1032
- depends_on_batch_ids: ["batch-1", "batch-2", "batch-3", "batch-4", "batch-5", "batch-6", "batch-7", "batch-8"],
1033
- depends_on_pre_completed: [],
1034
- deliverables: [
1035
- "ControlPlaneTrustContract 覆盖 MCP 可用性、可调用性、契约错标、死链路、旁路、来源归因、状态可信、证据真实性、范围完整性、降级可见、交付闭环、适配器漂移、版本漂移、并发竞态和恢复路径",
1036
- "soloforge doctor 控制面诊断入口",
1037
- "check-bash 状态旁路拦截",
1038
- "工具调用契约错标与死链路验证",
1039
- "受控生成链路来源、范围、证据和交付状态评估",
1040
- "validate-release 控制面可信行为门禁",
1041
- ],
1042
- acceptance_criteria: [
1043
- "MCP 工具注册与契约必须一一对应",
1044
- "写状态/文件/知识/外部系统的工具不得标记 read_only_bypass",
1045
- "需要确认的独立 strict 工具必须暴露授权路径",
1046
- "Bash/Edit/Write/脚本不得直接篡改 .soloforge/state",
1047
- "非 MCP 计划内产生的代码变更不得被后续验证冒充完整可信交付",
1048
- "changed_files 未覆盖实际变更或 verified_files 只覆盖子集时必须阻断交付",
1049
- "validation_plan 不得冒充 validation_result",
1050
- "degraded 工具链不得静默 delivered",
1051
- "Claude/Codex/Trae 适配器不得漂移到无控制面保护",
1052
- "每个 hard_fail 必须给出合法恢复动作,不得引导手动删除状态",
1053
- ],
1054
- not_in_scope: [
1055
- "不取代 MCP SDK 自身协议实现",
1056
- "不禁止用户显式手工编辑业务代码,但手工来源只能进入 limited verification",
1057
- "不要求所有只读分析都创建任务状态",
1058
- "不自动修复所有全局安装版本漂移",
1059
- ],
1060
- },
1061
- ];
1062
- // ── 克隆辅助函数 ──
1063
- function cloneProblemEntry(e) {
1064
- return {
1065
- ...e,
1066
- related_mechanism_ids: [...e.related_mechanism_ids],
1067
- related_capability_ids: [...e.related_capability_ids],
1068
- test_files: [...e.test_files],
1069
- };
1070
- }
1071
- function cloneBatch(b) {
1072
- return {
1073
- ...b,
1074
- included_problem_ids: [...b.included_problem_ids],
1075
- depends_on_batch_ids: [...b.depends_on_batch_ids],
1076
- depends_on_pre_completed: [...b.depends_on_pre_completed],
1077
- deliverables: [...b.deliverables],
1078
- acceptance_criteria: [...b.acceptance_criteria],
1079
- not_in_scope: [...b.not_in_scope],
1080
- };
1081
- }
1082
- // ── 查询:问题 ──
1083
- /**
1084
- * 列出所有问题条目。
1085
- * @returns 所有问题条目的克隆副本列表
1086
- */
1087
- export function listAllProblems() {
1088
- debug("实施路线图", "listAllProblems() 开始执行,共", PROBLEM_ENTRIES.length, "条");
1089
- return PROBLEM_ENTRIES.map(cloneProblemEntry);
1090
- }
1091
- /**
1092
- * 根据问题 ID 查找问题条目。
1093
- * @param id - 问题 ID(如 "problem-1")
1094
- * @returns 匹配的问题条目克隆副本,未找到则返回 undefined
1095
- */
1096
- export function findProblemById(id) {
1097
- debug("实施路线图", "findProblemById() id=", id);
1098
- const e = PROBLEM_ENTRIES.find((p) => p.id === id);
1099
- return e ? cloneProblemEntry(e) : undefined;
1100
- }
1101
- /**
1102
- * 根据状态列出问题条目。
1103
- * @param status - 问题状态(completed / in_progress / planned / not_started)
1104
- * @returns 符合条件的问题条目克隆副本列表
1105
- */
1106
- export function listProblemsByStatus(status) {
1107
- debug("实施路线图", "listProblemsByStatus() status=", status);
1108
- return PROBLEM_ENTRIES.filter((p) => p.status === status).map(cloneProblemEntry);
1109
- }
1110
- /**
1111
- * 根据批次 ID 列出问题条目。
1112
- * @param batchId - 批次 ID(如 "batch-1")
1113
- * @returns 属于该批次的问题条目克隆副本列表
1114
- */
1115
- export function listProblemsByBatch(batchId) {
1116
- debug("实施路线图", "listProblemsByBatch() batchId=", batchId);
1117
- return PROBLEM_ENTRIES.filter((p) => p.batch_id === batchId).map(cloneProblemEntry);
1118
- }
1119
- // ── 查询:批次 ──
1120
- /**
1121
- * 列出所有实施批次。
1122
- * @returns 所有实施批次的克隆副本列表
1123
- */
1124
- export function listBatches() {
1125
- debug("实施路线图", "listBatches() 开始执行,共", IMPLEMENTATION_BATCHES.length, "个批次");
1126
- return IMPLEMENTATION_BATCHES.map(cloneBatch);
1127
- }
1128
- /**
1129
- * 根据批次 ID 查找实施批次。
1130
- * @param id - 批次 ID(如 "batch-1")
1131
- * @returns 匹配的实施批次克隆副本,未找到则返回 undefined
1132
- */
1133
- export function findBatchById(id) {
1134
- debug("实施路线图", "findBatchById() id=", id);
1135
- const b = IMPLEMENTATION_BATCHES.find((b) => b.batch_id === id);
1136
- return b ? cloneBatch(b) : undefined;
1137
- }
1138
- /**
1139
- * 获取指定批次的所有依赖批次 ID(递归)。
1140
- * @param batchId - 批次 ID
1141
- * @returns 所有直接和间接依赖的批次 ID 列表
1142
- */
1143
- export function getBatchDependencies(batchId) {
1144
- debug("实施路线图", "getBatchDependencies() batchId=", batchId);
1145
- const direct = IMPLEMENTATION_BATCHES.find((b) => b.batch_id === batchId);
1146
- if (!direct)
1147
- return [];
1148
- const result = new Set();
1149
- const queue = [...direct.depends_on_batch_ids];
1150
- while (queue.length > 0) {
1151
- const next = queue.shift();
1152
- if (result.has(next))
1153
- continue;
1154
- result.add(next);
1155
- const dep = IMPLEMENTATION_BATCHES.find((b) => b.batch_id === next);
1156
- if (dep)
1157
- queue.push(...dep.depends_on_batch_ids);
1158
- }
1159
- return [...result];
1160
- }
1161
- /**
1162
- * 检查指定批次是否全部完成。
1163
- * @param batchId - 批次 ID
1164
- * @returns 批次中所有问题是否均已标记为 completed
1165
- */
1166
- export function isBatchComplete(batchId) {
1167
- debug("实施路线图", "isBatchComplete() batchId=", batchId);
1168
- const batch = IMPLEMENTATION_BATCHES.find((b) => b.batch_id === batchId);
1169
- if (!batch)
1170
- return false;
1171
- return batch.included_problem_ids.every((pid) => {
1172
- const p = PROBLEM_ENTRIES.find((e) => e.id === pid);
1173
- return p?.status === "completed";
1174
- });
1175
- }
1176
- // ── 汇总 ──
1177
- /**
1178
- * 获取各状态问题的数量汇总。
1179
- * @returns 各状态对应的问题数量映射
1180
- */
1181
- export function getProblemStatusSummary() {
1182
- debug("实施路线图", "getProblemStatusSummary() 开始执行");
1183
- const s = { completed: 0, implemented_verified: 0, implemented: 0, in_progress: 0, in_repair: 0, planned: 0, not_started: 0 };
1184
- for (const p of PROBLEM_ENTRIES)
1185
- s[p.status]++;
1186
- return s;
1187
- }
1188
- /**
1189
- * 获取各优先级问题的数量汇总。
1190
- * @returns 各优先级对应的问题数量映射
1191
- */
1192
- export function getProblemPrioritySummary() {
1193
- debug("实施路线图", "getProblemPrioritySummary() 开始执行");
1194
- const s = { pre_completed: 0, P0: 0, P1: 0, P2: 0, P3: 0 };
1195
- for (const p of PROBLEM_ENTRIES)
1196
- s[p.priority]++;
1197
- return s;
1198
- }
1199
- // ── 校验 ──
1200
- /**
1201
- * 校验实施路线图的一致性和完整性。
1202
- * @description 检查问题/批次唯一性、已完成问题的完成证据、前置完成规范集、
1203
- * 批次引用完整性、双向一致性等。
1204
- * @param problems - 待校验的问题列表,默认使用内置数据
1205
- * @param batches - 待校验的批次列表,默认使用内置数据
1206
- * @returns 治理发现列表(hard_fail 为硬性错误,advisory 为建议项)
1207
- */
1208
- export function validateImplementationRoadmap(problems = PROBLEM_ENTRIES, batches = IMPLEMENTATION_BATCHES) {
1209
- debug("实施路线图", "validateImplementationRoadmap() 开始校验,问题", problems.length, "条,批次", batches.length, "个");
1210
- const findings = [];
1211
- // ── 唯一性校验 ──
1212
- const pIds = new Set();
1213
- const problemMap = new Map();
1214
- for (const p of problems) {
1215
- if (pIds.has(p.id)) {
1216
- findings.push({ severity: "hard_fail", subject_id: p.id, field: "id", message: `duplicate problem id: ${p.id}` });
1217
- }
1218
- pIds.add(p.id);
1219
- problemMap.set(p.id, p);
1220
- }
1221
- const bIds = new Set();
1222
- const batchMap = new Map();
1223
- for (const b of batches) {
1224
- if (bIds.has(b.batch_id)) {
1225
- findings.push({ severity: "hard_fail", subject_id: b.batch_id, field: "batch_id", message: `duplicate batch id: ${b.batch_id}` });
1226
- }
1227
- bIds.add(b.batch_id);
1228
- batchMap.set(b.batch_id, b);
1229
- }
1230
- // ── 已完成的问题必须有完成证据 ──
1231
- for (const p of problems) {
1232
- if (p.status === "completed" && !p.completion_evidence) {
1233
- findings.push({ severity: "hard_fail", subject_id: p.id, field: "completion_evidence", message: `completed problem without evidence: ${p.id}` });
1234
- }
1235
- }
1236
- // ── 前置完成规范集:problem-1..5 必须为 pre_completed / completed / batch_id=batch-1 ──
1237
- for (const p of problems) {
1238
- const n = parseInt(p.id.replace("problem-", ""), 10);
1239
- if (n >= 1 && n <= 5) {
1240
- if (p.priority !== "pre_completed") {
1241
- findings.push({ severity: "hard_fail", subject_id: p.id, field: "priority", message: `problem ${p.id} must be pre_completed, got ${p.priority}` });
1242
- }
1243
- if (p.status !== "completed") {
1244
- findings.push({ severity: "hard_fail", subject_id: p.id, field: "status", message: `problem ${p.id} must be completed, got ${p.status}` });
1245
- }
1246
- if (p.batch_id !== "batch-1") {
1247
- findings.push({ severity: "hard_fail", subject_id: p.id, field: "batch_id", message: `pre_completed problem ${p.id} must have batch_id=batch-1, got ${p.batch_id}` });
1248
- }
1249
- }
1250
- }
1251
- // ── problem 6..64 必须有非空 batch_id ──
1252
- for (const p of problems) {
1253
- const n = parseInt(p.id.replace("problem-", ""), 10);
1254
- if (n >= 6 && n <= 64) {
1255
- if (!p.batch_id) {
1256
- findings.push({ severity: "hard_fail", subject_id: p.id, field: "batch_id", message: `problem ${p.id} (>=6) must have a non-null batch_id` });
1257
- }
1258
- }
1259
- }
1260
- // ── 批次引用检查 ──
1261
- for (const b of batches) {
1262
- for (const pid of b.included_problem_ids) {
1263
- if (!pIds.has(pid)) {
1264
- findings.push({ severity: "hard_fail", subject_id: b.batch_id, field: "included_problem_ids", message: `batch ${b.batch_id} references non-existent problem: ${pid}` });
1265
- }
1266
- }
1267
- for (const bid of b.depends_on_batch_ids) {
1268
- if (!bIds.has(bid)) {
1269
- findings.push({ severity: "hard_fail", subject_id: b.batch_id, field: "depends_on_batch_ids", message: `batch ${b.batch_id} depends on non-existent batch: ${bid}` });
1270
- }
1271
- }
1272
- }
1273
- // ── 根据 batch.included_problem_ids 构建问题→批次索引 ──
1274
- const problemToBatch = new Map();
1275
- for (const b of batches) {
1276
- for (const pid of b.included_problem_ids) {
1277
- const prev = problemToBatch.get(pid);
1278
- if (prev) {
1279
- findings.push({ severity: "hard_fail", subject_id: pid, field: "batch_id", message: `problem ${pid} appears in multiple batches: ${prev} and ${b.batch_id}` });
1280
- }
1281
- problemToBatch.set(pid, b.batch_id);
1282
- }
1283
- }
1284
- // ── 每个非前置完成的问题必须恰好属于一个批次 ──
1285
- for (const p of problems) {
1286
- if (p.priority !== "pre_completed" && !problemToBatch.has(p.id)) {
1287
- findings.push({ severity: "hard_fail", subject_id: p.id, field: "batch_id", message: `non-pre-completed problem ${p.id} not in any batch` });
1288
- }
1289
- }
1290
- // ── 前置完成的问题必须是 completed 状态 ──
1291
- for (const p of problems) {
1292
- if (p.priority === "pre_completed" && p.status !== "completed") {
1293
- findings.push({ severity: "hard_fail", subject_id: p.id, field: "status", message: `pre_completed problem ${p.id} has status ${p.status}, expected completed` });
1294
- }
1295
- }
1296
- // ── 前置完成的问题不得出现在任何 batch.included_problem_ids 中 ──
1297
- for (const b of batches) {
1298
- for (const pid of b.included_problem_ids) {
1299
- const p = problemMap.get(pid);
1300
- if (p && p.priority === "pre_completed") {
1301
- findings.push({ severity: "hard_fail", subject_id: pid, field: "included_problem_ids", message: `pre_completed problem ${pid} must not appear in batch ${b.batch_id}.included_problem_ids` });
1302
- }
1303
- }
1304
- }
1305
- // ── 双向一致性:ProblemEntry.batch_id ↔ batch.included_problem_ids ──
1306
- for (const p of problems) {
1307
- if (p.priority === "pre_completed" || !p.batch_id)
1308
- continue;
1309
- const batch = batchMap.get(p.batch_id);
1310
- if (!batch) {
1311
- findings.push({ severity: "hard_fail", subject_id: p.id, field: "batch_id", message: `problem ${p.id} references non-existent batch: ${p.batch_id}` });
1312
- continue;
1313
- }
1314
- if (!batch.included_problem_ids.includes(p.id)) {
1315
- findings.push({ severity: "hard_fail", subject_id: p.id, field: "batch_id", message: `problem ${p.id} has batch_id=${p.batch_id} but that batch does not include it` });
1316
- }
1317
- }
1318
- for (const b of batches) {
1319
- for (const pid of b.included_problem_ids) {
1320
- const p = problemMap.get(pid);
1321
- if (p && p.batch_id !== b.batch_id) {
1322
- findings.push({ severity: "hard_fail", subject_id: pid, field: "batch_id", message: `batch ${b.batch_id} includes ${pid} but problem has batch_id=${p.batch_id}` });
1323
- }
1324
- }
1325
- }
1326
- // ── 建议项:test_files 为空 ──
1327
- for (const p of problems) {
1328
- if (p.status === "completed" && p.test_files.length === 0) {
1329
- findings.push({ severity: "advisory", subject_id: p.id, field: "test_files", message: `completed problem ${p.id} has no test_files` });
1330
- }
1331
- }
1332
- // ── 建议项:批次 not_in_scope 为空 ──
1333
- for (const b of batches) {
1334
- if (b.not_in_scope.length === 0) {
1335
- findings.push({ severity: "advisory", subject_id: b.batch_id, field: "not_in_scope", message: `batch ${b.batch_id} has no not_in_scope` });
1336
- }
1337
- }
1338
- return findings;
1339
- }
1340
- //# sourceMappingURL=implementation_roadmap_registry.js.map