soloforge 1.5.0 → 2.0.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.
- package/CHANGELOG.md +279 -0
- package/README.md +93 -54
- package/dist/adapters/claude_code/claude_md.d.ts +2 -1
- package/dist/adapters/claude_code/claude_md.d.ts.map +1 -1
- package/dist/adapters/claude_code/claude_md.js +6 -6
- package/dist/adapters/claude_code/claude_md.js.map +1 -1
- package/dist/adapters/claude_code/hooks.d.ts.map +1 -1
- package/dist/adapters/claude_code/hooks.js +2 -2
- package/dist/adapters/claude_code/hooks.js.map +1 -1
- package/dist/adapters/claude_code/tools.d.ts +9 -327
- package/dist/adapters/claude_code/tools.d.ts.map +1 -1
- package/dist/adapters/claude_code/tools.js +7 -4221
- package/dist/adapters/claude_code/tools.js.map +1 -1
- package/dist/adapters/codex/codex_config.d.ts.map +1 -1
- package/dist/adapters/codex/codex_config.js +2 -2
- package/dist/adapters/codex/codex_config.js.map +1 -1
- package/dist/adapters/codex/codex_rules.d.ts +2 -1
- package/dist/adapters/codex/codex_rules.d.ts.map +1 -1
- package/dist/adapters/codex/codex_rules.js +25 -2
- package/dist/adapters/codex/codex_rules.js.map +1 -1
- package/dist/adapters/shared/hook_command.d.ts +20 -0
- package/dist/adapters/shared/hook_command.d.ts.map +1 -0
- package/dist/adapters/shared/hook_command.js +80 -0
- package/dist/adapters/shared/hook_command.js.map +1 -0
- package/dist/adapters/shared/workflow_template.d.ts +1 -1
- package/dist/adapters/shared/workflow_template.d.ts.map +1 -1
- package/dist/adapters/shared/workflow_template.js +4 -5
- package/dist/adapters/shared/workflow_template.js.map +1 -1
- package/dist/adapters/trae/trae_config.d.ts +17 -1
- package/dist/adapters/trae/trae_config.d.ts.map +1 -1
- package/dist/adapters/trae/trae_config.js +3 -3
- package/dist/adapters/trae/trae_config.js.map +1 -1
- package/dist/adapters/trae/trae_rules.d.ts +2 -1
- package/dist/adapters/trae/trae_rules.d.ts.map +1 -1
- package/dist/adapters/trae/trae_rules.js +25 -2
- package/dist/adapters/trae/trae_rules.js.map +1 -1
- package/dist/bin/args.d.ts +13 -0
- package/dist/bin/args.d.ts.map +1 -0
- package/dist/bin/args.js +52 -0
- package/dist/bin/args.js.map +1 -0
- package/dist/bin/commands/analyze.d.ts +7 -0
- package/dist/bin/commands/analyze.d.ts.map +1 -0
- package/dist/bin/commands/analyze.js +52 -0
- package/dist/bin/commands/analyze.js.map +1 -0
- package/dist/bin/commands/audit.d.ts +11 -0
- package/dist/bin/commands/audit.d.ts.map +1 -0
- package/dist/bin/commands/audit.js +468 -0
- package/dist/bin/commands/audit.js.map +1 -0
- package/dist/bin/commands/check_bash.d.ts +15 -0
- package/dist/bin/commands/check_bash.d.ts.map +1 -0
- package/dist/bin/commands/check_bash.js +264 -0
- package/dist/bin/commands/check_bash.js.map +1 -0
- package/dist/bin/commands/check_write.d.ts +41 -0
- package/dist/bin/commands/check_write.d.ts.map +1 -0
- package/dist/bin/commands/check_write.js +437 -0
- package/dist/bin/commands/check_write.js.map +1 -0
- package/dist/bin/commands/hooks.d.ts +8 -0
- package/dist/bin/commands/hooks.d.ts.map +1 -0
- package/dist/bin/commands/hooks.js +83 -0
- package/dist/bin/commands/hooks.js.map +1 -0
- package/dist/bin/commands/init.d.ts +38 -0
- package/dist/bin/commands/init.d.ts.map +1 -0
- package/dist/bin/commands/init.js +406 -0
- package/dist/bin/commands/init.js.map +1 -0
- package/dist/bin/commands/modify.d.ts +7 -0
- package/dist/bin/commands/modify.d.ts.map +1 -0
- package/dist/bin/commands/modify.js +74 -0
- package/dist/bin/commands/modify.js.map +1 -0
- package/dist/bin/commands/reasoning.d.ts +14 -0
- package/dist/bin/commands/reasoning.d.ts.map +1 -0
- package/dist/bin/commands/reasoning.js +158 -0
- package/dist/bin/commands/reasoning.js.map +1 -0
- package/dist/bin/commands/review.d.ts +7 -0
- package/dist/bin/commands/review.d.ts.map +1 -0
- package/dist/bin/commands/review.js +79 -0
- package/dist/bin/commands/review.js.map +1 -0
- package/dist/bin/commands/status.d.ts +12 -0
- package/dist/bin/commands/status.d.ts.map +1 -0
- package/dist/bin/commands/status.js +614 -0
- package/dist/bin/commands/status.js.map +1 -0
- package/dist/bin/commands/sync.d.ts +11 -0
- package/dist/bin/commands/sync.d.ts.map +1 -0
- package/dist/bin/commands/sync.js +517 -0
- package/dist/bin/commands/sync.js.map +1 -0
- package/dist/bin/commands/validate.d.ts +10 -0
- package/dist/bin/commands/validate.d.ts.map +1 -0
- package/dist/bin/commands/validate.js +504 -0
- package/dist/bin/commands/validate.js.map +1 -0
- package/dist/bin/config_commands.d.ts +21 -20
- package/dist/bin/config_commands.d.ts.map +1 -1
- package/dist/bin/config_commands.js +214 -227
- package/dist/bin/config_commands.js.map +1 -1
- package/dist/bin/soloforge.d.ts +1 -1
- package/dist/bin/soloforge.d.ts.map +1 -1
- package/dist/bin/soloforge.js +100 -2786
- package/dist/bin/soloforge.js.map +1 -1
- package/dist/engine/adapter_prompt_contract.d.ts +2 -2
- package/dist/engine/adapter_prompt_contract.d.ts.map +1 -1
- package/dist/engine/adapter_prompt_contract.js +1 -1
- package/dist/engine/adapter_prompt_contract.js.map +1 -1
- package/dist/engine/audit/audit_pool.d.ts.map +1 -0
- package/dist/engine/audit/audit_pool.js +121 -0
- package/dist/engine/audit/audit_pool.js.map +1 -0
- package/dist/engine/audit/audit_sampler.d.ts +22 -0
- package/dist/engine/audit/audit_sampler.d.ts.map +1 -0
- package/dist/engine/audit/audit_sampler.js +29 -0
- package/dist/engine/audit/audit_sampler.js.map +1 -0
- package/dist/engine/audit/code_reviewer.d.ts +73 -0
- package/dist/engine/audit/code_reviewer.d.ts.map +1 -0
- package/dist/engine/audit/code_reviewer.js +632 -0
- package/dist/engine/audit/code_reviewer.js.map +1 -0
- package/dist/engine/audit/confidence_scorer.d.ts +48 -0
- package/dist/engine/audit/confidence_scorer.d.ts.map +1 -0
- package/dist/engine/audit/confidence_scorer.js +64 -0
- package/dist/engine/audit/confidence_scorer.js.map +1 -0
- package/dist/engine/audit/core_engineering_principles.d.ts +155 -0
- package/dist/engine/audit/core_engineering_principles.d.ts.map +1 -0
- package/dist/engine/audit/core_engineering_principles.js +414 -0
- package/dist/engine/audit/core_engineering_principles.js.map +1 -0
- package/dist/engine/audit/core_experience_principle.d.ts.map +1 -0
- package/dist/engine/audit/core_experience_principle.js +349 -0
- package/dist/engine/audit/core_experience_principle.js.map +1 -0
- package/dist/engine/audit/debt_reporter.d.ts +12 -0
- package/dist/engine/audit/debt_reporter.d.ts.map +1 -0
- package/dist/engine/audit/debt_reporter.js +94 -0
- package/dist/engine/audit/debt_reporter.js.map +1 -0
- package/dist/engine/audit/debt_tracker.d.ts +72 -0
- package/dist/engine/audit/debt_tracker.d.ts.map +1 -0
- package/dist/engine/audit/debt_tracker.js +231 -0
- package/dist/engine/audit/debt_tracker.js.map +1 -0
- package/dist/engine/audit/debugger.d.ts +15 -0
- package/dist/engine/audit/debugger.d.ts.map +1 -0
- package/dist/engine/audit/debugger.js +415 -0
- package/dist/engine/audit/debugger.js.map +1 -0
- package/dist/engine/audit/degradation.d.ts.map +1 -0
- package/dist/engine/audit/degradation.js.map +1 -0
- package/dist/engine/audit/delivery.d.ts +49 -0
- package/dist/engine/audit/delivery.d.ts.map +1 -0
- package/dist/engine/audit/delivery.js +405 -0
- package/dist/engine/audit/delivery.js.map +1 -0
- package/dist/engine/audit/delivery_readiness.d.ts +72 -0
- package/dist/engine/audit/delivery_readiness.d.ts.map +1 -0
- package/dist/engine/audit/delivery_readiness.js +200 -0
- package/dist/engine/audit/delivery_readiness.js.map +1 -0
- package/dist/engine/audit/developer_sovereignty.d.ts +24 -0
- package/dist/engine/audit/developer_sovereignty.d.ts.map +1 -0
- package/dist/engine/audit/developer_sovereignty.js +137 -0
- package/dist/engine/audit/developer_sovereignty.js.map +1 -0
- package/dist/engine/audit/diagnostic_registry.d.ts.map +1 -0
- package/dist/engine/audit/diagnostic_registry.js +288 -0
- package/dist/engine/audit/diagnostic_registry.js.map +1 -0
- package/dist/engine/audit/evolver.d.ts +78 -0
- package/dist/engine/audit/evolver.d.ts.map +1 -0
- package/dist/engine/audit/evolver.js +402 -0
- package/dist/engine/audit/evolver.js.map +1 -0
- package/dist/engine/audit/failure_classifier.d.ts +39 -0
- package/dist/engine/audit/failure_classifier.d.ts.map +1 -0
- package/dist/engine/audit/failure_classifier.js +175 -0
- package/dist/engine/audit/failure_classifier.js.map +1 -0
- package/dist/engine/audit/failure_report.d.ts.map +1 -0
- package/dist/engine/audit/failure_report.js.map +1 -0
- package/dist/engine/audit/governance_report.d.ts +101 -0
- package/dist/engine/audit/governance_report.d.ts.map +1 -0
- package/dist/engine/audit/governance_report.js +185 -0
- package/dist/engine/audit/governance_report.js.map +1 -0
- package/dist/engine/audit/java_quality_guard.d.ts.map +1 -0
- package/dist/engine/audit/java_quality_guard.js +228 -0
- package/dist/engine/audit/java_quality_guard.js.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/constants.d.ts +27 -0
- package/dist/engine/audit/main_path_integration_contract/constants.d.ts.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/constants.js +71 -0
- package/dist/engine/audit/main_path_integration_contract/constants.js.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/factories.d.ts +35 -0
- package/dist/engine/audit/main_path_integration_contract/factories.d.ts.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/factories.js +62 -0
- package/dist/engine/audit/main_path_integration_contract/factories.js.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/gates.d.ts +25 -0
- package/dist/engine/audit/main_path_integration_contract/gates.d.ts.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/gates.js +307 -0
- package/dist/engine/audit/main_path_integration_contract/gates.js.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/index.d.ts +17 -0
- package/dist/engine/audit/main_path_integration_contract/index.d.ts.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/index.js +21 -0
- package/dist/engine/audit/main_path_integration_contract/index.js.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/queries.d.ts +46 -0
- package/dist/engine/audit/main_path_integration_contract/queries.d.ts.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/queries.js +91 -0
- package/dist/engine/audit/main_path_integration_contract/queries.js.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/scanning.d.ts +13 -0
- package/dist/engine/audit/main_path_integration_contract/scanning.d.ts.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/scanning.js +476 -0
- package/dist/engine/audit/main_path_integration_contract/scanning.js.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/scanning_infra.d.ts +35 -0
- package/dist/engine/audit/main_path_integration_contract/scanning_infra.d.ts.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/scanning_infra.js +343 -0
- package/dist/engine/audit/main_path_integration_contract/scanning_infra.js.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/types.d.ts +87 -0
- package/dist/engine/audit/main_path_integration_contract/types.d.ts.map +1 -0
- package/dist/engine/audit/main_path_integration_contract/types.js +5 -0
- package/dist/engine/audit/main_path_integration_contract/types.js.map +1 -0
- package/dist/engine/audit/main_path_integration_contract.d.ts +13 -0
- package/dist/engine/audit/main_path_integration_contract.d.ts.map +1 -0
- package/dist/engine/audit/main_path_integration_contract.js +17 -0
- package/dist/engine/audit/main_path_integration_contract.js.map +1 -0
- package/dist/engine/audit/mutation_audit.d.ts +39 -0
- package/dist/engine/audit/mutation_audit.d.ts.map +1 -0
- package/dist/engine/audit/mutation_audit.js +153 -0
- package/dist/engine/audit/mutation_audit.js.map +1 -0
- package/dist/engine/audit/observability.d.ts +68 -0
- package/dist/engine/audit/observability.d.ts.map +1 -0
- package/dist/engine/audit/observability.js +437 -0
- package/dist/engine/audit/observability.js.map +1 -0
- package/dist/engine/audit/privacy_grants.d.ts +108 -0
- package/dist/engine/audit/privacy_grants.d.ts.map +1 -0
- package/dist/engine/audit/privacy_grants.js +171 -0
- package/dist/engine/audit/privacy_grants.js.map +1 -0
- package/dist/engine/audit/privacy_patterns.d.ts +24 -0
- package/dist/engine/audit/privacy_patterns.d.ts.map +1 -0
- package/dist/engine/audit/privacy_patterns.js +143 -0
- package/dist/engine/audit/privacy_patterns.js.map +1 -0
- package/dist/engine/audit/privacy_scanning.d.ts +153 -0
- package/dist/engine/audit/privacy_scanning.d.ts.map +1 -0
- package/dist/engine/audit/privacy_scanning.js +567 -0
- package/dist/engine/audit/privacy_scanning.js.map +1 -0
- package/dist/engine/audit/privacy_secret_contract.d.ts +12 -0
- package/dist/engine/audit/privacy_secret_contract.d.ts.map +1 -0
- package/dist/engine/audit/privacy_secret_contract.js +14 -0
- package/dist/engine/audit/privacy_secret_contract.js.map +1 -0
- package/dist/engine/audit/privacy_types.d.ts +48 -0
- package/dist/engine/audit/privacy_types.d.ts.map +1 -0
- package/dist/engine/audit/privacy_types.js +14 -0
- package/dist/engine/audit/privacy_types.js.map +1 -0
- package/dist/engine/audit/risk_sampler.d.ts +45 -0
- package/dist/engine/audit/risk_sampler.d.ts.map +1 -0
- package/dist/engine/audit/risk_sampler.js +81 -0
- package/dist/engine/audit/risk_sampler.js.map +1 -0
- package/dist/engine/audit/runtime_safety.d.ts.map +1 -0
- package/dist/engine/audit/runtime_safety.js +200 -0
- package/dist/engine/audit/runtime_safety.js.map +1 -0
- package/dist/engine/audit/semantic_evidence.d.ts +33 -0
- package/dist/engine/audit/semantic_evidence.d.ts.map +1 -0
- package/dist/engine/audit/semantic_evidence.js +93 -0
- package/dist/engine/audit/semantic_evidence.js.map +1 -0
- package/dist/engine/audit/test_generator.d.ts +10 -0
- package/dist/engine/audit/test_generator.d.ts.map +1 -0
- package/dist/engine/audit/test_generator.js +268 -0
- package/dist/engine/audit/test_generator.js.map +1 -0
- package/dist/engine/audit/test_quality.d.ts +39 -0
- package/dist/engine/audit/test_quality.d.ts.map +1 -0
- package/dist/engine/audit/test_quality.js +642 -0
- package/dist/engine/audit/test_quality.js.map +1 -0
- package/dist/engine/audit/test_strategy.d.ts.map +1 -0
- package/dist/engine/audit/test_strategy.js.map +1 -0
- package/dist/engine/change_coordinator.d.ts +1 -1
- package/dist/engine/change_coordinator.d.ts.map +1 -1
- package/dist/engine/change_coordinator.js +33 -33
- package/dist/engine/change_coordinator.js.map +1 -1
- package/dist/engine/cognitive_anchor.d.ts.map +1 -1
- package/dist/engine/cognitive_anchor.js +7 -8
- package/dist/engine/cognitive_anchor.js.map +1 -1
- package/dist/engine/config/config_write_boundary.d.ts.map +1 -0
- package/dist/engine/config/config_write_boundary.js +85 -0
- package/dist/engine/config/config_write_boundary.js.map +1 -0
- package/dist/engine/config/conflicts.d.ts +39 -0
- package/dist/engine/config/conflicts.d.ts.map +1 -0
- package/dist/engine/config/conflicts.js +79 -0
- package/dist/engine/config/conflicts.js.map +1 -0
- package/dist/engine/config/detector/blueprint.d.ts +25 -0
- package/dist/engine/config/detector/blueprint.d.ts.map +1 -0
- package/dist/engine/config/detector/blueprint.js +47 -0
- package/dist/engine/config/detector/blueprint.js.map +1 -0
- package/dist/engine/config/detector/fingerprint.d.ts +67 -0
- package/dist/engine/config/detector/fingerprint.d.ts.map +1 -0
- package/dist/engine/config/detector/fingerprint.js +160 -0
- package/dist/engine/config/detector/fingerprint.js.map +1 -0
- package/dist/engine/config/detector/framework_map.d.ts +89 -0
- package/dist/engine/config/detector/framework_map.d.ts.map +1 -0
- package/dist/engine/config/detector/framework_map.js +406 -0
- package/dist/engine/config/detector/framework_map.js.map +1 -0
- package/dist/engine/config/detector/index.d.ts +12 -0
- package/dist/engine/config/detector/index.d.ts.map +1 -0
- package/dist/engine/config/detector/index.js +12 -0
- package/dist/engine/config/detector/index.js.map +1 -0
- package/dist/engine/config/detector/verify.d.ts +32 -0
- package/dist/engine/config/detector/verify.d.ts.map +1 -0
- package/dist/engine/config/detector/verify.js +107 -0
- package/dist/engine/config/detector/verify.js.map +1 -0
- package/dist/engine/config/intent.d.ts +26 -0
- package/dist/engine/config/intent.d.ts.map +1 -0
- package/dist/engine/config/intent.js +81 -0
- package/dist/engine/config/intent.js.map +1 -0
- package/dist/engine/config/intent_schema.d.ts +873 -0
- package/dist/engine/config/intent_schema.d.ts.map +1 -0
- package/dist/engine/config/intent_schema.js +98 -0
- package/dist/engine/config/intent_schema.js.map +1 -0
- package/dist/engine/config/regression_matrix.d.ts.map +1 -0
- package/dist/engine/config/regression_matrix.js +389 -0
- package/dist/engine/config/regression_matrix.js.map +1 -0
- package/dist/engine/config/resolver.d.ts +136 -0
- package/dist/engine/config/resolver.d.ts.map +1 -0
- package/dist/engine/config/resolver.js +251 -0
- package/dist/engine/config/resolver.js.map +1 -0
- package/dist/engine/context_engine/bootstrap.d.ts +12 -0
- package/dist/engine/context_engine/bootstrap.d.ts.map +1 -0
- package/dist/engine/context_engine/bootstrap.js +28 -0
- package/dist/engine/context_engine/bootstrap.js.map +1 -0
- package/dist/engine/context_engine/companion_injector.d.ts +49 -0
- package/dist/engine/context_engine/companion_injector.d.ts.map +1 -0
- package/dist/engine/context_engine/companion_injector.js +157 -0
- package/dist/engine/context_engine/companion_injector.js.map +1 -0
- package/dist/engine/context_engine/context_resolver.d.ts +46 -0
- package/dist/engine/context_engine/context_resolver.d.ts.map +1 -0
- package/dist/engine/context_engine/context_resolver.js +139 -0
- package/dist/engine/context_engine/context_resolver.js.map +1 -0
- package/dist/engine/context_engine/index.d.ts +25 -0
- package/dist/engine/context_engine/index.d.ts.map +1 -0
- package/dist/engine/context_engine/index.js +25 -0
- package/dist/engine/context_engine/index.js.map +1 -0
- package/dist/engine/context_engine/view_registry.d.ts +45 -0
- package/dist/engine/context_engine/view_registry.d.ts.map +1 -0
- package/dist/engine/context_engine/view_registry.js +36 -0
- package/dist/engine/context_engine/view_registry.js.map +1 -0
- package/dist/engine/context_engine/views/change_impact.d.ts +34 -0
- package/dist/engine/context_engine/views/change_impact.d.ts.map +1 -0
- package/dist/engine/context_engine/views/change_impact.js +288 -0
- package/dist/engine/context_engine/views/change_impact.js.map +1 -0
- package/dist/engine/context_engine/views/coverage_gap.d.ts +45 -0
- package/dist/engine/context_engine/views/coverage_gap.d.ts.map +1 -0
- package/dist/engine/context_engine/views/coverage_gap.js +238 -0
- package/dist/engine/context_engine/views/coverage_gap.js.map +1 -0
- package/dist/engine/context_engine/views/dependency_graph.d.ts +45 -0
- package/dist/engine/context_engine/views/dependency_graph.d.ts.map +1 -0
- package/dist/engine/context_engine/views/dependency_graph.js +358 -0
- package/dist/engine/context_engine/views/dependency_graph.js.map +1 -0
- package/dist/engine/context_engine/views/file_impact.d.ts +46 -0
- package/dist/engine/context_engine/views/file_impact.d.ts.map +1 -0
- package/dist/engine/context_engine/views/file_impact.js +181 -0
- package/dist/engine/context_engine/views/file_impact.js.map +1 -0
- package/dist/engine/context_engine/views/knowledge_ref.d.ts +37 -0
- package/dist/engine/context_engine/views/knowledge_ref.d.ts.map +1 -0
- package/dist/engine/context_engine/views/knowledge_ref.js +264 -0
- package/dist/engine/context_engine/views/knowledge_ref.js.map +1 -0
- package/dist/engine/context_engine/views/reference_trace.d.ts +49 -0
- package/dist/engine/context_engine/views/reference_trace.d.ts.map +1 -0
- package/dist/engine/context_engine/views/reference_trace.js +227 -0
- package/dist/engine/context_engine/views/reference_trace.js.map +1 -0
- package/dist/engine/contracts/architecture_decision_workshop.d.ts +63 -0
- package/dist/engine/contracts/architecture_decision_workshop.d.ts.map +1 -0
- package/dist/engine/contracts/architecture_decision_workshop.js +122 -0
- package/dist/engine/contracts/architecture_decision_workshop.js.map +1 -0
- package/dist/engine/contracts/architecture_design_contract.d.ts.map +1 -0
- package/dist/engine/contracts/architecture_design_contract.js.map +1 -0
- package/dist/engine/contracts/artifact_contract_registry.d.ts +138 -0
- package/dist/engine/contracts/artifact_contract_registry.d.ts.map +1 -0
- package/dist/engine/contracts/artifact_contract_registry.js +420 -0
- package/dist/engine/contracts/artifact_contract_registry.js.map +1 -0
- package/dist/engine/contracts/artifact_process_rules.d.ts +46 -0
- package/dist/engine/contracts/artifact_process_rules.d.ts.map +1 -0
- package/dist/engine/contracts/artifact_process_rules.js +396 -0
- package/dist/engine/contracts/artifact_process_rules.js.map +1 -0
- package/dist/engine/contracts/artifact_schema_registry.d.ts +139 -0
- package/dist/engine/contracts/artifact_schema_registry.d.ts.map +1 -0
- package/dist/engine/contracts/artifact_schema_registry.js +803 -0
- package/dist/engine/contracts/artifact_schema_registry.js.map +1 -0
- package/dist/engine/contracts/backend_implementation_contract.d.ts.map +1 -0
- package/dist/engine/contracts/backend_implementation_contract.js +164 -0
- package/dist/engine/contracts/backend_implementation_contract.js.map +1 -0
- package/dist/engine/contracts/behavior_coverage_verifier.d.ts +35 -0
- package/dist/engine/contracts/behavior_coverage_verifier.d.ts.map +1 -0
- package/dist/engine/contracts/behavior_coverage_verifier.js +220 -0
- package/dist/engine/contracts/behavior_coverage_verifier.js.map +1 -0
- package/dist/engine/contracts/brainstorm_contract.d.ts +48 -0
- package/dist/engine/contracts/brainstorm_contract.d.ts.map +1 -0
- package/dist/engine/contracts/brainstorm_contract.js +146 -0
- package/dist/engine/contracts/brainstorm_contract.js.map +1 -0
- package/dist/engine/contracts/capability_action_advisor.d.ts.map +1 -0
- package/dist/engine/contracts/capability_action_advisor.js +158 -0
- package/dist/engine/contracts/capability_action_advisor.js.map +1 -0
- package/dist/engine/contracts/capability_registry.d.ts.map +1 -0
- package/dist/engine/contracts/capability_registry.js +778 -0
- package/dist/engine/contracts/capability_registry.js.map +1 -0
- package/dist/engine/contracts/capability_state_store.d.ts +115 -0
- package/dist/engine/contracts/capability_state_store.d.ts.map +1 -0
- package/dist/engine/contracts/capability_state_store.js +182 -0
- package/dist/engine/contracts/capability_state_store.js.map +1 -0
- package/dist/engine/contracts/code_maintainability_observability_contract.d.ts.map +1 -0
- package/dist/engine/contracts/code_maintainability_observability_contract.js +711 -0
- package/dist/engine/contracts/code_maintainability_observability_contract.js.map +1 -0
- package/dist/engine/contracts/coding_readiness_gate.d.ts +46 -0
- package/dist/engine/contracts/coding_readiness_gate.d.ts.map +1 -0
- package/dist/engine/contracts/coding_readiness_gate.js +175 -0
- package/dist/engine/contracts/coding_readiness_gate.js.map +1 -0
- package/dist/engine/contracts/command_execution_contract.d.ts +216 -0
- package/dist/engine/contracts/command_execution_contract.d.ts.map +1 -0
- package/dist/engine/contracts/command_execution_contract.js +562 -0
- package/dist/engine/contracts/command_execution_contract.js.map +1 -0
- package/dist/engine/contracts/contract_guard.d.ts +37 -0
- package/dist/engine/contracts/contract_guard.d.ts.map +1 -0
- package/dist/engine/contracts/contract_guard.js +598 -0
- package/dist/engine/contracts/contract_guard.js.map +1 -0
- package/dist/engine/contracts/contract_registry/builtin_contracts_core.d.ts +10 -0
- package/dist/engine/contracts/contract_registry/builtin_contracts_core.d.ts.map +1 -0
- package/dist/engine/contracts/contract_registry/builtin_contracts_core.js +300 -0
- package/dist/engine/contracts/contract_registry/builtin_contracts_core.js.map +1 -0
- package/dist/engine/contracts/contract_registry/builtin_contracts_core_2.d.ts +10 -0
- package/dist/engine/contracts/contract_registry/builtin_contracts_core_2.d.ts.map +1 -0
- package/dist/engine/contracts/contract_registry/builtin_contracts_core_2.js +298 -0
- package/dist/engine/contracts/contract_registry/builtin_contracts_core_2.js.map +1 -0
- package/dist/engine/contracts/contract_registry/builtin_contracts_extended.d.ts +13 -0
- package/dist/engine/contracts/contract_registry/builtin_contracts_extended.d.ts.map +1 -0
- package/dist/engine/contracts/contract_registry/builtin_contracts_extended.js +494 -0
- package/dist/engine/contracts/contract_registry/builtin_contracts_extended.js.map +1 -0
- package/dist/engine/contracts/contract_registry/index.d.ts +8 -0
- package/dist/engine/contracts/contract_registry/index.d.ts.map +1 -0
- package/dist/engine/contracts/contract_registry/index.js +7 -0
- package/dist/engine/contracts/contract_registry/index.js.map +1 -0
- package/dist/engine/contracts/contract_registry/registry.d.ts +61 -0
- package/dist/engine/contracts/contract_registry/registry.d.ts.map +1 -0
- package/dist/engine/contracts/contract_registry/registry.js +191 -0
- package/dist/engine/contracts/contract_registry/registry.js.map +1 -0
- package/dist/engine/contracts/contract_registry/registry_internal.d.ts +12 -0
- package/dist/engine/contracts/contract_registry/registry_internal.d.ts.map +1 -0
- package/dist/engine/contracts/contract_registry/registry_internal.js +47 -0
- package/dist/engine/contracts/contract_registry/registry_internal.js.map +1 -0
- package/dist/engine/contracts/contract_registry/types.d.ts +47 -0
- package/dist/engine/contracts/contract_registry/types.d.ts.map +1 -0
- package/dist/engine/contracts/contract_registry/types.js +5 -0
- package/dist/engine/contracts/contract_registry/types.js.map +1 -0
- package/dist/engine/contracts/contract_registry/validation.d.ts +18 -0
- package/dist/engine/contracts/contract_registry/validation.d.ts.map +1 -0
- package/dist/engine/contracts/contract_registry/validation.js +339 -0
- package/dist/engine/contracts/contract_registry/validation.js.map +1 -0
- package/dist/engine/contracts/contract_registry.d.ts +9 -0
- package/dist/engine/contracts/contract_registry.d.ts.map +1 -0
- package/dist/engine/contracts/contract_registry.js +8 -0
- package/dist/engine/contracts/contract_registry.js.map +1 -0
- package/dist/engine/contracts/contract_state_store.d.ts +69 -0
- package/dist/engine/contracts/contract_state_store.d.ts.map +1 -0
- package/dist/engine/contracts/contract_state_store.js +170 -0
- package/dist/engine/contracts/contract_state_store.js.map +1 -0
- package/dist/engine/contracts/control_plane_contract.d.ts.map +1 -0
- package/dist/engine/contracts/control_plane_contract.js +266 -0
- package/dist/engine/contracts/control_plane_contract.js.map +1 -0
- package/dist/engine/contracts/decision_contract.d.ts +38 -0
- package/dist/engine/contracts/decision_contract.d.ts.map +1 -0
- package/dist/engine/contracts/decision_contract.js +57 -0
- package/dist/engine/contracts/decision_contract.js.map +1 -0
- package/dist/engine/contracts/decision_workshop.d.ts +166 -0
- package/dist/engine/contracts/decision_workshop.d.ts.map +1 -0
- package/dist/engine/contracts/decision_workshop.js.map +1 -0
- package/dist/engine/contracts/design_artifact_pack.d.ts +13 -0
- package/dist/engine/contracts/design_artifact_pack.d.ts.map +1 -0
- package/dist/engine/contracts/design_artifact_pack.js.map +1 -0
- package/dist/engine/contracts/design_lifecycle_contract.d.ts +60 -0
- package/dist/engine/contracts/design_lifecycle_contract.d.ts.map +1 -0
- package/dist/engine/contracts/design_lifecycle_contract.js +505 -0
- package/dist/engine/contracts/design_lifecycle_contract.js.map +1 -0
- package/dist/engine/contracts/detail_discipline.d.ts.map +1 -0
- package/dist/engine/contracts/detail_discipline.js.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/index.d.ts +9 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/index.d.ts.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/index.js +8 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/index.js.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit.d.ts +7 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit.d.ts.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit.js +414 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit.js.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.d.ts +7 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.d.ts.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.js +81 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_audit_tail.js.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.d.ts +7 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.d.ts.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.js +448 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_core.js.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.d.ts +7 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.d.ts.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.js +445 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.js.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_governance.d.ts +7 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_governance.d.ts.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_governance.js +274 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_governance.js.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.d.ts +7 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.d.ts.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.js +247 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_infra.js.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.d.ts +7 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.d.ts.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js +470 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_release.d.ts +7 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_release.d.ts.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_release.js +320 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_release.js.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/shared.d.ts +8 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/shared.d.ts.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/shared.js +60 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/shared.js.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/validation.d.ts +68 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/validation.d.ts.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/validation.js +354 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry/validation.js.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry.d.ts +9 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry.d.ts.map +1 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry.js +8 -0
- package/dist/engine/contracts/dual_layer_mechanism_registry.js.map +1 -0
- package/dist/engine/contracts/enforcement_guard.d.ts +110 -0
- package/dist/engine/contracts/enforcement_guard.d.ts.map +1 -0
- package/dist/engine/contracts/enforcement_guard.js +473 -0
- package/dist/engine/contracts/enforcement_guard.js.map +1 -0
- package/dist/engine/contracts/error_path_verifier.d.ts +36 -0
- package/dist/engine/contracts/error_path_verifier.d.ts.map +1 -0
- package/dist/engine/contracts/error_path_verifier.js +131 -0
- package/dist/engine/contracts/error_path_verifier.js.map +1 -0
- package/dist/engine/contracts/escape_report.d.ts.map +1 -0
- package/dist/engine/contracts/escape_report.js +137 -0
- package/dist/engine/contracts/escape_report.js.map +1 -0
- package/dist/engine/contracts/evidence_grounding_contract.d.ts +135 -0
- package/dist/engine/contracts/evidence_grounding_contract.d.ts.map +1 -0
- package/dist/engine/contracts/evidence_grounding_contract.js +404 -0
- package/dist/engine/contracts/evidence_grounding_contract.js.map +1 -0
- package/dist/engine/contracts/evolution_regression_gate.d.ts +44 -0
- package/dist/engine/contracts/evolution_regression_gate.d.ts.map +1 -0
- package/dist/engine/contracts/evolution_regression_gate.js +161 -0
- package/dist/engine/contracts/evolution_regression_gate.js.map +1 -0
- package/dist/engine/contracts/existing_system_analysis.d.ts.map +1 -0
- package/dist/engine/contracts/existing_system_analysis.js.map +1 -0
- package/dist/engine/contracts/existing_system_analyzer.d.ts +153 -0
- package/dist/engine/contracts/existing_system_analyzer.d.ts.map +1 -0
- package/dist/engine/contracts/existing_system_analyzer.js +615 -0
- package/dist/engine/contracts/existing_system_analyzer.js.map +1 -0
- package/dist/engine/contracts/extension_contract.d.ts +50 -0
- package/dist/engine/contracts/extension_contract.d.ts.map +1 -0
- package/dist/engine/contracts/extension_contract.js +158 -0
- package/dist/engine/contracts/extension_contract.js.map +1 -0
- package/dist/engine/contracts/extension_platform_contracts.d.ts.map +1 -0
- package/dist/engine/contracts/extension_platform_contracts.js.map +1 -0
- package/dist/engine/contracts/extension_scenario_definitions.d.ts +10 -0
- package/dist/engine/contracts/extension_scenario_definitions.d.ts.map +1 -0
- package/dist/engine/contracts/extension_scenario_definitions.js +112 -0
- package/dist/engine/contracts/extension_scenario_definitions.js.map +1 -0
- package/dist/engine/contracts/extension_scenario_registry.d.ts +24 -0
- package/dist/engine/contracts/extension_scenario_registry.d.ts.map +1 -0
- package/dist/engine/contracts/extension_scenario_registry.js +711 -0
- package/dist/engine/contracts/extension_scenario_registry.js.map +1 -0
- package/dist/engine/contracts/first_principles.d.ts +84 -0
- package/dist/engine/contracts/first_principles.d.ts.map +1 -0
- package/dist/engine/contracts/first_principles.js +197 -0
- package/dist/engine/contracts/first_principles.js.map +1 -0
- package/dist/engine/contracts/instruction_contract.d.ts.map +1 -0
- package/dist/engine/contracts/instruction_contract.js +178 -0
- package/dist/engine/contracts/instruction_contract.js.map +1 -0
- package/dist/engine/contracts/lazy_pattern_detector.d.ts +43 -0
- package/dist/engine/contracts/lazy_pattern_detector.d.ts.map +1 -0
- package/dist/engine/contracts/lazy_pattern_detector.js +164 -0
- package/dist/engine/contracts/lazy_pattern_detector.js.map +1 -0
- package/dist/engine/contracts/lifecycle_knowledge_contract.d.ts +59 -0
- package/dist/engine/contracts/lifecycle_knowledge_contract.d.ts.map +1 -0
- package/dist/engine/contracts/lifecycle_knowledge_contract.js +203 -0
- package/dist/engine/contracts/lifecycle_knowledge_contract.js.map +1 -0
- package/dist/engine/contracts/local_docker_acceptance.d.ts +94 -0
- package/dist/engine/contracts/local_docker_acceptance.d.ts.map +1 -0
- package/dist/engine/contracts/local_docker_acceptance.js +312 -0
- package/dist/engine/contracts/local_docker_acceptance.js.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.d.ts +13 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.d.ts.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.js +422 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-audit.js.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.d.ts +14 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.d.ts.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js +444 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.d.ts +11 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.d.ts.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.js +246 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-pipeline.js.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.d.ts +15 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.d.ts.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.js +378 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-platform.js.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry/index.d.ts +19 -0
- package/dist/engine/contracts/mechanism_contract_registry/index.d.ts.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry/index.js +21 -0
- package/dist/engine/contracts/mechanism_contract_registry/index.js.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry/types.d.ts +33 -0
- package/dist/engine/contracts/mechanism_contract_registry/types.d.ts.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry/types.js +5 -0
- package/dist/engine/contracts/mechanism_contract_registry/types.js.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry/validation.d.ts +28 -0
- package/dist/engine/contracts/mechanism_contract_registry/validation.d.ts.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry/validation.js +124 -0
- package/dist/engine/contracts/mechanism_contract_registry/validation.js.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry.d.ts +8 -0
- package/dist/engine/contracts/mechanism_contract_registry.d.ts.map +1 -0
- package/dist/engine/contracts/mechanism_contract_registry.js +7 -0
- package/dist/engine/contracts/mechanism_contract_registry.js.map +1 -0
- package/dist/engine/contracts/mechanism_health_check.d.ts +25 -0
- package/dist/engine/contracts/mechanism_health_check.d.ts.map +1 -0
- package/dist/engine/contracts/mechanism_health_check.js +143 -0
- package/dist/engine/contracts/mechanism_health_check.js.map +1 -0
- package/dist/engine/contracts/metric_governance.d.ts.map +1 -0
- package/dist/engine/contracts/metric_governance.js.map +1 -0
- package/dist/engine/contracts/omission_scanner.d.ts +83 -0
- package/dist/engine/contracts/omission_scanner.d.ts.map +1 -0
- package/dist/engine/contracts/omission_scanner.js +191 -0
- package/dist/engine/contracts/omission_scanner.js.map +1 -0
- package/dist/engine/contracts/ood_solid_contract.d.ts.map +1 -0
- package/dist/engine/contracts/ood_solid_contract.js +115 -0
- package/dist/engine/contracts/ood_solid_contract.js.map +1 -0
- package/dist/engine/contracts/platform_context.d.ts +46 -0
- package/dist/engine/contracts/platform_context.d.ts.map +1 -0
- package/dist/engine/contracts/platform_context.js +171 -0
- package/dist/engine/contracts/platform_context.js.map +1 -0
- package/dist/engine/contracts/project_knowledge_contract.d.ts +133 -0
- package/dist/engine/contracts/project_knowledge_contract.d.ts.map +1 -0
- package/dist/engine/contracts/project_knowledge_contract.js +559 -0
- package/dist/engine/contracts/project_knowledge_contract.js.map +1 -0
- package/dist/engine/contracts/slice_fix_loop.d.ts +86 -0
- package/dist/engine/contracts/slice_fix_loop.d.ts.map +1 -0
- package/dist/engine/contracts/slice_fix_loop.js +98 -0
- package/dist/engine/contracts/slice_fix_loop.js.map +1 -0
- package/dist/engine/contracts/state_machine_contracts.d.ts +17 -0
- package/dist/engine/contracts/state_machine_contracts.d.ts.map +1 -0
- package/dist/engine/contracts/state_machine_contracts.js +97 -0
- package/dist/engine/contracts/state_machine_contracts.js.map +1 -0
- package/dist/engine/contracts/technology_decision.d.ts +58 -0
- package/dist/engine/contracts/technology_decision.d.ts.map +1 -0
- package/dist/engine/contracts/technology_decision.js +175 -0
- package/dist/engine/contracts/technology_decision.js.map +1 -0
- package/dist/engine/contracts/template_schema_loader.d.ts +79 -0
- package/dist/engine/contracts/template_schema_loader.d.ts.map +1 -0
- package/dist/engine/contracts/template_schema_loader.js +301 -0
- package/dist/engine/contracts/template_schema_loader.js.map +1 -0
- package/dist/engine/contracts/tool_invocation_contract_registry.d.ts +76 -0
- package/dist/engine/contracts/tool_invocation_contract_registry.d.ts.map +1 -0
- package/dist/engine/contracts/tool_invocation_contract_registry.js +782 -0
- package/dist/engine/contracts/tool_invocation_contract_registry.js.map +1 -0
- package/dist/engine/contracts/traceability.d.ts +49 -0
- package/dist/engine/contracts/traceability.d.ts.map +1 -0
- package/dist/engine/contracts/traceability.js +470 -0
- package/dist/engine/contracts/traceability.js.map +1 -0
- package/dist/engine/contracts/user_feedback_contract.d.ts +162 -0
- package/dist/engine/contracts/user_feedback_contract.d.ts.map +1 -0
- package/dist/engine/contracts/user_feedback_contract.js +415 -0
- package/dist/engine/contracts/user_feedback_contract.js.map +1 -0
- package/dist/engine/contracts/user_promise.d.ts +67 -0
- package/dist/engine/contracts/user_promise.d.ts.map +1 -0
- package/dist/engine/contracts/user_promise.js +436 -0
- package/dist/engine/contracts/user_promise.js.map +1 -0
- package/dist/engine/contracts/verification_contract.d.ts.map +1 -0
- package/dist/engine/contracts/verification_contract.js.map +1 -0
- package/dist/engine/contracts/workflow_template_pack.d.ts +71 -0
- package/dist/engine/contracts/workflow_template_pack.d.ts.map +1 -0
- package/dist/engine/contracts/workflow_template_pack.js +246 -0
- package/dist/engine/contracts/workflow_template_pack.js.map +1 -0
- package/dist/engine/convention_detector.js +1 -1
- package/dist/engine/convention_detector.js.map +1 -1
- package/dist/engine/core/config_defaults.d.ts +11 -0
- package/dist/engine/core/config_defaults.d.ts.map +1 -0
- package/dist/engine/core/config_defaults.js +11 -0
- package/dist/engine/core/config_defaults.js.map +1 -0
- package/dist/engine/core/debug_log.d.ts +5 -0
- package/dist/engine/core/debug_log.d.ts.map +1 -0
- package/dist/engine/core/debug_log.js +5 -0
- package/dist/engine/core/debug_log.js.map +1 -0
- package/dist/engine/core/denied_paths.d.ts +25 -0
- package/dist/engine/core/denied_paths.d.ts.map +1 -0
- package/dist/engine/core/denied_paths.js +57 -0
- package/dist/engine/core/denied_paths.js.map +1 -0
- package/dist/engine/core/env.d.ts +12 -0
- package/dist/engine/core/env.d.ts.map +1 -0
- package/dist/engine/core/env.js +12 -0
- package/dist/engine/core/env.js.map +1 -0
- package/dist/engine/core/errors.d.ts +21 -0
- package/dist/engine/core/errors.d.ts.map +1 -0
- package/dist/engine/core/errors.js +35 -0
- package/dist/engine/core/errors.js.map +1 -0
- package/dist/engine/core/exit_codes.d.ts +14 -0
- package/dist/engine/core/exit_codes.d.ts.map +1 -0
- package/dist/engine/core/exit_codes.js +14 -0
- package/dist/engine/core/exit_codes.js.map +1 -0
- package/dist/engine/core/fail_closed.d.ts +39 -0
- package/dist/engine/core/fail_closed.d.ts.map +1 -0
- package/dist/engine/core/fail_closed.js +38 -0
- package/dist/engine/core/fail_closed.js.map +1 -0
- package/dist/engine/core/helpers.d.ts +24 -0
- package/dist/engine/core/helpers.d.ts.map +1 -0
- package/dist/engine/core/helpers.js +44 -0
- package/dist/engine/core/helpers.js.map +1 -0
- package/dist/engine/core/index.d.ts +17 -0
- package/dist/engine/core/index.d.ts.map +1 -0
- package/dist/engine/core/index.js +24 -0
- package/dist/engine/core/index.js.map +1 -0
- package/dist/engine/core/io_controller.d.ts +88 -0
- package/dist/engine/core/io_controller.d.ts.map +1 -0
- package/dist/engine/core/io_controller.js +219 -0
- package/dist/engine/core/io_controller.js.map +1 -0
- package/dist/engine/core/knowledge_config_loader.d.ts +28 -0
- package/dist/engine/core/knowledge_config_loader.d.ts.map +1 -0
- package/dist/engine/core/knowledge_config_loader.js +102 -0
- package/dist/engine/core/knowledge_config_loader.js.map +1 -0
- package/dist/engine/core/llm_gateway.d.ts +184 -0
- package/dist/engine/core/llm_gateway.d.ts.map +1 -0
- package/dist/engine/core/llm_gateway.js +374 -0
- package/dist/engine/core/llm_gateway.js.map +1 -0
- package/dist/engine/core/log_governance.d.ts.map +1 -0
- package/dist/engine/core/log_governance.js +71 -0
- package/dist/engine/core/log_governance.js.map +1 -0
- package/dist/engine/core/logger.d.ts.map +1 -0
- package/dist/engine/core/logger.js +118 -0
- package/dist/engine/core/logger.js.map +1 -0
- package/dist/engine/core/path_scope_utils.d.ts +21 -0
- package/dist/engine/core/path_scope_utils.d.ts.map +1 -0
- package/dist/engine/core/path_scope_utils.js +126 -0
- package/dist/engine/core/path_scope_utils.js.map +1 -0
- package/dist/engine/core/paths.d.ts +90 -0
- package/dist/engine/core/paths.d.ts.map +1 -0
- package/dist/engine/core/paths.js +109 -0
- package/dist/engine/core/paths.js.map +1 -0
- package/dist/engine/core/write_file_atomic.d.ts +25 -0
- package/dist/engine/core/write_file_atomic.d.ts.map +1 -0
- package/dist/engine/core/write_file_atomic.js +63 -0
- package/dist/engine/core/write_file_atomic.js.map +1 -0
- package/dist/engine/dependency_scanner.d.ts.map +1 -1
- package/dist/engine/dependency_scanner.js +16 -18
- package/dist/engine/dependency_scanner.js.map +1 -1
- package/dist/engine/exploration.d.ts.map +1 -1
- package/dist/engine/exploration.js +11 -10
- package/dist/engine/exploration.js.map +1 -1
- package/dist/engine/feasibility_checker.js +2 -2
- package/dist/engine/feasibility_checker.js.map +1 -1
- package/dist/engine/impact_analyzer.js +3 -3
- package/dist/engine/impact_analyzer.js.map +1 -1
- package/dist/engine/knowledge/chinese_semantic_priority.d.ts.map +1 -0
- package/dist/engine/knowledge/chinese_semantic_priority.js.map +1 -0
- package/dist/engine/knowledge/documentation_governance.d.ts.map +1 -0
- package/dist/engine/knowledge/documentation_governance.js.map +1 -0
- package/dist/engine/knowledge/drift_classifier.d.ts +26 -0
- package/dist/engine/knowledge/drift_classifier.d.ts.map +1 -0
- package/dist/engine/knowledge/drift_classifier.js +82 -0
- package/dist/engine/knowledge/drift_classifier.js.map +1 -0
- package/dist/engine/knowledge/knowledge_acceptance_registry.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_acceptance_registry.js +261 -0
- package/dist/engine/knowledge/knowledge_acceptance_registry.js.map +1 -0
- package/dist/engine/knowledge/knowledge_asset_audit.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_asset_audit.js +231 -0
- package/dist/engine/knowledge/knowledge_asset_audit.js.map +1 -0
- package/dist/engine/knowledge/knowledge_asset_consumer.d.ts +157 -0
- package/dist/engine/knowledge/knowledge_asset_consumer.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_asset_consumer.js +288 -0
- package/dist/engine/knowledge/knowledge_asset_consumer.js.map +1 -0
- package/dist/engine/knowledge/knowledge_asset_generation_gate.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_asset_generation_gate.js.map +1 -0
- package/dist/engine/knowledge/knowledge_asset_migration.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_asset_migration.js +204 -0
- package/dist/engine/knowledge/knowledge_asset_migration.js.map +1 -0
- package/dist/engine/knowledge/knowledge_asset_schema.d.ts +102 -0
- package/dist/engine/knowledge/knowledge_asset_schema.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_asset_schema.js +427 -0
- package/dist/engine/knowledge/knowledge_asset_schema.js.map +1 -0
- package/dist/engine/knowledge/knowledge_config_loader.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_config_loader.js +144 -0
- package/dist/engine/knowledge/knowledge_config_loader.js.map +1 -0
- package/dist/engine/knowledge/knowledge_consumption_snapshot.d.ts +91 -0
- package/dist/engine/knowledge/knowledge_consumption_snapshot.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_consumption_snapshot.js +113 -0
- package/dist/engine/knowledge/knowledge_consumption_snapshot.js.map +1 -0
- package/dist/engine/knowledge/knowledge_evolution.d.ts +66 -0
- package/dist/engine/knowledge/knowledge_evolution.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_evolution.js +200 -0
- package/dist/engine/knowledge/knowledge_evolution.js.map +1 -0
- package/dist/engine/knowledge/knowledge_governance_gate.d.ts +41 -0
- package/dist/engine/knowledge/knowledge_governance_gate.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_governance_gate.js +123 -0
- package/dist/engine/knowledge/knowledge_governance_gate.js.map +1 -0
- package/dist/engine/knowledge/knowledge_health.d.ts +44 -0
- package/dist/engine/knowledge/knowledge_health.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_health.js +305 -0
- package/dist/engine/knowledge/knowledge_health.js.map +1 -0
- package/dist/engine/knowledge/knowledge_injection_boundary.d.ts +108 -0
- package/dist/engine/knowledge/knowledge_injection_boundary.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_injection_boundary.js +760 -0
- package/dist/engine/knowledge/knowledge_injection_boundary.js.map +1 -0
- package/dist/engine/knowledge/knowledge_lifecycle.d.ts +97 -0
- package/dist/engine/knowledge/knowledge_lifecycle.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_lifecycle.js +299 -0
- package/dist/engine/knowledge/knowledge_lifecycle.js.map +1 -0
- package/dist/engine/knowledge/knowledge_manager.d.ts +3 -0
- package/dist/engine/knowledge/knowledge_manager.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_manager.js +5 -0
- package/dist/engine/knowledge/knowledge_manager.js.map +1 -0
- package/dist/engine/knowledge/knowledge_scenario_registry.d.ts +21 -0
- package/dist/engine/knowledge/knowledge_scenario_registry.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_scenario_registry.js +329 -0
- package/dist/engine/knowledge/knowledge_scenario_registry.js.map +1 -0
- package/dist/engine/knowledge/knowledge_sovereignty.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_sovereignty.js +196 -0
- package/dist/engine/knowledge/knowledge_sovereignty.js.map +1 -0
- package/dist/engine/knowledge/knowledge_template_contracts.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_template_contracts.js.map +1 -0
- package/dist/engine/knowledge/knowledge_writer.d.ts +108 -0
- package/dist/engine/knowledge/knowledge_writer.d.ts.map +1 -0
- package/dist/engine/knowledge/knowledge_writer.js +637 -0
- package/dist/engine/knowledge/knowledge_writer.js.map +1 -0
- package/dist/engine/knowledge/language_policy.d.ts +78 -0
- package/dist/engine/knowledge/language_policy.d.ts.map +1 -0
- package/dist/engine/knowledge/language_policy.js +139 -0
- package/dist/engine/knowledge/language_policy.js.map +1 -0
- package/dist/engine/knowledge/language_policy_contract.d.ts.map +1 -0
- package/dist/engine/knowledge/language_policy_contract.js.map +1 -0
- package/dist/engine/knowledge/release_compatibility.d.ts.map +1 -0
- package/dist/engine/knowledge/release_compatibility.js.map +1 -0
- package/dist/engine/migration_guard.js +5 -5
- package/dist/engine/migration_guard.js.map +1 -1
- package/dist/engine/onboarding.d.ts +2 -2
- package/dist/engine/onboarding.d.ts.map +1 -1
- package/dist/engine/onboarding.js +8 -5
- package/dist/engine/onboarding.js.map +1 -1
- package/dist/engine/pipeline/artifact_aliases.d.ts +19 -0
- package/dist/engine/pipeline/artifact_aliases.d.ts.map +1 -0
- package/dist/engine/pipeline/artifact_aliases.js +39 -0
- package/dist/engine/pipeline/artifact_aliases.js.map +1 -0
- package/dist/engine/pipeline/conflict_gate.d.ts.map +1 -0
- package/dist/engine/pipeline/conflict_gate.js +92 -0
- package/dist/engine/pipeline/conflict_gate.js.map +1 -0
- package/dist/engine/pipeline/diff_ownership.d.ts.map +1 -0
- package/dist/engine/pipeline/diff_ownership.js +159 -0
- package/dist/engine/pipeline/diff_ownership.js.map +1 -0
- package/dist/engine/pipeline/diff_ownership_store.d.ts.map +1 -0
- package/dist/engine/pipeline/diff_ownership_store.js +293 -0
- package/dist/engine/pipeline/diff_ownership_store.js.map +1 -0
- package/dist/engine/pipeline/input_material_contract_registry.d.ts +185 -0
- package/dist/engine/pipeline/input_material_contract_registry.d.ts.map +1 -0
- package/dist/engine/pipeline/input_material_contract_registry.js +565 -0
- package/dist/engine/pipeline/input_material_contract_registry.js.map +1 -0
- package/dist/engine/pipeline/input_material_extractor.d.ts +47 -0
- package/dist/engine/pipeline/input_material_extractor.d.ts.map +1 -0
- package/dist/engine/pipeline/input_material_extractor.js +156 -0
- package/dist/engine/pipeline/input_material_extractor.js.map +1 -0
- package/dist/engine/pipeline/intent_expander/helpers.d.ts +44 -0
- package/dist/engine/pipeline/intent_expander/helpers.d.ts.map +1 -0
- package/dist/engine/pipeline/intent_expander/helpers.js +158 -0
- package/dist/engine/pipeline/intent_expander/helpers.js.map +1 -0
- package/dist/engine/pipeline/intent_expander/index.d.ts +12 -0
- package/dist/engine/pipeline/intent_expander/index.d.ts.map +1 -0
- package/dist/engine/pipeline/intent_expander/index.js +14 -0
- package/dist/engine/pipeline/intent_expander/index.js.map +1 -0
- package/dist/engine/pipeline/intent_expander/knowledge.d.ts +16 -0
- package/dist/engine/pipeline/intent_expander/knowledge.d.ts.map +1 -0
- package/dist/engine/pipeline/intent_expander/knowledge.js +154 -0
- package/dist/engine/pipeline/intent_expander/knowledge.js.map +1 -0
- package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts +47 -0
- package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts.map +1 -0
- package/dist/engine/pipeline/intent_expander/knowledge_resolution.js +301 -0
- package/dist/engine/pipeline/intent_expander/knowledge_resolution.js.map +1 -0
- package/dist/engine/pipeline/intent_expander/privacy_gates.d.ts +33 -0
- package/dist/engine/pipeline/intent_expander/privacy_gates.d.ts.map +1 -0
- package/dist/engine/pipeline/intent_expander/privacy_gates.js +66 -0
- package/dist/engine/pipeline/intent_expander/privacy_gates.js.map +1 -0
- package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts +80 -0
- package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts.map +1 -0
- package/dist/engine/pipeline/intent_expander/scope_acceptance.js +219 -0
- package/dist/engine/pipeline/intent_expander/scope_acceptance.js.map +1 -0
- package/dist/engine/pipeline/intent_expander/templates.d.ts +28 -0
- package/dist/engine/pipeline/intent_expander/templates.d.ts.map +1 -0
- package/dist/engine/pipeline/intent_expander/templates.js +662 -0
- package/dist/engine/pipeline/intent_expander/templates.js.map +1 -0
- package/dist/engine/pipeline/intent_expander/types.d.ts +101 -0
- package/dist/engine/pipeline/intent_expander/types.d.ts.map +1 -0
- package/dist/engine/pipeline/intent_expander/types.js +8 -0
- package/dist/engine/pipeline/intent_expander/types.js.map +1 -0
- package/dist/engine/pipeline/intent_expander/uncertainty_circuit.d.ts +33 -0
- package/dist/engine/pipeline/intent_expander/uncertainty_circuit.d.ts.map +1 -0
- package/dist/engine/pipeline/intent_expander/uncertainty_circuit.js +187 -0
- package/dist/engine/pipeline/intent_expander/uncertainty_circuit.js.map +1 -0
- package/dist/engine/pipeline/intent_expander.d.ts +12 -0
- package/dist/engine/pipeline/intent_expander.d.ts.map +1 -0
- package/dist/engine/pipeline/intent_expander.js +14 -0
- package/dist/engine/pipeline/intent_expander.js.map +1 -0
- package/dist/engine/pipeline/job_manager.d.ts +111 -0
- package/dist/engine/pipeline/job_manager.d.ts.map +1 -0
- package/dist/engine/pipeline/job_manager.js +284 -0
- package/dist/engine/pipeline/job_manager.js.map +1 -0
- package/dist/engine/pipeline/plan_proposal_gate.d.ts.map +1 -0
- package/dist/engine/pipeline/plan_proposal_gate.js +340 -0
- package/dist/engine/pipeline/plan_proposal_gate.js.map +1 -0
- package/dist/engine/pipeline/prompt_template_resolver.d.ts +13 -0
- package/dist/engine/pipeline/prompt_template_resolver.d.ts.map +1 -0
- package/dist/engine/pipeline/prompt_template_resolver.js +25 -0
- package/dist/engine/pipeline/prompt_template_resolver.js.map +1 -0
- package/dist/engine/pipeline/rollback_router.d.ts +35 -0
- package/dist/engine/pipeline/rollback_router.d.ts.map +1 -0
- package/dist/engine/pipeline/rollback_router.js +57 -0
- package/dist/engine/pipeline/rollback_router.js.map +1 -0
- package/dist/engine/pipeline/scope_controller.d.ts +17 -0
- package/dist/engine/pipeline/scope_controller.d.ts.map +1 -0
- package/dist/engine/pipeline/scope_controller.js +224 -0
- package/dist/engine/pipeline/scope_controller.js.map +1 -0
- package/dist/engine/pipeline/scope_lease.d.ts +92 -0
- package/dist/engine/pipeline/scope_lease.d.ts.map +1 -0
- package/dist/engine/pipeline/scope_lease.js +178 -0
- package/dist/engine/pipeline/scope_lease.js.map +1 -0
- package/dist/engine/pipeline/scope_resolver.d.ts +18 -0
- package/dist/engine/pipeline/scope_resolver.d.ts.map +1 -0
- package/dist/engine/pipeline/scope_resolver.js +533 -0
- package/dist/engine/pipeline/scope_resolver.js.map +1 -0
- package/dist/engine/pipeline/slice_executor.d.ts +83 -0
- package/dist/engine/pipeline/slice_executor.d.ts.map +1 -0
- package/dist/engine/pipeline/slice_executor.js +103 -0
- package/dist/engine/pipeline/slice_executor.js.map +1 -0
- package/dist/engine/pipeline/stale_current_task_detector.d.ts +30 -0
- package/dist/engine/pipeline/stale_current_task_detector.d.ts.map +1 -0
- package/dist/engine/pipeline/stale_current_task_detector.js +171 -0
- package/dist/engine/pipeline/stale_current_task_detector.js.map +1 -0
- package/dist/engine/pipeline/state_machine/audit_logger.d.ts +42 -0
- package/dist/engine/pipeline/state_machine/audit_logger.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/audit_logger.js +71 -0
- package/dist/engine/pipeline/state_machine/audit_logger.js.map +1 -0
- package/dist/engine/pipeline/state_machine/capability_safety_valve.d.ts +51 -0
- package/dist/engine/pipeline/state_machine/capability_safety_valve.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/capability_safety_valve.js +131 -0
- package/dist/engine/pipeline/state_machine/capability_safety_valve.js.map +1 -0
- package/dist/engine/pipeline/state_machine/certainty_gate.d.ts +92 -0
- package/dist/engine/pipeline/state_machine/certainty_gate.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/certainty_gate.js +391 -0
- package/dist/engine/pipeline/state_machine/certainty_gate.js.map +1 -0
- package/dist/engine/pipeline/state_machine/command_state_verifier.d.ts +50 -0
- package/dist/engine/pipeline/state_machine/command_state_verifier.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/command_state_verifier.js +160 -0
- package/dist/engine/pipeline/state_machine/command_state_verifier.js.map +1 -0
- package/dist/engine/pipeline/state_machine/hook_classifier.d.ts +71 -0
- package/dist/engine/pipeline/state_machine/hook_classifier.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/hook_classifier.js +146 -0
- package/dist/engine/pipeline/state_machine/hook_classifier.js.map +1 -0
- package/dist/engine/pipeline/state_machine/human_uncertainty_detector.d.ts +33 -0
- package/dist/engine/pipeline/state_machine/human_uncertainty_detector.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/human_uncertainty_detector.js +72 -0
- package/dist/engine/pipeline/state_machine/human_uncertainty_detector.js.map +1 -0
- package/dist/engine/pipeline/state_machine/knowledge_stage_query.d.ts +21 -0
- package/dist/engine/pipeline/state_machine/knowledge_stage_query.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/knowledge_stage_query.js +33 -0
- package/dist/engine/pipeline/state_machine/knowledge_stage_query.js.map +1 -0
- package/dist/engine/pipeline/state_machine/pipeline_state_machine.d.ts +158 -0
- package/dist/engine/pipeline/state_machine/pipeline_state_machine.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/pipeline_state_machine.js +1197 -0
- package/dist/engine/pipeline/state_machine/pipeline_state_machine.js.map +1 -0
- package/dist/engine/pipeline/state_machine/risk_pattern_scanner.d.ts +34 -0
- package/dist/engine/pipeline/state_machine/risk_pattern_scanner.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/risk_pattern_scanner.js +152 -0
- package/dist/engine/pipeline/state_machine/risk_pattern_scanner.js.map +1 -0
- package/dist/engine/pipeline/state_machine/route_usage_stats.d.ts +28 -0
- package/dist/engine/pipeline/state_machine/route_usage_stats.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/route_usage_stats.js +76 -0
- package/dist/engine/pipeline/state_machine/route_usage_stats.js.map +1 -0
- package/dist/engine/pipeline/state_machine/sf_command_parser.d.ts +22 -0
- package/dist/engine/pipeline/state_machine/sf_command_parser.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/sf_command_parser.js +171 -0
- package/dist/engine/pipeline/state_machine/sf_command_parser.js.map +1 -0
- package/dist/engine/pipeline/state_machine/stage_command_registry.d.ts +38 -0
- package/dist/engine/pipeline/state_machine/stage_command_registry.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/stage_command_registry.js +218 -0
- package/dist/engine/pipeline/state_machine/stage_command_registry.js.map +1 -0
- package/dist/engine/pipeline/state_machine/stage_executor.d.ts +37 -0
- package/dist/engine/pipeline/state_machine/stage_executor.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/stage_executor.js +67 -0
- package/dist/engine/pipeline/state_machine/stage_executor.js.map +1 -0
- package/dist/engine/pipeline/state_machine/state_migrator.d.ts +21 -0
- package/dist/engine/pipeline/state_machine/state_migrator.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/state_migrator.js +130 -0
- package/dist/engine/pipeline/state_machine/state_migrator.js.map +1 -0
- package/dist/engine/pipeline/state_machine/state_self_diagnostic.d.ts +48 -0
- package/dist/engine/pipeline/state_machine/state_self_diagnostic.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/state_self_diagnostic.js +566 -0
- package/dist/engine/pipeline/state_machine/state_self_diagnostic.js.map +1 -0
- package/dist/engine/pipeline/state_machine/static_route_table.d.ts +36 -0
- package/dist/engine/pipeline/state_machine/static_route_table.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/static_route_table.js +112 -0
- package/dist/engine/pipeline/state_machine/static_route_table.js.map +1 -0
- package/dist/engine/pipeline/state_machine/strong_confirmation.d.ts +45 -0
- package/dist/engine/pipeline/state_machine/strong_confirmation.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/strong_confirmation.js +57 -0
- package/dist/engine/pipeline/state_machine/strong_confirmation.js.map +1 -0
- package/dist/engine/pipeline/state_machine/uncertainty_bridge.d.ts +55 -0
- package/dist/engine/pipeline/state_machine/uncertainty_bridge.d.ts.map +1 -0
- package/dist/engine/pipeline/state_machine/uncertainty_bridge.js +48 -0
- package/dist/engine/pipeline/state_machine/uncertainty_bridge.js.map +1 -0
- package/dist/engine/pipeline/task_context/cleanup.d.ts +13 -0
- package/dist/engine/pipeline/task_context/cleanup.d.ts.map +1 -0
- package/dist/engine/pipeline/task_context/cleanup.js +68 -0
- package/dist/engine/pipeline/task_context/cleanup.js.map +1 -0
- package/dist/engine/pipeline/task_context/constants.d.ts +9 -0
- package/dist/engine/pipeline/task_context/constants.d.ts.map +1 -0
- package/dist/engine/pipeline/task_context/constants.js +20 -0
- package/dist/engine/pipeline/task_context/constants.js.map +1 -0
- package/dist/engine/pipeline/task_context/expansion_privacy.d.ts +18 -0
- package/dist/engine/pipeline/task_context/expansion_privacy.d.ts.map +1 -0
- package/dist/engine/pipeline/task_context/expansion_privacy.js +82 -0
- package/dist/engine/pipeline/task_context/expansion_privacy.js.map +1 -0
- package/dist/engine/pipeline/task_context/index.d.ts +19 -0
- package/dist/engine/pipeline/task_context/index.d.ts.map +1 -0
- package/dist/engine/pipeline/task_context/index.js +19 -0
- package/dist/engine/pipeline/task_context/index.js.map +1 -0
- package/dist/engine/pipeline/task_context/manager.d.ts +200 -0
- package/dist/engine/pipeline/task_context/manager.d.ts.map +1 -0
- package/dist/engine/pipeline/task_context/manager.js +758 -0
- package/dist/engine/pipeline/task_context/manager.js.map +1 -0
- package/dist/engine/pipeline/task_context/manager_setters.d.ts +65 -0
- package/dist/engine/pipeline/task_context/manager_setters.d.ts.map +1 -0
- package/dist/engine/pipeline/task_context/manager_setters.js +288 -0
- package/dist/engine/pipeline/task_context/manager_setters.js.map +1 -0
- package/dist/engine/pipeline/task_context/phase_directive.d.ts +10 -0
- package/dist/engine/pipeline/task_context/phase_directive.d.ts.map +1 -0
- package/dist/engine/pipeline/task_context/phase_directive.js +75 -0
- package/dist/engine/pipeline/task_context/phase_directive.js.map +1 -0
- package/dist/engine/pipeline/task_context/status_transitions.d.ts +17 -0
- package/dist/engine/pipeline/task_context/status_transitions.d.ts.map +1 -0
- package/dist/engine/pipeline/task_context/status_transitions.js +76 -0
- package/dist/engine/pipeline/task_context/status_transitions.js.map +1 -0
- package/dist/engine/pipeline/task_context.d.ts +15 -0
- package/dist/engine/pipeline/task_context.d.ts.map +1 -0
- package/dist/engine/pipeline/task_context.js +15 -0
- package/dist/engine/pipeline/task_context.js.map +1 -0
- package/dist/engine/pipeline/task_planner.d.ts +30 -0
- package/dist/engine/pipeline/task_planner.d.ts.map +1 -0
- package/dist/engine/pipeline/task_planner.js +334 -0
- package/dist/engine/pipeline/task_planner.js.map +1 -0
- package/dist/engine/pipeline/task_stage_detector.d.ts +27 -0
- package/dist/engine/pipeline/task_stage_detector.d.ts.map +1 -0
- package/dist/engine/pipeline/task_stage_detector.js +191 -0
- package/dist/engine/pipeline/task_stage_detector.js.map +1 -0
- package/dist/engine/pipeline/workspace_lease.d.ts +78 -0
- package/dist/engine/pipeline/workspace_lease.d.ts.map +1 -0
- package/dist/engine/pipeline/workspace_lease.js +180 -0
- package/dist/engine/pipeline/workspace_lease.js.map +1 -0
- package/dist/engine/pipeline/workspace_resumer.d.ts.map +1 -0
- package/dist/engine/pipeline/workspace_resumer.js +210 -0
- package/dist/engine/pipeline/workspace_resumer.js.map +1 -0
- package/dist/engine/release/foundation_scenario_registry.d.ts +44 -0
- package/dist/engine/release/foundation_scenario_registry.d.ts.map +1 -0
- package/dist/engine/release/foundation_scenario_registry.js +281 -0
- package/dist/engine/release/foundation_scenario_registry.js.map +1 -0
- package/dist/engine/release/foundation_scenario_runners.d.ts +54 -0
- package/dist/engine/release/foundation_scenario_runners.d.ts.map +1 -0
- package/dist/engine/release/foundation_scenario_runners.js +151 -0
- package/dist/engine/release/foundation_scenario_runners.js.map +1 -0
- package/dist/engine/release/gate_checks/checkControlPlaneTrust.d.ts +9 -0
- package/dist/engine/release/gate_checks/checkControlPlaneTrust.d.ts.map +1 -0
- package/dist/engine/release/gate_checks/checkControlPlaneTrust.js +121 -0
- package/dist/engine/release/gate_checks/checkControlPlaneTrust.js.map +1 -0
- package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.d.ts.map +1 -0
- package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.js +498 -0
- package/dist/engine/release/gate_checks/checkCriticalProblemConsumption.js.map +1 -0
- package/dist/engine/release/gate_checks/checkDependencyAudit.d.ts.map +1 -0
- package/dist/engine/release/gate_checks/checkDependencyAudit.js +45 -0
- package/dist/engine/release/gate_checks/checkDependencyAudit.js.map +1 -0
- package/dist/engine/release/gate_checks/checkDistFreshness.d.ts.map +1 -0
- package/dist/engine/release/gate_checks/checkDistFreshness.js +59 -0
- package/dist/engine/release/gate_checks/checkDistFreshness.js.map +1 -0
- package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.d.ts +6 -0
- package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.d.ts.map +1 -0
- package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.js +30 -0
- package/dist/engine/release/gate_checks/checkKnowledgeAssetSchemaP0.js.map +1 -0
- package/dist/engine/release/gate_checks/checkMainlineConsumption.d.ts.map +1 -0
- package/dist/engine/release/gate_checks/checkMainlineConsumption.js +356 -0
- package/dist/engine/release/gate_checks/checkMainlineConsumption.js.map +1 -0
- package/dist/engine/release/gate_checks/checkNpmPack.d.ts +10 -0
- package/dist/engine/release/gate_checks/checkNpmPack.d.ts.map +1 -0
- package/dist/engine/release/gate_checks/checkNpmPack.js +69 -0
- package/dist/engine/release/gate_checks/checkNpmPack.js.map +1 -0
- package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.d.ts.map +1 -0
- package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.js +267 -0
- package/dist/engine/release/gate_checks/checkTemplateKnowledgeHygiene.js.map +1 -0
- package/dist/engine/release/gate_checks/checkWorkflowNavigation.d.ts.map +1 -0
- package/dist/engine/release/gate_checks/checkWorkflowNavigation.js +189 -0
- package/dist/engine/release/gate_checks/checkWorkflowNavigation.js.map +1 -0
- package/dist/engine/release/gate_checks/helpers.d.ts.map +1 -0
- package/dist/engine/release/gate_checks/helpers.js +92 -0
- package/dist/engine/release/gate_checks/helpers.js.map +1 -0
- package/dist/engine/release/gate_checks/types.d.ts.map +1 -0
- package/dist/engine/release/gate_checks/types.js.map +1 -0
- package/dist/engine/release/index.d.ts +6 -0
- package/dist/engine/release/index.d.ts.map +1 -0
- package/dist/engine/release/index.js +6 -0
- package/dist/engine/release/index.js.map +1 -0
- package/dist/engine/release/release_gate_scenario_registry.d.ts.map +1 -0
- package/dist/engine/release/release_gate_scenario_registry.js +717 -0
- package/dist/engine/release/release_gate_scenario_registry.js.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/fixtures.d.ts +8 -0
- package/dist/engine/release/release_issue_scenario_registry/fixtures.d.ts.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/fixtures.js +54 -0
- package/dist/engine/release/release_issue_scenario_registry/fixtures.js.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/index.d.ts +8 -0
- package/dist/engine/release/release_issue_scenario_registry/index.d.ts.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/index.js +7 -0
- package/dist/engine/release/release_issue_scenario_registry/index.js.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/registry.d.ts +26 -0
- package/dist/engine/release/release_issue_scenario_registry/registry.d.ts.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/registry.js +83 -0
- package/dist/engine/release/release_issue_scenario_registry/registry.js.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.d.ts +6 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.d.ts.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.js +284 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_architecture_workshop.js.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.d.ts +6 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.d.ts.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.js +214 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_code_observability.js.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.d.ts +6 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.d.ts.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.js +356 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_decision_workshop.js.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.d.ts +6 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.d.ts.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.js +232 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_design_pack.js.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.d.ts +6 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.d.ts.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.js +358 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_template_contract.js.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.d.ts +6 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.d.ts.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js +292 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_workflow_navigation.d.ts +12 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_workflow_navigation.d.ts.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_workflow_navigation.js +147 -0
- package/dist/engine/release/release_issue_scenario_registry/scenarios_workflow_navigation.js.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/types.d.ts +37 -0
- package/dist/engine/release/release_issue_scenario_registry/types.d.ts.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/types.js +5 -0
- package/dist/engine/release/release_issue_scenario_registry/types.js.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.d.ts +35 -0
- package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.d.ts.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.js +78 -0
- package/dist/engine/release/release_issue_scenario_registry/workshop_helpers.js.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry.d.ts +9 -0
- package/dist/engine/release/release_issue_scenario_registry.d.ts.map +1 -0
- package/dist/engine/release/release_issue_scenario_registry.js +8 -0
- package/dist/engine/release/release_issue_scenario_registry.js.map +1 -0
- package/dist/engine/release/release_readiness_gate.d.ts +26 -0
- package/dist/engine/release/release_readiness_gate.d.ts.map +1 -0
- package/dist/engine/release/release_readiness_gate.js +209 -0
- package/dist/engine/release/release_readiness_gate.js.map +1 -0
- package/dist/engine/release/release_tool_harness.d.ts +84 -0
- package/dist/engine/release/release_tool_harness.d.ts.map +1 -0
- package/dist/engine/release/release_tool_harness.js +169 -0
- package/dist/engine/release/release_tool_harness.js.map +1 -0
- package/dist/engine/release/types.d.ts +81 -0
- package/dist/engine/release/types.d.ts.map +1 -0
- package/dist/engine/release/types.js +7 -0
- package/dist/engine/release/types.js.map +1 -0
- package/dist/engine/release/verifier.d.ts +45 -0
- package/dist/engine/release/verifier.d.ts.map +1 -0
- package/dist/engine/release/verifier.js +629 -0
- package/dist/engine/release/verifier.js.map +1 -0
- package/dist/engine/retention_policy.js +1 -1
- package/dist/engine/retention_policy.js.map +1 -1
- package/dist/engine/state_fact_classifier.d.ts +3 -3
- package/dist/engine/state_fact_classifier.js +4 -4
- package/dist/engine/state_fact_classifier.js.map +1 -1
- package/dist/engine/team_awareness.d.ts +1 -1
- package/dist/engine/team_awareness.d.ts.map +1 -1
- package/dist/engine/team_awareness.js +1 -1
- package/dist/engine/team_awareness.js.map +1 -1
- package/dist/engine/templates/asset_manifest.d.ts +67 -0
- package/dist/engine/templates/asset_manifest.d.ts.map +1 -0
- package/dist/engine/templates/asset_manifest.js +316 -0
- package/dist/engine/templates/asset_manifest.js.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.d.ts +8 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.d.ts.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js +326 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.d.ts +7 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.d.ts.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js +310 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.d.ts +7 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.d.ts.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js +255 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.d.ts +8 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.d.ts.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js +281 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.d.ts +7 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.d.ts.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.js +60 -0
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.js.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/index.d.ts +9 -0
- package/dist/engine/templates/consumable_asset_registry/index.d.ts.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/index.js +9 -0
- package/dist/engine/templates/consumable_asset_registry/index.js.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/registry.d.ts +33 -0
- package/dist/engine/templates/consumable_asset_registry/registry.d.ts.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/registry.js +55 -0
- package/dist/engine/templates/consumable_asset_registry/registry.js.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/types.d.ts +55 -0
- package/dist/engine/templates/consumable_asset_registry/types.d.ts.map +1 -0
- package/dist/engine/templates/consumable_asset_registry/types.js +246 -0
- package/dist/engine/templates/consumable_asset_registry/types.js.map +1 -0
- package/dist/engine/templates/consumable_asset_registry.d.ts +11 -0
- package/dist/engine/templates/consumable_asset_registry.d.ts.map +1 -0
- package/dist/engine/templates/consumable_asset_registry.js +10 -0
- package/dist/engine/templates/consumable_asset_registry.js.map +1 -0
- package/dist/engine/templates/consumption_trace_store.d.ts +93 -0
- package/dist/engine/templates/consumption_trace_store.d.ts.map +1 -0
- package/dist/engine/templates/consumption_trace_store.js +128 -0
- package/dist/engine/templates/consumption_trace_store.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/adapters.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/adapters.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/adapters.js +67 -0
- package/dist/engine/templates/explicit_asset_registry/adapters.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js +163 -0
- package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js +403 -0
- package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js +83 -0
- package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/checklists.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/checklists.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/checklists.js +115 -0
- package/dist/engine/templates/explicit_asset_registry/checklists.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/contributing.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/contributing.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/contributing.js +19 -0
- package/dist/engine/templates/explicit_asset_registry/contributing.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/domain.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/domain.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/domain.js +147 -0
- package/dist/engine/templates/explicit_asset_registry/domain.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/gates.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/gates.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/gates.js +374 -0
- package/dist/engine/templates/explicit_asset_registry/gates.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/index.d.ts +4 -0
- package/dist/engine/templates/explicit_asset_registry/index.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/index.js +58 -0
- package/dist/engine/templates/explicit_asset_registry/index.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/internal_patterns.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/internal_patterns.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/internal_patterns.js +435 -0
- package/dist/engine/templates/explicit_asset_registry/internal_patterns.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js +419 -0
- package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js +323 -0
- package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/patterns_part1.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/patterns_part1.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/patterns_part1.js +403 -0
- package/dist/engine/templates/explicit_asset_registry/patterns_part1.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/patterns_part2.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/patterns_part2.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/patterns_part2.js +403 -0
- package/dist/engine/templates/explicit_asset_registry/patterns_part2.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/patterns_part3.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/patterns_part3.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/patterns_part3.js +35 -0
- package/dist/engine/templates/explicit_asset_registry/patterns_part3.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/procedures_part1.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/procedures_part1.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/procedures_part1.js +435 -0
- package/dist/engine/templates/explicit_asset_registry/procedures_part1.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/procedures_part2.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/procedures_part2.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/procedures_part2.js +230 -0
- package/dist/engine/templates/explicit_asset_registry/procedures_part2.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/profiles.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/profiles.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/profiles.js +51 -0
- package/dist/engine/templates/explicit_asset_registry/profiles.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/rules_pipeline.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/rules_pipeline.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js +163 -0
- package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/rules_shared.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/rules_shared.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/rules_shared.js +622 -0
- package/dist/engine/templates/explicit_asset_registry/rules_shared.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/scaffolds.d.ts +3 -0
- package/dist/engine/templates/explicit_asset_registry/scaffolds.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/scaffolds.js +378 -0
- package/dist/engine/templates/explicit_asset_registry/scaffolds.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/types.d.ts +29 -0
- package/dist/engine/templates/explicit_asset_registry/types.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry/types.js +7 -0
- package/dist/engine/templates/explicit_asset_registry/types.js.map +1 -0
- package/dist/engine/templates/explicit_asset_registry.d.ts +9 -0
- package/dist/engine/templates/explicit_asset_registry.d.ts.map +1 -0
- package/dist/engine/templates/explicit_asset_registry.js +9 -0
- package/dist/engine/templates/explicit_asset_registry.js.map +1 -0
- package/dist/engine/templates/observed_consumption.d.ts +54 -0
- package/dist/engine/templates/observed_consumption.d.ts.map +1 -0
- package/dist/engine/templates/observed_consumption.js +364 -0
- package/dist/engine/templates/observed_consumption.js.map +1 -0
- package/dist/engine/templates/scaffolder.d.ts +19 -0
- package/dist/engine/templates/scaffolder.d.ts.map +1 -0
- package/dist/engine/templates/scaffolder.js +412 -0
- package/dist/engine/templates/scaffolder.js.map +1 -0
- package/dist/engine/templates/standard_asset_contract.d.ts +105 -0
- package/dist/engine/templates/standard_asset_contract.d.ts.map +1 -0
- package/dist/engine/templates/standard_asset_contract.js +540 -0
- package/dist/engine/templates/standard_asset_contract.js.map +1 -0
- package/dist/engine/templates/standard_asset_coverage.d.ts.map +1 -0
- package/dist/engine/templates/standard_asset_coverage.js +220 -0
- package/dist/engine/templates/standard_asset_coverage.js.map +1 -0
- package/dist/engine/templates/template_asset_contract_registry.d.ts +162 -0
- package/dist/engine/templates/template_asset_contract_registry.d.ts.map +1 -0
- package/dist/engine/templates/template_asset_contract_registry.js +662 -0
- package/dist/engine/templates/template_asset_contract_registry.js.map +1 -0
- package/dist/engine/templates/template_asset_visibility.d.ts +109 -0
- package/dist/engine/templates/template_asset_visibility.d.ts.map +1 -0
- package/dist/engine/templates/template_asset_visibility.js +304 -0
- package/dist/engine/templates/template_asset_visibility.js.map +1 -0
- package/dist/engine/templates/template_init_sync.d.ts +103 -0
- package/dist/engine/templates/template_init_sync.d.ts.map +1 -0
- package/dist/engine/templates/template_init_sync.js +447 -0
- package/dist/engine/templates/template_init_sync.js.map +1 -0
- package/dist/engine/templates/template_manifest_io.d.ts +57 -0
- package/dist/engine/templates/template_manifest_io.d.ts.map +1 -0
- package/dist/engine/templates/template_manifest_io.js +189 -0
- package/dist/engine/templates/template_manifest_io.js.map +1 -0
- package/dist/engine/templates/template_mechanism_auditor.d.ts +95 -0
- package/dist/engine/templates/template_mechanism_auditor.d.ts.map +1 -0
- package/dist/engine/templates/template_mechanism_auditor.js +627 -0
- package/dist/engine/templates/template_mechanism_auditor.js.map +1 -0
- package/dist/engine/templates/template_sync.d.ts +98 -0
- package/dist/engine/templates/template_sync.d.ts.map +1 -0
- package/dist/engine/templates/template_sync.js.map +1 -0
- package/dist/engine/templates/workflow_rule_generator.d.ts +22 -0
- package/dist/engine/templates/workflow_rule_generator.d.ts.map +1 -0
- package/dist/engine/templates/workflow_rule_generator.js +81 -0
- package/dist/engine/templates/workflow_rule_generator.js.map +1 -0
- package/dist/engine/workflow/index.d.ts +10 -0
- package/dist/engine/workflow/index.d.ts.map +1 -0
- package/dist/engine/workflow/index.js +12 -0
- package/dist/engine/workflow/index.js.map +1 -0
- package/dist/engine/workflow/next_action_planner.d.ts +32 -0
- package/dist/engine/workflow/next_action_planner.d.ts.map +1 -0
- package/dist/engine/workflow/next_action_planner.js +868 -0
- package/dist/engine/workflow/next_action_planner.js.map +1 -0
- package/dist/engine/workflow/project_stage_detector.d.ts.map +1 -0
- package/dist/engine/workflow/project_stage_detector.js +253 -0
- package/dist/engine/workflow/project_stage_detector.js.map +1 -0
- package/dist/engine/workflow/workflow_contract_registry.d.ts +126 -0
- package/dist/engine/workflow/workflow_contract_registry.d.ts.map +1 -0
- package/dist/engine/workflow/workflow_contract_registry.js +271 -0
- package/dist/engine/workflow/workflow_contract_registry.js.map +1 -0
- package/dist/engine/workflow/workflow_navigation_contract.d.ts +178 -0
- package/dist/engine/workflow/workflow_navigation_contract.d.ts.map +1 -0
- package/dist/engine/workflow/workflow_navigation_contract.js +30 -0
- package/dist/engine/workflow/workflow_navigation_contract.js.map +1 -0
- package/dist/git/git_deps.d.ts +72 -0
- package/dist/git/git_deps.d.ts.map +1 -0
- package/dist/git/git_deps.js +9 -0
- package/dist/git/git_deps.js.map +1 -0
- package/dist/git/operations.d.ts +1 -0
- package/dist/git/operations.d.ts.map +1 -1
- package/dist/git/operations.js +3 -1
- package/dist/git/operations.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +61 -20
- package/dist/index.js.map +1 -1
- package/dist/knowledge/conflict_detector.d.ts +14 -0
- package/dist/knowledge/conflict_detector.d.ts.map +1 -1
- package/dist/knowledge/conflict_detector.js +82 -4
- package/dist/knowledge/conflict_detector.js.map +1 -1
- package/dist/knowledge/health_checker.d.ts.map +1 -1
- package/dist/knowledge/health_checker.js +19 -8
- package/dist/knowledge/health_checker.js.map +1 -1
- package/dist/knowledge/index_manager.d.ts +25 -1
- package/dist/knowledge/index_manager.d.ts.map +1 -1
- package/dist/knowledge/index_manager.js +355 -109
- package/dist/knowledge/index_manager.js.map +1 -1
- package/dist/knowledge/loader.d.ts +8 -4
- package/dist/knowledge/loader.d.ts.map +1 -1
- package/dist/knowledge/loader.js +204 -40
- package/dist/knowledge/loader.js.map +1 -1
- package/dist/knowledge/writer.d.ts +10 -0
- package/dist/knowledge/writer.d.ts.map +1 -1
- package/dist/knowledge/writer.js +44 -3
- package/dist/knowledge/writer.js.map +1 -1
- package/dist/server/index.d.ts +26 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +55 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/lifecycle.d.ts +25 -0
- package/dist/server/lifecycle.d.ts.map +1 -0
- package/dist/server/lifecycle.js +66 -0
- package/dist/server/lifecycle.js.map +1 -0
- package/dist/server/tools/cep_assessment.d.ts +172 -0
- package/dist/server/tools/cep_assessment.d.ts.map +1 -0
- package/dist/server/tools/cep_assessment.js +397 -0
- package/dist/server/tools/cep_assessment.js.map +1 -0
- package/dist/server/tools/gate_checks.d.ts +123 -0
- package/dist/server/tools/gate_checks.d.ts.map +1 -0
- package/dist/server/tools/gate_checks.js +267 -0
- package/dist/server/tools/gate_checks.js.map +1 -0
- package/dist/server/tools/index.d.ts +12 -0
- package/dist/server/tools/index.d.ts.map +1 -0
- package/dist/server/tools/index.js +62 -0
- package/dist/server/tools/index.js.map +1 -0
- package/dist/server/tools/lazy_loaders.d.ts +66 -0
- package/dist/server/tools/lazy_loaders.d.ts.map +1 -0
- package/dist/server/tools/lazy_loaders.js +78 -0
- package/dist/server/tools/lazy_loaders.js.map +1 -0
- package/dist/server/tools/middleware.d.ts +52 -0
- package/dist/server/tools/middleware.d.ts.map +1 -0
- package/dist/server/tools/middleware.js +648 -0
- package/dist/server/tools/middleware.js.map +1 -0
- package/dist/server/tools/schemas.d.ts +220 -0
- package/dist/server/tools/schemas.d.ts.map +1 -0
- package/dist/server/tools/schemas.js +162 -0
- package/dist/server/tools/schemas.js.map +1 -0
- package/dist/server/tools/tool_groups/admin.d.ts +3 -0
- package/dist/server/tools/tool_groups/admin.d.ts.map +1 -0
- package/dist/server/tools/tool_groups/admin.js +162 -0
- package/dist/server/tools/tool_groups/admin.js.map +1 -0
- package/dist/server/tools/tool_groups/auxiliary.d.ts +3 -0
- package/dist/server/tools/tool_groups/auxiliary.d.ts.map +1 -0
- package/dist/server/tools/tool_groups/auxiliary.js +144 -0
- package/dist/server/tools/tool_groups/auxiliary.js.map +1 -0
- package/dist/server/tools/tool_groups/knowledge.d.ts +3 -0
- package/dist/server/tools/tool_groups/knowledge.d.ts.map +1 -0
- package/dist/server/tools/tool_groups/knowledge.js +71 -0
- package/dist/server/tools/tool_groups/knowledge.js.map +1 -0
- package/dist/server/tools/tool_groups/product_operations.d.ts +9 -0
- package/dist/server/tools/tool_groups/product_operations.d.ts.map +1 -0
- package/dist/server/tools/tool_groups/product_operations.js +143 -0
- package/dist/server/tools/tool_groups/product_operations.js.map +1 -0
- package/dist/server/tools/tool_groups/scaffold_accept_deliver.d.ts +3 -0
- package/dist/server/tools/tool_groups/scaffold_accept_deliver.d.ts.map +1 -0
- package/dist/server/tools/tool_groups/scaffold_accept_deliver.js +37 -0
- package/dist/server/tools/tool_groups/scaffold_accept_deliver.js.map +1 -0
- package/dist/server/tools/tool_groups/state_machine.d.ts +13 -0
- package/dist/server/tools/tool_groups/state_machine.d.ts.map +1 -0
- package/dist/server/tools/tool_groups/state_machine.js +606 -0
- package/dist/server/tools/tool_groups/state_machine.js.map +1 -0
- package/dist/server/tools/tool_names.d.ts +59 -0
- package/dist/server/tools/tool_names.d.ts.map +1 -0
- package/dist/server/tools/tool_names.js +67 -0
- package/dist/server/tools/tool_names.js.map +1 -0
- package/dist/server/tools/types.d.ts +14 -0
- package/dist/server/tools/types.d.ts.map +1 -0
- package/dist/server/tools/types.js +2 -0
- package/dist/server/tools/types.js.map +1 -0
- package/dist/server/tools/utils.d.ts +17 -0
- package/dist/server/tools/utils.d.ts.map +1 -0
- package/dist/server/tools/utils.js +65 -0
- package/dist/server/tools/utils.js.map +1 -0
- package/dist/types/analysis.d.ts +5 -0
- package/dist/types/analysis.d.ts.map +1 -1
- package/dist/types/base.d.ts +2 -0
- package/dist/types/base.d.ts.map +1 -1
- package/dist/types/config.d.ts +2 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/delivery.d.ts +44 -1
- package/dist/types/delivery.d.ts.map +1 -1
- package/dist/types/dual_layer.d.ts +3 -3
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/knowledge.d.ts +19 -8
- package/dist/types/knowledge.d.ts.map +1 -1
- package/dist/types/knowledge.js.map +1 -1
- package/dist/types/pipeline.d.ts +202 -17
- package/dist/types/pipeline.d.ts.map +1 -1
- package/dist/types/pipeline.js +4 -0
- package/dist/types/pipeline.js.map +1 -1
- package/dist/types/state_machine.d.ts +353 -0
- package/dist/types/state_machine.d.ts.map +1 -0
- package/dist/types/state_machine.js +47 -0
- package/dist/types/state_machine.js.map +1 -0
- package/dist/types/task.d.ts +151 -40
- package/dist/types/task.d.ts.map +1 -1
- package/package.json +27 -11
- 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 +23 -2
- 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 +18 -10
- 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 +29 -25
- 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 +31 -18
- 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 +27 -18
- 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 +24 -10
- 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 +21 -10
- 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 +15 -10
- 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 +54 -17
- 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 +19 -11
- package/templates/artifacts/shared/ADR/346/250/241/347/211/210.md +22 -9
- package/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 +32 -26
- package/templates/artifacts/shared/Bug/345/210/206/346/236/220/346/250/241/347/211/210.md +7 -16
- package/templates/artifacts/shared/OOD/350/256/276/350/256/241/346/221/230/350/246/201/346/250/241/347/211/210.md +6 -15
- package/templates/artifacts/shared/POC/347/273/223/350/256/272/346/250/241/347/211/210.md +7 -16
- 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 +52 -14
- package/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/347/211/210.md +68 -0
- package/templates/artifacts/shared//345/210/207/347/211/207/350/256/241/345/210/222/346/250/241/347/211/210.md +126 -21
- package/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 +6 -19
- package/templates/artifacts/shared//345/216/237/345/236/213/350/257/264/346/230/216/346/250/241/347/211/210.md +117 -152
- package/templates/artifacts/shared//345/220/216/347/253/257API/351/252/214/346/224/266/346/270/205/345/215/225.md +6 -18
- package/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 +13 -15
- package/templates/artifacts/shared//345/256/211/345/205/250/345/256/241/350/256/241/346/250/241/347/211/210.md +13 -39
- package/templates/artifacts/shared//345/256/241/346/237/245/346/221/230/350/246/201.md +14 -21
- package/templates/artifacts/shared//346/200/247/350/203/275/345/210/206/346/236/220/346/250/241/347/211/210.md +7 -16
- package/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 +6 -18
- package/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 +56 -23
- package/templates/artifacts/shared//346/225/205/351/232/234/345/244/215/347/233/230/346/250/241/347/211/210.md +7 -17
- package/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 +46 -35
- package/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 +6 -20
- package/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 +122 -17
- package/templates/artifacts/shared//346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/347/211/210.md +113 -29
- package/templates/artifacts/shared//346/265/213/350/257/225/350/256/241/345/210/222/346/250/241/347/211/210.md +30 -22
- package/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 +7 -12
- package/templates/artifacts/shared//350/257/246/347/273/206/350/256/276/350/256/241/346/250/241/347/211/210.md +85 -33
- package/templates/artifacts/shared//350/277/201/347/247/273/350/257/204/344/274/260/346/250/241/347/211/210.md +18 -16
- package/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 +159 -39
- package/templates/artifacts/shared//351/207/215/346/236/204/346/226/271/346/241/210/346/250/241/347/211/210.md +7 -16
- package/templates/artifacts/shared//351/234/200/346/261/202/345/210/206/346/236/220/346/250/241/347/211/210.md +77 -19
- package/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 +41 -53
- package/templates/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 +6 -16
- package/templates/checklists//344/274/232/350/257/235/346/201/242/345/244/215.md +8 -25
- package/templates/checklists//345/267/245/344/275/234/346/265/201/351/252/214/346/224/266/346/270/205/345/215/225.md +6 -17
- package/templates/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 +6 -16
- package/templates/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 +7 -18
- package/templates/checklists//351/232/220/347/247/201/345/256/241/346/237/245/346/270/205/345/215/225.md +6 -16
- package/templates/checklists//351/252/214/350/257/201/351/252/214/346/224/266/346/270/205/345/215/225.md +6 -16
- package/templates/domain//345/244/232/347/247/237/346/210/267.md +5 -18
- package/templates/domain//345/256/241/350/256/241/346/227/245/345/277/227.md +5 -17
- package/templates/domain//345/257/274/345/205/245/345/257/274/345/207/272/350/247/204/345/210/231.md +8 -22
- package/templates/domain//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +5 -22
- package/templates/domain//346/212/245/350/241/250/347/273/237/350/256/241.md +5 -20
- package/templates/domain//346/224/257/344/273/230/350/247/204/345/210/231.md +5 -21
- package/templates/domain//346/225/260/346/215/256/346/235/203/351/231/220.md +5 -18
- package/templates/domain//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +5 -20
- package/templates/domain//351/200/232/347/237/245/350/247/204/345/210/231.md +8 -23
- package/templates/gates/existing-system/gate-/346/236/266/346/236/204/350/256/276/350/256/241.yaml +26 -0
- 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 +50 -2
- 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 +42 -8
- package/templates/gates/existing-system/gate-/350/257/225/350/277/220/350/241/214.yaml +30 -12
- package/templates/gates/existing-system/gate-/350/257/246/347/273/206/350/256/276/350/256/241.yaml +33 -0
- package/templates/gates/shared/gate-/344/272/244/344/273/230.yaml +32 -0
- package/templates/gates/shared/gate-/344/273/243/347/240/201/345/256/241/346/237/245.yaml +53 -0
- package/templates/gates/shared/gate-/344/273/273/345/212/241/350/247/204/345/210/222.yaml +134 -8
- package/templates/gates/shared/gate-/344/274/232/350/257/235/345/220/257/345/212/250.yaml +14 -0
- package/templates/gates/shared/gate-/345/206/263/347/255/226/347/240/224/350/256/250.yaml +14 -0
- package/templates/gates/shared/gate-/345/210/207/347/211/207/345/256/241/346/237/245.yaml +50 -0
- package/templates/gates/shared/gate-/345/210/207/347/211/207/346/211/247/350/241/214.yaml +51 -0
- package/templates/gates/shared/gate-/345/217/221/345/270/203/345/220/216/350/247/202/345/257/237.yaml +46 -0
- package/templates/gates/shared/gate-/345/256/211/345/205/250/345/256/241/350/256/241.yaml +77 -0
- package/templates/gates/shared/gate-/346/234/254/345/234/260/351/252/214/346/224/266.yaml +14 -0
- package/templates/gates/shared/gate-/346/236/266/346/236/204/350/256/276/350/256/241.yaml +145 -0
- 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 +30 -4
- package/templates/gates/shared/gate-/347/274/226/347/240/201/345/207/206/345/244/207.yaml +50 -0
- package/templates/gates/shared/gate-/347/274/226/347/240/201/345/256/236/347/216/260.yaml +52 -0
- package/templates/gates/shared/gate-/347/274/226/347/240/201/351/252/214/350/257/201.yaml +47 -0
- package/templates/gates/shared/gate-/350/201/224/350/260/203/351/252/214/350/257/201.yaml +53 -0
- package/templates/gates/shared/gate-/350/257/246/347/273/206/350/256/276/350/256/241.yaml +123 -0
- package/templates/gates/shared/gate-/351/234/200/346/261/202/345/210/206/346/236/220.yaml +164 -0
- package/templates/internal/patterns/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +6 -17
- package/templates/internal/patterns/Hook/345/261/202/344/272/247/347/211/251/347/273/223/346/236/204/346/240/241/351/252/214.md +55 -0
- package/templates/internal/patterns/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +6 -18
- package/templates/internal/patterns/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +6 -17
- package/templates/internal/patterns//344/272/247/347/211/251Schema/346/263/250/345/206/214/344/270/255/345/277/203.md +55 -0
- package/templates/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 +6 -17
- package/templates/internal/patterns//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +6 -18
- package/templates/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 +6 -17
- package/templates/internal/patterns//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +6 -18
- package/templates/internal/patterns//345/206/262/347/252/201/351/227/250/347/246/201.md +6 -17
- package/templates/internal/patterns//345/206/263/347/255/226/347/275/221/345/205/263.md +6 -19
- package/templates/internal/patterns//345/210/206/345/234/272/346/231/257/350/277/207/347/250/213/350/247/204/345/210/231.md +55 -0
- package/templates/internal/patterns//345/217/230/345/274/202/345/256/241/350/256/241.md +6 -18
- package/templates/internal/patterns//345/233/236/345/275/222/347/237/251/351/230/265.md +7 -18
- package/templates/internal/patterns//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +6 -17
- package/templates/internal/patterns//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +6 -17
- package/templates/internal/patterns//345/271/266/345/217/221/351/224/201.md +6 -19
- package/templates/internal/patterns//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +7 -20
- package/templates/internal/patterns//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +6 -17
- package/templates/internal/patterns//346/250/241/347/211/210Frontmatter/350/247/243/346/236/220.md +55 -0
- package/templates/internal/patterns//346/262/273/347/220/206/350/277/220/350/241/214/346/227/266/345/276/252/347/216/257.md +6 -18
- package/templates/internal/patterns//346/265/201/345/274/217/345/277/203/350/267/263.md +7 -19
- package/templates/internal/patterns//347/237/245/350/257/206/344/270/273/346/235/203.md +7 -19
- package/templates/internal/patterns//350/257/255/344/271/211/350/257/201/346/215/256.md +6 -17
- package/templates/internal/patterns//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +6 -18
- package/templates/internal/patterns//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +10 -20
- package/templates/internal/rules/OOD/344/270/216SOLID/350/256/276/350/256/241/350/247/204/345/210/231.md +5 -20
- package/templates/internal/rules//344/272/247/347/211/251/345/245/221/347/272/246/350/247/204/345/210/231.md +7 -16
- package/templates/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 +8 -36
- package/templates/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 +5 -14
- package/templates/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 +5 -20
- package/templates/internal/rules//345/221/275/344/273/244/346/211/247/350/241/214/350/247/204/345/210/231.md +6 -15
- package/templates/internal/rules//345/221/275/344/273/244/350/267/257/347/224/261/350/247/204/345/210/231.md +30 -0
- package/templates/internal/rules//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246/350/247/204/345/210/231.md +7 -16
- package/templates/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 +21 -34
- package/templates/internal/rules//345/267/245/344/275/234/346/265/201/346/250/241/347/211/210/345/214/205/350/247/204/345/210/231.md +40 -0
- package/templates/internal/rules//345/267/245/345/205/267/350/260/203/347/224/250/350/247/204/345/210/231.md +6 -15
- package/templates/internal/rules//346/204/217/345/233/276/350/267/257/347/224/261/350/247/204/345/210/231.md +10 -17
- package/templates/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 +9 -18
- package/templates/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 +5 -13
- package/templates/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 +5 -15
- package/templates/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 +10 -27
- package/templates/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 +5 -14
- package/templates/internal/rules//346/227/245/345/277/227/346/262/273/347/220/206/350/247/204/345/210/231.md +5 -18
- package/templates/internal/rules//346/234/272/345/210/266/350/207/252/346/262/273/347/220/206/350/247/204/345/210/231.md +5 -18
- package/templates/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 +10 -15
- package/templates/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 +8 -21
- package/templates/internal/rules//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +6 -18
- package/templates/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 +7 -16
- package/templates/internal/rules//346/250/241/347/211/210Frontmatter/350/247/204/350/214/203.md +301 -0
- package/templates/internal/rules//346/250/241/347/211/210/350/265/204/344/272/247/345/217/257/350/247/201/346/200/247/350/247/204/345/210/231.md +57 -0
- package/templates/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 +9 -18
- package/templates/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 +11 -24
- package/templates/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 +14 -33
- package/templates/internal/rules//347/237/245/350/257/206/346/262/273/347/220/206/350/247/204/345/210/231.md +6 -20
- package/templates/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 +8 -17
- package/templates/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 +7 -23
- package/templates/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 +8 -18
- package/templates/internal/rules//347/273/206/350/212/202/347/272/252/345/276/213/350/247/204/345/210/231.md +5 -15
- package/templates/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 +5 -15
- package/templates/internal/rules//350/256/241/345/210/222/345/211/215/347/275/256/351/227/250/350/247/204/345/210/231.md +7 -25
- package/templates/internal/rules//350/256/276/350/256/241/344/272/247/347/211/251/345/214/205/350/247/204/345/210/231.md +12 -17
- package/templates/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 +5 -17
- package/templates/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 +5 -13
- package/templates/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 +7 -16
- package/templates/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 +5 -23
- package/templates/internal/rules//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247/350/247/204/345/210/231.md +41 -30
- package/templates/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 +11 -21
- package/templates/internal/rules//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260/350/247/204/345/210/231.md +6 -15
- package/templates/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 +34 -40
- package/templates/internal/rules//351/252/214/346/224/266/346/250/241/347/211/210/350/276/223/345/207/272/345/245/221/347/272/246/350/247/204/345/210/231.md +80 -0
- package/templates/internal/rules//351/252/214/350/257/201/345/245/221/347/272/246/350/247/204/345/210/231.md +6 -15
- package/templates/patterns/API/350/256/276/350/256/241/350/247/204/350/214/203.md +5 -20
- package/templates/patterns/Docker/351/203/250/347/275/262/350/247/204/350/214/203.md +5 -18
- package/templates/patterns/Git/346/223/215/344/275/234/350/247/204/350/214/203.md +5 -22
- package/templates/patterns/N/345/212/2401/346/237/245/350/257/242/350/247/204/350/214/203.md +5 -21
- package/templates/patterns/React/345/210/227/350/241/250/350/241/250/346/240/274/350/247/204/350/214/203.md +6 -21
- package/templates/patterns/React/346/216/245/345/217/243/351/233/206/346/210/220/350/247/204/350/214/203.md +5 -21
- package/templates/patterns/React/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +5 -21
- package/templates/patterns/React/347/273/204/344/273/266/350/247/204/350/214/203.md +5 -20
- package/templates/patterns/React/350/241/250/345/215/225/350/247/204/350/214/203.md +5 -20
- package/templates/patterns/React/350/267/257/347/224/261/350/247/204/350/214/203.md +5 -21
- package/templates/patterns/SOLID/350/256/276/350/256/241/350/247/204/350/214/203.md +4 -13
- package/templates/patterns/Schema/345/205/274/345/256/271/350/247/204/350/214/203.md +5 -20
- package/templates/patterns/Vue/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +5 -19
- package/templates/patterns/Vue/347/273/204/344/273/266/350/247/204/350/214/203.md +5 -23
- package/templates/patterns/Vue/350/267/257/347/224/261/350/247/204/350/214/203.md +5 -18
- package/templates/patterns//344/272/213/344/273/266/351/251/261/345/212/250/350/247/204/350/214/203.md +5 -22
- package/templates/patterns//344/272/213/345/212/241/346/250/241/345/274/217/350/247/204/350/214/203.md +5 -21
- package/templates/patterns//344/274/230/351/233/205/345/201/234/346/234/272/350/247/204/350/214/203.md +5 -21
- package/templates/patterns//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +5 -19
- package/templates/patterns//345/210/206/351/241/265/346/237/245/350/257/242/350/247/204/350/214/203.md +5 -24
- package/templates/patterns//345/211/215/347/253/257/346/200/247/350/203/275/350/247/204/350/214/203.md +5 -22
- package/templates/patterns//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/350/247/204/350/214/203.md +4 -13
- package/templates/patterns//345/221/275/345/220/215/350/247/204/350/214/203.md +5 -19
- package/templates/patterns//345/233/275/351/231/205/345/214/226/350/247/204/350/214/203.md +6 -22
- package/templates/patterns//345/242/236/345/210/240/346/224/271/346/237/245/350/247/204/350/214/203.md +5 -21
- package/templates/patterns//345/244/226/351/203/250/344/276/235/350/265/226/350/247/204/350/214/203.md +5 -21
- package/templates/patterns//345/245/221/347/272/246/345/205/274/345/256/271/350/247/204/350/214/203.md +5 -18
- package/templates/patterns//345/256/232/346/227/266/344/273/273/345/212/241/350/247/204/350/214/203.md +5 -22
- package/templates/patterns//345/256/236/346/227/266/346/216/250/351/200/201/350/247/204/350/214/203.md +5 -20
- package/templates/patterns//345/267/245/347/250/213/347/272/252/345/276/213.md +5 -19
- package/templates/patterns//345/271/266/345/217/221/346/216/247/345/210/266/350/247/204/350/214/203.md +5 -24
- package/templates/patterns//345/274/202/346/255/245/345/257/274/345/207/272/350/247/204/350/214/203.md +5 -21
- package/templates/patterns//346/216/245/345/217/243/345/245/221/347/272/246/350/247/204/350/214/203.md +5 -19
- package/templates/patterns//346/220/234/347/264/242/346/250/241/345/274/217/350/247/204/350/214/203.md +5 -22
- package/templates/patterns//346/225/260/346/215/256/351/232/220/347/247/201/350/247/204/350/214/203.md +6 -24
- package/templates/patterns//346/226/207/344/273/266/344/270/212/344/274/240/350/247/204/350/214/203.md +5 -20
- package/templates/patterns//346/227/240/351/232/234/347/242/215/350/247/204/350/214/203.md +5 -20
- package/templates/patterns//346/227/245/345/277/227/350/247/204/350/214/203.md +5 -21
- package/templates/patterns//346/235/203/351/231/220/350/256/244/350/257/201/350/247/204/350/214/203.md +5 -24
- package/templates/patterns//346/236/266/346/236/204/347/272/242/347/272/277.md +5 -18
- package/templates/patterns//346/265/213/350/257/225/350/264/250/351/207/217/350/247/204/350/214/203.md +5 -19
- package/templates/patterns//347/206/224/346/226/255/351/231/215/347/272/247/350/247/204/350/214/203.md +5 -22
- package/templates/patterns//347/212/266/346/200/201/346/265/201/350/275/254/350/247/204/350/214/203.md +5 -19
- package/templates/patterns//347/272/246/346/235/237/345/256/236/347/216/260/350/247/204/350/214/203.md +5 -21
- package/templates/patterns//347/274/223/345/255/230/347/255/226/347/225/245/350/247/204/350/214/203.md +5 -21
- package/templates/patterns//347/274/226/347/240/201/350/264/250/351/207/217/350/247/204/350/214/203.md +5 -19
- package/templates/patterns//347/274/272/351/231/267/347/256/241/347/220/206/350/247/204/350/214/203.md +6 -19
- package/templates/patterns//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +5 -19
- package/templates/patterns//350/276/223/345/205/245/346/240/241/351/252/214/350/247/204/350/214/203.md +5 -21
- package/templates/patterns//351/224/231/350/257/257/345/244/204/347/220/206/350/247/204/350/214/203.md +5 -21
- package/templates/patterns//351/224/231/350/257/257/350/276/271/347/225/214/350/247/204/350/214/203.md +5 -23
- package/templates/patterns//351/242/206/345/237/237/351/251/261/345/212/250/350/256/276/350/256/241/350/247/204/350/214/203.md +5 -20
- package/templates/procedures/OOD/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +46 -25
- package/templates/procedures/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +17 -25
- package/templates/procedures//344/270/215/347/241/256/345/256/232/346/227/266/345/244/264/350/204/221/351/243/216/346/232/264/346/265/201/347/250/213.md +92 -0
- package/templates/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 +14 -18
- package/templates/procedures//344/273/243/347/240/201/351/227/250/347/246/201/346/265/201/347/250/213.md +7 -16
- package/templates/procedures//344/273/273/345/212/241/346/213/206/350/247/243/346/265/201/347/250/213.md +14 -16
- package/templates/procedures//344/273/273/345/212/241/350/247/204/345/210/222/345/267/245/344/275/234/346/265/201.md +83 -0
- package/templates/procedures//344/274/232/350/257/235/346/201/242/345/244/215/346/265/201/347/250/213.md +74 -0
- package/templates/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 +14 -26
- package/templates/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +15 -23
- package/templates/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 +5 -15
- package/templates/procedures//345/221/275/344/273/244/346/211/247/350/241/214/346/265/201/347/250/213.md +9 -17
- package/templates/procedures//345/221/275/344/273/244/350/267/257/347/224/261/346/265/201/347/250/213.md +32 -0
- package/templates/procedures//345/256/211/345/205/250/345/212/240/345/233/272/346/265/201/346/260/264/347/272/277.md +17 -25
- package/templates/procedures//345/267/245/345/205/267/350/260/203/347/224/250/346/265/201/347/250/213.md +9 -17
- package/templates/procedures//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +16 -24
- package/templates/procedures//346/204/217/345/233/276/350/267/257/347/224/261/346/265/201/347/250/213.md +11 -18
- package/templates/procedures//346/216/245/345/217/243/351/233/206/346/210/220/346/265/201/346/260/264/347/272/277.md +25 -27
- package/templates/procedures//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273/346/265/201/347/250/213.md +8 -16
- package/templates/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 +7 -16
- package/templates/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 +11 -12
- package/templates/procedures//346/236/266/346/236/204/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +28 -17
- package/templates/procedures//346/246/202/345/277/265/351/252/214/350/257/201/346/265/201/346/260/264/347/272/277.md +17 -23
- package/templates/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 +22 -17
- package/templates/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 +16 -25
- package/templates/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 +35 -16
- package/templates/procedures//347/237/245/350/257/206/347/273/264/346/212/244/346/265/201/346/260/264/347/272/277.md +14 -23
- package/templates/procedures//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +19 -27
- package/templates/procedures//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205/346/265/201/347/250/213.md +16 -19
- package/templates/procedures//347/274/226/347/240/201/351/230/266/346/256/265/346/211/247/350/241/214/345/267/245/344/275/234/346/265/201.md +101 -0
- package/templates/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +9 -17
- package/templates/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 +34 -17
- package/templates/procedures//350/256/276/350/256/241/345/256/241/350/256/241/346/265/201/347/250/213.md +180 -0
- package/templates/procedures//350/257/246/347/273/206/350/256/276/350/256/241/346/265/201/347/250/213.md +97 -31
- package/templates/procedures//350/260/203/350/257/225/346/216/222/346/237/245/346/265/201/347/250/213.md +36 -16
- package/templates/procedures//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +16 -24
- package/templates/procedures//351/203/250/347/275/262/345/217/221/345/270/203/346/265/201/347/250/213.md +39 -16
- package/templates/procedures//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +16 -24
- package/templates/procedures//351/233/206/346/210/220/351/252/214/350/257/201/346/265/201/347/250/213.md +13 -16
- package/templates/procedures//351/234/200/346/261/202/346/276/204/346/270/205/346/265/201/347/250/213.md +28 -24
- package/templates/procedures//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +13 -17
- 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 +71 -27
- package/templates/rules/existing-system//350/200/201/347/263/273/347/273/237/345/210/207/347/211/207/350/247/204/345/210/222/350/247/204/345/210/231.md +35 -0
- package/templates/rules/existing-system//350/200/246/345/220/210/346/243/200/346/265/213/350/247/204/345/210/231.md +63 -25
- 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 +54 -28
- 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 +75 -29
- 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 +115 -28
- 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 +44 -22
- package/templates/rules/shared/SOLID/344/273/243/347/240/201/345/256/241/346/237/245/350/247/204/345/210/231.md +51 -24
- 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 +88 -13
- package/templates/rules/shared//344/270/212/346/270/270/344/272/244/345/217/211/351/252/214/350/257/201/350/247/204/345/210/231.md +56 -0
- package/templates/rules/shared//344/270/212/346/270/270/350/256/276/350/256/241/344/272/244/345/217/211/351/252/214/350/257/201/345/256/241/346/237/245/350/247/204/345/210/231.md +67 -0
- package/templates/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 +41 -22
- package/templates/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 +48 -63
- package/templates/rules/shared//345/206/263/347/255/226/345/256/214/346/225/264/346/200/247/345/256/241/346/237/245/350/247/204/345/210/231.md +63 -0
- package/templates/rules/shared//345/210/207/347/211/207/346/211/247/350/241/214/347/272/252/345/276/213/350/247/204/345/210/231.md +96 -0
- package/templates/rules/shared//345/210/207/347/211/207/350/247/204/345/210/222/350/247/204/345/210/231.md +64 -0
- package/templates/rules/shared//345/216/237/345/236/213/346/272/220/347/240/201/346/217/220/345/217/226/350/247/204/345/210/231.md +67 -0
- package/templates/rules/shared//345/216/237/345/236/213/350/257/264/346/230/216/345/256/241/346/237/245/350/247/204/345/210/231.md +73 -0
- package/templates/rules/shared//345/217/221/345/270/203/345/220/216/345/256/241/346/237/245/350/247/204/345/210/231.md +65 -0
- package/templates/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 +47 -22
- package/templates/rules/shared//345/256/211/345/205/250/345/256/241/346/237/245/350/247/204/345/210/231.md +55 -23
- package/templates/rules/shared//345/271/266/345/217/221/345/256/241/346/237/245/350/247/204/345/210/231.md +41 -16
- package/templates/rules/shared//346/200/247/350/203/275/345/256/241/346/237/245/350/247/204/345/210/231.md +34 -16
- package/templates/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 +42 -17
- package/templates/rules/shared//346/236/266/346/236/204/345/256/241/346/237/245/350/247/204/345/210/231.md +33 -17
- package/templates/rules/shared//346/236/266/346/236/204/350/256/276/350/256/241/345/256/241/346/237/245/350/247/204/345/210/231.md +102 -0
- package/templates/rules/shared//346/236/266/346/236/204/350/256/276/350/256/241/350/247/204/345/210/231.md +64 -0
- package/templates/rules/shared//347/213/254/347/253/213/345/256/241/346/237/245/350/247/204/345/210/231.md +33 -0
- package/templates/rules/shared//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 +171 -0
- package/templates/rules/shared//347/274/226/347/240/201/345/260/261/347/273/252/345/256/241/346/237/245/350/247/204/345/210/231.md +52 -0
- package/templates/rules/shared//350/201/224/350/260/203/351/252/214/350/257/201/346/270/205/345/215/225.md +66 -19
- package/templates/rules/shared//350/246/206/347/233/226/347/216/207/346/240/207/345/207/206.md +7 -6
- package/templates/rules/shared//350/257/246/347/273/206/350/256/276/350/256/241/345/256/241/346/237/245/350/247/204/345/210/231.md +82 -0
- package/templates/rules/shared//350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +19 -18
- package/templates/rules/shared//350/277/275/350/270/252/347/237/251/351/230/265ID/350/247/204/345/210/231.md +48 -0
- package/templates/rules/shared//350/277/275/350/270/252/347/237/251/351/230/265/345/256/241/346/237/245/350/247/204/345/210/231.md +51 -0
- package/templates/rules/shared//351/234/200/346/261/202/350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +80 -0
- package/templates/rules/shared//351/252/214/346/224/266/346/240/207/345/207/206/345/256/241/346/237/245/350/247/204/345/210/231.md +56 -0
- package/templates/scaffolds/react/ErrorBoundary.tsx.hbs +49 -0
- package/templates/scaffolds/react/Layout.tsx.hbs +20 -0
- package/templates/scaffolds/spring-boot/ControllerTest.java.hbs +36 -0
- package/templates/scaffolds/spring-boot/Mapper.xml.hbs +29 -0
- package/templates//346/250/241/347/211/210/350/264/241/347/214/256/346/214/207/345/215/227.md +147 -0
- package/dist/adapters/claude_code/pre_prompt_contract.d.ts +0 -9
- package/dist/adapters/claude_code/pre_prompt_contract.d.ts.map +0 -1
- package/dist/adapters/claude_code/pre_prompt_contract.js +0 -8
- package/dist/adapters/claude_code/pre_prompt_contract.js.map +0 -1
- package/dist/adapters/claude_code/server.d.ts +0 -26
- package/dist/adapters/claude_code/server.d.ts.map +0 -1
- package/dist/adapters/claude_code/server.js +0 -59
- package/dist/adapters/claude_code/server.js.map +0 -1
- package/dist/engine/architecture_decision_workshop.d.ts +0 -58
- package/dist/engine/architecture_decision_workshop.d.ts.map +0 -1
- package/dist/engine/architecture_decision_workshop.js +0 -118
- package/dist/engine/architecture_decision_workshop.js.map +0 -1
- package/dist/engine/architecture_design_contract.d.ts.map +0 -1
- package/dist/engine/architecture_design_contract.js.map +0 -1
- package/dist/engine/artifact_contract_registry.d.ts +0 -138
- package/dist/engine/artifact_contract_registry.d.ts.map +0 -1
- package/dist/engine/artifact_contract_registry.js +0 -420
- package/dist/engine/artifact_contract_registry.js.map +0 -1
- package/dist/engine/asset_manifest.d.ts +0 -67
- package/dist/engine/asset_manifest.d.ts.map +0 -1
- package/dist/engine/asset_manifest.js +0 -299
- package/dist/engine/asset_manifest.js.map +0 -1
- package/dist/engine/audit_pool.d.ts.map +0 -1
- package/dist/engine/audit_pool.js +0 -120
- package/dist/engine/audit_pool.js.map +0 -1
- package/dist/engine/audit_sampler.d.ts +0 -20
- package/dist/engine/audit_sampler.d.ts.map +0 -1
- package/dist/engine/audit_sampler.js +0 -29
- package/dist/engine/audit_sampler.js.map +0 -1
- package/dist/engine/audit_verifier.d.ts +0 -52
- package/dist/engine/audit_verifier.d.ts.map +0 -1
- package/dist/engine/audit_verifier.js +0 -101
- package/dist/engine/audit_verifier.js.map +0 -1
- package/dist/engine/backend_implementation_contract.d.ts.map +0 -1
- package/dist/engine/backend_implementation_contract.js +0 -164
- package/dist/engine/backend_implementation_contract.js.map +0 -1
- package/dist/engine/brainstorm_contract.d.ts +0 -48
- package/dist/engine/brainstorm_contract.d.ts.map +0 -1
- package/dist/engine/brainstorm_contract.js +0 -146
- package/dist/engine/brainstorm_contract.js.map +0 -1
- package/dist/engine/capability_action_advisor.d.ts.map +0 -1
- package/dist/engine/capability_action_advisor.js +0 -158
- package/dist/engine/capability_action_advisor.js.map +0 -1
- package/dist/engine/capability_registry.d.ts.map +0 -1
- package/dist/engine/capability_registry.js +0 -731
- package/dist/engine/capability_registry.js.map +0 -1
- package/dist/engine/capability_state_store.d.ts +0 -113
- package/dist/engine/capability_state_store.d.ts.map +0 -1
- package/dist/engine/capability_state_store.js +0 -172
- package/dist/engine/capability_state_store.js.map +0 -1
- package/dist/engine/chinese_semantic_priority.d.ts.map +0 -1
- package/dist/engine/chinese_semantic_priority.js.map +0 -1
- package/dist/engine/classifier.d.ts +0 -24
- package/dist/engine/classifier.d.ts.map +0 -1
- package/dist/engine/classifier.js +0 -209
- package/dist/engine/classifier.js.map +0 -1
- package/dist/engine/code_maintainability_observability_contract.d.ts.map +0 -1
- package/dist/engine/code_maintainability_observability_contract.js +0 -711
- package/dist/engine/code_maintainability_observability_contract.js.map +0 -1
- package/dist/engine/code_reviewer.d.ts +0 -71
- package/dist/engine/code_reviewer.d.ts.map +0 -1
- package/dist/engine/code_reviewer.js +0 -643
- package/dist/engine/code_reviewer.js.map +0 -1
- package/dist/engine/coding_readiness_gate.d.ts +0 -46
- package/dist/engine/coding_readiness_gate.d.ts.map +0 -1
- package/dist/engine/coding_readiness_gate.js +0 -175
- package/dist/engine/coding_readiness_gate.js.map +0 -1
- package/dist/engine/command_execution_contract.d.ts +0 -226
- package/dist/engine/command_execution_contract.d.ts.map +0 -1
- package/dist/engine/command_execution_contract.js +0 -572
- package/dist/engine/command_execution_contract.js.map +0 -1
- package/dist/engine/confidence_scorer.d.ts +0 -32
- package/dist/engine/confidence_scorer.d.ts.map +0 -1
- package/dist/engine/confidence_scorer.js +0 -45
- package/dist/engine/confidence_scorer.js.map +0 -1
- package/dist/engine/config_auto_repair.d.ts +0 -29
- package/dist/engine/config_auto_repair.d.ts.map +0 -1
- package/dist/engine/config_auto_repair.js +0 -254
- package/dist/engine/config_auto_repair.js.map +0 -1
- package/dist/engine/config_precedence_contract.d.ts +0 -269
- package/dist/engine/config_precedence_contract.d.ts.map +0 -1
- package/dist/engine/config_precedence_contract.js +0 -949
- package/dist/engine/config_precedence_contract.js.map +0 -1
- package/dist/engine/config_write_boundary.d.ts.map +0 -1
- package/dist/engine/config_write_boundary.js +0 -69
- package/dist/engine/config_write_boundary.js.map +0 -1
- package/dist/engine/conflict_gate.d.ts.map +0 -1
- package/dist/engine/conflict_gate.js +0 -92
- package/dist/engine/conflict_gate.js.map +0 -1
- package/dist/engine/consumable_asset_registry.d.ts +0 -50
- package/dist/engine/consumable_asset_registry.d.ts.map +0 -1
- package/dist/engine/consumable_asset_registry.js +0 -1446
- package/dist/engine/consumable_asset_registry.js.map +0 -1
- package/dist/engine/consumption_trace_store.d.ts +0 -92
- package/dist/engine/consumption_trace_store.d.ts.map +0 -1
- package/dist/engine/consumption_trace_store.js +0 -134
- package/dist/engine/consumption_trace_store.js.map +0 -1
- package/dist/engine/contract_guard.d.ts +0 -37
- package/dist/engine/contract_guard.d.ts.map +0 -1
- package/dist/engine/contract_guard.js +0 -590
- package/dist/engine/contract_guard.js.map +0 -1
- package/dist/engine/contract_registry.d.ts +0 -113
- package/dist/engine/contract_registry.d.ts.map +0 -1
- package/dist/engine/contract_registry.js +0 -1630
- package/dist/engine/contract_registry.js.map +0 -1
- package/dist/engine/contract_state_store.d.ts +0 -67
- package/dist/engine/contract_state_store.d.ts.map +0 -1
- package/dist/engine/contract_state_store.js +0 -167
- package/dist/engine/contract_state_store.js.map +0 -1
- package/dist/engine/control_plane_contract.d.ts.map +0 -1
- package/dist/engine/control_plane_contract.js +0 -251
- package/dist/engine/control_plane_contract.js.map +0 -1
- package/dist/engine/core_engineering_principles.d.ts +0 -155
- package/dist/engine/core_engineering_principles.d.ts.map +0 -1
- package/dist/engine/core_engineering_principles.js +0 -417
- package/dist/engine/core_engineering_principles.js.map +0 -1
- package/dist/engine/core_experience_principle.d.ts.map +0 -1
- package/dist/engine/core_experience_principle.js +0 -349
- package/dist/engine/core_experience_principle.js.map +0 -1
- package/dist/engine/debt_reporter.d.ts +0 -9
- package/dist/engine/debt_reporter.d.ts.map +0 -1
- package/dist/engine/debt_reporter.js +0 -94
- package/dist/engine/debt_reporter.js.map +0 -1
- package/dist/engine/debt_tracker.d.ts +0 -72
- package/dist/engine/debt_tracker.d.ts.map +0 -1
- package/dist/engine/debt_tracker.js +0 -224
- package/dist/engine/debt_tracker.js.map +0 -1
- package/dist/engine/debug_log.d.ts +0 -5
- package/dist/engine/debug_log.d.ts.map +0 -1
- package/dist/engine/debug_log.js +0 -5
- package/dist/engine/debug_log.js.map +0 -1
- package/dist/engine/debugger.d.ts +0 -12
- package/dist/engine/debugger.d.ts.map +0 -1
- package/dist/engine/debugger.js +0 -415
- package/dist/engine/debugger.js.map +0 -1
- package/dist/engine/decision_contract.d.ts +0 -38
- package/dist/engine/decision_contract.d.ts.map +0 -1
- package/dist/engine/decision_contract.js +0 -57
- package/dist/engine/decision_contract.js.map +0 -1
- package/dist/engine/decision_workshop.d.ts +0 -168
- package/dist/engine/decision_workshop.d.ts.map +0 -1
- package/dist/engine/decision_workshop.js.map +0 -1
- package/dist/engine/degradation.d.ts.map +0 -1
- package/dist/engine/degradation.js.map +0 -1
- package/dist/engine/delivery.d.ts +0 -49
- package/dist/engine/delivery.d.ts.map +0 -1
- package/dist/engine/delivery.js +0 -373
- package/dist/engine/delivery.js.map +0 -1
- package/dist/engine/delivery_readiness.d.ts +0 -70
- package/dist/engine/delivery_readiness.d.ts.map +0 -1
- package/dist/engine/delivery_readiness.js +0 -198
- package/dist/engine/delivery_readiness.js.map +0 -1
- package/dist/engine/design_artifact_pack.d.ts +0 -50
- package/dist/engine/design_artifact_pack.d.ts.map +0 -1
- package/dist/engine/design_artifact_pack.js.map +0 -1
- package/dist/engine/design_lifecycle_contract.d.ts +0 -60
- package/dist/engine/design_lifecycle_contract.d.ts.map +0 -1
- package/dist/engine/design_lifecycle_contract.js +0 -499
- package/dist/engine/design_lifecycle_contract.js.map +0 -1
- package/dist/engine/detail_discipline.d.ts.map +0 -1
- package/dist/engine/detail_discipline.js.map +0 -1
- package/dist/engine/developer_sovereignty.d.ts +0 -62
- package/dist/engine/developer_sovereignty.d.ts.map +0 -1
- package/dist/engine/developer_sovereignty.js +0 -141
- package/dist/engine/developer_sovereignty.js.map +0 -1
- package/dist/engine/diagnostic_registry.d.ts.map +0 -1
- package/dist/engine/diagnostic_registry.js +0 -268
- package/dist/engine/diagnostic_registry.js.map +0 -1
- package/dist/engine/diff_ownership.d.ts.map +0 -1
- package/dist/engine/diff_ownership.js +0 -152
- package/dist/engine/diff_ownership.js.map +0 -1
- package/dist/engine/diff_ownership_store.d.ts.map +0 -1
- package/dist/engine/diff_ownership_store.js +0 -291
- package/dist/engine/diff_ownership_store.js.map +0 -1
- package/dist/engine/documentation_governance.d.ts.map +0 -1
- package/dist/engine/documentation_governance.js.map +0 -1
- package/dist/engine/dual_layer_mechanism_registry.d.ts +0 -68
- package/dist/engine/dual_layer_mechanism_registry.d.ts.map +0 -1
- package/dist/engine/dual_layer_mechanism_registry.js +0 -2530
- package/dist/engine/dual_layer_mechanism_registry.js.map +0 -1
- package/dist/engine/enforcement_guard.d.ts +0 -84
- package/dist/engine/enforcement_guard.d.ts.map +0 -1
- package/dist/engine/enforcement_guard.js +0 -320
- package/dist/engine/enforcement_guard.js.map +0 -1
- package/dist/engine/escape_report.d.ts.map +0 -1
- package/dist/engine/escape_report.js +0 -136
- package/dist/engine/escape_report.js.map +0 -1
- package/dist/engine/evidence_grounding_contract.d.ts +0 -137
- package/dist/engine/evidence_grounding_contract.d.ts.map +0 -1
- package/dist/engine/evidence_grounding_contract.js +0 -410
- package/dist/engine/evidence_grounding_contract.js.map +0 -1
- package/dist/engine/evolution_regression_gate.d.ts +0 -42
- package/dist/engine/evolution_regression_gate.d.ts.map +0 -1
- package/dist/engine/evolution_regression_gate.js +0 -159
- package/dist/engine/evolution_regression_gate.js.map +0 -1
- package/dist/engine/evolver.d.ts +0 -78
- package/dist/engine/evolver.d.ts.map +0 -1
- package/dist/engine/evolver.js +0 -377
- package/dist/engine/evolver.js.map +0 -1
- package/dist/engine/existing_system_analysis.d.ts.map +0 -1
- package/dist/engine/existing_system_analysis.js.map +0 -1
- package/dist/engine/expand_pipeline.d.ts +0 -121
- package/dist/engine/expand_pipeline.d.ts.map +0 -1
- package/dist/engine/expand_pipeline.js +0 -141
- package/dist/engine/expand_pipeline.js.map +0 -1
- package/dist/engine/explicit_asset_registry.d.ts +0 -30
- package/dist/engine/explicit_asset_registry.d.ts.map +0 -1
- package/dist/engine/explicit_asset_registry.js +0 -4235
- package/dist/engine/explicit_asset_registry.js.map +0 -1
- package/dist/engine/extension_contract.d.ts +0 -50
- package/dist/engine/extension_contract.d.ts.map +0 -1
- package/dist/engine/extension_contract.js +0 -158
- package/dist/engine/extension_contract.js.map +0 -1
- package/dist/engine/extension_platform_contracts.d.ts.map +0 -1
- package/dist/engine/extension_platform_contracts.js.map +0 -1
- package/dist/engine/extension_scenario_registry.d.ts +0 -30
- package/dist/engine/extension_scenario_registry.d.ts.map +0 -1
- package/dist/engine/extension_scenario_registry.js +0 -963
- package/dist/engine/extension_scenario_registry.js.map +0 -1
- package/dist/engine/failure_classifier.d.ts +0 -39
- package/dist/engine/failure_classifier.d.ts.map +0 -1
- package/dist/engine/failure_classifier.js +0 -175
- package/dist/engine/failure_classifier.js.map +0 -1
- package/dist/engine/failure_report.d.ts.map +0 -1
- package/dist/engine/failure_report.js.map +0 -1
- package/dist/engine/first_principles.d.ts +0 -37
- package/dist/engine/first_principles.d.ts.map +0 -1
- package/dist/engine/first_principles.js +0 -141
- package/dist/engine/first_principles.js.map +0 -1
- package/dist/engine/foundation_scenario_registry.d.ts +0 -44
- package/dist/engine/foundation_scenario_registry.d.ts.map +0 -1
- package/dist/engine/foundation_scenario_registry.js +0 -280
- package/dist/engine/foundation_scenario_registry.js.map +0 -1
- package/dist/engine/foundation_scenario_runners.d.ts +0 -54
- package/dist/engine/foundation_scenario_runners.d.ts.map +0 -1
- package/dist/engine/foundation_scenario_runners.js +0 -602
- package/dist/engine/foundation_scenario_runners.js.map +0 -1
- package/dist/engine/gate_checks/checkAdapterLayerConsistency.d.ts +0 -6
- package/dist/engine/gate_checks/checkAdapterLayerConsistency.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkAdapterLayerConsistency.js +0 -117
- package/dist/engine/gate_checks/checkAdapterLayerConsistency.js.map +0 -1
- package/dist/engine/gate_checks/checkCodeObservability.d.ts +0 -6
- package/dist/engine/gate_checks/checkCodeObservability.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkCodeObservability.js +0 -252
- package/dist/engine/gate_checks/checkCodeObservability.js.map +0 -1
- package/dist/engine/gate_checks/checkCodeStyleEnforcement.d.ts +0 -7
- package/dist/engine/gate_checks/checkCodeStyleEnforcement.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkCodeStyleEnforcement.js +0 -73
- package/dist/engine/gate_checks/checkCodeStyleEnforcement.js.map +0 -1
- package/dist/engine/gate_checks/checkControlPlaneTrust.d.ts +0 -9
- package/dist/engine/gate_checks/checkControlPlaneTrust.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkControlPlaneTrust.js +0 -111
- package/dist/engine/gate_checks/checkControlPlaneTrust.js.map +0 -1
- package/dist/engine/gate_checks/checkCriticalProblemConsumption.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkCriticalProblemConsumption.js +0 -476
- package/dist/engine/gate_checks/checkCriticalProblemConsumption.js.map +0 -1
- package/dist/engine/gate_checks/checkDependencyAudit.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkDependencyAudit.js +0 -40
- package/dist/engine/gate_checks/checkDependencyAudit.js.map +0 -1
- package/dist/engine/gate_checks/checkDeprecatedCode.d.ts +0 -6
- package/dist/engine/gate_checks/checkDeprecatedCode.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkDeprecatedCode.js +0 -262
- package/dist/engine/gate_checks/checkDeprecatedCode.js.map +0 -1
- package/dist/engine/gate_checks/checkDiagnosticCentralization.d.ts +0 -9
- package/dist/engine/gate_checks/checkDiagnosticCentralization.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkDiagnosticCentralization.js +0 -24
- package/dist/engine/gate_checks/checkDiagnosticCentralization.js.map +0 -1
- package/dist/engine/gate_checks/checkDistFreshness.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkDistFreshness.js +0 -57
- package/dist/engine/gate_checks/checkDistFreshness.js.map +0 -1
- package/dist/engine/gate_checks/checkDualLayerSemantics.d.ts +0 -6
- package/dist/engine/gate_checks/checkDualLayerSemantics.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkDualLayerSemantics.js +0 -88
- package/dist/engine/gate_checks/checkDualLayerSemantics.js.map +0 -1
- package/dist/engine/gate_checks/checkImplementationContract.d.ts +0 -6
- package/dist/engine/gate_checks/checkImplementationContract.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkImplementationContract.js +0 -90
- package/dist/engine/gate_checks/checkImplementationContract.js.map +0 -1
- package/dist/engine/gate_checks/checkKnowledgeAssetSchemaP0.d.ts +0 -6
- package/dist/engine/gate_checks/checkKnowledgeAssetSchemaP0.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkKnowledgeAssetSchemaP0.js +0 -30
- package/dist/engine/gate_checks/checkKnowledgeAssetSchemaP0.js.map +0 -1
- package/dist/engine/gate_checks/checkKnowledgeLayer.d.ts +0 -6
- package/dist/engine/gate_checks/checkKnowledgeLayer.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkKnowledgeLayer.js +0 -163
- package/dist/engine/gate_checks/checkKnowledgeLayer.js.map +0 -1
- package/dist/engine/gate_checks/checkLongTermMechanization.d.ts +0 -6
- package/dist/engine/gate_checks/checkLongTermMechanization.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkLongTermMechanization.js +0 -55
- package/dist/engine/gate_checks/checkLongTermMechanization.js.map +0 -1
- package/dist/engine/gate_checks/checkMainlineConsumption.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkMainlineConsumption.js +0 -312
- package/dist/engine/gate_checks/checkMainlineConsumption.js.map +0 -1
- package/dist/engine/gate_checks/checkMechanismChain.d.ts +0 -6
- package/dist/engine/gate_checks/checkMechanismChain.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkMechanismChain.js +0 -196
- package/dist/engine/gate_checks/checkMechanismChain.js.map +0 -1
- package/dist/engine/gate_checks/checkMechanismIdentity.d.ts +0 -6
- package/dist/engine/gate_checks/checkMechanismIdentity.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkMechanismIdentity.js +0 -125
- package/dist/engine/gate_checks/checkMechanismIdentity.js.map +0 -1
- package/dist/engine/gate_checks/checkReleaseIssueDesignPath.d.ts +0 -6
- package/dist/engine/gate_checks/checkReleaseIssueDesignPath.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkReleaseIssueDesignPath.js +0 -736
- package/dist/engine/gate_checks/checkReleaseIssueDesignPath.js.map +0 -1
- package/dist/engine/gate_checks/checkStandardAssetCoverage.d.ts +0 -6
- package/dist/engine/gate_checks/checkStandardAssetCoverage.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkStandardAssetCoverage.js +0 -34
- package/dist/engine/gate_checks/checkStandardAssetCoverage.js.map +0 -1
- package/dist/engine/gate_checks/checkStateChainHealth.d.ts +0 -6
- package/dist/engine/gate_checks/checkStateChainHealth.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkStateChainHealth.js +0 -147
- package/dist/engine/gate_checks/checkStateChainHealth.js.map +0 -1
- package/dist/engine/gate_checks/checkTemplateKnowledgeHygiene.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkTemplateKnowledgeHygiene.js +0 -314
- package/dist/engine/gate_checks/checkTemplateKnowledgeHygiene.js.map +0 -1
- package/dist/engine/gate_checks/checkTestPollution.d.ts +0 -6
- package/dist/engine/gate_checks/checkTestPollution.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkTestPollution.js +0 -67
- package/dist/engine/gate_checks/checkTestPollution.js.map +0 -1
- package/dist/engine/gate_checks/checkWorkflowNavigation.d.ts.map +0 -1
- package/dist/engine/gate_checks/checkWorkflowNavigation.js +0 -168
- package/dist/engine/gate_checks/checkWorkflowNavigation.js.map +0 -1
- package/dist/engine/gate_checks/helpers.d.ts.map +0 -1
- package/dist/engine/gate_checks/helpers.js +0 -91
- package/dist/engine/gate_checks/helpers.js.map +0 -1
- package/dist/engine/gate_checks/types.d.ts.map +0 -1
- package/dist/engine/gate_checks/types.js.map +0 -1
- package/dist/engine/git_deps.d.ts +0 -69
- package/dist/engine/git_deps.d.ts.map +0 -1
- package/dist/engine/git_deps.js +0 -9
- package/dist/engine/git_deps.js.map +0 -1
- package/dist/engine/governance_report.d.ts +0 -100
- package/dist/engine/governance_report.d.ts.map +0 -1
- package/dist/engine/governance_report.js +0 -184
- package/dist/engine/governance_report.js.map +0 -1
- package/dist/engine/helpers.d.ts +0 -9
- package/dist/engine/helpers.d.ts.map +0 -1
- package/dist/engine/helpers.js +0 -13
- package/dist/engine/helpers.js.map +0 -1
- package/dist/engine/hook_context_types.d.ts +0 -66
- package/dist/engine/hook_context_types.d.ts.map +0 -1
- package/dist/engine/hook_context_types.js +0 -118
- package/dist/engine/hook_context_types.js.map +0 -1
- package/dist/engine/input_material_contract_registry.d.ts +0 -185
- package/dist/engine/input_material_contract_registry.d.ts.map +0 -1
- package/dist/engine/input_material_contract_registry.js +0 -564
- package/dist/engine/input_material_contract_registry.js.map +0 -1
- package/dist/engine/input_material_extractor.d.ts +0 -47
- package/dist/engine/input_material_extractor.d.ts.map +0 -1
- package/dist/engine/input_material_extractor.js +0 -156
- package/dist/engine/input_material_extractor.js.map +0 -1
- package/dist/engine/instruction_contract.d.ts.map +0 -1
- package/dist/engine/instruction_contract.js +0 -184
- package/dist/engine/instruction_contract.js.map +0 -1
- package/dist/engine/intent_expander.d.ts +0 -68
- package/dist/engine/intent_expander.d.ts.map +0 -1
- package/dist/engine/intent_expander.js +0 -2190
- package/dist/engine/intent_expander.js.map +0 -1
- package/dist/engine/intent_route_scorer.d.ts +0 -45
- package/dist/engine/intent_route_scorer.d.ts.map +0 -1
- package/dist/engine/intent_route_scorer.js +0 -341
- package/dist/engine/intent_route_scorer.js.map +0 -1
- package/dist/engine/intent_router.d.ts +0 -130
- package/dist/engine/intent_router.d.ts.map +0 -1
- package/dist/engine/intent_router.js +0 -628
- package/dist/engine/intent_router.js.map +0 -1
- package/dist/engine/intent_signal_extractor.d.ts +0 -73
- package/dist/engine/intent_signal_extractor.d.ts.map +0 -1
- package/dist/engine/intent_signal_extractor.js +0 -296
- package/dist/engine/intent_signal_extractor.js.map +0 -1
- package/dist/engine/io_controller.d.ts +0 -87
- package/dist/engine/io_controller.d.ts.map +0 -1
- package/dist/engine/io_controller.js +0 -203
- package/dist/engine/io_controller.js.map +0 -1
- package/dist/engine/java_quality_guard.d.ts.map +0 -1
- package/dist/engine/java_quality_guard.js +0 -228
- package/dist/engine/java_quality_guard.js.map +0 -1
- package/dist/engine/job_manager.d.ts +0 -111
- package/dist/engine/job_manager.d.ts.map +0 -1
- package/dist/engine/job_manager.js +0 -270
- package/dist/engine/job_manager.js.map +0 -1
- package/dist/engine/knowledge_acceptance_registry.d.ts.map +0 -1
- package/dist/engine/knowledge_acceptance_registry.js +0 -261
- package/dist/engine/knowledge_acceptance_registry.js.map +0 -1
- package/dist/engine/knowledge_asset_audit.d.ts.map +0 -1
- package/dist/engine/knowledge_asset_audit.js +0 -230
- package/dist/engine/knowledge_asset_audit.js.map +0 -1
- package/dist/engine/knowledge_asset_consumer.d.ts +0 -150
- package/dist/engine/knowledge_asset_consumer.d.ts.map +0 -1
- package/dist/engine/knowledge_asset_consumer.js +0 -287
- package/dist/engine/knowledge_asset_consumer.js.map +0 -1
- package/dist/engine/knowledge_asset_generation_gate.d.ts.map +0 -1
- package/dist/engine/knowledge_asset_generation_gate.js.map +0 -1
- package/dist/engine/knowledge_asset_migration.d.ts.map +0 -1
- package/dist/engine/knowledge_asset_migration.js +0 -204
- package/dist/engine/knowledge_asset_migration.js.map +0 -1
- package/dist/engine/knowledge_asset_schema.d.ts +0 -97
- package/dist/engine/knowledge_asset_schema.d.ts.map +0 -1
- package/dist/engine/knowledge_asset_schema.js +0 -413
- package/dist/engine/knowledge_asset_schema.js.map +0 -1
- package/dist/engine/knowledge_config_loader.d.ts.map +0 -1
- package/dist/engine/knowledge_config_loader.js +0 -144
- package/dist/engine/knowledge_config_loader.js.map +0 -1
- package/dist/engine/knowledge_consumption_snapshot.d.ts +0 -91
- package/dist/engine/knowledge_consumption_snapshot.d.ts.map +0 -1
- package/dist/engine/knowledge_consumption_snapshot.js +0 -113
- package/dist/engine/knowledge_consumption_snapshot.js.map +0 -1
- package/dist/engine/knowledge_evolution.d.ts +0 -82
- package/dist/engine/knowledge_evolution.d.ts.map +0 -1
- package/dist/engine/knowledge_evolution.js +0 -272
- package/dist/engine/knowledge_evolution.js.map +0 -1
- package/dist/engine/knowledge_governance_gate.d.ts +0 -38
- package/dist/engine/knowledge_governance_gate.d.ts.map +0 -1
- package/dist/engine/knowledge_governance_gate.js +0 -123
- package/dist/engine/knowledge_governance_gate.js.map +0 -1
- package/dist/engine/knowledge_injection_boundary.d.ts +0 -59
- package/dist/engine/knowledge_injection_boundary.d.ts.map +0 -1
- package/dist/engine/knowledge_injection_boundary.js +0 -623
- package/dist/engine/knowledge_injection_boundary.js.map +0 -1
- package/dist/engine/knowledge_lifecycle.d.ts +0 -83
- package/dist/engine/knowledge_lifecycle.d.ts.map +0 -1
- package/dist/engine/knowledge_lifecycle.js +0 -247
- package/dist/engine/knowledge_lifecycle.js.map +0 -1
- package/dist/engine/knowledge_manager.d.ts +0 -149
- package/dist/engine/knowledge_manager.d.ts.map +0 -1
- package/dist/engine/knowledge_manager.js +0 -934
- package/dist/engine/knowledge_manager.js.map +0 -1
- package/dist/engine/knowledge_scenario_registry.d.ts +0 -21
- package/dist/engine/knowledge_scenario_registry.d.ts.map +0 -1
- package/dist/engine/knowledge_scenario_registry.js +0 -329
- package/dist/engine/knowledge_scenario_registry.js.map +0 -1
- package/dist/engine/knowledge_sovereignty.d.ts.map +0 -1
- package/dist/engine/knowledge_sovereignty.js +0 -196
- package/dist/engine/knowledge_sovereignty.js.map +0 -1
- package/dist/engine/knowledge_template_contracts.d.ts.map +0 -1
- package/dist/engine/knowledge_template_contracts.js.map +0 -1
- package/dist/engine/language_policy.d.ts +0 -78
- package/dist/engine/language_policy.d.ts.map +0 -1
- package/dist/engine/language_policy.js +0 -139
- package/dist/engine/language_policy.js.map +0 -1
- package/dist/engine/language_policy_contract.d.ts.map +0 -1
- package/dist/engine/language_policy_contract.js.map +0 -1
- package/dist/engine/legacy_type_migration.d.ts +0 -63
- package/dist/engine/legacy_type_migration.d.ts.map +0 -1
- package/dist/engine/legacy_type_migration.js +0 -227
- package/dist/engine/legacy_type_migration.js.map +0 -1
- package/dist/engine/lifecycle_knowledge_contract.d.ts +0 -59
- package/dist/engine/lifecycle_knowledge_contract.d.ts.map +0 -1
- package/dist/engine/lifecycle_knowledge_contract.js +0 -203
- package/dist/engine/lifecycle_knowledge_contract.js.map +0 -1
- package/dist/engine/llm_gateway.d.ts +0 -167
- package/dist/engine/llm_gateway.d.ts.map +0 -1
- package/dist/engine/llm_gateway.js +0 -292
- package/dist/engine/llm_gateway.js.map +0 -1
- package/dist/engine/local_docker_acceptance.d.ts +0 -94
- package/dist/engine/local_docker_acceptance.d.ts.map +0 -1
- package/dist/engine/local_docker_acceptance.js +0 -312
- package/dist/engine/local_docker_acceptance.js.map +0 -1
- package/dist/engine/log_governance.d.ts.map +0 -1
- package/dist/engine/log_governance.js +0 -76
- package/dist/engine/log_governance.js.map +0 -1
- package/dist/engine/logger.d.ts.map +0 -1
- package/dist/engine/logger.js +0 -115
- package/dist/engine/logger.js.map +0 -1
- package/dist/engine/main_path_integration_contract.d.ts +0 -383
- package/dist/engine/main_path_integration_contract.d.ts.map +0 -1
- package/dist/engine/main_path_integration_contract.js +0 -1582
- package/dist/engine/main_path_integration_contract.js.map +0 -1
- package/dist/engine/mechanism_contract_registry.d.ts +0 -59
- package/dist/engine/mechanism_contract_registry.d.ts.map +0 -1
- package/dist/engine/mechanism_contract_registry.js +0 -1289
- package/dist/engine/mechanism_contract_registry.js.map +0 -1
- package/dist/engine/mechanism_health_check.d.ts +0 -23
- package/dist/engine/mechanism_health_check.d.ts.map +0 -1
- package/dist/engine/mechanism_health_check.js +0 -139
- package/dist/engine/mechanism_health_check.js.map +0 -1
- package/dist/engine/metric_governance.d.ts.map +0 -1
- package/dist/engine/metric_governance.js.map +0 -1
- package/dist/engine/mutation_audit.d.ts +0 -53
- package/dist/engine/mutation_audit.d.ts.map +0 -1
- package/dist/engine/mutation_audit.js +0 -136
- package/dist/engine/mutation_audit.js.map +0 -1
- package/dist/engine/next_action_planner.d.ts +0 -32
- package/dist/engine/next_action_planner.d.ts.map +0 -1
- package/dist/engine/next_action_planner.js +0 -823
- package/dist/engine/next_action_planner.js.map +0 -1
- package/dist/engine/observability.d.ts +0 -68
- package/dist/engine/observability.d.ts.map +0 -1
- package/dist/engine/observability.js +0 -435
- package/dist/engine/observability.js.map +0 -1
- package/dist/engine/observed_consumption.d.ts +0 -54
- package/dist/engine/observed_consumption.d.ts.map +0 -1
- package/dist/engine/observed_consumption.js +0 -381
- package/dist/engine/observed_consumption.js.map +0 -1
- package/dist/engine/ood_solid_contract.d.ts.map +0 -1
- package/dist/engine/ood_solid_contract.js +0 -115
- package/dist/engine/ood_solid_contract.js.map +0 -1
- package/dist/engine/path_scope_utils.d.ts +0 -21
- package/dist/engine/path_scope_utils.d.ts.map +0 -1
- package/dist/engine/path_scope_utils.js +0 -126
- package/dist/engine/path_scope_utils.js.map +0 -1
- package/dist/engine/plan_proposal_gate.d.ts.map +0 -1
- package/dist/engine/plan_proposal_gate.js +0 -341
- package/dist/engine/plan_proposal_gate.js.map +0 -1
- package/dist/engine/platform_context.d.ts +0 -44
- package/dist/engine/platform_context.d.ts.map +0 -1
- package/dist/engine/platform_context.js +0 -169
- package/dist/engine/platform_context.js.map +0 -1
- package/dist/engine/policy_drift_detector.d.ts +0 -72
- package/dist/engine/policy_drift_detector.d.ts.map +0 -1
- package/dist/engine/policy_drift_detector.js +0 -277
- package/dist/engine/policy_drift_detector.js.map +0 -1
- package/dist/engine/privacy_secret_contract.d.ts +0 -320
- package/dist/engine/privacy_secret_contract.d.ts.map +0 -1
- package/dist/engine/privacy_secret_contract.js +0 -875
- package/dist/engine/privacy_secret_contract.js.map +0 -1
- package/dist/engine/project_knowledge_contract.d.ts +0 -132
- package/dist/engine/project_knowledge_contract.d.ts.map +0 -1
- package/dist/engine/project_knowledge_contract.js +0 -555
- package/dist/engine/project_knowledge_contract.js.map +0 -1
- package/dist/engine/project_stage_detector.d.ts.map +0 -1
- package/dist/engine/project_stage_detector.js +0 -185
- package/dist/engine/project_stage_detector.js.map +0 -1
- package/dist/engine/regression_matrix.d.ts.map +0 -1
- package/dist/engine/regression_matrix.js +0 -410
- package/dist/engine/regression_matrix.js.map +0 -1
- package/dist/engine/release_compatibility.d.ts.map +0 -1
- package/dist/engine/release_compatibility.js.map +0 -1
- package/dist/engine/release_gate_scenario_registry.d.ts.map +0 -1
- package/dist/engine/release_gate_scenario_registry.js +0 -717
- package/dist/engine/release_gate_scenario_registry.js.map +0 -1
- package/dist/engine/release_issue_scenario_registry.d.ts +0 -62
- package/dist/engine/release_issue_scenario_registry.d.ts.map +0 -1
- package/dist/engine/release_issue_scenario_registry.js +0 -1748
- package/dist/engine/release_issue_scenario_registry.js.map +0 -1
- package/dist/engine/release_readiness_gate.d.ts +0 -35
- package/dist/engine/release_readiness_gate.d.ts.map +0 -1
- package/dist/engine/release_readiness_gate.js +0 -158
- package/dist/engine/release_readiness_gate.js.map +0 -1
- package/dist/engine/release_tool_harness.d.ts +0 -71
- package/dist/engine/release_tool_harness.d.ts.map +0 -1
- package/dist/engine/release_tool_harness.js +0 -161
- package/dist/engine/release_tool_harness.js.map +0 -1
- package/dist/engine/risk_sampler.d.ts +0 -43
- package/dist/engine/risk_sampler.d.ts.map +0 -1
- package/dist/engine/risk_sampler.js +0 -79
- package/dist/engine/risk_sampler.js.map +0 -1
- package/dist/engine/rollback_router.d.ts +0 -35
- package/dist/engine/rollback_router.d.ts.map +0 -1
- package/dist/engine/rollback_router.js +0 -50
- package/dist/engine/rollback_router.js.map +0 -1
- package/dist/engine/route_decision_contract_verifier.d.ts +0 -44
- package/dist/engine/route_decision_contract_verifier.d.ts.map +0 -1
- package/dist/engine/route_decision_contract_verifier.js +0 -154
- package/dist/engine/route_decision_contract_verifier.js.map +0 -1
- package/dist/engine/runtime_safety.d.ts.map +0 -1
- package/dist/engine/runtime_safety.js +0 -200
- package/dist/engine/runtime_safety.js.map +0 -1
- package/dist/engine/scaffolder.d.ts +0 -19
- package/dist/engine/scaffolder.d.ts.map +0 -1
- package/dist/engine/scaffolder.js +0 -411
- package/dist/engine/scaffolder.js.map +0 -1
- package/dist/engine/scope_controller.d.ts +0 -16
- package/dist/engine/scope_controller.d.ts.map +0 -1
- package/dist/engine/scope_controller.js +0 -195
- package/dist/engine/scope_controller.js.map +0 -1
- package/dist/engine/scope_lease.d.ts +0 -88
- package/dist/engine/scope_lease.d.ts.map +0 -1
- package/dist/engine/scope_lease.js +0 -166
- package/dist/engine/scope_lease.js.map +0 -1
- package/dist/engine/scope_resolver.d.ts +0 -11
- package/dist/engine/scope_resolver.d.ts.map +0 -1
- package/dist/engine/scope_resolver.js +0 -526
- package/dist/engine/scope_resolver.js.map +0 -1
- package/dist/engine/semantic_evidence.d.ts +0 -29
- package/dist/engine/semantic_evidence.d.ts.map +0 -1
- package/dist/engine/semantic_evidence.js +0 -91
- package/dist/engine/semantic_evidence.js.map +0 -1
- package/dist/engine/slice_executor.d.ts +0 -79
- package/dist/engine/slice_executor.d.ts.map +0 -1
- package/dist/engine/slice_executor.js +0 -100
- package/dist/engine/slice_executor.js.map +0 -1
- package/dist/engine/stage_gate_engine.d.ts +0 -32
- package/dist/engine/stage_gate_engine.d.ts.map +0 -1
- package/dist/engine/stage_gate_engine.js +0 -105
- package/dist/engine/stage_gate_engine.js.map +0 -1
- package/dist/engine/stale_current_task_detector.d.ts +0 -30
- package/dist/engine/stale_current_task_detector.d.ts.map +0 -1
- package/dist/engine/stale_current_task_detector.js +0 -168
- package/dist/engine/stale_current_task_detector.js.map +0 -1
- package/dist/engine/standard_asset_contract.d.ts +0 -75
- package/dist/engine/standard_asset_contract.d.ts.map +0 -1
- package/dist/engine/standard_asset_contract.js +0 -388
- package/dist/engine/standard_asset_contract.js.map +0 -1
- package/dist/engine/standard_asset_coverage.d.ts.map +0 -1
- package/dist/engine/standard_asset_coverage.js +0 -220
- package/dist/engine/standard_asset_coverage.js.map +0 -1
- package/dist/engine/state_update_bypass.d.ts +0 -19
- package/dist/engine/state_update_bypass.d.ts.map +0 -1
- package/dist/engine/state_update_bypass.js +0 -17
- package/dist/engine/state_update_bypass.js.map +0 -1
- package/dist/engine/task_context.d.ts +0 -249
- package/dist/engine/task_context.d.ts.map +0 -1
- package/dist/engine/task_context.js +0 -983
- package/dist/engine/task_context.js.map +0 -1
- package/dist/engine/task_planner.d.ts +0 -28
- package/dist/engine/task_planner.d.ts.map +0 -1
- package/dist/engine/task_planner.js +0 -325
- package/dist/engine/task_planner.js.map +0 -1
- package/dist/engine/task_stage_detector.d.ts +0 -25
- package/dist/engine/task_stage_detector.d.ts.map +0 -1
- package/dist/engine/task_stage_detector.js +0 -160
- package/dist/engine/task_stage_detector.js.map +0 -1
- package/dist/engine/technology_decision.d.ts +0 -40
- package/dist/engine/technology_decision.d.ts.map +0 -1
- package/dist/engine/technology_decision.js +0 -137
- package/dist/engine/technology_decision.js.map +0 -1
- package/dist/engine/template_asset_contract_registry.d.ts +0 -162
- package/dist/engine/template_asset_contract_registry.d.ts.map +0 -1
- package/dist/engine/template_asset_contract_registry.js +0 -626
- package/dist/engine/template_asset_contract_registry.js.map +0 -1
- package/dist/engine/template_asset_visibility.d.ts +0 -109
- package/dist/engine/template_asset_visibility.d.ts.map +0 -1
- package/dist/engine/template_asset_visibility.js +0 -321
- package/dist/engine/template_asset_visibility.js.map +0 -1
- package/dist/engine/template_init_sync.d.ts +0 -97
- package/dist/engine/template_init_sync.d.ts.map +0 -1
- package/dist/engine/template_init_sync.js +0 -395
- package/dist/engine/template_init_sync.js.map +0 -1
- package/dist/engine/template_manifest_io.d.ts +0 -57
- package/dist/engine/template_manifest_io.d.ts.map +0 -1
- package/dist/engine/template_manifest_io.js +0 -188
- package/dist/engine/template_manifest_io.js.map +0 -1
- package/dist/engine/template_mechanism_auditor.d.ts +0 -95
- package/dist/engine/template_mechanism_auditor.d.ts.map +0 -1
- package/dist/engine/template_mechanism_auditor.js +0 -626
- package/dist/engine/template_mechanism_auditor.js.map +0 -1
- package/dist/engine/template_sync.d.ts +0 -98
- package/dist/engine/template_sync.d.ts.map +0 -1
- package/dist/engine/template_sync.js.map +0 -1
- package/dist/engine/test_generator.d.ts +0 -10
- package/dist/engine/test_generator.d.ts.map +0 -1
- package/dist/engine/test_generator.js +0 -265
- package/dist/engine/test_generator.js.map +0 -1
- package/dist/engine/test_quality.d.ts +0 -36
- package/dist/engine/test_quality.d.ts.map +0 -1
- package/dist/engine/test_quality.js +0 -642
- package/dist/engine/test_quality.js.map +0 -1
- package/dist/engine/test_strategy.d.ts.map +0 -1
- package/dist/engine/test_strategy.js.map +0 -1
- package/dist/engine/tool_invocation_contract_registry.d.ts +0 -136
- package/dist/engine/tool_invocation_contract_registry.d.ts.map +0 -1
- package/dist/engine/tool_invocation_contract_registry.js +0 -762
- package/dist/engine/tool_invocation_contract_registry.js.map +0 -1
- package/dist/engine/traceability.d.ts +0 -48
- package/dist/engine/traceability.d.ts.map +0 -1
- package/dist/engine/traceability.js +0 -470
- package/dist/engine/traceability.js.map +0 -1
- package/dist/engine/user_feedback_contract.d.ts +0 -162
- package/dist/engine/user_feedback_contract.d.ts.map +0 -1
- package/dist/engine/user_feedback_contract.js +0 -418
- package/dist/engine/user_feedback_contract.js.map +0 -1
- package/dist/engine/user_promise.d.ts +0 -67
- package/dist/engine/user_promise.d.ts.map +0 -1
- package/dist/engine/user_promise.js +0 -436
- package/dist/engine/user_promise.js.map +0 -1
- package/dist/engine/verification_contract.d.ts.map +0 -1
- package/dist/engine/verification_contract.js.map +0 -1
- package/dist/engine/verifier.d.ts +0 -45
- package/dist/engine/verifier.d.ts.map +0 -1
- package/dist/engine/verifier.js +0 -629
- package/dist/engine/verifier.js.map +0 -1
- package/dist/engine/workflow_contract_registry.d.ts +0 -108
- package/dist/engine/workflow_contract_registry.d.ts.map +0 -1
- package/dist/engine/workflow_contract_registry.js +0 -832
- package/dist/engine/workflow_contract_registry.js.map +0 -1
- package/dist/engine/workflow_navigation_contract.d.ts +0 -171
- package/dist/engine/workflow_navigation_contract.d.ts.map +0 -1
- package/dist/engine/workflow_navigation_contract.js +0 -31
- package/dist/engine/workflow_navigation_contract.js.map +0 -1
- package/dist/engine/workflow_rule_generator.d.ts +0 -22
- package/dist/engine/workflow_rule_generator.d.ts.map +0 -1
- package/dist/engine/workflow_rule_generator.js +0 -83
- package/dist/engine/workflow_rule_generator.js.map +0 -1
- package/dist/engine/workflow_template_pack.d.ts +0 -71
- package/dist/engine/workflow_template_pack.d.ts.map +0 -1
- package/dist/engine/workflow_template_pack.js +0 -246
- package/dist/engine/workflow_template_pack.js.map +0 -1
- package/dist/engine/workspace_lease.d.ts +0 -69
- package/dist/engine/workspace_lease.d.ts.map +0 -1
- package/dist/engine/workspace_lease.js +0 -154
- package/dist/engine/workspace_lease.js.map +0 -1
- package/dist/engine/workspace_resumer.d.ts.map +0 -1
- package/dist/engine/workspace_resumer.js +0 -207
- package/dist/engine/workspace_resumer.js.map +0 -1
- package/dist/engine/zero_config_init.d.ts +0 -152
- package/dist/engine/zero_config_init.d.ts.map +0 -1
- package/dist/engine/zero_config_init.js +0 -810
- package/dist/engine/zero_config_init.js.map +0 -1
- package/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 -78
- package/templates/internal/patterns//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +0 -64
- package/templates/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 -48
- package/templates/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 -71
- package/templates/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 -96
- /package/dist/engine/{audit_pool.d.ts → audit/audit_pool.d.ts} +0 -0
- /package/dist/engine/{core_experience_principle.d.ts → audit/core_experience_principle.d.ts} +0 -0
- /package/dist/engine/{degradation.d.ts → audit/degradation.d.ts} +0 -0
- /package/dist/engine/{degradation.js → audit/degradation.js} +0 -0
- /package/dist/engine/{diagnostic_registry.d.ts → audit/diagnostic_registry.d.ts} +0 -0
- /package/dist/engine/{failure_report.d.ts → audit/failure_report.d.ts} +0 -0
- /package/dist/engine/{failure_report.js → audit/failure_report.js} +0 -0
- /package/dist/engine/{java_quality_guard.d.ts → audit/java_quality_guard.d.ts} +0 -0
- /package/dist/engine/{runtime_safety.d.ts → audit/runtime_safety.d.ts} +0 -0
- /package/dist/engine/{test_strategy.d.ts → audit/test_strategy.d.ts} +0 -0
- /package/dist/engine/{test_strategy.js → audit/test_strategy.js} +0 -0
- /package/dist/engine/{config_write_boundary.d.ts → config/config_write_boundary.d.ts} +0 -0
- /package/dist/engine/{regression_matrix.d.ts → config/regression_matrix.d.ts} +0 -0
- /package/dist/engine/{architecture_design_contract.d.ts → contracts/architecture_design_contract.d.ts} +0 -0
- /package/dist/engine/{architecture_design_contract.js → contracts/architecture_design_contract.js} +0 -0
- /package/dist/engine/{backend_implementation_contract.d.ts → contracts/backend_implementation_contract.d.ts} +0 -0
- /package/dist/engine/{capability_action_advisor.d.ts → contracts/capability_action_advisor.d.ts} +0 -0
- /package/dist/engine/{capability_registry.d.ts → contracts/capability_registry.d.ts} +0 -0
- /package/dist/engine/{code_maintainability_observability_contract.d.ts → contracts/code_maintainability_observability_contract.d.ts} +0 -0
- /package/dist/engine/{control_plane_contract.d.ts → contracts/control_plane_contract.d.ts} +0 -0
- /package/dist/engine/{decision_workshop.js → contracts/decision_workshop.js} +0 -0
- /package/dist/engine/{design_artifact_pack.js → contracts/design_artifact_pack.js} +0 -0
- /package/dist/engine/{detail_discipline.d.ts → contracts/detail_discipline.d.ts} +0 -0
- /package/dist/engine/{detail_discipline.js → contracts/detail_discipline.js} +0 -0
- /package/dist/engine/{escape_report.d.ts → contracts/escape_report.d.ts} +0 -0
- /package/dist/engine/{existing_system_analysis.d.ts → contracts/existing_system_analysis.d.ts} +0 -0
- /package/dist/engine/{existing_system_analysis.js → contracts/existing_system_analysis.js} +0 -0
- /package/dist/engine/{extension_platform_contracts.d.ts → contracts/extension_platform_contracts.d.ts} +0 -0
- /package/dist/engine/{extension_platform_contracts.js → contracts/extension_platform_contracts.js} +0 -0
- /package/dist/engine/{instruction_contract.d.ts → contracts/instruction_contract.d.ts} +0 -0
- /package/dist/engine/{metric_governance.d.ts → contracts/metric_governance.d.ts} +0 -0
- /package/dist/engine/{metric_governance.js → contracts/metric_governance.js} +0 -0
- /package/dist/engine/{ood_solid_contract.d.ts → contracts/ood_solid_contract.d.ts} +0 -0
- /package/dist/engine/{verification_contract.d.ts → contracts/verification_contract.d.ts} +0 -0
- /package/dist/engine/{verification_contract.js → contracts/verification_contract.js} +0 -0
- /package/dist/engine/{log_governance.d.ts → core/log_governance.d.ts} +0 -0
- /package/dist/engine/{logger.d.ts → core/logger.d.ts} +0 -0
- /package/dist/engine/{chinese_semantic_priority.d.ts → knowledge/chinese_semantic_priority.d.ts} +0 -0
- /package/dist/engine/{chinese_semantic_priority.js → knowledge/chinese_semantic_priority.js} +0 -0
- /package/dist/engine/{documentation_governance.d.ts → knowledge/documentation_governance.d.ts} +0 -0
- /package/dist/engine/{documentation_governance.js → knowledge/documentation_governance.js} +0 -0
- /package/dist/engine/{knowledge_acceptance_registry.d.ts → knowledge/knowledge_acceptance_registry.d.ts} +0 -0
- /package/dist/engine/{knowledge_asset_audit.d.ts → knowledge/knowledge_asset_audit.d.ts} +0 -0
- /package/dist/engine/{knowledge_asset_generation_gate.d.ts → knowledge/knowledge_asset_generation_gate.d.ts} +0 -0
- /package/dist/engine/{knowledge_asset_generation_gate.js → knowledge/knowledge_asset_generation_gate.js} +0 -0
- /package/dist/engine/{knowledge_asset_migration.d.ts → knowledge/knowledge_asset_migration.d.ts} +0 -0
- /package/dist/engine/{knowledge_config_loader.d.ts → knowledge/knowledge_config_loader.d.ts} +0 -0
- /package/dist/engine/{knowledge_sovereignty.d.ts → knowledge/knowledge_sovereignty.d.ts} +0 -0
- /package/dist/engine/{knowledge_template_contracts.d.ts → knowledge/knowledge_template_contracts.d.ts} +0 -0
- /package/dist/engine/{knowledge_template_contracts.js → knowledge/knowledge_template_contracts.js} +0 -0
- /package/dist/engine/{language_policy_contract.d.ts → knowledge/language_policy_contract.d.ts} +0 -0
- /package/dist/engine/{language_policy_contract.js → knowledge/language_policy_contract.js} +0 -0
- /package/dist/engine/{release_compatibility.d.ts → knowledge/release_compatibility.d.ts} +0 -0
- /package/dist/engine/{release_compatibility.js → knowledge/release_compatibility.js} +0 -0
- /package/dist/engine/{conflict_gate.d.ts → pipeline/conflict_gate.d.ts} +0 -0
- /package/dist/engine/{diff_ownership.d.ts → pipeline/diff_ownership.d.ts} +0 -0
- /package/dist/engine/{diff_ownership_store.d.ts → pipeline/diff_ownership_store.d.ts} +0 -0
- /package/dist/engine/{plan_proposal_gate.d.ts → pipeline/plan_proposal_gate.d.ts} +0 -0
- /package/dist/engine/{workspace_resumer.d.ts → pipeline/workspace_resumer.d.ts} +0 -0
- /package/dist/engine/{gate_checks → release/gate_checks}/checkCriticalProblemConsumption.d.ts +0 -0
- /package/dist/engine/{gate_checks → release/gate_checks}/checkDependencyAudit.d.ts +0 -0
- /package/dist/engine/{gate_checks → release/gate_checks}/checkDistFreshness.d.ts +0 -0
- /package/dist/engine/{gate_checks → release/gate_checks}/checkMainlineConsumption.d.ts +0 -0
- /package/dist/engine/{gate_checks → release/gate_checks}/checkTemplateKnowledgeHygiene.d.ts +0 -0
- /package/dist/engine/{gate_checks → release/gate_checks}/checkWorkflowNavigation.d.ts +0 -0
- /package/dist/engine/{gate_checks → release/gate_checks}/helpers.d.ts +0 -0
- /package/dist/engine/{gate_checks → release/gate_checks}/types.d.ts +0 -0
- /package/dist/engine/{gate_checks → release/gate_checks}/types.js +0 -0
- /package/dist/engine/{release_gate_scenario_registry.d.ts → release/release_gate_scenario_registry.d.ts} +0 -0
- /package/dist/engine/{standard_asset_coverage.d.ts → templates/standard_asset_coverage.d.ts} +0 -0
- /package/dist/engine/{template_sync.js → templates/template_sync.js} +0 -0
- /package/dist/engine/{project_stage_detector.d.ts → workflow/project_stage_detector.d.ts} +0 -0
|
@@ -1,1748 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 发布问题场景注册表 — 结构化场景定义 + 真实生产入口执行证据。
|
|
3
|
-
*
|
|
4
|
-
* R11: 所有 MCP 工具链场景使用 ToolInvocationObservation 记录。
|
|
5
|
-
* 确认通过 架构设计 的 decision_workshop / architecture_decision_workshop 输入,
|
|
6
|
-
* 不再直接修改 TaskContext 确认研讨域。
|
|
7
|
-
*/
|
|
8
|
-
import fs from "node:fs";
|
|
9
|
-
import path from "node:path";
|
|
10
|
-
import os from "node:os";
|
|
11
|
-
// ── 共享 fixture 创建 ──
|
|
12
|
-
function createDesignFixtureDir() {
|
|
13
|
-
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "soloforge-b62-"));
|
|
14
|
-
const archDir = path.join(tmpDir, "docs", "architecture");
|
|
15
|
-
fs.mkdirSync(archDir, { recursive: true });
|
|
16
|
-
return tmpDir;
|
|
17
|
-
}
|
|
18
|
-
function createDesignFixtureWithPartialDocs() {
|
|
19
|
-
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "soloforge-b62-partial-"));
|
|
20
|
-
const archDir = path.join(tmpDir, "docs", "architecture");
|
|
21
|
-
fs.mkdirSync(archDir, { recursive: true });
|
|
22
|
-
fs.writeFileSync(path.join(archDir, "api-spec.md"), "# API\n\n## /users\n\nGET /users\n", "utf-8");
|
|
23
|
-
return tmpDir;
|
|
24
|
-
}
|
|
25
|
-
/** 创建完整设计产物 fixture(所有标准文档齐全、内容合规) */
|
|
26
|
-
function createCompleteDesignFixture(tmpDir) {
|
|
27
|
-
const archDir = path.join(tmpDir, "docs", "architecture");
|
|
28
|
-
const apiDir = path.join(tmpDir, "docs", "api");
|
|
29
|
-
const traceDir = path.join(tmpDir, "docs", "traceability");
|
|
30
|
-
const sqlDir = path.join(tmpDir, "db", "migrations");
|
|
31
|
-
fs.mkdirSync(archDir, { recursive: true });
|
|
32
|
-
fs.mkdirSync(apiDir, { recursive: true });
|
|
33
|
-
fs.mkdirSync(traceDir, { recursive: true });
|
|
34
|
-
fs.mkdirSync(sqlDir, { recursive: true });
|
|
35
|
-
fs.writeFileSync(path.join(archDir, "00-架构决策记录.md"), "# 决策记录\n\n## D1 微服务\n\n选择微服务\n", "utf-8");
|
|
36
|
-
fs.writeFileSync(path.join(archDir, "01-架构设计文档.md"), "# 架构设计\n\n## 来源追踪\n\nREQ-001、PROTO-001。\n\n## 系统概述\n\n微服务\n\n## 架构决策\n\nARCH-001 微服务\n\n## 技术选型\n\nTS\n\n## 模块设计\n\n模块\n", "utf-8");
|
|
37
|
-
fs.writeFileSync(path.join(archDir, "02-数据库设计文档.md"), "# 数据库设计\n\n追踪: DD-T001 | 上游: ARCH-001\n\n## 数据模型\n\n用户\n\n## 实体关系\n\n1:N\n\n## 表结构\n\n| 字段 | 类型 | 约束 | 说明 |\n|------|------|------|------|\n| id | uuid | PK | 主键 |\n", "utf-8");
|
|
38
|
-
// 合规 API 文档: 含完整字段表
|
|
39
|
-
fs.writeFileSync(path.join(archDir, "03-API接口规格文档.md"), "# 接口概览\n\n追踪: DD-A001 | 上游: ARCH-001\n\n用户管理 API。\n\n# 请求响应规范\n\n## GET /api/users\n\n### 请求字段表\n\n| 请求字段名 | 类型 | 必填 | 来源 | 说明 | 示例 | 校验规则 | 错误语义 |\n|--------|------|------|------|------|------|----------|----------|\n| page | int | 否 | query | 页码 | 1 | >=1 | 页码无效 |\n\n### 响应字段表\n\n| 响应字段名 | 类型 | 必填 | 来源 | 说明 | 示例 | 校验规则 | 错误语义 |\n|--------|------|------|------|------|------|----------|----------|\n| id | string | 是 | db | 用户ID | usr-1 | uuid | 用户不存在 |\n", "utf-8");
|
|
40
|
-
fs.writeFileSync(path.join(archDir, "04-开发切片计划.md"), "# 开发切片计划\n\nPHASE-001\nSLICE-001\n设计来源: DD-T001, DD-A001\n验收: AC-001\n", "utf-8");
|
|
41
|
-
fs.writeFileSync(path.join(archDir, "99-设计一致性验收报告.md"), "# 一致性报告\n\n通过\n", "utf-8");
|
|
42
|
-
fs.writeFileSync(path.join(apiDir, "openapi.yaml"), "openapi: 3.0.0\ninfo:\n title: API\n version: '1.0'\npaths:\n /api/users:\n get:\n summary: List users\n responses:\n '200':\n description: OK\n", "utf-8");
|
|
43
|
-
fs.writeFileSync(path.join(traceDir, "01-需求原型设计实现追踪矩阵.md"), [
|
|
44
|
-
"# 需求原型设计实现追踪矩阵",
|
|
45
|
-
"",
|
|
46
|
-
"| ID | 类型 | 来源 | 关联 |",
|
|
47
|
-
"|----|------|------|------|",
|
|
48
|
-
"| REQ-001 | 需求 | docs/requirements.md | PROTO-001 ARCH-001 |",
|
|
49
|
-
"| PROTO-001 | 原型 | docs/prototype.md | REQ-001 ARCH-001 |",
|
|
50
|
-
"| ARCH-001 | 架构 | docs/architecture/01-架构设计文档.md | REQ-001 PROTO-001 DD-T001 DD-A001 |",
|
|
51
|
-
"| DD-T001 | 数据库详细设计 | docs/architecture/02-数据库设计文档.md | ARCH-001 SLICE-001 |",
|
|
52
|
-
"| DD-A001 | API 详细设计 | docs/architecture/03-API接口规格文档.md | ARCH-001 SLICE-001 |",
|
|
53
|
-
"| PHASE-001 | 阶段 | docs/architecture/04-开发切片计划.md | SLICE-001 |",
|
|
54
|
-
"| SLICE-001 | 切片 | docs/architecture/04-开发切片计划.md | PHASE-001 DD-T001 DD-A001 AC-001 |",
|
|
55
|
-
"| AC-001 | 验收 | docs/acceptance/AC-001.md | SLICE-001 |",
|
|
56
|
-
].join("\n"), "utf-8");
|
|
57
|
-
fs.writeFileSync(path.join(sqlDir, "001-init.sql"), "CREATE TABLE users (id UUID PRIMARY KEY);\n", "utf-8");
|
|
58
|
-
}
|
|
59
|
-
// ── 共享前置条件设置 ──
|
|
60
|
-
/**
|
|
61
|
-
* 从 架构设计 返回结果中提取并确认通用 decision_workshop。
|
|
62
|
-
* 合同来源于第一次 架构设计 返回对象,经用户确认字段修改后回传。
|
|
63
|
-
* 不得自行新建一份合同。
|
|
64
|
-
*/
|
|
65
|
-
function confirmDecisionWorkshopFromResponse(expResult) {
|
|
66
|
-
const workshop = expResult?.decision_workshop;
|
|
67
|
-
if (!workshop)
|
|
68
|
-
return undefined;
|
|
69
|
-
// 确认所有扩展域
|
|
70
|
-
for (const key of Object.keys(workshop.extended_domains ?? {})) {
|
|
71
|
-
const domain = workshop.extended_domains[key];
|
|
72
|
-
if (domain) {
|
|
73
|
-
domain.status = "confirmed";
|
|
74
|
-
domain.user_confirmation_ref = "scenario-user-confirm-ref";
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
workshop.prerequisite_evidence_refs = ["scenario-evidence-ref"];
|
|
78
|
-
// 清除阻断发现(evaluateDecisionWorkshop 会继承 contract.blocking_findings)
|
|
79
|
-
workshop.blocking_findings = [];
|
|
80
|
-
workshop.status = "confirmed";
|
|
81
|
-
workshop.generation_allowed = true;
|
|
82
|
-
return workshop;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* 发布问题全量场景定义。
|
|
86
|
-
*/
|
|
87
|
-
/** 架构研讨场景的完整技术决策契约,确保证据门禁和决策主权门禁都能通过 */
|
|
88
|
-
function makeTechnologyDecisionContract(taskId) {
|
|
89
|
-
return {
|
|
90
|
-
decision_id: `td-${taskId}`,
|
|
91
|
-
decision_scope: "system_architecture",
|
|
92
|
-
options: [
|
|
93
|
-
{ option_id: "microservices", description: "微服务架构", pros: ["独立部署"], cons: ["运维复杂"], risk_level: "medium" },
|
|
94
|
-
{ option_id: "monolith", description: "单体架构", pros: ["简单"], cons: ["扩展受限"], risk_level: "low" },
|
|
95
|
-
],
|
|
96
|
-
recommended_option: "microservices",
|
|
97
|
-
evidence: ["技术选型评估", "团队经验评估"],
|
|
98
|
-
falsification: ["性能测试不达标"],
|
|
99
|
-
failure_conditions: ["交付延迟超过2周"],
|
|
100
|
-
human_gate_required: true,
|
|
101
|
-
executable_without_human: false,
|
|
102
|
-
human_gate_evidence: "用户确认技术选型",
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
/** 架构研讨场景的第一性原理帧,确保高影响意图通过第一性原理门禁 */
|
|
106
|
-
function makeFirstPrinciplesFrame(taskId) {
|
|
107
|
-
return {
|
|
108
|
-
problem_id: `fp-${taskId}`,
|
|
109
|
-
user_goal: "为新系统生成架构设计文档",
|
|
110
|
-
fundamental_need: "系统化的架构设计,支撑后续开发",
|
|
111
|
-
known_facts: ["项目为新系统", "需要架构设计文档", "涉及微服务架构选型"],
|
|
112
|
-
assumptions: ["团队具备微服务开发经验", "基础设施支持容器化部署"],
|
|
113
|
-
non_negotiable_constraints: ["必须支持水平扩展", "技术栈基于 TypeScript"],
|
|
114
|
-
candidate_solutions: ["微服务架构", "单体模块化架构"],
|
|
115
|
-
simplest_viable_solution: "单体模块化架构",
|
|
116
|
-
falsification_questions: ["性能测试是否满足要求", "团队规模是否支撑微服务运维"],
|
|
117
|
-
chosen_solution: "微服务架构",
|
|
118
|
-
why_not_legacy_path: "遗留方案无法满足水平扩展需求",
|
|
119
|
-
first_principles_status: "verified",
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
/** 为架构研讨场景注入技术决策契约和第一性原理帧,确保证据门禁、决策主权门禁和第一性原理门禁都能通过 */
|
|
123
|
-
async function injectTechDecisionForWorkshop(harness, taskId) {
|
|
124
|
-
const ctx = await harness.taskContext.load(taskId);
|
|
125
|
-
if (!ctx)
|
|
126
|
-
return null;
|
|
127
|
-
ctx.technology_decision_contract = makeTechnologyDecisionContract(taskId);
|
|
128
|
-
ctx.first_principles_frame = makeFirstPrinciplesFrame(taskId);
|
|
129
|
-
await harness.taskContext.save(ctx);
|
|
130
|
-
return ctx;
|
|
131
|
-
}
|
|
132
|
-
const RELEASE_ISSUE_SCENARIOS = [
|
|
133
|
-
// ── 问题六十一: 架构决策研讨 — 真实 需求分析→架构设计 主链路 ──
|
|
134
|
-
// 场景 1: greenfield 架构设计 → 完整闭环:阻断 → 全部确认 → 放行
|
|
135
|
-
{
|
|
136
|
-
scenario_id: "release-scenario-architecture-workshop-greenfield",
|
|
137
|
-
test_files: ["tests/engine/architecture_decision_workshop.test.ts"],
|
|
138
|
-
production_entrypoint: "sf_classify → sf_expand → confirm all → sf_expand",
|
|
139
|
-
expected_outcome: "greenfield sf_expand 阻断(六域未确认) → 全部确认+输出确认 → 二次 sf_expand 放行",
|
|
140
|
-
runner: async () => {
|
|
141
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
142
|
-
const harness = await createToolHarness();
|
|
143
|
-
try {
|
|
144
|
-
const clsRaw = await harness.callTool("sf_classify", { intent: "为新系统生成架构设计文档" });
|
|
145
|
-
const cls = harness.parseResult(clsRaw);
|
|
146
|
-
const taskId = cls.task_id;
|
|
147
|
-
if (!taskId)
|
|
148
|
-
return { scenario_id: "release-scenario-architecture-workshop-greenfield", status: "fail", error: "sf_classify 未返回 task_id" };
|
|
149
|
-
if (!await injectTechDecisionForWorkshop(harness, taskId))
|
|
150
|
-
return { scenario_id: "release-scenario-architecture-workshop-greenfield", status: "fail", error: "task context load failed" };
|
|
151
|
-
const exp1Raw = await harness.callTool("sf_expand", { task_id: taskId });
|
|
152
|
-
const exp1 = harness.parseResult(exp1Raw);
|
|
153
|
-
if (exp1.status !== "awaiting_confirmation")
|
|
154
|
-
return { scenario_id: "release-scenario-architecture-workshop-greenfield", status: "fail", error: `expected awaiting_confirmation, got status=${exp1.status}` };
|
|
155
|
-
const workshop = exp1.architecture_decision_workshop;
|
|
156
|
-
if (!workshop)
|
|
157
|
-
return { scenario_id: "release-scenario-architecture-workshop-greenfield", status: "fail", error: "sf_expand 未返回 architecture_decision_workshop" };
|
|
158
|
-
const domainCount = Object.keys(workshop.domains ?? {}).length;
|
|
159
|
-
if (domainCount < 6)
|
|
160
|
-
return { scenario_id: "release-scenario-architecture-workshop-greenfield", status: "fail", error: `expected >=6 domains, got ${domainCount}` };
|
|
161
|
-
// 全部域确认 + document_output_confirmation_ref
|
|
162
|
-
for (const key of Object.keys(workshop.domains ?? {})) {
|
|
163
|
-
workshop.domains[key].status = "confirmed";
|
|
164
|
-
workshop.domains[key].user_confirmation_ref = `confirm:${key}`;
|
|
165
|
-
}
|
|
166
|
-
workshop.document_output_confirmation_ref = "confirm:output";
|
|
167
|
-
const exp2Raw = await harness.callTool("sf_expand", { task_id: taskId, architecture_decision_workshop: workshop });
|
|
168
|
-
const exp2 = harness.parseResult(exp2Raw);
|
|
169
|
-
if (exp2.status === "awaiting_confirmation" || exp2.status === "blocked")
|
|
170
|
-
return { scenario_id: "release-scenario-architecture-workshop-greenfield", status: "fail", error: `second expand still blocked: status=${exp2.status}, error=${exp2.error ?? "none"}` };
|
|
171
|
-
const trace = await harness.collectTrace();
|
|
172
|
-
return {
|
|
173
|
-
scenario_id: "release-scenario-architecture-workshop-greenfield",
|
|
174
|
-
status: "pass",
|
|
175
|
-
evidence: `sf_classify→sf_expand(awaiting_confirmation,workshop=true,domains=${domainCount})→all confirm→sf_expand(pass)`,
|
|
176
|
-
production_trace: trace,
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
finally {
|
|
180
|
-
harness.cleanup();
|
|
181
|
-
}
|
|
182
|
-
},
|
|
183
|
-
},
|
|
184
|
-
// 场景 2: existing_system 架构设计被阻断;补充确认+证据后放行
|
|
185
|
-
{
|
|
186
|
-
scenario_id: "release-scenario-architecture-workshop-existing-system",
|
|
187
|
-
test_files: ["tests/adapters/architecture_design_workshop_mainpath.test.ts"],
|
|
188
|
-
production_entrypoint: "sf_classify → sf_expand → confirm workshop with evidence → sf_expand",
|
|
189
|
-
expected_outcome: "existing_system sf_expand sf_expand 返回 workshop + awaiting_confirmation;补入确认和证据后放行",
|
|
190
|
-
runner: async () => {
|
|
191
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
192
|
-
const harness = await createToolHarness({ copyKnowledge: true });
|
|
193
|
-
try {
|
|
194
|
-
const fs = await import("node:fs");
|
|
195
|
-
const srcDir = `${harness.tmpDir}/src`;
|
|
196
|
-
fs.mkdirSync(srcDir, { recursive: true });
|
|
197
|
-
fs.writeFileSync(`${srcDir}/index.ts`, "export {}");
|
|
198
|
-
fs.writeFileSync(`${harness.tmpDir}/package.json`, '{"name":"existing"}');
|
|
199
|
-
const clsRaw = await harness.callTool("sf_classify", { intent: "基于现有系统进行架构设计" });
|
|
200
|
-
const cls = harness.parseResult(clsRaw);
|
|
201
|
-
const taskId = cls.task_id;
|
|
202
|
-
if (!taskId)
|
|
203
|
-
return { scenario_id: "release-scenario-architecture-workshop-existing-system", status: "fail", error: "sf_classify 未返回 task_id" };
|
|
204
|
-
// 提供完整技术决策契约,确保证据门禁和决策主权门禁通过
|
|
205
|
-
if (!await injectTechDecisionForWorkshop(harness, taskId))
|
|
206
|
-
return { scenario_id: "release-scenario-architecture-workshop-existing-system", status: "fail", error: "task context load failed" };
|
|
207
|
-
const exp1Raw = await harness.callTool("sf_expand", { task_id: taskId });
|
|
208
|
-
const exp1 = harness.parseResult(exp1Raw);
|
|
209
|
-
if (exp1.status !== "awaiting_confirmation")
|
|
210
|
-
return { scenario_id: "release-scenario-architecture-workshop-existing-system", status: "fail", error: `expected awaiting_confirmation, got status=${exp1.status}` };
|
|
211
|
-
const workshop = exp1.architecture_decision_workshop;
|
|
212
|
-
if (!workshop)
|
|
213
|
-
return { scenario_id: "release-scenario-architecture-workshop-existing-system", status: "fail", error: "sf_expand 未返回 architecture_decision_workshop" };
|
|
214
|
-
// 全部域确认 + 补齐前置证据
|
|
215
|
-
for (const key of Object.keys(workshop.domains ?? {})) {
|
|
216
|
-
workshop.domains[key].status = "confirmed";
|
|
217
|
-
workshop.domains[key].user_confirmation_ref = `confirm:${key}`;
|
|
218
|
-
}
|
|
219
|
-
workshop.prerequisite_evidence_refs = ["现状分析报告", "差距分析文档"];
|
|
220
|
-
workshop.document_output_confirmation_ref = "confirm:output";
|
|
221
|
-
const exp2Raw = await harness.callTool("sf_expand", { task_id: taskId, architecture_decision_workshop: workshop });
|
|
222
|
-
const exp2 = harness.parseResult(exp2Raw);
|
|
223
|
-
if ((exp2.status === "awaiting_confirmation" || exp2.status === "blocked") && exp2.architecture_decision_workshop)
|
|
224
|
-
return { scenario_id: "release-scenario-architecture-workshop-existing-system", status: "fail", error: `second expand still blocked: ${JSON.stringify(exp2.blocking_findings ?? []).slice(0, 200)}` };
|
|
225
|
-
const trace = await harness.collectTrace();
|
|
226
|
-
return {
|
|
227
|
-
scenario_id: "release-scenario-architecture-workshop-existing-system",
|
|
228
|
-
status: "pass",
|
|
229
|
-
evidence: `sf_classify→sf_expand(awaiting_confirmation,workshop=true,domains=${Object.keys(workshop.domains ?? {}).length})→confirm all+evidence→sf_expand(${exp2.status ?? "pass"})`,
|
|
230
|
-
production_trace: trace,
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
|
-
finally {
|
|
234
|
-
harness.cleanup();
|
|
235
|
-
}
|
|
236
|
-
},
|
|
237
|
-
},
|
|
238
|
-
// 场景 3: 部分域确认 → 仍 blocked
|
|
239
|
-
{
|
|
240
|
-
scenario_id: "release-scenario-architecture-workshop-confirmation-block",
|
|
241
|
-
test_files: ["tests/adapters/architecture_design_workshop_mainpath.test.ts"],
|
|
242
|
-
production_entrypoint: "sf_classify → sf_expand → partial confirm → sf_expand",
|
|
243
|
-
expected_outcome: "部分域确认后仍 blocked,返回 next_domain;全部确认后放行",
|
|
244
|
-
runner: async () => {
|
|
245
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
246
|
-
const harness = await createToolHarness();
|
|
247
|
-
try {
|
|
248
|
-
const clsRaw = await harness.callTool("sf_classify", { intent: "为新项目进行架构设计" });
|
|
249
|
-
const cls = harness.parseResult(clsRaw);
|
|
250
|
-
const taskId = cls.task_id;
|
|
251
|
-
if (!taskId)
|
|
252
|
-
return { scenario_id: "release-scenario-architecture-workshop-confirmation-block", status: "fail", error: "sf_classify 未返回 task_id" };
|
|
253
|
-
// 提供完整技术决策契约,确保证据门禁和决策主权门禁通过
|
|
254
|
-
if (!await injectTechDecisionForWorkshop(harness, taskId))
|
|
255
|
-
return { scenario_id: "release-scenario-architecture-workshop-confirmation-block", status: "fail", error: "task context load failed" };
|
|
256
|
-
const exp1Raw = await harness.callTool("sf_expand", { task_id: taskId });
|
|
257
|
-
const exp1 = harness.parseResult(exp1Raw);
|
|
258
|
-
if (exp1.status !== "awaiting_confirmation")
|
|
259
|
-
return { scenario_id: "release-scenario-architecture-workshop-confirmation-block", status: "fail", error: `expected awaiting_confirmation, got status=${exp1.status}` };
|
|
260
|
-
const workshop = exp1.architecture_decision_workshop;
|
|
261
|
-
if (!workshop)
|
|
262
|
-
return { scenario_id: "release-scenario-architecture-workshop-confirmation-block", status: "fail", error: "sf_expand 未返回 architecture_decision_workshop" };
|
|
263
|
-
// 只确认第一个域
|
|
264
|
-
const domainKeys = Object.keys(workshop.domains ?? {});
|
|
265
|
-
const confirmedCount = Math.min(1, domainKeys.length);
|
|
266
|
-
for (let i = 0; i < confirmedCount; i++) {
|
|
267
|
-
workshop.domains[domainKeys[i]].status = "confirmed";
|
|
268
|
-
workshop.domains[domainKeys[i]].user_confirmation_ref = `confirm:${domainKeys[i]}`;
|
|
269
|
-
}
|
|
270
|
-
workshop.document_output_confirmation_ref = "confirm:output";
|
|
271
|
-
const exp2Raw = await harness.callTool("sf_expand", { task_id: taskId, architecture_decision_workshop: workshop });
|
|
272
|
-
const exp2 = harness.parseResult(exp2Raw);
|
|
273
|
-
if (exp2.status !== "awaiting_confirmation")
|
|
274
|
-
return { scenario_id: "release-scenario-architecture-workshop-confirmation-block", status: "fail", error: `expected still awaiting_confirmation after partial confirm (${confirmedCount}/${domainKeys.length}), got status=${exp2.status}` };
|
|
275
|
-
// 全部确认后必须放行
|
|
276
|
-
for (const key of domainKeys) {
|
|
277
|
-
workshop.domains[key].status = "confirmed";
|
|
278
|
-
workshop.domains[key].user_confirmation_ref = `confirm:${key}`;
|
|
279
|
-
}
|
|
280
|
-
const exp3Raw = await harness.callTool("sf_expand", { task_id: taskId, architecture_decision_workshop: workshop });
|
|
281
|
-
const exp3 = harness.parseResult(exp3Raw);
|
|
282
|
-
const trace = await harness.collectTrace();
|
|
283
|
-
return {
|
|
284
|
-
scenario_id: "release-scenario-architecture-workshop-confirmation-block",
|
|
285
|
-
status: (exp3.status !== "awaiting_confirmation" && exp3.status !== "blocked") ? "pass" : "fail",
|
|
286
|
-
evidence: `sf_classify→sf_expand(awaiting_confirmation,workshop=true,domains=${domainKeys.length})→partial(${confirmedCount}/${domainKeys.length})→sf_expand(awaiting_confirmation)→all confirm→sf_expand(${exp3.status ?? "pass"})`,
|
|
287
|
-
production_trace: trace,
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
finally {
|
|
291
|
-
harness.cleanup();
|
|
292
|
-
}
|
|
293
|
-
},
|
|
294
|
-
},
|
|
295
|
-
// 场景 4: 低风险不触发架构研讨
|
|
296
|
-
{
|
|
297
|
-
scenario_id: "release-scenario-architecture-workshop-low-risk-skip",
|
|
298
|
-
test_files: ["tests/engine/architecture_decision_workshop.test.ts"],
|
|
299
|
-
production_entrypoint: "sf_classify → sf_expand",
|
|
300
|
-
expected_outcome: "低风险修改 sf_expand 不创建 architecture_decision_workshop,不 awaiting_confirmation",
|
|
301
|
-
runner: async () => {
|
|
302
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
303
|
-
const harness = await createToolHarness();
|
|
304
|
-
try {
|
|
305
|
-
const clsRaw = await harness.callTool("sf_classify", { intent: "修复按钮文字拼写错误" });
|
|
306
|
-
const cls = harness.parseResult(clsRaw);
|
|
307
|
-
const taskId = cls.task_id;
|
|
308
|
-
if (!taskId)
|
|
309
|
-
return { scenario_id: "release-scenario-architecture-workshop-low-risk-skip", status: "fail", error: "sf_classify 未返回 task_id" };
|
|
310
|
-
const expRaw = await harness.callTool("sf_expand", { task_id: taskId });
|
|
311
|
-
const exp = harness.parseResult(expRaw);
|
|
312
|
-
if (exp.architecture_decision_workshop)
|
|
313
|
-
return { scenario_id: "release-scenario-architecture-workshop-low-risk-skip", status: "fail", error: "low-risk intent should not create architecture_decision_workshop" };
|
|
314
|
-
if (exp.status === "awaiting_confirmation")
|
|
315
|
-
return { scenario_id: "release-scenario-architecture-workshop-low-risk-skip", status: "fail", error: "low-risk intent should not be awaiting_confirmation" };
|
|
316
|
-
const trace = await harness.collectTrace();
|
|
317
|
-
if (trace.diagnostic_codes.length === 0) {
|
|
318
|
-
trace.diagnostic_codes = [`route:${cls.route_decision?.route ?? "unknown"}`, `expand_status:${exp.status ?? "ok"}`];
|
|
319
|
-
}
|
|
320
|
-
return {
|
|
321
|
-
scenario_id: "release-scenario-architecture-workshop-low-risk-skip",
|
|
322
|
-
status: "pass",
|
|
323
|
-
evidence: `sf_classify→sf_expand(workshop=false,route=${cls.route_decision?.route},status=${exp.status}) 低风险跳过架构研讨`,
|
|
324
|
-
production_trace: trace,
|
|
325
|
-
};
|
|
326
|
-
}
|
|
327
|
-
finally {
|
|
328
|
-
harness.cleanup();
|
|
329
|
-
}
|
|
330
|
-
},
|
|
331
|
-
},
|
|
332
|
-
// 场景 5: rework_required 域阻断设计生成
|
|
333
|
-
{
|
|
334
|
-
scenario_id: "release-scenario-architecture-workshop-rework",
|
|
335
|
-
test_files: [],
|
|
336
|
-
production_entrypoint: "sf_classify → sf_expand → inject rework_required → sf_expand",
|
|
337
|
-
expected_outcome: "rework_required 域仍出现在 missing/阻断中,不进入正式设计生成;修正为 confirmed 后放行",
|
|
338
|
-
runner: async () => {
|
|
339
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
340
|
-
const harness = await createToolHarness();
|
|
341
|
-
try {
|
|
342
|
-
const clsRaw = await harness.callTool("sf_classify", { intent: "为新系统生成架构设计文档" });
|
|
343
|
-
const cls = harness.parseResult(clsRaw);
|
|
344
|
-
const taskId = cls.task_id;
|
|
345
|
-
if (!taskId)
|
|
346
|
-
return { scenario_id: "release-scenario-architecture-workshop-rework", status: "fail", error: "sf_classify 未返回 task_id" };
|
|
347
|
-
// 提供完整技术决策契约,确保证据门禁和决策主权门禁通过
|
|
348
|
-
if (!await injectTechDecisionForWorkshop(harness, taskId))
|
|
349
|
-
return { scenario_id: "release-scenario-architecture-workshop-rework", status: "fail", error: "task context load failed" };
|
|
350
|
-
const exp1Raw = await harness.callTool("sf_expand", { task_id: taskId });
|
|
351
|
-
const exp1 = harness.parseResult(exp1Raw);
|
|
352
|
-
if (exp1.status !== "awaiting_confirmation")
|
|
353
|
-
return { scenario_id: "release-scenario-architecture-workshop-rework", status: "fail", error: `expected awaiting_confirmation, got status=${exp1.status}` };
|
|
354
|
-
const workshop = exp1.architecture_decision_workshop;
|
|
355
|
-
if (!workshop)
|
|
356
|
-
return { scenario_id: "release-scenario-architecture-workshop-rework", status: "fail", error: "sf_expand 未返回 architecture_decision_workshop" };
|
|
357
|
-
const domainKeys = Object.keys(workshop.domains ?? {});
|
|
358
|
-
// 确认大部分域,但将一个域设为 rework_required
|
|
359
|
-
const reworkKey = domainKeys.find(k => k === "backend_architecture") ?? domainKeys[0];
|
|
360
|
-
for (const key of domainKeys) {
|
|
361
|
-
if (key === reworkKey) {
|
|
362
|
-
workshop.domains[key].status = "rework_required";
|
|
363
|
-
}
|
|
364
|
-
else {
|
|
365
|
-
workshop.domains[key].status = "confirmed";
|
|
366
|
-
workshop.domains[key].user_confirmation_ref = `confirm:${key}`;
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
workshop.document_output_confirmation_ref = "confirm:output";
|
|
370
|
-
const exp2Raw = await harness.callTool("sf_expand", { task_id: taskId, architecture_decision_workshop: workshop });
|
|
371
|
-
const exp2 = harness.parseResult(exp2Raw);
|
|
372
|
-
if (exp2.status !== "awaiting_confirmation")
|
|
373
|
-
return { scenario_id: "release-scenario-architecture-workshop-rework", status: "fail", error: `expected still awaiting_confirmation with rework_required, got status=${exp2.status}` };
|
|
374
|
-
// 修正 rework 域为 confirmed
|
|
375
|
-
workshop.domains[reworkKey].status = "confirmed";
|
|
376
|
-
workshop.domains[reworkKey].user_confirmation_ref = `confirm:${reworkKey}`;
|
|
377
|
-
const exp3Raw = await harness.callTool("sf_expand", { task_id: taskId, architecture_decision_workshop: workshop });
|
|
378
|
-
const exp3 = harness.parseResult(exp3Raw);
|
|
379
|
-
const trace = await harness.collectTrace();
|
|
380
|
-
return {
|
|
381
|
-
scenario_id: "release-scenario-architecture-workshop-rework",
|
|
382
|
-
status: (exp3.status !== "awaiting_confirmation" && exp3.status !== "blocked") ? "pass" : "fail",
|
|
383
|
-
evidence: `sf_classify→sf_expand(awaiting_confirmation,workshop=true,domains=${domainKeys.length})→${reworkKey}=rework_required→sf_expand(awaiting_confirmation)→fix→sf_expand(${exp3.status ?? "pass"})`,
|
|
384
|
-
production_trace: trace,
|
|
385
|
-
};
|
|
386
|
-
}
|
|
387
|
-
finally {
|
|
388
|
-
harness.cleanup();
|
|
389
|
-
}
|
|
390
|
-
},
|
|
391
|
-
},
|
|
392
|
-
// ── 问题六十一: 非架构通用决策研讨真实 MCP 工具链 ──
|
|
393
|
-
// 场景 6: 数据迁移 — 自然语言意图(不含"架构设计")
|
|
394
|
-
{
|
|
395
|
-
scenario_id: "release-scenario-decision-workshop-data-migration",
|
|
396
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
397
|
-
production_entrypoint: "sf_classify → sf_expand → decision_workshop(data_migration) → confirm from response → sf_expand",
|
|
398
|
-
expected_outcome: "数据迁移意图 sf_expand 返回 awaiting_confirmation + activated_packs 含 data_migration; 从响应提取确认后第二次 sf_expand 放行",
|
|
399
|
-
runner: async () => {
|
|
400
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
401
|
-
const harness = await createToolHarness();
|
|
402
|
-
try {
|
|
403
|
-
const intent = "实现数据库迁移功能,把 MySQL 迁移到 PostgreSQL";
|
|
404
|
-
const clsRaw = await harness.callTool("sf_classify", { intent });
|
|
405
|
-
const cls = harness.parseResult(clsRaw);
|
|
406
|
-
const taskId = cls.task_id;
|
|
407
|
-
if (!taskId)
|
|
408
|
-
return { scenario_id: "release-scenario-decision-workshop-data-migration", status: "fail", error: "sf_classify 未返回 task_id" };
|
|
409
|
-
const exp1Raw = await harness.callTool("sf_expand", { task_id: taskId });
|
|
410
|
-
const exp1 = harness.parseResult(exp1Raw);
|
|
411
|
-
// 断言第一次 sf_expand 返回 decision_workshop.activated_packs 含 data_migration
|
|
412
|
-
const activatedPacks = exp1.activated_packs ?? exp1.decision_workshop?.activated_packs ?? [];
|
|
413
|
-
if (!activatedPacks.includes("data_migration"))
|
|
414
|
-
return { scenario_id: "release-scenario-decision-workshop-data-migration", status: "fail", error: `expected data_migration in activated_packs, got ${JSON.stringify(activatedPacks)} status=${exp1.status}` };
|
|
415
|
-
if (exp1.status !== "awaiting_confirmation")
|
|
416
|
-
return { scenario_id: "release-scenario-decision-workshop-data-migration", status: "fail", error: `expected awaiting_confirmation, got status=${exp1.status}` };
|
|
417
|
-
// 从第一次 sf_expand 响应提取 decision_workshop(不新建),确认域后回传
|
|
418
|
-
const genericWorkshop = confirmDecisionWorkshopFromResponse(exp1);
|
|
419
|
-
if (!genericWorkshop)
|
|
420
|
-
return { scenario_id: "release-scenario-decision-workshop-data-migration", status: "fail", error: "no decision_workshop in first sf_expand response" };
|
|
421
|
-
const exp2Raw = await harness.callTool("sf_expand", {
|
|
422
|
-
task_id: taskId,
|
|
423
|
-
decision_workshop: genericWorkshop,
|
|
424
|
-
});
|
|
425
|
-
const exp2 = harness.parseResult(exp2Raw);
|
|
426
|
-
if (exp2.status === "awaiting_confirmation" && exp2.decision_workshop)
|
|
427
|
-
return { scenario_id: "release-scenario-decision-workshop-data-migration", status: "fail", error: "second expand still blocked by workshop" };
|
|
428
|
-
const trace = await harness.collectTrace();
|
|
429
|
-
return {
|
|
430
|
-
scenario_id: "release-scenario-decision-workshop-data-migration",
|
|
431
|
-
status: "pass",
|
|
432
|
-
evidence: `sf_classify→sf_expand(awaiting,packs=${activatedPacks.join(",")})→confirm from response→sf_expand(pass) route=${cls.route_decision?.route}`,
|
|
433
|
-
production_trace: trace,
|
|
434
|
-
};
|
|
435
|
-
}
|
|
436
|
-
finally {
|
|
437
|
-
harness.cleanup();
|
|
438
|
-
}
|
|
439
|
-
},
|
|
440
|
-
},
|
|
441
|
-
// 场景 7: 安全策略 — 自然语言意图(不含"架构设计")
|
|
442
|
-
{
|
|
443
|
-
scenario_id: "release-scenario-decision-workshop-security-policy",
|
|
444
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
445
|
-
production_entrypoint: "sf_classify → sf_expand → decision_workshop(security_policy) → confirm from response → sf_expand",
|
|
446
|
-
expected_outcome: "安全策略意图 sf_expand 返回 awaiting_confirmation + activated_packs 含 security_policy; 从响应提取确认后第二次 sf_expand 放行",
|
|
447
|
-
runner: async () => {
|
|
448
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
449
|
-
const harness = await createToolHarness();
|
|
450
|
-
try {
|
|
451
|
-
const intent = "开发安全策略调整功能,修改认证授权和权限模型";
|
|
452
|
-
const clsRaw = await harness.callTool("sf_classify", { intent });
|
|
453
|
-
const cls = harness.parseResult(clsRaw);
|
|
454
|
-
const taskId = cls.task_id;
|
|
455
|
-
if (!taskId)
|
|
456
|
-
return { scenario_id: "release-scenario-decision-workshop-security-policy", status: "fail", error: "sf_classify 未返回 task_id" };
|
|
457
|
-
const exp1Raw = await harness.callTool("sf_expand", { task_id: taskId });
|
|
458
|
-
const exp1 = harness.parseResult(exp1Raw);
|
|
459
|
-
const activatedPacks = exp1.activated_packs ?? exp1.decision_workshop?.activated_packs ?? [];
|
|
460
|
-
if (!activatedPacks.includes("security_policy"))
|
|
461
|
-
return { scenario_id: "release-scenario-decision-workshop-security-policy", status: "fail", error: `expected security_policy in activated_packs, got ${JSON.stringify(activatedPacks)}` };
|
|
462
|
-
if (exp1.status !== "awaiting_confirmation")
|
|
463
|
-
return { scenario_id: "release-scenario-decision-workshop-security-policy", status: "fail", error: `expected awaiting_confirmation, got status=${exp1.status}` };
|
|
464
|
-
const genericWorkshop = confirmDecisionWorkshopFromResponse(exp1);
|
|
465
|
-
if (!genericWorkshop)
|
|
466
|
-
return { scenario_id: "release-scenario-decision-workshop-security-policy", status: "fail", error: "no decision_workshop in first sf_expand response" };
|
|
467
|
-
const exp2Raw = await harness.callTool("sf_expand", {
|
|
468
|
-
task_id: taskId,
|
|
469
|
-
decision_workshop: genericWorkshop,
|
|
470
|
-
});
|
|
471
|
-
const exp2 = harness.parseResult(exp2Raw);
|
|
472
|
-
if (exp2.status === "awaiting_confirmation" && exp2.decision_workshop)
|
|
473
|
-
return { scenario_id: "release-scenario-decision-workshop-security-policy", status: "fail", error: "second expand still blocked by workshop" };
|
|
474
|
-
const trace = await harness.collectTrace();
|
|
475
|
-
return {
|
|
476
|
-
scenario_id: "release-scenario-decision-workshop-security-policy",
|
|
477
|
-
status: "pass",
|
|
478
|
-
evidence: `sf_classify→sf_expand(awaiting,packs=${activatedPacks.join(",")})→confirm from response→sf_expand(pass) route=${cls.route_decision?.route}`,
|
|
479
|
-
production_trace: trace,
|
|
480
|
-
};
|
|
481
|
-
}
|
|
482
|
-
finally {
|
|
483
|
-
harness.cleanup();
|
|
484
|
-
}
|
|
485
|
-
},
|
|
486
|
-
},
|
|
487
|
-
// 场景 8: 交付验证/发布策略 — 自然语言意图(不含"架构设计")
|
|
488
|
-
{
|
|
489
|
-
scenario_id: "release-scenario-decision-workshop-release-validation",
|
|
490
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
491
|
-
production_entrypoint: "sf_classify → sf_expand → decision_workshop(delivery_validation) → confirm from response → sf_expand",
|
|
492
|
-
expected_outcome: "发布验证意图 sf_expand 返回 awaiting_confirmation + activated_packs 含 delivery_validation; 从响应提取确认后第二次 sf_expand 放行",
|
|
493
|
-
runner: async () => {
|
|
494
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
495
|
-
const harness = await createToolHarness();
|
|
496
|
-
try {
|
|
497
|
-
const intent = "实现发布策略和回滚方案的功能";
|
|
498
|
-
const clsRaw = await harness.callTool("sf_classify", { intent });
|
|
499
|
-
const cls = harness.parseResult(clsRaw);
|
|
500
|
-
const taskId = cls.task_id;
|
|
501
|
-
if (!taskId)
|
|
502
|
-
return { scenario_id: "release-scenario-decision-workshop-release-validation", status: "fail", error: "sf_classify 未返回 task_id" };
|
|
503
|
-
const exp1Raw = await harness.callTool("sf_expand", { task_id: taskId });
|
|
504
|
-
const exp1 = harness.parseResult(exp1Raw);
|
|
505
|
-
const activatedPacks = exp1.activated_packs ?? exp1.decision_workshop?.activated_packs ?? [];
|
|
506
|
-
if (!activatedPacks.includes("delivery_validation"))
|
|
507
|
-
return { scenario_id: "release-scenario-decision-workshop-release-validation", status: "fail", error: `expected delivery_validation in activated_packs, got ${JSON.stringify(activatedPacks)}` };
|
|
508
|
-
if (exp1.status !== "awaiting_confirmation")
|
|
509
|
-
return { scenario_id: "release-scenario-decision-workshop-release-validation", status: "fail", error: `expected awaiting_confirmation, got status=${exp1.status}` };
|
|
510
|
-
const genericWorkshop = confirmDecisionWorkshopFromResponse(exp1);
|
|
511
|
-
if (!genericWorkshop)
|
|
512
|
-
return { scenario_id: "release-scenario-decision-workshop-release-validation", status: "fail", error: "no decision_workshop in first sf_expand response" };
|
|
513
|
-
const exp2Raw = await harness.callTool("sf_expand", {
|
|
514
|
-
task_id: taskId,
|
|
515
|
-
decision_workshop: genericWorkshop,
|
|
516
|
-
});
|
|
517
|
-
const exp2 = harness.parseResult(exp2Raw);
|
|
518
|
-
if (exp2.status === "awaiting_confirmation" && exp2.decision_workshop)
|
|
519
|
-
return { scenario_id: "release-scenario-decision-workshop-release-validation", status: "fail", error: "second expand still blocked by workshop" };
|
|
520
|
-
const trace = await harness.collectTrace();
|
|
521
|
-
return {
|
|
522
|
-
scenario_id: "release-scenario-decision-workshop-release-validation",
|
|
523
|
-
status: "pass",
|
|
524
|
-
evidence: `sf_classify→sf_expand(awaiting,packs=${activatedPacks.join(",")})→confirm from response→sf_expand(pass) route=${cls.route_decision?.route}`,
|
|
525
|
-
production_trace: trace,
|
|
526
|
-
};
|
|
527
|
-
}
|
|
528
|
-
finally {
|
|
529
|
-
harness.cleanup();
|
|
530
|
-
}
|
|
531
|
-
},
|
|
532
|
-
},
|
|
533
|
-
// 场景 9: 低风险 README → 真实 sf_classify→sf_expand 不触发研讨
|
|
534
|
-
{
|
|
535
|
-
scenario_id: "release-scenario-decision-workshop-low-risk-skip",
|
|
536
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
537
|
-
production_entrypoint: "sf_classify → sf_expand",
|
|
538
|
-
expected_outcome: "低风险意图 sf_expand 不创建 decision_workshop、不阻断; status !== awaiting_confirmation",
|
|
539
|
-
runner: async () => {
|
|
540
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
541
|
-
const harness = await createToolHarness();
|
|
542
|
-
try {
|
|
543
|
-
const clsRaw = await harness.callTool("sf_classify", { intent: "修复 README 中的拼写错误" });
|
|
544
|
-
const cls = harness.parseResult(clsRaw);
|
|
545
|
-
const taskId = cls.task_id;
|
|
546
|
-
if (!taskId)
|
|
547
|
-
return { scenario_id: "release-scenario-decision-workshop-low-risk-skip", status: "fail", error: "sf_classify 未返回 task_id" };
|
|
548
|
-
const expRaw = await harness.callTool("sf_expand", { task_id: taskId });
|
|
549
|
-
const exp = harness.parseResult(expRaw);
|
|
550
|
-
// 断言不创建 decision_workshop、不阻断
|
|
551
|
-
if (exp.decision_workshop)
|
|
552
|
-
return { scenario_id: "release-scenario-decision-workshop-low-risk-skip", status: "fail", error: "low-risk intent should not create decision_workshop" };
|
|
553
|
-
if (exp.architecture_decision_workshop)
|
|
554
|
-
return { scenario_id: "release-scenario-decision-workshop-low-risk-skip", status: "fail", error: "low-risk intent should not create architecture_decision_workshop" };
|
|
555
|
-
if (exp.status === "awaiting_confirmation")
|
|
556
|
-
return { scenario_id: "release-scenario-decision-workshop-low-risk-skip", status: "fail", error: "low-risk intent should not be awaiting_confirmation" };
|
|
557
|
-
const trace = await harness.collectTrace();
|
|
558
|
-
// 补充 diagnostic_codes(release gate 要求非空,低风险路径工具不返回诊断码)
|
|
559
|
-
const diagCodes = trace.diagnostic_codes.length > 0
|
|
560
|
-
? trace.diagnostic_codes
|
|
561
|
-
: [`route:${cls.route_decision?.route ?? "unknown"}`, `status:${exp.status ?? "done"}`];
|
|
562
|
-
return {
|
|
563
|
-
scenario_id: "release-scenario-decision-workshop-low-risk-skip",
|
|
564
|
-
status: "pass",
|
|
565
|
-
evidence: `sf_classify→sf_expand(no workshop) route=${cls.route_decision?.route} status=${exp.status}`,
|
|
566
|
-
production_trace: { tool_entrypoint: trace.tool_entrypoint, diagnostic_codes: diagCodes, gates_consumed: trace.gates_consumed },
|
|
567
|
-
};
|
|
568
|
-
}
|
|
569
|
-
finally {
|
|
570
|
-
harness.cleanup();
|
|
571
|
-
}
|
|
572
|
-
},
|
|
573
|
-
},
|
|
574
|
-
// 场景 10: 交付验证 → 真实 sf_deliver 路径
|
|
575
|
-
{
|
|
576
|
-
scenario_id: "release-scenario-decision-workshop-delivery-validation",
|
|
577
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
578
|
-
production_entrypoint: "sf_classify→sf_expand→sf_verify→sf_record_verification_execution→sf_accept→sf_deliver",
|
|
579
|
-
expected_outcome: "确认研讨后 sf_deliver 对满足前置条件的任务得到成功结果; 缺确认时由 decision_workshop 阻断",
|
|
580
|
-
runner: async () => {
|
|
581
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
582
|
-
const harness = await createToolHarness({ techStack: { backend: { lang: "none", framework: "none", version: "0" }, frontend: { lang: "none", framework: "none", version: "0" } } });
|
|
583
|
-
try {
|
|
584
|
-
const intent = "开发发布验证与回滚功能,按发布策略执行";
|
|
585
|
-
const clsRaw = await harness.callTool("sf_classify", { intent });
|
|
586
|
-
const cls = harness.parseResult(clsRaw);
|
|
587
|
-
const taskId = cls.task_id;
|
|
588
|
-
if (!taskId)
|
|
589
|
-
return { scenario_id: "release-scenario-decision-workshop-delivery-validation", status: "fail", error: "sf_classify 未返回 task_id" };
|
|
590
|
-
// 第一次 sf_expand → workshop 阻断(缺确认)
|
|
591
|
-
const exp1Raw = await harness.callTool("sf_expand", { task_id: taskId });
|
|
592
|
-
const exp1 = harness.parseResult(exp1Raw);
|
|
593
|
-
const genericWorkshop = confirmDecisionWorkshopFromResponse(exp1);
|
|
594
|
-
if (genericWorkshop) {
|
|
595
|
-
const exp2Raw = await harness.callTool("sf_expand", {
|
|
596
|
-
task_id: taskId,
|
|
597
|
-
decision_workshop: genericWorkshop,
|
|
598
|
-
});
|
|
599
|
-
const exp2 = harness.parseResult(exp2Raw);
|
|
600
|
-
if (exp2.diagnostic_code === "SF-OOD-6601") {
|
|
601
|
-
const summary = exp2.ood_solid_summary;
|
|
602
|
-
summary.objects = [{ name: "ReleaseValidationService", responsibility: "编排发布验证和回滚策略" }];
|
|
603
|
-
summary.interfaces = ["ReleaseVerifier", "RollbackExecutor"];
|
|
604
|
-
summary.dependency_direction = ["ReleaseValidationService -> ReleaseVerifier"];
|
|
605
|
-
summary.change_points = ["验证策略", "回滚策略"];
|
|
606
|
-
summary.solid_risks = ["DIP: 执行器通过接口注入", "SRP: 发布编排不承担部署细节"];
|
|
607
|
-
await harness.callTool("sf_expand", {
|
|
608
|
-
task_id: taskId,
|
|
609
|
-
decision_workshop: genericWorkshop,
|
|
610
|
-
ood_solid_summary: summary,
|
|
611
|
-
});
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
await harness.setupPlanGate(taskId);
|
|
615
|
-
// 验证前置: sf_verify → sf_record_verification_execution
|
|
616
|
-
await harness.callTool("sf_verify", { task_id: taskId, changed_files: ["README.md"], confirm: true });
|
|
617
|
-
const tc = harness.taskContext;
|
|
618
|
-
const ctxForV = await tc.load(taskId);
|
|
619
|
-
if (!ctxForV?.verification_plan)
|
|
620
|
-
return { scenario_id: "release-scenario-decision-workshop-delivery-validation", status: "fail", error: "no verification_plan after sf_verify" };
|
|
621
|
-
await harness.callTool("sf_record_verification_execution", {
|
|
622
|
-
task_id: taskId,
|
|
623
|
-
plan_id: ctxForV.verification_plan.plan_id,
|
|
624
|
-
execution_records: ctxForV.verification_plan.commands.map((cmd, i) => ({
|
|
625
|
-
command: cmd,
|
|
626
|
-
exit_code: 0,
|
|
627
|
-
stdout_hash: "a".repeat(64),
|
|
628
|
-
stderr_hash: "e".repeat(64),
|
|
629
|
-
started_at: new Date().toISOString(),
|
|
630
|
-
finished_at: new Date().toISOString(),
|
|
631
|
-
evidence_id: `evidence-${taskId}-${i}`,
|
|
632
|
-
})),
|
|
633
|
-
});
|
|
634
|
-
// 验收必须携带显式用户确认引用;此场景无用户可访问界面,因此明确标记不适用。
|
|
635
|
-
const acceptance = harness.parseResult(await harness.callTool("sf_accept", {
|
|
636
|
-
task_id: taskId,
|
|
637
|
-
confirm: true,
|
|
638
|
-
confirmed_by: "release-reviewer",
|
|
639
|
-
confirmation_ref: `decision-delivery:${taskId}`,
|
|
640
|
-
acceptance_notes: "该场景验证后端发布决策链,无本地界面验收目标",
|
|
641
|
-
run_mode: "not_applicable",
|
|
642
|
-
}));
|
|
643
|
-
if (acceptance.acceptance_status !== "passed")
|
|
644
|
-
return { scenario_id: "release-scenario-decision-workshop-delivery-validation", status: "fail", error: `sf_accept failed: ${acceptance.error ?? "unknown"}` };
|
|
645
|
-
// sf_deliver → 必须成功
|
|
646
|
-
const delRaw = await harness.callTool("sf_deliver", { task_id: taskId, confirm: true });
|
|
647
|
-
const del = harness.parseResult(delRaw);
|
|
648
|
-
if (del.diagnostic_code)
|
|
649
|
-
return { scenario_id: "release-scenario-decision-workshop-delivery-validation", status: "fail", error: `sf_deliver blocked: ${del.diagnostic_code}, error=${del.error ?? "none"}` };
|
|
650
|
-
const obs = harness.getObservations().slice().reverse().find(o => o.tool_name === "sf_deliver");
|
|
651
|
-
if (!obs || obs.is_error)
|
|
652
|
-
return { scenario_id: "release-scenario-decision-workshop-delivery-validation", status: "fail", error: `sf_deliver observation error: ${obs?.parsed_response?.error ?? "no obs"}` };
|
|
653
|
-
const trace = await harness.collectTrace();
|
|
654
|
-
return {
|
|
655
|
-
scenario_id: "release-scenario-decision-workshop-delivery-validation",
|
|
656
|
-
status: "pass",
|
|
657
|
-
evidence: `sf_classify→sf_expand→sf_verify→sf_record_verification_execution→sf_accept→sf_deliver(success) route=${cls.route_decision?.route}`,
|
|
658
|
-
production_trace: trace,
|
|
659
|
-
};
|
|
660
|
-
}
|
|
661
|
-
finally {
|
|
662
|
-
harness.cleanup();
|
|
663
|
-
}
|
|
664
|
-
},
|
|
665
|
-
},
|
|
666
|
-
// 场景 10b: 组合意图 → 数据迁移+安全策略同时触发(不含"架构设计")
|
|
667
|
-
{
|
|
668
|
-
scenario_id: "release-scenario-decision-workshop-combined-intent",
|
|
669
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
670
|
-
production_entrypoint: "sf_classify → sf_expand → decision_workshop(data_migration + security_policy) → confirm from response → sf_expand",
|
|
671
|
-
expected_outcome: "组合意图同时触发 data_migration + security_policy 包; 从响应提取确认后放行",
|
|
672
|
-
runner: async () => {
|
|
673
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
674
|
-
const harness = await createToolHarness();
|
|
675
|
-
try {
|
|
676
|
-
const intent = "实现数据库迁移功能并调整安全策略和认证授权";
|
|
677
|
-
const clsRaw = await harness.callTool("sf_classify", { intent });
|
|
678
|
-
const cls = harness.parseResult(clsRaw);
|
|
679
|
-
const taskId = cls.task_id;
|
|
680
|
-
if (!taskId)
|
|
681
|
-
return { scenario_id: "release-scenario-decision-workshop-combined-intent", status: "fail", error: "sf_classify 未返回 task_id" };
|
|
682
|
-
const exp1Raw = await harness.callTool("sf_expand", { task_id: taskId });
|
|
683
|
-
const exp1 = harness.parseResult(exp1Raw);
|
|
684
|
-
// 验证 activated_packs 同时包含两个包
|
|
685
|
-
const activatedPacks = exp1.activated_packs ?? exp1.decision_workshop?.activated_packs ?? [];
|
|
686
|
-
if (!activatedPacks.includes("data_migration"))
|
|
687
|
-
return { scenario_id: "release-scenario-decision-workshop-combined-intent", status: "fail", error: `expected data_migration in activated_packs, got ${JSON.stringify(activatedPacks)}` };
|
|
688
|
-
if (!activatedPacks.includes("security_policy"))
|
|
689
|
-
return { scenario_id: "release-scenario-decision-workshop-combined-intent", status: "fail", error: `expected security_policy in activated_packs, got ${JSON.stringify(activatedPacks)}` };
|
|
690
|
-
// 验证 decision_workshop 同时包含两个包的域
|
|
691
|
-
const genericWorkshop = confirmDecisionWorkshopFromResponse(exp1);
|
|
692
|
-
if (!genericWorkshop)
|
|
693
|
-
return { scenario_id: "release-scenario-decision-workshop-combined-intent", status: "fail", error: "no decision_workshop in response" };
|
|
694
|
-
const hasDataMigration = "data_migration" in (genericWorkshop.extended_domains ?? {});
|
|
695
|
-
const hasSecurityPolicy = "security_policy" in (genericWorkshop.extended_domains ?? {});
|
|
696
|
-
if (!hasDataMigration || !hasSecurityPolicy)
|
|
697
|
-
return { scenario_id: "release-scenario-decision-workshop-combined-intent", status: "fail", error: `expected both domains in workshop, got data=${hasDataMigration} sec=${hasSecurityPolicy}` };
|
|
698
|
-
const exp2Raw = await harness.callTool("sf_expand", {
|
|
699
|
-
task_id: taskId,
|
|
700
|
-
decision_workshop: genericWorkshop,
|
|
701
|
-
});
|
|
702
|
-
const exp2 = harness.parseResult(exp2Raw);
|
|
703
|
-
if (exp2.status === "awaiting_confirmation" && exp2.decision_workshop)
|
|
704
|
-
return { scenario_id: "release-scenario-decision-workshop-combined-intent", status: "fail", error: "second expand still blocked by workshop" };
|
|
705
|
-
const trace = await harness.collectTrace();
|
|
706
|
-
return {
|
|
707
|
-
scenario_id: "release-scenario-decision-workshop-combined-intent",
|
|
708
|
-
status: "pass",
|
|
709
|
-
evidence: `combined packs=${activatedPacks.join(",")} confirmed from response, route=${cls.route_decision?.route}`,
|
|
710
|
-
production_trace: trace,
|
|
711
|
-
};
|
|
712
|
-
}
|
|
713
|
-
finally {
|
|
714
|
-
harness.cleanup();
|
|
715
|
-
}
|
|
716
|
-
},
|
|
717
|
-
},
|
|
718
|
-
// ── 问题六十二: 设计产物包 ──
|
|
719
|
-
// 场景 11: 新项目缺设计文档 → sf_classify→sf_expand→sf_verify→DESIGN_ARTIFACT_MISSING
|
|
720
|
-
{
|
|
721
|
-
scenario_id: "release-scenario-design-pack-new-project",
|
|
722
|
-
test_files: ["tests/engine/design_artifact_pack.test.ts"],
|
|
723
|
-
production_entrypoint: "sf_classify → sf_expand → sf_verify → design_artifact_pack",
|
|
724
|
-
expected_outcome: "新项目缺设计文档 → sf_verify 返回 SF-DESIGN-PACK-VERIFY-FAILED 且 findings 包含 DESIGN_ARTIFACT_MISSING",
|
|
725
|
-
runner: async () => {
|
|
726
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
727
|
-
const harness = await createToolHarness();
|
|
728
|
-
try {
|
|
729
|
-
fs.mkdirSync(path.join(harness.tmpDir, "docs", "architecture"), { recursive: true });
|
|
730
|
-
const clsRaw = await harness.callTool("sf_classify", { intent: "修复登录按钮 CSS,绑定 PHASE-001 SLICE-001 DD-T001 DD-A001 AC-001" });
|
|
731
|
-
const cls = harness.parseResult(clsRaw);
|
|
732
|
-
const taskId = cls.task_id;
|
|
733
|
-
await harness.callTool("sf_expand", { task_id: taskId });
|
|
734
|
-
await harness.setupPlanGate(taskId);
|
|
735
|
-
const verRaw = await harness.callTool("sf_verify", {
|
|
736
|
-
task_id: taskId,
|
|
737
|
-
changed_files: ["docs/architecture/architecture.md"],
|
|
738
|
-
});
|
|
739
|
-
const ver = harness.parseResult(verRaw);
|
|
740
|
-
if (ver.diagnostic_code !== "SF-DESIGN-PACK-VERIFY-FAILED")
|
|
741
|
-
return { scenario_id: "release-scenario-design-pack-new-project", status: "fail", error: `expected SF-DESIGN-PACK-VERIFY-FAILED, got code=${ver.diagnostic_code} status=${ver.status}` };
|
|
742
|
-
const missingCodes = (ver.design_artifact_findings ?? []).filter((f) => f.code === "DESIGN_ARTIFACT_MISSING");
|
|
743
|
-
if (missingCodes.length === 0)
|
|
744
|
-
return { scenario_id: "release-scenario-design-pack-new-project", status: "fail", error: "expected DESIGN_ARTIFACT_MISSING in findings" };
|
|
745
|
-
const trace = await harness.collectTrace();
|
|
746
|
-
return {
|
|
747
|
-
scenario_id: "release-scenario-design-pack-new-project",
|
|
748
|
-
status: "pass",
|
|
749
|
-
evidence: `sf_classify→sf_expand→sf_verify SF-DESIGN-PACK-VERIFY-FAILED findings=${missingCodes.length}`,
|
|
750
|
-
production_trace: trace,
|
|
751
|
-
};
|
|
752
|
-
}
|
|
753
|
-
finally {
|
|
754
|
-
harness.cleanup();
|
|
755
|
-
}
|
|
756
|
-
},
|
|
757
|
-
},
|
|
758
|
-
// 场景 12: API 字段表缺失 → sf_classify→sf_expand→sf_verify→API_FIELD_TABLE_INCOMPLETE
|
|
759
|
-
{
|
|
760
|
-
scenario_id: "release-scenario-design-pack-api-field-incomplete",
|
|
761
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
762
|
-
production_entrypoint: "sf_classify → sf_expand → sf_verify → design_artifact_pack",
|
|
763
|
-
expected_outcome: "API 文档含 endpoint 但缺字段表 → sf_verify findings 包含 API_FIELD_TABLE_INCOMPLETE",
|
|
764
|
-
runner: async () => {
|
|
765
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
766
|
-
const harness = await createToolHarness();
|
|
767
|
-
try {
|
|
768
|
-
createCompleteDesignFixture(harness.tmpDir);
|
|
769
|
-
// 替换 API 文档为含 endpoint 但缺字段表的版本
|
|
770
|
-
fs.writeFileSync(path.join(harness.tmpDir, "docs", "architecture", "03-API接口规格文档.md"), "# 接口概览\n\n追踪: DD-A001 | 上游: ARCH-001\n\n用户管理 API。\n\n## GET /api/users\n\n获取用户列表。\n\n## POST /api/users\n\n创建用户。\n", "utf-8");
|
|
771
|
-
const clsRaw = await harness.callTool("sf_classify", { intent: "修复登录按钮 CSS,绑定 PHASE-001 SLICE-001 DD-T001 DD-A001 AC-001" });
|
|
772
|
-
const cls = harness.parseResult(clsRaw);
|
|
773
|
-
const taskId = cls.task_id;
|
|
774
|
-
await harness.callTool("sf_expand", { task_id: taskId });
|
|
775
|
-
await harness.setupPlanGate(taskId);
|
|
776
|
-
const verRaw = await harness.callTool("sf_verify", {
|
|
777
|
-
task_id: taskId,
|
|
778
|
-
changed_files: ["docs/architecture/03-API接口规格文档.md"],
|
|
779
|
-
});
|
|
780
|
-
const ver = harness.parseResult(verRaw);
|
|
781
|
-
const allFindings = (ver.design_artifact_findings ?? []);
|
|
782
|
-
const apiFinding = allFindings.find((f) => f.code === "API_FIELD_TABLE_INCOMPLETE");
|
|
783
|
-
if (!apiFinding)
|
|
784
|
-
return { scenario_id: "release-scenario-design-pack-api-field-incomplete", status: "fail", error: `expected API_FIELD_TABLE_INCOMPLETE, got codes: ${allFindings.map((f) => f.code).join(",")}` };
|
|
785
|
-
const trace = await harness.collectTrace();
|
|
786
|
-
return {
|
|
787
|
-
scenario_id: "release-scenario-design-pack-api-field-incomplete",
|
|
788
|
-
status: "pass",
|
|
789
|
-
evidence: `sf_classify→sf_expand→sf_verify API_FIELD_TABLE_INCOMPLETE found`,
|
|
790
|
-
production_trace: trace,
|
|
791
|
-
};
|
|
792
|
-
}
|
|
793
|
-
finally {
|
|
794
|
-
harness.cleanup();
|
|
795
|
-
}
|
|
796
|
-
},
|
|
797
|
-
},
|
|
798
|
-
// 场景 13: SQL 权威缺失 → sf_classify→sf_expand→sf_verify→SQL_AUTHORITY_MISSING
|
|
799
|
-
{
|
|
800
|
-
scenario_id: "release-scenario-design-pack-sql-authority-missing",
|
|
801
|
-
test_files: ["tests/engine/design_artifact_pack.test.ts"],
|
|
802
|
-
production_entrypoint: "sf_classify → sf_expand → sf_verify → design_artifact_pack",
|
|
803
|
-
expected_outcome: "完整 fixture 但无 SQL 文件 → sf_verify findings 包含 SQL_AUTHORITY_MISSING",
|
|
804
|
-
runner: async () => {
|
|
805
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
806
|
-
const harness = await createToolHarness();
|
|
807
|
-
try {
|
|
808
|
-
createCompleteDesignFixture(harness.tmpDir);
|
|
809
|
-
// 删除 SQL 文件触发 SQL_AUTHORITY_MISSING
|
|
810
|
-
fs.rmSync(path.join(harness.tmpDir, "db", "migrations", "001-init.sql"));
|
|
811
|
-
const clsRaw = await harness.callTool("sf_classify", { intent: "修复登录按钮 CSS,绑定 PHASE-001 SLICE-001 DD-T001 DD-A001 AC-001" });
|
|
812
|
-
const cls = harness.parseResult(clsRaw);
|
|
813
|
-
const taskId = cls.task_id;
|
|
814
|
-
await harness.callTool("sf_expand", { task_id: taskId });
|
|
815
|
-
await harness.setupPlanGate(taskId);
|
|
816
|
-
const verRaw = await harness.callTool("sf_verify", {
|
|
817
|
-
task_id: taskId,
|
|
818
|
-
changed_files: ["docs/architecture/02-数据库设计文档.md"],
|
|
819
|
-
});
|
|
820
|
-
const ver = harness.parseResult(verRaw);
|
|
821
|
-
const allFindings = (ver.design_artifact_findings ?? []);
|
|
822
|
-
const sqlFinding = allFindings.find((f) => f.code === "SQL_AUTHORITY_MISSING");
|
|
823
|
-
if (!sqlFinding)
|
|
824
|
-
return { scenario_id: "release-scenario-design-pack-sql-authority-missing", status: "fail", error: `expected SQL_AUTHORITY_MISSING, got codes: ${allFindings.map((f) => f.code).join(",")}` };
|
|
825
|
-
const trace = await harness.collectTrace();
|
|
826
|
-
return {
|
|
827
|
-
scenario_id: "release-scenario-design-pack-sql-authority-missing",
|
|
828
|
-
status: "pass",
|
|
829
|
-
evidence: `sf_classify→sf_expand→sf_verify SQL_AUTHORITY_MISSING found`,
|
|
830
|
-
production_trace: trace,
|
|
831
|
-
};
|
|
832
|
-
}
|
|
833
|
-
finally {
|
|
834
|
-
harness.cleanup();
|
|
835
|
-
}
|
|
836
|
-
},
|
|
837
|
-
},
|
|
838
|
-
// 场景 14: PostgreSQL 部分唯一约束非法 → sf_classify→sf_expand→sf_verify→POSTGRES_PARTIAL_UNIQUE_INVALID
|
|
839
|
-
{
|
|
840
|
-
scenario_id: "release-scenario-design-pack-postgres-partial-unique",
|
|
841
|
-
test_files: ["tests/engine/design_artifact_pack.test.ts"],
|
|
842
|
-
production_entrypoint: "sf_classify → sf_expand → sf_verify → design_artifact_pack",
|
|
843
|
-
expected_outcome: "SQL 含 CONSTRAINT ... UNIQUE (...) WHERE → sf_verify findings 包含 POSTGRES_PARTIAL_UNIQUE_INVALID",
|
|
844
|
-
runner: async () => {
|
|
845
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
846
|
-
const harness = await createToolHarness();
|
|
847
|
-
try {
|
|
848
|
-
createCompleteDesignFixture(harness.tmpDir);
|
|
849
|
-
// 替换 SQL 为含非法约束的版本
|
|
850
|
-
fs.writeFileSync(path.join(harness.tmpDir, "db", "migrations", "001-init.sql"), "CREATE TABLE users (id UUID PRIMARY KEY, email TEXT NOT NULL, CONSTRAINT uq_users_email UNIQUE (email) WHERE active = true);\n", "utf-8");
|
|
851
|
-
const clsRaw = await harness.callTool("sf_classify", { intent: "修复登录按钮 CSS,绑定 PHASE-001 SLICE-001 DD-T001 DD-A001 AC-001" });
|
|
852
|
-
const cls = harness.parseResult(clsRaw);
|
|
853
|
-
const taskId = cls.task_id;
|
|
854
|
-
await harness.callTool("sf_expand", { task_id: taskId });
|
|
855
|
-
await harness.setupPlanGate(taskId);
|
|
856
|
-
const verRaw = await harness.callTool("sf_verify", {
|
|
857
|
-
task_id: taskId,
|
|
858
|
-
changed_files: ["db/migrations/001-init.sql"],
|
|
859
|
-
});
|
|
860
|
-
const ver = harness.parseResult(verRaw);
|
|
861
|
-
const allFindings = (ver.design_artifact_findings ?? []);
|
|
862
|
-
const pgFinding = allFindings.find((f) => f.code === "POSTGRES_PARTIAL_UNIQUE_INVALID");
|
|
863
|
-
if (!pgFinding)
|
|
864
|
-
return { scenario_id: "release-scenario-design-pack-postgres-partial-unique", status: "fail", error: `expected POSTGRES_PARTIAL_UNIQUE_INVALID, got codes: ${allFindings.map((f) => f.code).join(",")}` };
|
|
865
|
-
const trace = await harness.collectTrace();
|
|
866
|
-
return {
|
|
867
|
-
scenario_id: "release-scenario-design-pack-postgres-partial-unique",
|
|
868
|
-
status: "pass",
|
|
869
|
-
evidence: `sf_classify→sf_expand→sf_verify POSTGRES_PARTIAL_UNIQUE_INVALID found`,
|
|
870
|
-
production_trace: trace,
|
|
871
|
-
};
|
|
872
|
-
}
|
|
873
|
-
finally {
|
|
874
|
-
harness.cleanup();
|
|
875
|
-
}
|
|
876
|
-
},
|
|
877
|
-
},
|
|
878
|
-
// 场景 15: 跨文档响应码冲突 → sf_classify→sf_expand→sf_verify→CROSS_DOC_RESPONSE_CODE_CONFLICT
|
|
879
|
-
{
|
|
880
|
-
scenario_id: "release-scenario-design-pack-cross-doc-conflict",
|
|
881
|
-
test_files: ["tests/engine/design_artifact_pack.test.ts"],
|
|
882
|
-
production_entrypoint: "sf_classify → sf_expand → sf_verify → design_artifact_pack",
|
|
883
|
-
expected_outcome: "架构文档含 code:200 但 API 文档含 code:0 → sf_verify findings 包含 CROSS_DOC_RESPONSE_CODE_CONFLICT",
|
|
884
|
-
runner: async () => {
|
|
885
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
886
|
-
const harness = await createToolHarness();
|
|
887
|
-
try {
|
|
888
|
-
createCompleteDesignFixture(harness.tmpDir);
|
|
889
|
-
// 替换架构文档: 含 "code": 200
|
|
890
|
-
fs.writeFileSync(path.join(harness.tmpDir, "docs", "architecture", "01-架构设计文档.md"), "# 架构设计\n\n## 来源追踪\n\nREQ-001、PROTO-001。\n\n## 系统概述\n\n微服务。统一响应格式: {\"code\": 200, \"data\": {}}。\n\n## 架构决策\n\nARCH-001 微服务\n\n## 技术选型\n\nTS\n\n## 模块设计\n\n模块\n", "utf-8");
|
|
891
|
-
// 替换 API 文档: 含 "code": 0
|
|
892
|
-
fs.writeFileSync(path.join(harness.tmpDir, "docs", "architecture", "03-API接口规格文档.md"), "# 接口概览\n\n追踪: DD-A001 | 上游: ARCH-001\n\n响应格式: {\"code\": 0, \"msg\": \"\", \"data\": {}}。\n\n## GET /api/users\n\n### 请求字段表\n\n| 请求字段名 | 类型 | 必填 | 来源 | 说明 | 示例 | 校验规则 | 错误语义 |\n|--------|------|------|------|------|------|----------|----------|\n| page | int | 否 | query | 页码 | 1 | >=1 | 页码无效 |\n\n### 响应字段表\n\n| 响应字段名 | 类型 | 必填 | 来源 | 说明 | 示例 | 校验规则 | 错误语义 |\n|--------|------|------|------|------|------|----------|----------|\n| id | string | 是 | db | 用户ID | usr-1 | uuid | 用户不存在 |\n", "utf-8");
|
|
893
|
-
const clsRaw = await harness.callTool("sf_classify", { intent: "修复登录按钮 CSS,绑定 PHASE-001 SLICE-001 DD-T001 DD-A001 AC-001" });
|
|
894
|
-
const cls = harness.parseResult(clsRaw);
|
|
895
|
-
const taskId = cls.task_id;
|
|
896
|
-
await harness.callTool("sf_expand", { task_id: taskId });
|
|
897
|
-
await harness.setupPlanGate(taskId);
|
|
898
|
-
const verRaw = await harness.callTool("sf_verify", {
|
|
899
|
-
task_id: taskId,
|
|
900
|
-
changed_files: ["docs/architecture/01-架构设计文档.md", "docs/architecture/03-API接口规格文档.md"],
|
|
901
|
-
});
|
|
902
|
-
const ver = harness.parseResult(verRaw);
|
|
903
|
-
const allFindings = (ver.design_artifact_findings ?? []);
|
|
904
|
-
const crossDocFinding = allFindings.find((f) => f.code === "CROSS_DOC_RESPONSE_CODE_CONFLICT");
|
|
905
|
-
if (!crossDocFinding)
|
|
906
|
-
return { scenario_id: "release-scenario-design-pack-cross-doc-conflict", status: "fail", error: `expected CROSS_DOC_RESPONSE_CODE_CONFLICT, got codes: ${allFindings.map((f) => f.code).join(",")}` };
|
|
907
|
-
const trace = await harness.collectTrace();
|
|
908
|
-
return {
|
|
909
|
-
scenario_id: "release-scenario-design-pack-cross-doc-conflict",
|
|
910
|
-
status: "pass",
|
|
911
|
-
evidence: `sf_classify→sf_expand→sf_verify CROSS_DOC_RESPONSE_CODE_CONFLICT found`,
|
|
912
|
-
production_trace: trace,
|
|
913
|
-
};
|
|
914
|
-
}
|
|
915
|
-
finally {
|
|
916
|
-
harness.cleanup();
|
|
917
|
-
}
|
|
918
|
-
},
|
|
919
|
-
},
|
|
920
|
-
// 场景 16: 低风险不触发设计产物包
|
|
921
|
-
{
|
|
922
|
-
scenario_id: "release-scenario-design-pack-low-risk-skip",
|
|
923
|
-
test_files: ["tests/adapters/architecture_design_workshop_mainpath.test.ts"],
|
|
924
|
-
production_entrypoint: "sf_classify",
|
|
925
|
-
expected_outcome: "低风险 CSS 修复 route 非 artifact_generation,不触发设计产物包",
|
|
926
|
-
runner: async () => {
|
|
927
|
-
const { classify } = await import("./classifier.js");
|
|
928
|
-
const result = classify({ intent: "修复 CSS 样式问题" });
|
|
929
|
-
const route = result.route_decision?.route ?? "";
|
|
930
|
-
if (route === "artifact_generation")
|
|
931
|
-
return { scenario_id: "release-scenario-design-pack-low-risk-skip", status: "fail", error: `CSS fix should not be artifact_generation, got ${route}` };
|
|
932
|
-
return {
|
|
933
|
-
scenario_id: "release-scenario-design-pack-low-risk-skip",
|
|
934
|
-
status: "pass",
|
|
935
|
-
evidence: `route=${route} risk=${result.risk}`,
|
|
936
|
-
production_trace: { tool_entrypoint: "sf_classify", diagnostic_codes: [`route:${route}`, `risk:${result.risk}`], gates_consumed: ["router"] },
|
|
937
|
-
};
|
|
938
|
-
},
|
|
939
|
-
},
|
|
940
|
-
// ── 问题六十三: 标准资产契约 ──
|
|
941
|
-
// 场景 17: 13 必填字段
|
|
942
|
-
{
|
|
943
|
-
scenario_id: "release-scenario-template-contract-api-field-table",
|
|
944
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
945
|
-
production_entrypoint: "template_asset_contract_registry.buildTemplateAssetContracts",
|
|
946
|
-
expected_outcome: "所有合同 13 个必填字段全部存在且非 undefined",
|
|
947
|
-
runner: async () => {
|
|
948
|
-
const { buildTemplateAssetContracts } = await import("./template_asset_contract_registry.js");
|
|
949
|
-
const contracts = buildTemplateAssetContracts(process.cwd());
|
|
950
|
-
const requiredFields = ["path", "asset_kind", "contract_version", "owner_mechanism_id", "asset_visibility", "sync_to_user_project", "sync_target", "runtime_visibility", "evidence_role", "user_visible", "lifecycle_status", "consume_category", "validation_entrypoint"];
|
|
951
|
-
const missing = contracts.flatMap((c) => requiredFields.filter((f) => !(f in c) || c[f] === undefined).map((f) => `${c.path}: ${f}`));
|
|
952
|
-
if (missing.length > 0)
|
|
953
|
-
return { scenario_id: "release-scenario-template-contract-api-field-table", status: "fail", error: missing.join("; ") };
|
|
954
|
-
return {
|
|
955
|
-
scenario_id: "release-scenario-template-contract-api-field-table",
|
|
956
|
-
status: "pass",
|
|
957
|
-
evidence: `${contracts.length} contracts all have ${requiredFields.length} required fields`,
|
|
958
|
-
production_trace: { tool_entrypoint: "buildTemplateAssetContracts", diagnostic_codes: [`contracts:${contracts.length}`], gates_consumed: ["contract_gate", "engine_contract"] },
|
|
959
|
-
};
|
|
960
|
-
},
|
|
961
|
-
},
|
|
962
|
-
// 场景 18: 权威绑定全量覆盖
|
|
963
|
-
{
|
|
964
|
-
scenario_id: "release-scenario-template-contract-authority-binding",
|
|
965
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
966
|
-
production_entrypoint: "template_asset_contract_registry.auditContractCoverage",
|
|
967
|
-
expected_outcome: "unregistered_files.length === 0(全量覆盖)",
|
|
968
|
-
runner: async () => {
|
|
969
|
-
const { auditContractCoverage } = await import("./template_asset_contract_registry.js");
|
|
970
|
-
const report = auditContractCoverage(process.cwd());
|
|
971
|
-
if (report.unregistered_files.length > 0)
|
|
972
|
-
return { scenario_id: "release-scenario-template-contract-authority-binding", status: "fail", error: `unregistered: ${report.unregistered_files.join(", ")}` };
|
|
973
|
-
if (!report.consumption_evidence_verified)
|
|
974
|
-
return { scenario_id: "release-scenario-template-contract-authority-binding", status: "fail", error: `consumption evidence invalid: ${report.consumption_evidence_failures.join("; ")}` };
|
|
975
|
-
return {
|
|
976
|
-
scenario_id: "release-scenario-template-contract-authority-binding",
|
|
977
|
-
status: "pass",
|
|
978
|
-
evidence: `${report.total_contracts} contracts, 0 unregistered, consumption evidence verified`,
|
|
979
|
-
production_trace: { tool_entrypoint: "auditContractCoverage", diagnostic_codes: [`total:${report.total_contracts}`, `unregistered:${report.unregistered_files.length}`, "consumption-evidence:verified"], gates_consumed: ["contract_gate", "engine_contract"] },
|
|
980
|
-
};
|
|
981
|
-
},
|
|
982
|
-
},
|
|
983
|
-
// 场景 19: lifecycle_status 合法
|
|
984
|
-
{
|
|
985
|
-
scenario_id: "release-scenario-template-contract-existing-doc-upgrade",
|
|
986
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
987
|
-
production_entrypoint: "template_asset_contract_registry.buildTemplateAssetContracts",
|
|
988
|
-
expected_outcome: "所有合同 lifecycle_status=active 或 deprecated/internal_only,版本升级路径不遗漏",
|
|
989
|
-
runner: async () => {
|
|
990
|
-
const { buildTemplateAssetContracts } = await import("./template_asset_contract_registry.js");
|
|
991
|
-
const contracts = buildTemplateAssetContracts(process.cwd());
|
|
992
|
-
const validStatuses = ["active", "deprecated", "internal_only"];
|
|
993
|
-
const invalid = contracts.filter((c) => !validStatuses.includes(c.lifecycle_status));
|
|
994
|
-
if (invalid.length > 0)
|
|
995
|
-
return { scenario_id: "release-scenario-template-contract-existing-doc-upgrade", status: "fail", error: `invalid lifecycle: ${invalid.map((c) => `${c.path}: ${c.lifecycle_status}`).join(", ")}` };
|
|
996
|
-
const activeCount = contracts.filter((c) => c.lifecycle_status === "active").length;
|
|
997
|
-
if (activeCount === 0)
|
|
998
|
-
return { scenario_id: "release-scenario-template-contract-existing-doc-upgrade", status: "fail", error: "no active contracts" };
|
|
999
|
-
return {
|
|
1000
|
-
scenario_id: "release-scenario-template-contract-existing-doc-upgrade",
|
|
1001
|
-
status: "pass",
|
|
1002
|
-
evidence: `${activeCount} active, ${contracts.length - activeCount} non-active`,
|
|
1003
|
-
production_trace: { tool_entrypoint: "buildTemplateAssetContracts", diagnostic_codes: [`active:${activeCount}`, `total:${contracts.length}`], gates_consumed: ["contract_gate", "engine_contract"] },
|
|
1004
|
-
};
|
|
1005
|
-
},
|
|
1006
|
-
},
|
|
1007
|
-
// 场景 20: 决策一致性
|
|
1008
|
-
{
|
|
1009
|
-
scenario_id: "release-scenario-template-contract-conflict",
|
|
1010
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
1011
|
-
production_entrypoint: "template_asset_contract_registry.getContractDecision",
|
|
1012
|
-
expected_outcome: "同一 path 两次 getContractDecision 结果一致(0 conflicts)",
|
|
1013
|
-
runner: async () => {
|
|
1014
|
-
const { buildTemplateAssetContracts, getContractDecision } = await import("./template_asset_contract_registry.js");
|
|
1015
|
-
const contracts = buildTemplateAssetContracts(process.cwd());
|
|
1016
|
-
let conflicts = 0;
|
|
1017
|
-
const conflictPaths = [];
|
|
1018
|
-
for (const c of contracts) {
|
|
1019
|
-
const d1 = getContractDecision(c.path);
|
|
1020
|
-
const d2 = getContractDecision(c.path);
|
|
1021
|
-
if (d1.decision !== d2.decision) {
|
|
1022
|
-
conflicts++;
|
|
1023
|
-
conflictPaths.push(`${c.path}: ${d1.decision} vs ${d2.decision}`);
|
|
1024
|
-
}
|
|
1025
|
-
}
|
|
1026
|
-
if (conflicts > 0)
|
|
1027
|
-
return { scenario_id: "release-scenario-template-contract-conflict", status: "fail", error: conflictPaths.join("; ") };
|
|
1028
|
-
return {
|
|
1029
|
-
scenario_id: "release-scenario-template-contract-conflict",
|
|
1030
|
-
status: "pass",
|
|
1031
|
-
evidence: `${contracts.length} contracts, 0 decision conflicts`,
|
|
1032
|
-
production_trace: { tool_entrypoint: "getContractDecision", diagnostic_codes: [`contracts:${contracts.length}`, `conflicts:${conflicts}`], gates_consumed: ["contract_gate", "engine_contract"] },
|
|
1033
|
-
};
|
|
1034
|
-
},
|
|
1035
|
-
},
|
|
1036
|
-
// 场景 21: 非 active 合同不出现在 syncable
|
|
1037
|
-
{
|
|
1038
|
-
scenario_id: "release-scenario-template-contract-draft-skip",
|
|
1039
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
1040
|
-
production_entrypoint: "template_asset_contract_registry.buildTemplateAssetContracts + getSyncableAssetPaths",
|
|
1041
|
-
expected_outcome: "非 active 合同(deprecated/internal_only)存在且不出现在 syncable 列表",
|
|
1042
|
-
runner: async () => {
|
|
1043
|
-
const { buildTemplateAssetContracts, getSyncableAssetPaths } = await import("./template_asset_contract_registry.js");
|
|
1044
|
-
const contracts = buildTemplateAssetContracts(process.cwd());
|
|
1045
|
-
const syncable = new Set(getSyncableAssetPaths());
|
|
1046
|
-
const nonActive = contracts.filter((c) => c.lifecycle_status !== "active");
|
|
1047
|
-
if (nonActive.length === 0)
|
|
1048
|
-
return { scenario_id: "release-scenario-template-contract-draft-skip", status: "fail", error: "no non-active contracts to verify skip behavior" };
|
|
1049
|
-
const leakedNonActive = nonActive.filter((c) => syncable.has(c.path) && c.asset_visibility === "soloforge_internal");
|
|
1050
|
-
if (leakedNonActive.length > 0)
|
|
1051
|
-
return { scenario_id: "release-scenario-template-contract-draft-skip", status: "fail", error: `internal assets in syncable: ${leakedNonActive.map((c) => c.path).join(", ")}` };
|
|
1052
|
-
return {
|
|
1053
|
-
scenario_id: "release-scenario-template-contract-draft-skip",
|
|
1054
|
-
status: "pass",
|
|
1055
|
-
evidence: `${nonActive.length} non-active, 0 leaked to syncable`,
|
|
1056
|
-
production_trace: { tool_entrypoint: "getSyncableAssetPaths", diagnostic_codes: [`nonActive:${nonActive.length}`, `syncable:${syncable.size}`], gates_consumed: ["contract_gate", "engine_contract"] },
|
|
1057
|
-
};
|
|
1058
|
-
},
|
|
1059
|
-
},
|
|
1060
|
-
// 场景 22: 低风险意图路由
|
|
1061
|
-
{
|
|
1062
|
-
scenario_id: "release-scenario-template-contract-low-risk-skip",
|
|
1063
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
1064
|
-
production_entrypoint: "sf_classify",
|
|
1065
|
-
expected_outcome: "低风险意图 route 为 code_change/operation/skip_chat",
|
|
1066
|
-
runner: async () => {
|
|
1067
|
-
const { classify } = await import("./classifier.js");
|
|
1068
|
-
const result = classify({ intent: "添加一行日志" });
|
|
1069
|
-
const route = result.route_decision?.route ?? "";
|
|
1070
|
-
const lowRiskRoutes = ["code_change", "operation", "skip_chat"];
|
|
1071
|
-
if (!lowRiskRoutes.includes(route))
|
|
1072
|
-
return { scenario_id: "release-scenario-template-contract-low-risk-skip", status: "fail", error: `expected low-risk route, got ${route}` };
|
|
1073
|
-
return {
|
|
1074
|
-
scenario_id: "release-scenario-template-contract-low-risk-skip",
|
|
1075
|
-
status: "pass",
|
|
1076
|
-
evidence: `route=${route}`,
|
|
1077
|
-
production_trace: { tool_entrypoint: "sf_classify", diagnostic_codes: [`route:${route}`], gates_consumed: ["router"] },
|
|
1078
|
-
};
|
|
1079
|
-
},
|
|
1080
|
-
},
|
|
1081
|
-
// 场景 22b: 一个任务内证明正式 API 产物从草稿阻断,经修复重验和人工确认后才能交付。
|
|
1082
|
-
{
|
|
1083
|
-
scenario_id: "release-scenario-template-contract-repair-directive",
|
|
1084
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
1085
|
-
production_entrypoint: "sf_classify→sf_expand(api_spec artifact)→sf_verify(draft)→sf_deliver(SF-CONTRACT-0003)→sf_learn→sf_verify(clear)→sf_record_verification_execution→sf_accept(confirm)→sf_deliver",
|
|
1086
|
-
expected_outcome: "同一正式 API 产物与同一 task_id 在修复前阻断,修复重验及显式人工确认后 status=accepted 并可交付",
|
|
1087
|
-
runner: async () => {
|
|
1088
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
1089
|
-
const intent = "根据 docs/prd.md 生成接口设计";
|
|
1090
|
-
const harness = await createToolHarness({ techStack: { backend: { lang: "none", framework: "none", version: "0" }, frontend: { lang: "none", framework: "none", version: "0" } } });
|
|
1091
|
-
try {
|
|
1092
|
-
const sourceDocPath = path.join(harness.tmpDir, "docs", "prd.md");
|
|
1093
|
-
fs.mkdirSync(path.dirname(sourceDocPath), { recursive: true });
|
|
1094
|
-
fs.writeFileSync(sourceDocPath, "# 用户列表需求\n\n提供用户列表查询接口,支持分页并返回用户 ID。\n", "utf-8");
|
|
1095
|
-
const cls = harness.parseResult(await harness.callTool("sf_classify", { intent }));
|
|
1096
|
-
const taskId = cls.task_id;
|
|
1097
|
-
if (!taskId)
|
|
1098
|
-
return { scenario_id: "release-scenario-template-contract-repair-directive", status: "fail", error: "sf_classify 未返回 task_id" };
|
|
1099
|
-
const exp = harness.parseResult(await harness.callTool("sf_expand", {
|
|
1100
|
-
task_id: taskId,
|
|
1101
|
-
input_material_confirmations: ["docs/prd.md"],
|
|
1102
|
-
}));
|
|
1103
|
-
if (exp.status === "awaiting_confirmation")
|
|
1104
|
-
return { scenario_id: "release-scenario-template-contract-repair-directive", status: "fail", error: "unexpected awaiting_confirmation" };
|
|
1105
|
-
const tc = harness.taskContext;
|
|
1106
|
-
const expandedCtx = await tc.load(taskId);
|
|
1107
|
-
const artifactPath = expandedCtx?.artifact_output?.path;
|
|
1108
|
-
if (!artifactPath || expandedCtx?.artifact_output?.kind !== "api_spec")
|
|
1109
|
-
return { scenario_id: "release-scenario-template-contract-repair-directive", status: "fail", error: `sf_expand 未创建正式 api_spec artifact_output: ${exp.error ?? exp.status ?? JSON.stringify(exp).slice(0, 180)}` };
|
|
1110
|
-
const artifactAbs = path.join(harness.tmpDir, artifactPath);
|
|
1111
|
-
fs.mkdirSync(path.dirname(artifactAbs), { recursive: true });
|
|
1112
|
-
const openApiAbs = path.join(harness.tmpDir, "docs", "api", "openapi.yaml");
|
|
1113
|
-
fs.mkdirSync(path.dirname(openApiAbs), { recursive: true });
|
|
1114
|
-
fs.writeFileSync(openApiAbs, [
|
|
1115
|
-
"openapi: 3.0.0", "info:", " title: Users API", " version: '1.0'",
|
|
1116
|
-
"paths:", " /users:", " get:", " responses:", " '200':",
|
|
1117
|
-
" description: OK",
|
|
1118
|
-
].join("\n"), "utf-8");
|
|
1119
|
-
const compliantApiContent = [
|
|
1120
|
-
"# API 接口规格", "## 接口概览", "提供分页用户列表查询。", "## 请求响应规范",
|
|
1121
|
-
"### GET /users", "#### 请求字段表",
|
|
1122
|
-
"| 请求字段名 | 类型 | 必填 | 来源 | 说明 | 示例 | 校验规则 | 错误语义 |",
|
|
1123
|
-
"| --- | --- | --- | --- | --- | --- | --- | --- |",
|
|
1124
|
-
"| page | number | 否 | query | 页码 | 1 | >= 1 | 页码无效 |",
|
|
1125
|
-
"#### 响应字段表",
|
|
1126
|
-
"| 响应字段名 | 类型 | 必填 | 来源 | 说明 | 示例 | 校验规则 | 错误语义 |",
|
|
1127
|
-
"| --- | --- | --- | --- | --- | --- | --- | --- |",
|
|
1128
|
-
"| data | array | 是 | response | 用户列表 | [] | array | 无 |",
|
|
1129
|
-
].join("\n");
|
|
1130
|
-
fs.writeFileSync(artifactAbs, `draft\n\n${compliantApiContent}`, "utf-8");
|
|
1131
|
-
await harness.setupPlanGate(taskId);
|
|
1132
|
-
const ver1 = harness.parseResult(await harness.callTool("sf_verify", { task_id: taskId, changed_files: [artifactPath], confirm: true }));
|
|
1133
|
-
if (ver1.diagnostic_code !== "SF-CONTRACT-DRAFT")
|
|
1134
|
-
return { scenario_id: "release-scenario-template-contract-repair-directive", status: "fail", error: `expected SF-CONTRACT-DRAFT, got ${ver1.diagnostic_code ?? "none"}: ${ver1.error ?? JSON.stringify(ver1).slice(0, 240)}` };
|
|
1135
|
-
const ctx1 = await tc.load(taskId);
|
|
1136
|
-
if (!ctx1?.repair_reverify_directive?.blocked)
|
|
1137
|
-
return { scenario_id: "release-scenario-template-contract-repair-directive", status: "fail", error: "directive not blocked" };
|
|
1138
|
-
const blockedDeliver = harness.parseResult(await harness.callTool("sf_deliver", { task_id: taskId, confirm: true }));
|
|
1139
|
-
if (blockedDeliver.diagnostic_code !== "SF-CONTRACT-0003")
|
|
1140
|
-
return { scenario_id: "release-scenario-template-contract-repair-directive", status: "fail", error: `expected delivery SF-CONTRACT-0003, got ${blockedDeliver.diagnostic_code ?? "none"}` };
|
|
1141
|
-
await harness.callTool("sf_learn", { task_id: taskId, result: "failure", failure_type: "integration" });
|
|
1142
|
-
fs.writeFileSync(artifactAbs, compliantApiContent, "utf-8");
|
|
1143
|
-
const ver2 = harness.parseResult(await harness.callTool("sf_verify", { task_id: taskId, changed_files: [artifactPath], confirm: true }));
|
|
1144
|
-
const ctx2 = await tc.load(taskId);
|
|
1145
|
-
if (ctx2?.repair_reverify_directive?.blocked)
|
|
1146
|
-
return { scenario_id: "release-scenario-template-contract-repair-directive", status: "fail", error: "directive not cleared after fix" };
|
|
1147
|
-
if (ver2.diagnostic_code === "SF-CONTRACT-DRAFT" || ver2.diagnostic_code === "SF-CONTRACT-0003")
|
|
1148
|
-
return { scenario_id: "release-scenario-template-contract-repair-directive", status: "fail", error: `sf_verify still failing, code=${ver2.diagnostic_code}` };
|
|
1149
|
-
if (ctx2?.artifact_output?.status !== "verified")
|
|
1150
|
-
return { scenario_id: "release-scenario-template-contract-repair-directive", status: "fail", error: `artifact did not reach verified: ${ctx2?.artifact_output?.status}; verification=${JSON.stringify(ver2.artifact_verification ?? ver2.artifact_warning ?? ver2).slice(0, 300)}` };
|
|
1151
|
-
const ctxForV = await tc.load(taskId);
|
|
1152
|
-
if (!ctxForV?.verification_plan)
|
|
1153
|
-
return { scenario_id: "release-scenario-template-contract-repair-directive", status: "fail", error: "no verification_plan after sf_verify" };
|
|
1154
|
-
await harness.callTool("sf_record_verification_execution", {
|
|
1155
|
-
task_id: taskId,
|
|
1156
|
-
plan_id: ctxForV.verification_plan.plan_id,
|
|
1157
|
-
execution_records: ctxForV.verification_plan.commands.map((cmd, i) => ({
|
|
1158
|
-
command: cmd, exit_code: 0,
|
|
1159
|
-
stdout_hash: "a".repeat(64), stderr_hash: "e".repeat(64),
|
|
1160
|
-
started_at: new Date().toISOString(), finished_at: new Date().toISOString(),
|
|
1161
|
-
evidence_id: `evidence-${taskId}-${i}`,
|
|
1162
|
-
})),
|
|
1163
|
-
});
|
|
1164
|
-
const accept = harness.parseResult(await harness.callTool("sf_accept", {
|
|
1165
|
-
task_id: taskId, confirm: true, confirmed_by: "release-reviewer",
|
|
1166
|
-
confirmation_ref: `api-artifact:${taskId}`, acceptance_notes: "API 字段表与响应结构已人工确认",
|
|
1167
|
-
run_mode: "not_applicable",
|
|
1168
|
-
}));
|
|
1169
|
-
if (accept.artifact_transition !== "accepted")
|
|
1170
|
-
return { scenario_id: "release-scenario-template-contract-repair-directive", status: "fail", error: `artifact acceptance failed: ${accept.error ?? accept.artifact_transition}` };
|
|
1171
|
-
const del = harness.parseResult(await harness.callTool("sf_deliver", { task_id: taskId, confirm: true }));
|
|
1172
|
-
if (del.diagnostic_code)
|
|
1173
|
-
return { scenario_id: "release-scenario-template-contract-repair-directive", status: "fail", error: `sf_deliver still blocked: ${del.diagnostic_code}, error=${del.error ?? "none"}` };
|
|
1174
|
-
const delObs = harness.getObservations().slice().reverse().find(o => o.tool_name === "sf_deliver");
|
|
1175
|
-
if (!delObs || delObs.is_error)
|
|
1176
|
-
return { scenario_id: "release-scenario-template-contract-repair-directive", status: "fail", error: `sf_deliver observation error: ${delObs?.parsed_response?.error ?? "no obs"}` };
|
|
1177
|
-
const finalCtx = await tc.load(taskId);
|
|
1178
|
-
if (!finalCtx)
|
|
1179
|
-
return { scenario_id: "release-scenario-template-contract-repair-directive", status: "fail", error: "task context lost after delivery" };
|
|
1180
|
-
const trace = await harness.collectTrace();
|
|
1181
|
-
return {
|
|
1182
|
-
scenario_id: "release-scenario-template-contract-repair-directive",
|
|
1183
|
-
status: "pass",
|
|
1184
|
-
evidence: `task=${taskId} artifact=${finalCtx.artifact_output?.status} directive_cleared=${!finalCtx.repair_reverify_directive} delivered=${!delObs.is_error}`,
|
|
1185
|
-
production_trace: trace,
|
|
1186
|
-
behavioral_proof: {
|
|
1187
|
-
task_id: taskId, blocked_task_id: taskId, delivered_task_id: taskId,
|
|
1188
|
-
contract_blocked: blockedDeliver.diagnostic_code === "SF-CONTRACT-0003",
|
|
1189
|
-
repair_directive_cleared: !finalCtx.repair_reverify_directive,
|
|
1190
|
-
artifact_status: finalCtx.artifact_output?.status,
|
|
1191
|
-
acceptance_confirmation_ref: `api-artifact:${taskId}`,
|
|
1192
|
-
delivery_succeeded: !delObs.is_error,
|
|
1193
|
-
},
|
|
1194
|
-
};
|
|
1195
|
-
}
|
|
1196
|
-
finally {
|
|
1197
|
-
harness.cleanup();
|
|
1198
|
-
}
|
|
1199
|
-
},
|
|
1200
|
-
},
|
|
1201
|
-
// ── 问题六十四: 模板可见性 ──
|
|
1202
|
-
// 场景 23: internal_runtime 资产全部 validation_result=pass
|
|
1203
|
-
{
|
|
1204
|
-
scenario_id: "release-scenario-template-visibility-fresh-init",
|
|
1205
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
1206
|
-
production_entrypoint: "observed_consumption.observeAllConsumption",
|
|
1207
|
-
expected_outcome: "internal_runtime 资产全部 validation_result=pass(无 visibility fail)",
|
|
1208
|
-
runner: async () => {
|
|
1209
|
-
const { observeAllConsumption } = await import("./observed_consumption.js");
|
|
1210
|
-
const report = await observeAllConsumption(process.cwd());
|
|
1211
|
-
const visFails = report.observations.filter((o) => o.consume_category === "internal_runtime" && o.validation_result === "fail");
|
|
1212
|
-
if (visFails.length > 0)
|
|
1213
|
-
return { scenario_id: "release-scenario-template-visibility-fresh-init", status: "fail", error: `${visFails.length} internal_runtime visibility fails: ${visFails.map((o) => o.asset_path).join(",")}` };
|
|
1214
|
-
return {
|
|
1215
|
-
scenario_id: "release-scenario-template-visibility-fresh-init",
|
|
1216
|
-
status: "pass",
|
|
1217
|
-
evidence: `${report.total} assets, ${report.pass} pass, 0 visibility fail`,
|
|
1218
|
-
production_trace: { tool_entrypoint: "observeAllConsumption", diagnostic_codes: [`total:${report.total}`, `pass:${report.pass}`], gates_consumed: ["contract_gate", "engine_contract"] },
|
|
1219
|
-
};
|
|
1220
|
-
},
|
|
1221
|
-
},
|
|
1222
|
-
// 场景 24: internal_runtime 资产全部 contract_decision=denied
|
|
1223
|
-
{
|
|
1224
|
-
scenario_id: "release-scenario-template-visibility-internal-leak",
|
|
1225
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
1226
|
-
production_entrypoint: "observed_consumption.observeAllConsumption",
|
|
1227
|
-
expected_outcome: "internal_runtime 资产全部 contract_decision=denied",
|
|
1228
|
-
runner: async () => {
|
|
1229
|
-
const { observeAllConsumption } = await import("./observed_consumption.js");
|
|
1230
|
-
const report = await observeAllConsumption(process.cwd());
|
|
1231
|
-
const notDenied = report.observations.filter((o) => o.consume_category === "internal_runtime" && o.contract_decision !== "denied");
|
|
1232
|
-
if (notDenied.length > 0)
|
|
1233
|
-
return { scenario_id: "release-scenario-template-visibility-internal-leak", status: "fail", error: `not denied: ${notDenied.map((o) => o.asset_path).join(", ")}` };
|
|
1234
|
-
return {
|
|
1235
|
-
scenario_id: "release-scenario-template-visibility-internal-leak",
|
|
1236
|
-
status: "pass",
|
|
1237
|
-
evidence: "all internal_runtime denied",
|
|
1238
|
-
production_trace: { tool_entrypoint: "observeAllConsumption", diagnostic_codes: ["all_denied"], gates_consumed: ["contract_gate", "engine_contract"] },
|
|
1239
|
-
};
|
|
1240
|
-
},
|
|
1241
|
-
},
|
|
1242
|
-
// 场景 25: 内置模板回退 → syncable + copy
|
|
1243
|
-
{
|
|
1244
|
-
scenario_id: "release-scenario-template-visibility-builtin-fallback",
|
|
1245
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
1246
|
-
production_entrypoint: "template_asset_contract_registry.getSyncableAssetPaths + template_init_sync.copyKnowledgeToProject",
|
|
1247
|
-
expected_outcome: "syncable 路径数量 > 0 且 init 后实际生成文件数 > 0",
|
|
1248
|
-
runner: async () => {
|
|
1249
|
-
const { getSyncableAssetPaths } = await import("./template_asset_contract_registry.js");
|
|
1250
|
-
const { copyKnowledgeToProject } = await import("./template_init_sync.js");
|
|
1251
|
-
const syncable = getSyncableAssetPaths();
|
|
1252
|
-
if (syncable.length === 0)
|
|
1253
|
-
return { scenario_id: "release-scenario-template-visibility-builtin-fallback", status: "fail", error: "no syncable assets" };
|
|
1254
|
-
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "soloforge-builtin-"));
|
|
1255
|
-
try {
|
|
1256
|
-
const result = await copyKnowledgeToProject(process.cwd(), tmpDir);
|
|
1257
|
-
if (result.copied === 0)
|
|
1258
|
-
return { scenario_id: "release-scenario-template-visibility-builtin-fallback", status: "fail", error: "copyKnowledgeToProject copied 0 files" };
|
|
1259
|
-
return {
|
|
1260
|
-
scenario_id: "release-scenario-template-visibility-builtin-fallback",
|
|
1261
|
-
status: "pass",
|
|
1262
|
-
evidence: `syncable=${syncable.length} copied=${result.copied}`,
|
|
1263
|
-
production_trace: { tool_entrypoint: "copyKnowledgeToProject", diagnostic_codes: [`syncable:${syncable.length}`, `copied:${result.copied}`], gates_consumed: ["sync_templates", "init", "engine_contract"] },
|
|
1264
|
-
};
|
|
1265
|
-
}
|
|
1266
|
-
finally {
|
|
1267
|
-
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
1268
|
-
}
|
|
1269
|
-
},
|
|
1270
|
-
},
|
|
1271
|
-
// 场景 26: 技术栈过滤 — 真实 sf_scaffold 工具消费真实受限资产。
|
|
1272
|
-
{
|
|
1273
|
-
scenario_id: "release-scenario-template-visibility-tech-stack",
|
|
1274
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
1275
|
-
production_entrypoint: "sf_classify→sf_expand→sf_scaffold→scaffolder.generateScaffold",
|
|
1276
|
-
expected_outcome: "React 仅生成前端资产、Spring Boot 仅生成后端资产、不支持栈不生成内置脚手架",
|
|
1277
|
-
runner: async () => {
|
|
1278
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
1279
|
-
const { buildTemplateAssetContracts } = await import("./template_asset_contract_registry.js");
|
|
1280
|
-
const contracts = buildTemplateAssetContracts(process.cwd());
|
|
1281
|
-
const restricted = contracts.filter((contract) => contract.asset_kind === "scaffold" && contract.applicable_tech_stack.length > 0);
|
|
1282
|
-
if (restricted.length !== 18)
|
|
1283
|
-
return { scenario_id: "release-scenario-template-visibility-tech-stack", status: "fail", error: `expected 18 restricted scaffold contracts, got ${restricted.length}` };
|
|
1284
|
-
const run = async (techStack) => {
|
|
1285
|
-
const harness = await createToolHarness({ techStack });
|
|
1286
|
-
try {
|
|
1287
|
-
const cls = harness.parseResult(await harness.callTool("sf_classify", { intent: "使用脚手架创建用户管理模块" }));
|
|
1288
|
-
if (!cls.task_id)
|
|
1289
|
-
throw new Error("sf_classify 未返回 task_id");
|
|
1290
|
-
await harness.callTool("sf_expand", { task_id: cls.task_id });
|
|
1291
|
-
await harness.setupPlanGate(cls.task_id);
|
|
1292
|
-
const response = harness.parseResult(await harness.callTool("sf_scaffold", { task_id: cls.task_id }));
|
|
1293
|
-
return { response, trace: await harness.collectTrace() };
|
|
1294
|
-
}
|
|
1295
|
-
finally {
|
|
1296
|
-
harness.cleanup();
|
|
1297
|
-
}
|
|
1298
|
-
};
|
|
1299
|
-
const react = await run({ backend: { lang: "go", framework: "gin", version: "1" }, frontend: { lang: "typescript", framework: "react", version: "18" } });
|
|
1300
|
-
const spring = await run({ backend: { lang: "java", framework: "spring-boot", version: "3" }, frontend: { lang: "none", framework: "none", version: "0" } });
|
|
1301
|
-
const unsupported = await run({ backend: { lang: "python", framework: "django", version: "5" }, frontend: { lang: "typescript", framework: "angular", version: "18" } });
|
|
1302
|
-
const reactFiles = react.response.files ?? [];
|
|
1303
|
-
const springFiles = spring.response.files ?? [];
|
|
1304
|
-
const unsupportedFiles = unsupported.response.files ?? [];
|
|
1305
|
-
if (reactFiles.length === 0 || reactFiles.some((file) => file.path.endsWith(".java")))
|
|
1306
|
-
return { scenario_id: "release-scenario-template-visibility-tech-stack", status: "fail", error: "React 脚手架生成结果含后端 Java 资产或为空" };
|
|
1307
|
-
if (springFiles.length === 0 || springFiles.some((file) => /\.tsx?$/.test(file.path)))
|
|
1308
|
-
return { scenario_id: "release-scenario-template-visibility-tech-stack", status: "fail", error: "Spring Boot 脚手架生成结果含 React 资产或为空" };
|
|
1309
|
-
if (unsupportedFiles.length !== 0)
|
|
1310
|
-
return { scenario_id: "release-scenario-template-visibility-tech-stack", status: "fail", error: `不支持技术栈错误生成 ${unsupportedFiles.length} 个内置文件` };
|
|
1311
|
-
return {
|
|
1312
|
-
scenario_id: "release-scenario-template-visibility-tech-stack",
|
|
1313
|
-
status: "pass",
|
|
1314
|
-
evidence: `restricted=${restricted.length} react=${reactFiles.length} spring=${springFiles.length} unsupported=0`,
|
|
1315
|
-
production_trace: { tool_entrypoint: react.trace.tool_entrypoint, diagnostic_codes: [`restricted:${restricted.length}`, `react:${reactFiles.length}`, `spring:${springFiles.length}`, "unsupported:0"], gates_consumed: [...new Set([...react.trace.gates_consumed, ...spring.trace.gates_consumed])] },
|
|
1316
|
-
};
|
|
1317
|
-
},
|
|
1318
|
-
},
|
|
1319
|
-
// 场景 27: 用户可见资产不含内部术语
|
|
1320
|
-
{
|
|
1321
|
-
scenario_id: "release-scenario-template-visibility-user-visible-terms",
|
|
1322
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
1323
|
-
production_entrypoint: "template_asset_contract_registry.buildTemplateAssetContracts",
|
|
1324
|
-
expected_outcome: "user_visible=true 的资产文件必须存在且内容不含 Batch/validate-release/Registry 等内部术语;合同标记用户可见而实体文件缺失必须 fail",
|
|
1325
|
-
runner: async () => {
|
|
1326
|
-
const { buildTemplateAssetContracts } = await import("./template_asset_contract_registry.js");
|
|
1327
|
-
const contracts = buildTemplateAssetContracts(process.cwd());
|
|
1328
|
-
const userVisible = contracts.filter((c) => c.user_visible === true && c.sync_to_user_project);
|
|
1329
|
-
if (userVisible.length === 0)
|
|
1330
|
-
return { scenario_id: "release-scenario-template-visibility-user-visible-terms", status: "fail", error: "no user_visible syncable assets" };
|
|
1331
|
-
const internalTerms = [`Batch${6}`, "validate-release", "implementation_roadmap", `BATCH${6}_SCENARIO`];
|
|
1332
|
-
const violations = [];
|
|
1333
|
-
for (const c of userVisible) {
|
|
1334
|
-
const absPath = path.join(process.cwd(), c.path);
|
|
1335
|
-
// 合同标记用户可见而实体文件缺失必须 fail(不得 continue 跳过)
|
|
1336
|
-
if (!fs.existsSync(absPath))
|
|
1337
|
-
return { scenario_id: "release-scenario-template-visibility-user-visible-terms", status: "fail", error: `用户可见合同 ${c.path} 标记 sync_to_user_project 但文件不存在: ${absPath}` };
|
|
1338
|
-
const content = fs.readFileSync(absPath, "utf-8");
|
|
1339
|
-
for (const term of internalTerms) {
|
|
1340
|
-
if (content.includes(term))
|
|
1341
|
-
violations.push(`${c.path}: ${term}`);
|
|
1342
|
-
}
|
|
1343
|
-
}
|
|
1344
|
-
if (violations.length > 0)
|
|
1345
|
-
return { scenario_id: "release-scenario-template-visibility-user-visible-terms", status: "fail", error: `internal terms found: ${violations.join("; ")}` };
|
|
1346
|
-
return {
|
|
1347
|
-
scenario_id: "release-scenario-template-visibility-user-visible-terms",
|
|
1348
|
-
status: "pass",
|
|
1349
|
-
evidence: `${userVisible.length} user_visible assets, 0 internal term violations`,
|
|
1350
|
-
production_trace: { tool_entrypoint: "buildTemplateAssetContracts", diagnostic_codes: [`userVisible:${userVisible.length}`, `violations:0`], gates_consumed: ["contract_gate", "engine_contract"] },
|
|
1351
|
-
};
|
|
1352
|
-
},
|
|
1353
|
-
},
|
|
1354
|
-
// 场景 28: copy→KIM→sf_classify→sf_expand 完整链路 + index_only/injectable 验证
|
|
1355
|
-
{
|
|
1356
|
-
scenario_id: "release-scenario-template-visibility-old-project-migration",
|
|
1357
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
1358
|
-
production_entrypoint: "sf_classify → sf_expand (via createToolHarness + copyKnowledge)",
|
|
1359
|
-
expected_outcome: "init 后 KIM 索引同步资产;内部资产零泄漏;至少一条 index_only 资产已索引但其独特内容未进入 prompt/matched_knowledge;injectable 资产在适用路由可被召回",
|
|
1360
|
-
runner: async () => {
|
|
1361
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
1362
|
-
const { buildTemplateAssetContracts } = await import("./template_asset_contract_registry.js");
|
|
1363
|
-
const harness = await createToolHarness({ copyKnowledge: true });
|
|
1364
|
-
try {
|
|
1365
|
-
const all = harness.knowledgeIndex.getAllEntries();
|
|
1366
|
-
// 内部资产不应被索引
|
|
1367
|
-
const leaked = all.project.find((e) => e.name?.includes("标准资产覆盖") || e.name?.includes("演进回归"));
|
|
1368
|
-
if (leaked)
|
|
1369
|
-
return { scenario_id: "release-scenario-template-visibility-old-project-migration", status: "fail", error: `internal asset leaked: ${leaked.name}` };
|
|
1370
|
-
// sf_classify → sf_expand 完整链路
|
|
1371
|
-
const clsRaw = await harness.callTool("sf_classify", { intent: "创建用户管理 API" });
|
|
1372
|
-
const cls = harness.parseResult(clsRaw);
|
|
1373
|
-
if (!cls.task_id)
|
|
1374
|
-
return { scenario_id: "release-scenario-template-visibility-old-project-migration", status: "fail", error: "sf_classify did not return task_id" };
|
|
1375
|
-
const expRaw = await harness.callTool("sf_expand", { task_id: cls.task_id });
|
|
1376
|
-
const exp = harness.parseResult(expRaw);
|
|
1377
|
-
if (exp.degraded)
|
|
1378
|
-
return { scenario_id: "release-scenario-template-visibility-old-project-migration", status: "fail", error: `sf_expand degraded: ${exp.prompt?.slice(0, 200)}` };
|
|
1379
|
-
// 验证 domain 资产被索引
|
|
1380
|
-
const domainEntry = all.project.find((e) => { const n = e.file_path?.replace(/\\/g, "/") ?? ""; return n.includes("domain/"); });
|
|
1381
|
-
if (!domainEntry)
|
|
1382
|
-
return { scenario_id: "release-scenario-template-visibility-old-project-migration", status: "fail", error: "no domain entries indexed" };
|
|
1383
|
-
// 验证 index_only 资产已索引但其独特内容不进入 prompt/matched_knowledge
|
|
1384
|
-
const contracts = buildTemplateAssetContracts(process.cwd());
|
|
1385
|
-
const indexOnlyContracts = contracts.filter((c) => c.runtime_visibility === "index_only");
|
|
1386
|
-
if (indexOnlyContracts.length === 0)
|
|
1387
|
-
return { scenario_id: "release-scenario-template-visibility-old-project-migration", status: "fail", error: "no index_only contracts found" };
|
|
1388
|
-
// 找一条已索引的 index_only 资产
|
|
1389
|
-
const indexedIndexOnly = indexOnlyContracts.find((c) => {
|
|
1390
|
-
const fileName = path.basename(c.path, ".md");
|
|
1391
|
-
return all.project.some((e) => e.file_path?.includes(fileName));
|
|
1392
|
-
});
|
|
1393
|
-
if (!indexedIndexOnly)
|
|
1394
|
-
return { scenario_id: "release-scenario-template-visibility-old-project-migration", status: "fail", error: "no index_only asset found in index" };
|
|
1395
|
-
// 验证 index_only 不在 matched_knowledge 中
|
|
1396
|
-
const matchedIds = (exp.matched_knowledge ?? []).map((k) => k.id ?? k.name);
|
|
1397
|
-
const indexOnlyName = path.basename(indexedIndexOnly.path, ".md");
|
|
1398
|
-
const leakedToMatched = matchedIds.some((id) => id?.includes(indexOnlyName));
|
|
1399
|
-
if (leakedToMatched)
|
|
1400
|
-
return { scenario_id: "release-scenario-template-visibility-old-project-migration", status: "fail", error: `index_only asset ${indexOnlyName} leaked to matched_knowledge` };
|
|
1401
|
-
// 验证 index_only 独特内容不在 prompt 中
|
|
1402
|
-
const indexOnlyEntry = all.project.find((e) => e.file_path?.includes(indexOnlyName));
|
|
1403
|
-
if (indexOnlyEntry?.body) {
|
|
1404
|
-
const uniqueContent = indexOnlyEntry.body.slice(0, 80);
|
|
1405
|
-
if (exp.prompt && exp.prompt.includes(uniqueContent))
|
|
1406
|
-
return { scenario_id: "release-scenario-template-visibility-old-project-migration", status: "fail", error: `index_only asset content leaked to prompt: ${uniqueContent.slice(0, 40)}` };
|
|
1407
|
-
}
|
|
1408
|
-
// tool_entrypoint 由 ToolInvocationObservation 自动生成
|
|
1409
|
-
const trace = await harness.collectTrace();
|
|
1410
|
-
return {
|
|
1411
|
-
scenario_id: "release-scenario-template-visibility-old-project-migration",
|
|
1412
|
-
status: "pass",
|
|
1413
|
-
evidence: `indexed=${all.project.length} no internal leaks index_only=${indexOnlyName} not in prompt/matched domain found`,
|
|
1414
|
-
production_trace: trace,
|
|
1415
|
-
};
|
|
1416
|
-
}
|
|
1417
|
-
finally {
|
|
1418
|
-
harness.cleanup();
|
|
1419
|
-
}
|
|
1420
|
-
},
|
|
1421
|
-
},
|
|
1422
|
-
// 场景 29: scaffold 边界 — 真实 sf_scaffold MCP 工具调用
|
|
1423
|
-
{
|
|
1424
|
-
scenario_id: "release-scenario-template-visibility-scaffold-boundary",
|
|
1425
|
-
test_files: ["tests/engine/release_issue_scenario_matrix.test.ts"],
|
|
1426
|
-
production_entrypoint: "sf_classify→sf_expand→sf_scaffold + template_asset_contract_registry.getSyncableAssetPaths",
|
|
1427
|
-
expected_outcome: "scaffold 合同不出现在同步列表; sf_scaffold 真实调用返回生成文件列表且无 .hbs 文件泄漏到用户项目",
|
|
1428
|
-
runner: async () => {
|
|
1429
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
1430
|
-
const { buildTemplateAssetContracts, getSyncableAssetPaths } = await import("./template_asset_contract_registry.js");
|
|
1431
|
-
// 合同边界: scaffold 不在 syncable 列表
|
|
1432
|
-
const contracts = buildTemplateAssetContracts(process.cwd());
|
|
1433
|
-
const scaffoldContracts = contracts.filter((c) => c.asset_kind === "scaffold");
|
|
1434
|
-
if (scaffoldContracts.length === 0)
|
|
1435
|
-
return { scenario_id: "release-scenario-template-visibility-scaffold-boundary", status: "fail", error: "no scaffold contracts" };
|
|
1436
|
-
const syncable = new Set(getSyncableAssetPaths());
|
|
1437
|
-
const leaked = scaffoldContracts.filter((sc) => syncable.has(sc.path));
|
|
1438
|
-
if (leaked.length > 0)
|
|
1439
|
-
return { scenario_id: "release-scenario-template-visibility-scaffold-boundary", status: "fail", error: `scaffolds in syncable: ${leaked.map((s) => s.path).join(", ")}` };
|
|
1440
|
-
// 真实 sf_scaffold 工具调用
|
|
1441
|
-
const harness = await createToolHarness();
|
|
1442
|
-
try {
|
|
1443
|
-
const clsRaw = await harness.callTool("sf_classify", { intent: "使用脚手架创建用户管理模块" });
|
|
1444
|
-
const cls = harness.parseResult(clsRaw);
|
|
1445
|
-
const taskId = cls.task_id;
|
|
1446
|
-
if (!taskId)
|
|
1447
|
-
return { scenario_id: "release-scenario-template-visibility-scaffold-boundary", status: "fail", error: "sf_classify 未返回 task_id" };
|
|
1448
|
-
const expRaw = await harness.callTool("sf_expand", { task_id: taskId });
|
|
1449
|
-
const exp = harness.parseResult(expRaw);
|
|
1450
|
-
await harness.setupPlanGate(taskId);
|
|
1451
|
-
const scfRaw = await harness.callTool("sf_scaffold", { task_id: taskId });
|
|
1452
|
-
const scf = harness.parseResult(scfRaw);
|
|
1453
|
-
// sf_scaffold 必须返回结果(非错误)
|
|
1454
|
-
const scfObs = harness.getLastObservation();
|
|
1455
|
-
if (scfObs?.is_error && scf?.error?.includes("仅适用于 scaffold"))
|
|
1456
|
-
return { scenario_id: "release-scenario-template-visibility-scaffold-boundary", status: "fail", error: `sf_scaffold rejected: task_type=${cls.classification?.task_type ?? "unknown"}, expected scaffold` };
|
|
1457
|
-
// sf_scaffold 结果应包含 generated_files 或 templates_applied
|
|
1458
|
-
const hasFiles = Array.isArray(scf?.generated_files) || Array.isArray(scf?.templates_applied) || Array.isArray(scf?.files);
|
|
1459
|
-
if (!hasFiles && !scf?.error)
|
|
1460
|
-
return { scenario_id: "release-scenario-template-visibility-scaffold-boundary", status: "fail", error: `sf_scaffold returned no file list: ${JSON.stringify(scf).slice(0, 300)}` };
|
|
1461
|
-
const trace = await harness.collectTrace();
|
|
1462
|
-
// 补充诊断码(sf_scaffold 不返回诊断码,从观察记录提取)
|
|
1463
|
-
if (trace.diagnostic_codes.length === 0) {
|
|
1464
|
-
const scaffoldObs = harness.getObservations().find(o => o.tool_name === "sf_scaffold");
|
|
1465
|
-
trace.diagnostic_codes = [`scaffold_files:${scf?.total_files ?? scf?.files?.length ?? 0}`, `contracts:${scaffoldContracts.length}`];
|
|
1466
|
-
}
|
|
1467
|
-
return {
|
|
1468
|
-
scenario_id: "release-scenario-template-visibility-scaffold-boundary",
|
|
1469
|
-
status: "pass",
|
|
1470
|
-
evidence: `scaffolds=${scaffoldContracts.length} leaked=0 sf_scaffold=${scf?.total_files ?? scf?.files?.length ?? "?"} files generated`,
|
|
1471
|
-
production_trace: trace,
|
|
1472
|
-
};
|
|
1473
|
-
}
|
|
1474
|
-
finally {
|
|
1475
|
-
harness.cleanup();
|
|
1476
|
-
}
|
|
1477
|
-
},
|
|
1478
|
-
},
|
|
1479
|
-
// ── 问题六十八: 代码可维护性与可观测性契约 ──
|
|
1480
|
-
{
|
|
1481
|
-
scenario_id: "release-scenario-code-observability-payment-status-no-log",
|
|
1482
|
-
test_files: ["tests/engine/code_maintainability_observability_contract.test.ts"],
|
|
1483
|
-
production_entrypoint: "sf_expand → CodeObservabilityGate → sf_review → reviewMissingLogs → sf_deliver → evaluateDeliveryBlock",
|
|
1484
|
-
expected_outcome: "支付/账单状态更新缺少业务日志 → hard_fail 阻断交付",
|
|
1485
|
-
runner: async () => {
|
|
1486
|
-
const mod = await import("./code_maintainability_observability_contract.js");
|
|
1487
|
-
const findings = mod.reviewMissingLogs({
|
|
1488
|
-
"PaymentService.java": `public void refund(String orderId, BigDecimal amount) {
|
|
1489
|
-
orderRepository.save(order);
|
|
1490
|
-
paymentGateway.refund(orderId, amount);
|
|
1491
|
-
}`,
|
|
1492
|
-
});
|
|
1493
|
-
const blocked = mod.hasBlockingObservabilityFindings(findings);
|
|
1494
|
-
return {
|
|
1495
|
-
scenario_id: "release-scenario-code-observability-payment-status-no-log",
|
|
1496
|
-
status: blocked ? "pass" : "fail",
|
|
1497
|
-
evidence: blocked ? "hard_fail: 支付写操作无日志被检测到" : "未检测到支付写操作无日志",
|
|
1498
|
-
production_trace: { tool_entrypoint: "reviewMissingLogs", diagnostic_codes: [blocked ? "hard_fail" : "missed"], gates_consumed: ["sf_review", "engine_contract"] },
|
|
1499
|
-
};
|
|
1500
|
-
},
|
|
1501
|
-
},
|
|
1502
|
-
{
|
|
1503
|
-
scenario_id: "release-scenario-code-observability-permission-denied-no-log",
|
|
1504
|
-
test_files: ["tests/engine/code_maintainability_observability_contract.test.ts"],
|
|
1505
|
-
production_entrypoint: "sf_expand → CodeObservabilityGate → sf_review → reviewMissingLogs → sf_deliver → evaluateDeliveryBlock",
|
|
1506
|
-
expected_outcome: "权限拒绝无安全日志 → hard_fail 阻断",
|
|
1507
|
-
runner: async () => {
|
|
1508
|
-
const mod = await import("./code_maintainability_observability_contract.js");
|
|
1509
|
-
const findings = mod.reviewMissingLogs({
|
|
1510
|
-
"AuthController.java": `public void checkPermission(String userId, String resource) {
|
|
1511
|
-
if (!roleService.hasAccess(userId, resource)) {
|
|
1512
|
-
throw new AccessDeniedException("forbidden");
|
|
1513
|
-
}
|
|
1514
|
-
}`,
|
|
1515
|
-
});
|
|
1516
|
-
const blocked = mod.hasBlockingObservabilityFindings(findings);
|
|
1517
|
-
return {
|
|
1518
|
-
scenario_id: "release-scenario-code-observability-permission-denied-no-log",
|
|
1519
|
-
status: blocked ? "pass" : "fail",
|
|
1520
|
-
evidence: blocked ? "hard_fail: 权限拒绝无日志被检测到" : "未检测到权限拒绝无日志",
|
|
1521
|
-
production_trace: { tool_entrypoint: "reviewMissingLogs", diagnostic_codes: [blocked ? "hard_fail" : "missed"], gates_consumed: ["sf_review", "engine_contract"] },
|
|
1522
|
-
};
|
|
1523
|
-
},
|
|
1524
|
-
},
|
|
1525
|
-
{
|
|
1526
|
-
scenario_id: "release-scenario-code-observability-catch-swallow",
|
|
1527
|
-
test_files: ["tests/engine/code_maintainability_observability_contract.test.ts"],
|
|
1528
|
-
production_entrypoint: "sf_expand → CodeObservabilityGate → sf_review → reviewMissingLogs → sf_deliver → evaluateDeliveryBlock",
|
|
1529
|
-
expected_outcome: "catch 后吞异常无日志 → hard_fail 阻断",
|
|
1530
|
-
runner: async () => {
|
|
1531
|
-
const mod = await import("./code_maintainability_observability_contract.js");
|
|
1532
|
-
const findings = mod.reviewMissingLogs({
|
|
1533
|
-
"OrderService.ts": `async processOrder(orderId: string) {
|
|
1534
|
-
try {
|
|
1535
|
-
await this.client.submit(orderId);
|
|
1536
|
-
} catch (e: unknown) {
|
|
1537
|
-
return false;
|
|
1538
|
-
}
|
|
1539
|
-
}`,
|
|
1540
|
-
});
|
|
1541
|
-
const blocked = mod.hasBlockingObservabilityFindings(findings);
|
|
1542
|
-
return {
|
|
1543
|
-
scenario_id: "release-scenario-code-observability-catch-swallow",
|
|
1544
|
-
status: blocked ? "pass" : "fail",
|
|
1545
|
-
evidence: blocked ? "hard_fail: catch 吞异常被检测到" : "未检测到 catch 吞异常",
|
|
1546
|
-
production_trace: { tool_entrypoint: "reviewMissingLogs", diagnostic_codes: [blocked ? "hard_fail" : "missed"], gates_consumed: ["sf_review", "engine_contract"] },
|
|
1547
|
-
};
|
|
1548
|
-
},
|
|
1549
|
-
},
|
|
1550
|
-
{
|
|
1551
|
-
scenario_id: "release-scenario-code-observability-sensitive-log",
|
|
1552
|
-
test_files: ["tests/engine/code_maintainability_observability_contract.test.ts"],
|
|
1553
|
-
production_entrypoint: "sf_expand → CodeObservabilityGate → sf_review → detectSensitiveLogs → sf_deliver → evaluateDeliveryBlock",
|
|
1554
|
-
expected_outcome: "日志输出 token/password/手机号全量 → hard_fail 阻断",
|
|
1555
|
-
runner: async () => {
|
|
1556
|
-
const mod = await import("./code_maintainability_observability_contract.js");
|
|
1557
|
-
const findings = mod.detectSensitiveLogs({
|
|
1558
|
-
"UserService.ts": `function login(user) {
|
|
1559
|
-
logger.info("user login", { token: "eyJhbGciOiJIUzI1NiJ9.xxxxx", password: user.password, phone: "13812345678" });
|
|
1560
|
-
}`,
|
|
1561
|
-
});
|
|
1562
|
-
const blocked = mod.hasBlockingObservabilityFindings(findings);
|
|
1563
|
-
return {
|
|
1564
|
-
scenario_id: "release-scenario-code-observability-sensitive-log",
|
|
1565
|
-
status: blocked ? "pass" : "fail",
|
|
1566
|
-
evidence: blocked ? `hard_fail: 敏感信息泄漏被检测到 (${findings.length} findings)` : "未检测到敏感信息泄漏",
|
|
1567
|
-
production_trace: { tool_entrypoint: "detectSensitiveLogs", diagnostic_codes: [blocked ? "hard_fail" : "missed"], gates_consumed: ["sf_review", "engine_contract"] },
|
|
1568
|
-
};
|
|
1569
|
-
},
|
|
1570
|
-
},
|
|
1571
|
-
{
|
|
1572
|
-
scenario_id: "release-scenario-code-observability-complex-rule-no-comment",
|
|
1573
|
-
test_files: ["tests/engine/code_maintainability_observability_contract.test.ts"],
|
|
1574
|
-
production_entrypoint: "sf_expand → CodeObservabilityGate → sf_review → reviewCommentQuality → sf_deliver",
|
|
1575
|
-
expected_outcome: "复杂金额计算无注释 → warning",
|
|
1576
|
-
runner: async () => {
|
|
1577
|
-
const mod = await import("./code_maintainability_observability_contract.js");
|
|
1578
|
-
const findings = mod.reviewCommentQuality({
|
|
1579
|
-
"BillingService.java": `// 金额计算逻辑
|
|
1580
|
-
public BigDecimal calculateSubsidy(Order order) {
|
|
1581
|
-
BigDecimal base = order.getAmount().multiply(new BigDecimal("0.8"));
|
|
1582
|
-
BigDecimal discount = base.subtract(order.getDeducted());
|
|
1583
|
-
return discount.max(BigDecimal.ZERO);
|
|
1584
|
-
}`,
|
|
1585
|
-
});
|
|
1586
|
-
const hasCommentWarning = findings.some(f => f.category === "missing_comment_complex");
|
|
1587
|
-
// 上面有注释不会触发缺失检测;下面测试无注释的负例:
|
|
1588
|
-
const findingsNoComment = mod.reviewCommentQuality({
|
|
1589
|
-
"金额计算/BillingService.java": `public BigDecimal calculateSubsidy(Order order) {
|
|
1590
|
-
BigDecimal base = order.getAmount().multiply(new BigDecimal("0.8"));
|
|
1591
|
-
BigDecimal discount = base.subtract(order.getDeducted());
|
|
1592
|
-
return discount.max(BigDecimal.ZERO);
|
|
1593
|
-
}`,
|
|
1594
|
-
});
|
|
1595
|
-
const detected = findingsNoComment.some(f => f.category === "missing_comment_complex");
|
|
1596
|
-
return {
|
|
1597
|
-
scenario_id: "release-scenario-code-observability-complex-rule-no-comment",
|
|
1598
|
-
status: detected ? "pass" : "fail",
|
|
1599
|
-
evidence: detected ? "warning: 无注释复杂逻辑被检测到" : "未检测到无注释复杂逻辑",
|
|
1600
|
-
production_trace: { tool_entrypoint: "reviewCommentQuality", diagnostic_codes: [detected ? "warning" : "missed"], gates_consumed: ["sf_review", "engine_contract"] },
|
|
1601
|
-
};
|
|
1602
|
-
},
|
|
1603
|
-
},
|
|
1604
|
-
{
|
|
1605
|
-
scenario_id: "release-scenario-code-observability-low-risk-skip",
|
|
1606
|
-
test_files: ["tests/engine/code_maintainability_observability_contract.test.ts"],
|
|
1607
|
-
production_entrypoint: "sf_classify → sf_expand (低风险) → 不触发可观测性门禁",
|
|
1608
|
-
expected_outcome: "简单文案修改不触发代码可维护性/可观测性契约",
|
|
1609
|
-
runner: async () => {
|
|
1610
|
-
const { createToolHarness } = await import("./release_tool_harness.js");
|
|
1611
|
-
const harness = await createToolHarness();
|
|
1612
|
-
try {
|
|
1613
|
-
const intent = "修复 README 文案错别字";
|
|
1614
|
-
const clsRaw = await harness.callTool("sf_classify", { intent });
|
|
1615
|
-
const cls = harness.parseResult(clsRaw);
|
|
1616
|
-
const taskId = cls.task_id;
|
|
1617
|
-
if (!taskId)
|
|
1618
|
-
return { scenario_id: "release-scenario-code-observability-low-risk-skip", status: "fail", error: "sf_classify 未返回 task_id" };
|
|
1619
|
-
const expRaw = await harness.callTool("sf_expand", { task_id: taskId });
|
|
1620
|
-
const exp = harness.parseResult(expRaw);
|
|
1621
|
-
// 低风险任务不应触发 SF-OBS-6801 诊断码
|
|
1622
|
-
const notBlocked = exp.diagnostic_code !== "SF-OBS-6801";
|
|
1623
|
-
return {
|
|
1624
|
-
scenario_id: "release-scenario-code-observability-low-risk-skip",
|
|
1625
|
-
status: notBlocked ? "pass" : "fail",
|
|
1626
|
-
evidence: notBlocked ? "低风险任务正确跳过可观测性门禁" : "低风险任务被错误触发可观测性门禁",
|
|
1627
|
-
production_trace: { tool_entrypoint: "sf_classify+sf_expand", diagnostic_codes: [exp.status ?? "ok", exp.diagnostic_code ?? "none"], gates_consumed: ["sf_classify", "sf_expand"] },
|
|
1628
|
-
};
|
|
1629
|
-
}
|
|
1630
|
-
catch (e) {
|
|
1631
|
-
return { scenario_id: "release-scenario-code-observability-low-risk-skip", status: "fail", error: e.message };
|
|
1632
|
-
}
|
|
1633
|
-
finally {
|
|
1634
|
-
await harness.cleanup();
|
|
1635
|
-
}
|
|
1636
|
-
},
|
|
1637
|
-
},
|
|
1638
|
-
{
|
|
1639
|
-
scenario_id: "release-scenario-code-observability-project-logger-detected",
|
|
1640
|
-
test_files: ["tests/engine/code_maintainability_observability_contract.test.ts"],
|
|
1641
|
-
production_entrypoint: "sf_expand → CodeObservabilityGate → detectProjectLogger",
|
|
1642
|
-
expected_outcome: "Java/Spring/Node/NestJS 项目能正确检测 logger 类型",
|
|
1643
|
-
runner: async () => {
|
|
1644
|
-
const mod = await import("./code_maintainability_observability_contract.js");
|
|
1645
|
-
const javaLogger = mod.detectProjectLogger({
|
|
1646
|
-
"Application.java": "import org.slf4j.LoggerFactory; private static final Logger log = LoggerFactory.getLogger(App.class);",
|
|
1647
|
-
});
|
|
1648
|
-
const pinoLogger = mod.detectProjectLogger({
|
|
1649
|
-
"index.ts": "import pino from 'pino'; const logger = pino();",
|
|
1650
|
-
});
|
|
1651
|
-
const nestjsLogger = mod.detectProjectLogger({
|
|
1652
|
-
"app.service.ts": "import { Logger } from '@nestjs/common';",
|
|
1653
|
-
});
|
|
1654
|
-
const ok = javaLogger.type === "slf4j" && pinoLogger.type === "pino" && nestjsLogger.type === "nestjs_logger";
|
|
1655
|
-
return {
|
|
1656
|
-
scenario_id: "release-scenario-code-observability-project-logger-detected",
|
|
1657
|
-
status: ok ? "pass" : "fail",
|
|
1658
|
-
evidence: ok ? `检测: ${javaLogger.type}, ${pinoLogger.type}, ${nestjsLogger.type}` : `检测失败: ${javaLogger.type}, ${pinoLogger.type}, ${nestjsLogger.type}`,
|
|
1659
|
-
production_trace: { tool_entrypoint: "detectProjectLogger", diagnostic_codes: [javaLogger.type, pinoLogger.type, nestjsLogger.type], gates_consumed: ["sf_expand", "engine_contract"] },
|
|
1660
|
-
};
|
|
1661
|
-
},
|
|
1662
|
-
},
|
|
1663
|
-
{
|
|
1664
|
-
scenario_id: "release-scenario-code-observability-migration-audit-log",
|
|
1665
|
-
test_files: ["tests/engine/code_maintainability_observability_contract.test.ts"],
|
|
1666
|
-
production_entrypoint: "sf_expand → CodeObservabilityGate → sf_review → reviewMissingLogs → sf_deliver",
|
|
1667
|
-
expected_outcome: "迁移脚本/数据修复无审计日志 → hard_fail",
|
|
1668
|
-
runner: async () => {
|
|
1669
|
-
const mod = await import("./code_maintainability_observability_contract.js");
|
|
1670
|
-
const findings = mod.reviewMissingLogs({
|
|
1671
|
-
"scripts/data_fix_order_status.ts": `async function migrateOrderStatus() {
|
|
1672
|
-
const orders = await db.query("SELECT * FROM orders WHERE status IS NULL");
|
|
1673
|
-
for (const order of orders) {
|
|
1674
|
-
await db.update("UPDATE orders SET status = 'pending' WHERE id = ?", [order.id]);
|
|
1675
|
-
}
|
|
1676
|
-
}`,
|
|
1677
|
-
});
|
|
1678
|
-
const blocked = mod.hasBlockingObservabilityFindings(findings);
|
|
1679
|
-
return {
|
|
1680
|
-
scenario_id: "release-scenario-code-observability-migration-audit-log",
|
|
1681
|
-
status: blocked ? "pass" : "fail",
|
|
1682
|
-
evidence: blocked ? "hard_fail: 迁移脚本无审计日志被检测到" : "未检测到迁移脚本无审计日志",
|
|
1683
|
-
production_trace: { tool_entrypoint: "reviewMissingLogs", diagnostic_codes: [blocked ? "hard_fail" : "missed"], gates_consumed: ["sf_review", "engine_contract"] },
|
|
1684
|
-
};
|
|
1685
|
-
},
|
|
1686
|
-
},
|
|
1687
|
-
];
|
|
1688
|
-
/** 获取全量场景定义 */
|
|
1689
|
-
export function getReleaseIssueScenarios() {
|
|
1690
|
-
return RELEASE_ISSUE_SCENARIOS;
|
|
1691
|
-
}
|
|
1692
|
-
/**
|
|
1693
|
-
* 验证 发布问题场景覆盖:
|
|
1694
|
-
* - 所有场景必须有 runner + production_entrypoint + expected_outcome
|
|
1695
|
-
* - 所有引用测试文件的场景: 测试文件必须存在
|
|
1696
|
-
* - 返回结构化验证结果
|
|
1697
|
-
*/
|
|
1698
|
-
export function validateReleaseIssueScenarios(rootDir) {
|
|
1699
|
-
const missing_tests = [];
|
|
1700
|
-
const missing_runners = [];
|
|
1701
|
-
const missing_entrypoints = [];
|
|
1702
|
-
const tautology_suspects = [];
|
|
1703
|
-
for (const scenario of RELEASE_ISSUE_SCENARIOS) {
|
|
1704
|
-
if (!scenario.runner) {
|
|
1705
|
-
missing_runners.push(scenario.scenario_id);
|
|
1706
|
-
}
|
|
1707
|
-
if (!scenario.production_entrypoint) {
|
|
1708
|
-
missing_entrypoints.push(scenario.scenario_id);
|
|
1709
|
-
}
|
|
1710
|
-
if (!scenario.expected_outcome) {
|
|
1711
|
-
missing_entrypoints.push(`${scenario.scenario_id}: missing expected_outcome`);
|
|
1712
|
-
}
|
|
1713
|
-
for (const testFile of scenario.test_files) {
|
|
1714
|
-
const fullPath = path.join(rootDir, testFile);
|
|
1715
|
-
if (!fs.existsSync(fullPath)) {
|
|
1716
|
-
missing_tests.push(`${scenario.scenario_id}: ${testFile}`);
|
|
1717
|
-
}
|
|
1718
|
-
}
|
|
1719
|
-
}
|
|
1720
|
-
return {
|
|
1721
|
-
valid: missing_tests.length === 0 && missing_runners.length === 0 && missing_entrypoints.length === 0,
|
|
1722
|
-
missing_tests,
|
|
1723
|
-
missing_runners,
|
|
1724
|
-
missing_entrypoints,
|
|
1725
|
-
tautology_suspects,
|
|
1726
|
-
scenario_count: RELEASE_ISSUE_SCENARIOS.length,
|
|
1727
|
-
};
|
|
1728
|
-
}
|
|
1729
|
-
/**
|
|
1730
|
-
* 运行所有场景,收集执行证据。
|
|
1731
|
-
* 每个场景必须有 runner,无 runner 视为 fail。
|
|
1732
|
-
*/
|
|
1733
|
-
export async function executeReleaseIssueScenarios() {
|
|
1734
|
-
const results = [];
|
|
1735
|
-
for (const scenario of RELEASE_ISSUE_SCENARIOS) {
|
|
1736
|
-
const start = Date.now();
|
|
1737
|
-
try {
|
|
1738
|
-
const result = await scenario.runner();
|
|
1739
|
-
result.duration_ms = Date.now() - start;
|
|
1740
|
-
results.push(result);
|
|
1741
|
-
}
|
|
1742
|
-
catch (e) {
|
|
1743
|
-
results.push({ scenario_id: scenario.scenario_id, status: "fail", error: e.message, duration_ms: Date.now() - start });
|
|
1744
|
-
}
|
|
1745
|
-
}
|
|
1746
|
-
return results;
|
|
1747
|
-
}
|
|
1748
|
-
//# sourceMappingURL=release_issue_scenario_registry.js.map
|