soloforge 1.1.33 → 1.1.34
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 +9 -0
- package/dist/adapters/shared/workflow_template.js +1 -1
- package/dist/bin/commands/check_bash.d.ts +6 -0
- package/dist/bin/commands/check_bash.d.ts.map +1 -1
- package/dist/bin/commands/check_bash.js +68 -1
- package/dist/bin/commands/check_bash.js.map +1 -1
- package/dist/bin/commands/check_write.d.ts +23 -0
- package/dist/bin/commands/check_write.d.ts.map +1 -1
- package/dist/bin/commands/check_write.js +110 -0
- package/dist/bin/commands/check_write.js.map +1 -1
- package/dist/bin/commands/init.d.ts.map +1 -1
- package/dist/bin/commands/init.js +7 -1
- package/dist/bin/commands/init.js.map +1 -1
- package/dist/engine/audit/code_reviewer.d.ts +2 -0
- package/dist/engine/audit/code_reviewer.d.ts.map +1 -1
- package/dist/engine/audit/code_reviewer.js +4 -3
- package/dist/engine/audit/code_reviewer.js.map +1 -1
- package/dist/engine/audit/mutation_audit.d.ts +5 -1
- package/dist/engine/audit/mutation_audit.d.ts.map +1 -1
- package/dist/engine/audit/mutation_audit.js +18 -1
- package/dist/engine/audit/mutation_audit.js.map +1 -1
- package/dist/engine/audit/test_quality.d.ts.map +1 -1
- package/dist/engine/audit/test_quality.js +9 -0
- package/dist/engine/audit/test_quality.js.map +1 -1
- 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 +137 -0
- package/dist/engine/contracts/artifact_schema_registry.d.ts.map +1 -0
- package/dist/engine/contracts/artifact_schema_registry.js +773 -0
- package/dist/engine/contracts/artifact_schema_registry.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/capability_registry.d.ts.map +1 -1
- package/dist/engine/contracts/capability_registry.js +74 -0
- package/dist/engine/contracts/capability_registry.js.map +1 -1
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_extension.js +2 -2
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.d.ts.map +1 -1
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js +61 -2
- package/dist/engine/contracts/dual_layer_mechanism_registry/mechanisms_platform.js.map +1 -1
- 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/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/mechanism_contract_registry/contracts-governance.d.ts.map +1 -1
- package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js +29 -0
- package/dist/engine/contracts/mechanism_contract_registry/contracts-governance.js.map +1 -1
- 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/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/knowledge/knowledge_injection_boundary.d.ts +21 -4
- package/dist/engine/knowledge/knowledge_injection_boundary.d.ts.map +1 -1
- package/dist/engine/knowledge/knowledge_injection_boundary.js +96 -22
- package/dist/engine/knowledge/knowledge_injection_boundary.js.map +1 -1
- package/dist/engine/pipeline/intent_expander/expand.d.ts.map +1 -1
- package/dist/engine/pipeline/intent_expander/expand.js +2 -2
- package/dist/engine/pipeline/intent_expander/expand.js.map +1 -1
- package/dist/engine/pipeline/intent_expander/knowledge.d.ts +2 -1
- package/dist/engine/pipeline/intent_expander/knowledge.d.ts.map +1 -1
- package/dist/engine/pipeline/intent_expander/knowledge.js +34 -1
- package/dist/engine/pipeline/intent_expander/knowledge.js.map +1 -1
- package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts +2 -1
- package/dist/engine/pipeline/intent_expander/knowledge_resolution.d.ts.map +1 -1
- package/dist/engine/pipeline/intent_expander/knowledge_resolution.js +16 -5
- package/dist/engine/pipeline/intent_expander/knowledge_resolution.js.map +1 -1
- package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts +6 -2
- package/dist/engine/pipeline/intent_expander/scope_acceptance.d.ts.map +1 -1
- package/dist/engine/pipeline/intent_expander/scope_acceptance.js +6 -1
- package/dist/engine/pipeline/intent_expander/scope_acceptance.js.map +1 -1
- package/dist/engine/pipeline/intent_expander/templates.d.ts.map +1 -1
- package/dist/engine/pipeline/intent_expander/templates.js +99 -0
- package/dist/engine/pipeline/intent_expander/templates.js.map +1 -1
- package/dist/engine/pipeline/intent_expander/types.d.ts +3 -0
- package/dist/engine/pipeline/intent_expander/types.d.ts.map +1 -1
- package/dist/engine/pipeline/intent_router.d.ts +3 -0
- package/dist/engine/pipeline/intent_router.d.ts.map +1 -1
- package/dist/engine/pipeline/intent_router.js +34 -6
- package/dist/engine/pipeline/intent_router.js.map +1 -1
- package/dist/engine/pipeline/intent_signal_extractor.js +11 -11
- package/dist/engine/pipeline/intent_signal_extractor.js.map +1 -1
- package/dist/engine/pipeline/stage_prechecks.d.ts +83 -0
- package/dist/engine/pipeline/stage_prechecks.d.ts.map +1 -0
- package/dist/engine/pipeline/stage_prechecks.js +199 -0
- package/dist/engine/pipeline/stage_prechecks.js.map +1 -0
- package/dist/engine/pipeline/task_planner.d.ts +2 -0
- package/dist/engine/pipeline/task_planner.d.ts.map +1 -1
- package/dist/engine/pipeline/task_planner.js +4 -0
- package/dist/engine/pipeline/task_planner.js.map +1 -1
- package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js +3 -3
- package/dist/engine/release/release_issue_scenario_registry/scenarios_template_visibility.js.map +1 -1
- package/dist/engine/release/release_readiness_gate.d.ts +4 -1
- package/dist/engine/release/release_readiness_gate.d.ts.map +1 -1
- package/dist/engine/release/release_readiness_gate.js +57 -1
- package/dist/engine/release/release_readiness_gate.js.map +1 -1
- package/dist/engine/templates/asset_manifest.d.ts.map +1 -1
- package/dist/engine/templates/asset_manifest.js +107 -91
- package/dist/engine/templates/asset_manifest.js.map +1 -1
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.d.ts.map +1 -1
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js +30 -14
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_core.js.map +1 -1
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js +21 -21
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_core.js.map +1 -1
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js +20 -20
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext.js.map +1 -1
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.d.ts.map +1 -1
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js +22 -21
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_dual_layer_ext2.js.map +1 -1
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.d.ts.map +1 -1
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.js +10 -1
- package/dist/engine/templates/consumable_asset_registry/builtin_assets_pipeline.js.map +1 -1
- package/dist/engine/templates/consumable_asset_registry/types.d.ts +3 -1
- package/dist/engine/templates/consumable_asset_registry/types.d.ts.map +1 -1
- package/dist/engine/templates/consumable_asset_registry/types.js +1 -1
- package/dist/engine/templates/consumable_asset_registry/types.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/adapters.js +1 -1
- package/dist/engine/templates/explicit_asset_registry/adapters.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js +29 -29
- package/dist/engine/templates/explicit_asset_registry/artifacts_existing_system.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js +47 -47
- package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part1.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js +9 -9
- package/dist/engine/templates/explicit_asset_registry/artifacts_shared_part2.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/checklists.js +13 -13
- package/dist/engine/templates/explicit_asset_registry/checklists.js.map +1 -1
- 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.js +18 -18
- package/dist/engine/templates/explicit_asset_registry/domain.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/gates.d.ts.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/gates.js +140 -11
- package/dist/engine/templates/explicit_asset_registry/gates.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/index.d.ts.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/index.js +3 -0
- package/dist/engine/templates/explicit_asset_registry/index.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/internal_patterns.d.ts.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/internal_patterns.js +110 -46
- package/dist/engine/templates/explicit_asset_registry/internal_patterns.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js +52 -52
- package/dist/engine/templates/explicit_asset_registry/internal_rules_part1.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.d.ts.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js +55 -39
- package/dist/engine/templates/explicit_asset_registry/internal_rules_part2.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/patterns_part1.js +50 -50
- package/dist/engine/templates/explicit_asset_registry/patterns_part1.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/patterns_part2.js +50 -50
- package/dist/engine/templates/explicit_asset_registry/patterns_part2.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/patterns_part3.js +2 -2
- package/dist/engine/templates/explicit_asset_registry/patterns_part3.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/procedures_part1.js +66 -66
- package/dist/engine/templates/explicit_asset_registry/procedures_part1.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/procedures_part2.d.ts.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/procedures_part2.js +43 -26
- package/dist/engine/templates/explicit_asset_registry/procedures_part2.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/profiles.js +3 -3
- package/dist/engine/templates/explicit_asset_registry/profiles.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js +18 -18
- package/dist/engine/templates/explicit_asset_registry/rules_pipeline.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/rules_shared.d.ts.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/rules_shared.js +128 -17
- package/dist/engine/templates/explicit_asset_registry/rules_shared.js.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/scaffolds.d.ts.map +1 -1
- package/dist/engine/templates/explicit_asset_registry/scaffolds.js +87 -18
- package/dist/engine/templates/explicit_asset_registry/scaffolds.js.map +1 -1
- package/dist/engine/templates/standard_asset_contract.d.ts +30 -0
- package/dist/engine/templates/standard_asset_contract.d.ts.map +1 -1
- package/dist/engine/templates/standard_asset_contract.js +152 -0
- package/dist/engine/templates/standard_asset_contract.js.map +1 -1
- package/dist/engine/templates/template_asset_contract_registry.d.ts +1 -1
- package/dist/engine/templates/template_asset_contract_registry.d.ts.map +1 -1
- package/dist/engine/templates/template_asset_contract_registry.js +44 -7
- package/dist/engine/templates/template_asset_contract_registry.js.map +1 -1
- package/dist/engine/templates/template_init_sync.d.ts +7 -1
- package/dist/engine/templates/template_init_sync.d.ts.map +1 -1
- package/dist/engine/templates/template_init_sync.js +72 -19
- package/dist/engine/templates/template_init_sync.js.map +1 -1
- package/dist/engine/templates/workflow_rule_generator.d.ts +1 -1
- package/dist/engine/templates/workflow_rule_generator.js +2 -2
- package/dist/engine/templates/workflow_rule_generator.js.map +1 -1
- package/dist/knowledge/index_manager.d.ts +1 -0
- package/dist/knowledge/index_manager.d.ts.map +1 -1
- package/dist/knowledge/index_manager.js +23 -1
- package/dist/knowledge/index_manager.js.map +1 -1
- package/dist/server/tools/tool_groups/expand_handler.d.ts.map +1 -1
- package/dist/server/tools/tool_groups/expand_handler.js +4 -0
- package/dist/server/tools/tool_groups/expand_handler.js.map +1 -1
- package/dist/server/tools/tool_groups/verify_learn.d.ts.map +1 -1
- package/dist/server/tools/tool_groups/verify_learn.js +209 -58
- package/dist/server/tools/tool_groups/verify_learn.js.map +1 -1
- package/dist/types/analysis.d.ts +5 -0
- package/dist/types/analysis.d.ts.map +1 -1
- package/dist/types/knowledge.d.ts +13 -2
- package/dist/types/knowledge.d.ts.map +1 -1
- package/dist/types/knowledge.js.map +1 -1
- package/dist/types/pipeline.d.ts +35 -0
- package/dist/types/pipeline.d.ts.map +1 -1
- package/dist/types/task.d.ts +19 -0
- package/dist/types/task.d.ts.map +1 -1
- package/package.json +4 -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 +8 -4
- 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 +8 -4
- 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 +8 -4
- 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 +8 -4
- 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 +8 -4
- 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 +8 -4
- 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 +8 -4
- 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 +8 -4
- 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 +8 -4
- package/templates/artifacts/shared/ADR/346/250/241/347/211/210.md +5 -2
- 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 +52 -5
- package/templates/artifacts/shared/Bug/345/210/206/346/236/220/346/250/241/347/211/210.md +6 -5
- package/templates/artifacts/shared/OOD/350/256/276/350/256/241/346/221/230/350/246/201/346/250/241/347/211/210.md +5 -5
- package/templates/artifacts/shared/POC/347/273/223/350/256/272/346/250/241/347/211/210.md +6 -5
- 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 +6 -3
- 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 → 347/211/210.md} +11 -14
- package/templates/artifacts/shared//345/210/207/347/211/207/350/256/241/345/210/222/346/250/241/347/211/210.md +5 -2
- 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 +5 -4
- package/templates/artifacts/shared//345/216/237/345/236/213/350/257/264/346/230/216/346/250/241/347/211/210.md +81 -4
- package/templates/artifacts/shared//345/220/216/347/253/257API/351/252/214/346/224/266/346/270/205/345/215/225.md +5 -4
- 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 +6 -8
- package/templates/artifacts/shared//345/256/211/345/205/250/345/256/241/350/256/241/346/250/241/347/211/210.md +6 -5
- package/templates/artifacts/shared//345/256/241/346/237/245/346/221/230/350/246/201.md +7 -7
- package/templates/artifacts/shared//346/200/247/350/203/275/345/210/206/346/236/220/346/250/241/347/211/210.md +6 -5
- 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 +5 -4
- 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 +6 -5
- package/templates/artifacts/shared//346/225/205/351/232/234/345/244/215/347/233/230/346/250/241/347/211/210.md +6 -5
- 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 +6 -5
- 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 +5 -4
- 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 +33 -5
- package/templates/artifacts/shared//346/236/266/346/236/204/350/256/276/350/256/241/346/250/241/347/211/210.md +57 -5
- package/templates/artifacts/shared//346/265/213/350/257/225/350/256/241/345/210/222/346/250/241/347/211/210.md +6 -5
- 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 +27 -9
- package/templates/artifacts/shared//350/257/246/347/273/206/350/256/276/350/256/241/346/250/241/347/211/210.md +6 -5
- package/templates/artifacts/shared//350/277/201/347/247/273/350/257/204/344/274/260/346/250/241/347/211/210.md +6 -5
- 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 +5 -4
- package/templates/artifacts/shared//351/207/215/346/236/204/346/226/271/346/241/210/346/250/241/347/211/210.md +6 -5
- package/templates/artifacts/shared//351/234/200/346/261/202/345/210/206/346/236/220/346/250/241/347/211/210.md +6 -5
- 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 +7 -10
- 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 -9
- package/templates/checklists//344/274/232/350/257/235/346/201/242/345/244/215.md +8 -14
- 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 -10
- 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 -9
- 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 -11
- package/templates/checklists//351/232/220/347/247/201/345/256/241/346/237/245/346/270/205/345/215/225.md +6 -9
- package/templates/checklists//351/252/214/350/257/201/351/252/214/346/224/266/346/270/205/345/215/225.md +6 -9
- package/templates/domain//345/244/232/347/247/237/346/210/267.md +5 -4
- package/templates/domain//345/256/241/350/256/241/346/227/245/345/277/227.md +5 -4
- package/templates/domain//345/257/274/345/205/245/345/257/274/345/207/272/350/247/204/345/210/231.md +10 -9
- package/templates/domain//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +5 -4
- package/templates/domain//346/212/245/350/241/250/347/273/237/350/256/241.md +5 -4
- package/templates/domain//346/224/257/344/273/230/350/247/204/345/210/231.md +5 -4
- package/templates/domain//346/225/260/346/215/256/346/235/203/351/231/220.md +5 -4
- package/templates/domain//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +5 -4
- package/templates/domain//351/200/232/347/237/245/350/247/204/345/210/231.md +10 -9
- package/templates/gates/existing-system/gate-/346/236/266/346/236/204/350/256/276/350/256/241.yaml +1 -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 +2 -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 +2 -1
- package/templates/gates/existing-system/gate-/350/257/246/347/273/206/350/256/276/350/256/241.yaml +1 -0
- package/templates/gates/shared/gate-/344/272/244/344/273/230.yaml +14 -0
- package/templates/gates/shared/gate-/344/273/273/345/212/241/350/247/204/345/210/222.yaml +3 -3
- 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/217/221/345/270/203/345/220/216/350/247/202/345/257/237.yaml +14 -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-/347/274/226/347/240/201/345/207/206/345/244/207.yaml +14 -0
- package/templates/gates/shared/gate-/347/274/226/347/240/201/345/256/236/347/216/260.yaml +14 -0
- package/templates/gates/shared/gate-/347/274/226/347/240/201/351/252/214/350/257/201.yaml +18 -0
- package/templates/internal/patterns/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +5 -5
- 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 +61 -0
- package/templates/internal/patterns/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +5 -5
- package/templates/internal/patterns/LLM/351/242/204/347/256/227/347/275/221/345/205/263.md +5 -5
- package/templates/internal/patterns//344/272/247/347/211/251Schema/346/263/250/345/206/214/344/270/255/345/277/203.md +61 -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 +5 -5
- package/templates/internal/patterns//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +5 -5
- 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 +5 -5
- package/templates/internal/patterns//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +5 -5
- package/templates/internal/patterns//345/206/262/347/252/201/351/227/250/347/246/201.md +5 -5
- package/templates/internal/patterns//345/206/263/347/255/226/347/275/221/345/205/263.md +5 -5
- 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 +61 -0
- package/templates/internal/patterns//345/217/230/345/274/202/345/256/241/350/256/241.md +5 -5
- package/templates/internal/patterns//345/233/236/345/275/222/347/237/251/351/230/265.md +6 -6
- package/templates/internal/patterns//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +5 -5
- package/templates/internal/patterns//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +5 -5
- package/templates/internal/patterns//345/271/266/345/217/221/351/224/201.md +5 -5
- package/templates/internal/patterns//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +5 -5
- package/templates/internal/patterns//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +5 -5
- package/templates/internal/patterns//346/250/241/347/211/210Frontmatter/350/247/243/346/236/220.md +61 -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 +5 -5
- package/templates/internal/patterns//346/265/201/345/274/217/345/277/203/350/267/263.md +5 -5
- package/templates/internal/patterns//347/237/245/350/257/206/344/270/273/346/235/203.md +6 -6
- package/templates/internal/patterns//350/257/255/344/271/211/350/257/201/346/215/256.md +5 -5
- package/templates/internal/patterns//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +5 -5
- package/templates/internal/patterns//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +5 -5
- package/templates/internal/patterns//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +6 -6
- package/templates/internal/rules/OOD/344/270/216SOLID/350/256/276/350/256/241/350/247/204/345/210/231.md +7 -9
- package/templates/internal/rules//344/272/247/347/211/251/345/245/221/347/272/246/350/247/204/345/210/231.md +7 -9
- 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 +7 -9
- 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 +7 -6
- 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 +7 -9
- package/templates/internal/rules//345/221/275/344/273/244/346/211/247/350/241/214/350/247/204/345/210/231.md +7 -9
- 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 +8 -10
- 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 +8 -10
- package/templates/internal/rules//345/267/245/344/275/234/346/265/201/346/250/241/{346/235/277 → 347/211/210}/345/214/205/350/247/204/345/210/231.md +15 -15
- package/templates/internal/rules//345/267/245/345/205/267/350/260/203/347/224/250/350/247/204/345/210/231.md +7 -9
- package/templates/internal/rules//346/204/217/345/233/276/350/267/257/347/224/261/350/247/204/345/210/231.md +7 -9
- 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 +7 -9
- 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 +7 -7
- 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 +7 -6
- 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 +8 -10
- 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 +7 -7
- package/templates/internal/rules//346/227/245/345/277/227/346/262/273/347/220/206/350/247/204/345/210/231.md +7 -8
- 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 +7 -8
- 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 +7 -8
- 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 -7
- package/templates/internal/rules//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +9 -13
- 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 -9
- package/templates/internal/rules//346/250/241/347/211/210Frontmatter/350/247/204/350/214/203.md +281 -0
- package/templates/internal/rules//346/250/241/{346/235/277 → 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 +10 -9
- 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 +10 -12
- 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 +14 -13
- 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 +12 -14
- package/templates/internal/rules//347/237/245/350/257/206/346/262/273/347/220/206/350/247/204/345/210/231.md +8 -10
- 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 +9 -11
- 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 +10 -17
- 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 +10 -9
- package/templates/internal/rules//347/273/206/350/212/202/347/272/252/345/276/213/350/247/204/345/210/231.md +7 -6
- 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 +7 -6
- 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 +8 -11
- 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 +7 -8
- 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 +7 -7
- 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 +7 -7
- 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 +8 -10
- 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 +6 -5
- 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 +8 -10
- 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 +7 -6
- 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 +7 -9
- 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 +9 -11
- package/templates/internal/rules//351/252/214/346/224/266/346/250/241/{346/235/277 → 347/211/210}/350/276/223/345/207/272/345/245/221/347/272/246/350/247/204/345/210/231.md +14 -16
- package/templates/internal/rules//351/252/214/350/257/201/345/245/221/347/272/246/350/247/204/345/210/231.md +7 -9
- package/templates/patterns/API/350/256/276/350/256/241/350/247/204/350/214/203.md +4 -3
- package/templates/patterns/Docker/351/203/250/347/275/262/350/247/204/350/214/203.md +4 -3
- package/templates/patterns/Git/346/223/215/344/275/234/350/247/204/350/214/203.md +4 -3
- package/templates/patterns/N/345/212/2401/346/237/245/350/257/242/350/247/204/350/214/203.md +4 -3
- package/templates/patterns/React/345/210/227/350/241/250/350/241/250/346/240/274/350/247/204/350/214/203.md +5 -4
- package/templates/patterns/React/346/216/245/345/217/243/351/233/206/346/210/220/350/247/204/350/214/203.md +4 -3
- package/templates/patterns/React/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +4 -3
- package/templates/patterns/React/347/273/204/344/273/266/350/247/204/350/214/203.md +4 -3
- package/templates/patterns/React/350/241/250/345/215/225/350/247/204/350/214/203.md +4 -3
- package/templates/patterns/React/350/267/257/347/224/261/350/247/204/350/214/203.md +4 -3
- package/templates/patterns/SOLID/350/256/276/350/256/241/350/247/204/350/214/203.md +3 -3
- package/templates/patterns/Schema/345/205/274/345/256/271/350/247/204/350/214/203.md +4 -3
- package/templates/patterns/Vue/347/212/266/346/200/201/347/256/241/347/220/206/350/247/204/350/214/203.md +4 -3
- package/templates/patterns/Vue/347/273/204/344/273/266/350/247/204/350/214/203.md +4 -3
- package/templates/patterns/Vue/350/267/257/347/224/261/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//344/272/213/344/273/266/351/251/261/345/212/250/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//344/272/213/345/212/241/346/250/241/345/274/217/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//344/274/230/351/233/205/345/201/234/346/234/272/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +4 -3
- package/templates/patterns//345/210/206/351/241/265/346/237/245/350/257/242/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//345/211/215/347/253/257/346/200/247/350/203/275/350/247/204/350/214/203.md +4 -3
- 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 +3 -3
- package/templates/patterns//345/221/275/345/220/215/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//345/233/275/351/231/205/345/214/226/350/247/204/350/214/203.md +5 -4
- package/templates/patterns//345/242/236/345/210/240/346/224/271/346/237/245/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//345/244/226/351/203/250/344/276/235/350/265/226/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//345/245/221/347/272/246/345/205/274/345/256/271/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//345/256/232/346/227/266/344/273/273/345/212/241/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//345/256/236/346/227/266/346/216/250/351/200/201/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//345/267/245/347/250/213/347/272/252/345/276/213.md +4 -3
- package/templates/patterns//345/271/266/345/217/221/346/216/247/345/210/266/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//345/274/202/346/255/245/345/257/274/345/207/272/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//346/216/245/345/217/243/345/245/221/347/272/246/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//346/220/234/347/264/242/346/250/241/345/274/217/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//346/225/260/346/215/256/351/232/220/347/247/201/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//346/226/207/344/273/266/344/270/212/344/274/240/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//346/227/240/351/232/234/347/242/215/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//346/227/245/345/277/227/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//346/235/203/351/231/220/350/256/244/350/257/201/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//346/236/266/346/236/204/347/272/242/347/272/277.md +4 -3
- package/templates/patterns//346/265/213/350/257/225/350/264/250/351/207/217/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//347/206/224/346/226/255/351/231/215/347/272/247/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//347/212/266/346/200/201/346/265/201/350/275/254/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//347/272/246/346/235/237/345/256/236/347/216/260/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//347/274/223/345/255/230/347/255/226/347/225/245/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//347/274/226/347/240/201/350/264/250/351/207/217/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//347/274/272/351/231/267/347/256/241/347/220/206/350/247/204/350/214/203.md +5 -4
- package/templates/patterns//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +4 -3
- package/templates/patterns//350/276/223/345/205/245/346/240/241/351/252/214/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//351/224/231/350/257/257/345/244/204/347/220/206/350/247/204/350/214/203.md +4 -3
- package/templates/patterns//351/224/231/350/257/257/350/276/271/347/225/214/350/247/204/350/214/203.md +4 -3
- 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 +4 -3
- package/templates/procedures/OOD/350/256/276/350/256/241/345/267/245/344/275/234/346/265/201.md +7 -4
- package/templates/procedures/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +9 -9
- 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 +8 -9
- package/templates/procedures//344/273/243/347/240/201/351/227/250/347/246/201/346/265/201/347/250/213.md +6 -7
- package/templates/procedures//344/273/273/345/212/241/346/213/206/350/247/243/346/265/201/347/250/213.md +6 -7
- package/templates/procedures//344/274/232/350/257/235/346/201/242/345/244/215/346/265/201/347/250/213.md +85 -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 +6 -9
- package/templates/procedures//345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213.md +6 -7
- 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 +4 -4
- package/templates/procedures//345/221/275/344/273/244/346/211/247/350/241/214/346/265/201/347/250/213.md +7 -8
- 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 +9 -9
- package/templates/procedures//345/267/245/345/205/267/350/260/203/347/224/250/346/265/201/347/250/213.md +7 -8
- package/templates/procedures//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +9 -9
- package/templates/procedures//346/204/217/345/233/276/350/267/257/347/224/261/346/265/201/347/250/213.md +6 -8
- 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 +10 -10
- 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 +7 -7
- 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 +6 -7
- 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 +5 -5
- 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 +8 -8
- 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 +9 -9
- 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 +6 -7
- 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 +8 -9
- 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 +8 -7
- 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 +7 -8
- 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 +9 -9
- 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 +9 -10
- package/templates/procedures//350/207/252/344/270/273/351/200/211/345/236/213/346/265/201/347/250/213.md +7 -7
- 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 +4 -4
- package/templates/procedures//350/257/246/347/273/206/350/256/276/350/256/241/346/265/201/347/250/213.md +8 -7
- package/templates/procedures//350/260/203/350/257/225/346/216/222/346/237/245/346/265/201/347/250/213.md +7 -7
- package/templates/procedures//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +9 -9
- package/templates/procedures//351/203/250/347/275/262/345/217/221/345/270/203/346/265/201/347/250/213.md +6 -7
- package/templates/procedures//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +9 -9
- package/templates/procedures//351/233/206/346/210/220/351/252/214/350/257/201/346/265/201/347/250/213.md +6 -7
- package/templates/procedures//351/234/200/346/261/202/346/276/204/346/270/205/346/265/201/347/250/213.md +5 -6
- package/templates/procedures//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +7 -8
- 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 +7 -3
- package/templates/rules/existing-system//350/200/246/345/220/210/346/243/200/346/265/213/350/247/204/345/210/231.md +7 -3
- 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 +7 -3
- 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 +7 -3
- 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 +7 -3
- 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 +7 -3
- package/templates/rules/shared/SOLID/344/273/243/347/240/201/345/256/241/346/237/245/350/247/204/345/210/231.md +6 -4
- 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 +6 -3
- 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 +4 -6
- 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 +5 -5
- 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 +57 -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 +58 -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 +6 -4
- package/templates/rules/shared//345/256/211/345/205/250/345/256/241/346/237/245/350/247/204/345/210/231.md +4 -6
- package/templates/rules/shared//345/271/266/345/217/221/345/256/241/346/237/245/350/247/204/345/210/231.md +4 -6
- package/templates/rules/shared//346/200/247/350/203/275/345/256/241/346/237/245/350/247/204/345/210/231.md +4 -6
- 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 +4 -6
- package/templates/rules/shared//346/236/266/346/236/204/345/256/241/346/237/245/350/247/204/345/210/231.md +4 -6
- 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 +58 -0
- package/templates/rules/shared//350/201/224/350/260/203/351/252/214/350/257/201/346/270/205/345/215/225.md +6 -3
- package/templates/rules/shared//350/246/206/347/233/226/347/216/207/346/240/207/345/207/206.md +7 -4
- package/templates/rules/shared//350/264/250/351/207/217/345/256/241/346/237/245/350/247/204/345/210/231.md +4 -6
- 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 +64 -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 +58 -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
|
@@ -5,8 +5,14 @@ import { promises as fsp } from "node:fs";
|
|
|
5
5
|
import crypto from "node:crypto";
|
|
6
6
|
import { internalWarn } from "../../../engine/core/logger.js";
|
|
7
7
|
import { isSameOrDescendantPath } from "../../../engine/core/path_scope_utils.js";
|
|
8
|
+
import { detectTaskStage } from "../../../engine/pipeline/task_stage_detector.js";
|
|
8
9
|
import { verifyArtifact } from "../../../engine/contracts/artifact_contract_registry.js";
|
|
9
10
|
import { verifyRouteDecisionContract } from "../../../engine/contracts/route_decision_contract_verifier.js";
|
|
11
|
+
import { scanArtifactForOmissions } from "../../../engine/contracts/omission_scanner.js";
|
|
12
|
+
import { detectLazyPatterns } from "../../../engine/contracts/lazy_pattern_detector.js";
|
|
13
|
+
import { verifyErrorHandlingPaths } from "../../../engine/contracts/error_path_verifier.js";
|
|
14
|
+
import { verifyBehaviorCoverage } from "../../../engine/contracts/behavior_coverage_verifier.js";
|
|
15
|
+
import { inferArtifactKindFromPath } from "../../../bin/commands/check_write.js";
|
|
10
16
|
import { TOOL_DIAGNOSTIC_CODES } from "../../../engine/audit/diagnostic_registry.js";
|
|
11
17
|
import { createToolRegistrar } from "../middleware.js";
|
|
12
18
|
import { VerifySchema, RecordVerificationExecutionSchema, LearnSchema } from "../schemas.js";
|
|
@@ -14,15 +20,37 @@ import { lazyVerifier, lazyEvolver, lazyTraceability, lazyOodSolid, lazyBackendI
|
|
|
14
20
|
import { errorMessage } from "../../../engine/core/helpers.js";
|
|
15
21
|
export async function registerVerifyLearnTools(ctx) {
|
|
16
22
|
const { registerSafeTool, loadRelevantAnchors } = createToolRegistrar(ctx);
|
|
17
|
-
const { taskContext, config, projectPath, ioController } = ctx;
|
|
23
|
+
const { taskContext, config, projectPath, ioController, knowledgeIndex } = ctx;
|
|
18
24
|
// ── sf_verify: 生成验证命令(构建、测试、验收检查) ──
|
|
19
25
|
registerSafeTool("sf_verify", "根据变更文件生成验证命令(构建、测试、验收检查),由 Claude Code Bash 执行", VerifySchema, async (args) => {
|
|
20
|
-
const
|
|
21
|
-
if (!
|
|
26
|
+
const loadedCtx = await taskContext.load(args.task_id);
|
|
27
|
+
if (!loadedCtx) {
|
|
22
28
|
return {
|
|
23
29
|
result: { error: "任务不存在" },
|
|
24
30
|
};
|
|
25
31
|
}
|
|
32
|
+
// Phase 9a: 知识感知 — 加载阶段匹配的审查规则、代码模式和检查清单
|
|
33
|
+
if (knowledgeIndex) {
|
|
34
|
+
const stage = detectTaskStage(loadedCtx);
|
|
35
|
+
const reviewRules = knowledgeIndex.query({
|
|
36
|
+
type: "review_rule",
|
|
37
|
+
stages: stage ? [stage] : undefined,
|
|
38
|
+
limit: 5,
|
|
39
|
+
});
|
|
40
|
+
const codePatterns = knowledgeIndex.query({
|
|
41
|
+
type: "pattern",
|
|
42
|
+
stages: stage ? [stage] : undefined,
|
|
43
|
+
limit: 3,
|
|
44
|
+
});
|
|
45
|
+
const checklists = knowledgeIndex.query({
|
|
46
|
+
type: "checklist",
|
|
47
|
+
stages: stage ? [stage] : undefined,
|
|
48
|
+
limit: 2,
|
|
49
|
+
});
|
|
50
|
+
loadedCtx.review_knowledge_hints = [...reviewRules, ...codePatterns, ...checklists]
|
|
51
|
+
.map(e => e.body ?? e.when).filter(Boolean);
|
|
52
|
+
await taskContext.save(loadedCtx);
|
|
53
|
+
}
|
|
26
54
|
const implementationFiles = args.changed_files.filter((file) => /\.(?:ts|tsx|js|jsx|java|kt|cs|go|py)$/.test(file)
|
|
27
55
|
&& !/(?:^|\/)tests?\//.test(file));
|
|
28
56
|
if (implementationFiles.length > 0) {
|
|
@@ -39,9 +67,9 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
39
67
|
}
|
|
40
68
|
}
|
|
41
69
|
const traceabilityModule = await lazyTraceability();
|
|
42
|
-
const traceVerification = traceabilityModule.verifyChangedFilesAgainstDesignTraceability(projectPath, implementationFiles,
|
|
70
|
+
const traceVerification = traceabilityModule.verifyChangedFilesAgainstDesignTraceability(projectPath, implementationFiles, loadedCtx);
|
|
43
71
|
if (!traceVerification.passed) {
|
|
44
|
-
|
|
72
|
+
loadedCtx.traceability_binding = {
|
|
45
73
|
requirement_ids: traceVerification.binding_ids.filter((id) => id.startsWith("REQ-")),
|
|
46
74
|
prototype_ids: traceVerification.binding_ids.filter((id) => id.startsWith("PROTO-")),
|
|
47
75
|
architecture_ids: traceVerification.binding_ids.filter((id) => id.startsWith("ARCH-")),
|
|
@@ -52,7 +80,7 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
52
80
|
status: "missing",
|
|
53
81
|
findings: traceVerification.findings.map((finding) => `${finding.code}: ${finding.message_zh}`),
|
|
54
82
|
};
|
|
55
|
-
await taskContext.save(
|
|
83
|
+
await taskContext.save(loadedCtx);
|
|
56
84
|
return {
|
|
57
85
|
result: {
|
|
58
86
|
error: "编码变更未绑定需求/原型/设计/切片/验收追踪链路,需修复后重验",
|
|
@@ -66,10 +94,10 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
66
94
|
const oodModule = await lazyOodSolid();
|
|
67
95
|
const oodGate = oodModule.evaluateOodDesignGate({
|
|
68
96
|
task_id: args.task_id,
|
|
69
|
-
intent:
|
|
70
|
-
route:
|
|
97
|
+
intent: loadedCtx.intent,
|
|
98
|
+
route: loadedCtx.expansion?.workflow_trace?.route,
|
|
71
99
|
changed_files: implementationFiles,
|
|
72
|
-
summary:
|
|
100
|
+
summary: loadedCtx.ood_solid_summary,
|
|
73
101
|
});
|
|
74
102
|
if (!oodGate.allowed) {
|
|
75
103
|
return {
|
|
@@ -85,10 +113,10 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
85
113
|
const backendModule = await lazyBackendImplementation();
|
|
86
114
|
const backendGate = backendModule.evaluateBackendImplementationGate({
|
|
87
115
|
task_id: args.task_id,
|
|
88
|
-
intent:
|
|
89
|
-
route:
|
|
116
|
+
intent: loadedCtx.intent,
|
|
117
|
+
route: loadedCtx.expansion?.workflow_trace?.route,
|
|
90
118
|
changed_files: implementationFiles,
|
|
91
|
-
work_package:
|
|
119
|
+
work_package: loadedCtx.backend_implementation_work_package,
|
|
92
120
|
});
|
|
93
121
|
if (!backendGate.allowed) {
|
|
94
122
|
return {
|
|
@@ -122,9 +150,9 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
122
150
|
sourceFiles: implementationContents,
|
|
123
151
|
}));
|
|
124
152
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
await taskContext.save(
|
|
153
|
+
loadedCtx.ood_solid_findings = solidFindings;
|
|
154
|
+
loadedCtx.backend_implementation_findings = backendFindings;
|
|
155
|
+
await taskContext.save(loadedCtx);
|
|
128
156
|
if (oodModule.hasBlockingSolidFindings(solidFindings)) {
|
|
129
157
|
return {
|
|
130
158
|
result: {
|
|
@@ -150,10 +178,10 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
150
178
|
const obsFindings = codeObsModule.verifyChangedFilesObservability({
|
|
151
179
|
changed_files: implementationFiles,
|
|
152
180
|
file_contents: implementationContents,
|
|
153
|
-
intent:
|
|
181
|
+
intent: loadedCtx.intent,
|
|
154
182
|
});
|
|
155
|
-
|
|
156
|
-
await taskContext.save(
|
|
183
|
+
loadedCtx.code_observability_findings = obsFindings;
|
|
184
|
+
await taskContext.save(loadedCtx);
|
|
157
185
|
if (codeObsModule.hasBlockingObservabilityFindings(obsFindings)) {
|
|
158
186
|
return {
|
|
159
187
|
result: {
|
|
@@ -166,20 +194,20 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
166
194
|
}
|
|
167
195
|
}
|
|
168
196
|
// 问题六十二: 设计产物验证必须读取用户项目真实文件,不接受占位合同自证通过。
|
|
169
|
-
const verifyWorkflowIntent =
|
|
197
|
+
const verifyWorkflowIntent = loadedCtx.route_decision?.workflow_intent ?? loadedCtx.classification?.route_decision?.workflow_intent;
|
|
170
198
|
const touchesDesignArtifacts = args.changed_files.some((file) => /docs\/architecture\/|docs\/api\/|openapi|db\/(?:migrations|schema)|架构设计|数据库设计|API接口规格/i.test(file));
|
|
171
199
|
if (verifyWorkflowIntent === "architecture_design" || touchesDesignArtifacts) {
|
|
172
200
|
const designModule = await lazyDesignArtifactPack();
|
|
173
|
-
const designPack =
|
|
201
|
+
const designPack = loadedCtx.design_artifact_pack ?? designModule.createDesignArtifactPack(args.task_id);
|
|
174
202
|
const designVerification = designModule.verifyDesignArtifactPack(projectPath, designPack);
|
|
175
|
-
|
|
203
|
+
loadedCtx.design_artifact_pack = {
|
|
176
204
|
...designPack,
|
|
177
205
|
status: designVerification.status,
|
|
178
206
|
findings: designVerification.findings,
|
|
179
207
|
baseline_hashes: designVerification.hashes,
|
|
180
208
|
verified_at: new Date().toISOString(),
|
|
181
209
|
};
|
|
182
|
-
await taskContext.save(
|
|
210
|
+
await taskContext.save(loadedCtx);
|
|
183
211
|
if (!designVerification.passed) {
|
|
184
212
|
return {
|
|
185
213
|
result: {
|
|
@@ -196,12 +224,12 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
196
224
|
// 问题六十三: 模板契约验证 — 按文件逐一匹配契约并校验
|
|
197
225
|
const sacModule = await lazyStandardAssetContract();
|
|
198
226
|
const formalArtifactContract = sacModule.matchTemplateContract({
|
|
199
|
-
output_artifact_kind:
|
|
227
|
+
output_artifact_kind: loadedCtx.artifact_output?.kind,
|
|
200
228
|
workflow_intent: verifyWorkflowIntent,
|
|
201
|
-
route_decision:
|
|
229
|
+
route_decision: loadedCtx.route_decision?.workflow_intent,
|
|
202
230
|
});
|
|
203
231
|
if (formalArtifactContract || !sacModule.isLowRiskTask({
|
|
204
|
-
route_decision: verifyWorkflowIntent ??
|
|
232
|
+
route_decision: verifyWorkflowIntent ?? loadedCtx.classification?.route_decision?.workflow_intent,
|
|
205
233
|
workflow_intent: verifyWorkflowIntent,
|
|
206
234
|
changed_files: args.changed_files,
|
|
207
235
|
})) {
|
|
@@ -211,9 +239,9 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
211
239
|
continue;
|
|
212
240
|
// 按实际文件路径匹配契约(不再使用 changed_files[0] 的契约校验全部文件)
|
|
213
241
|
const perFileContract = sacModule.matchTemplateContract({
|
|
214
|
-
output_artifact_kind:
|
|
242
|
+
output_artifact_kind: loadedCtx.artifact_output?.kind,
|
|
215
243
|
workflow_intent: verifyWorkflowIntent,
|
|
216
|
-
route_decision:
|
|
244
|
+
route_decision: loadedCtx.route_decision?.workflow_intent,
|
|
217
245
|
file_path: changedFile,
|
|
218
246
|
});
|
|
219
247
|
if (!perFileContract)
|
|
@@ -221,14 +249,14 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
221
249
|
const content = await fsp.readFile(absFile, "utf-8");
|
|
222
250
|
// 草稿阻断下游消费 — 不再静默跳过
|
|
223
251
|
if (sacModule.isDraftDocument(content)) {
|
|
224
|
-
|
|
252
|
+
loadedCtx.repair_reverify_directive = {
|
|
225
253
|
contract_id: perFileContract.asset_id,
|
|
226
254
|
file_path: changedFile,
|
|
227
255
|
status: "draft_blocked",
|
|
228
256
|
repair_suggestion: `文件 ${changedFile} 仍为草稿状态,草稿不可用于实现。请完善内容后重新验证。`,
|
|
229
257
|
blocked: true,
|
|
230
258
|
};
|
|
231
|
-
await taskContext.save(
|
|
259
|
+
await taskContext.save(loadedCtx);
|
|
232
260
|
return {
|
|
233
261
|
result: {
|
|
234
262
|
error: `草稿文件 ${changedFile} 不可用于实现,需完善后重新验证`,
|
|
@@ -242,14 +270,14 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
242
270
|
const contractResult = sacModule.verifyOutputAgainstContract(perFileContract, content, projectPath);
|
|
243
271
|
if (!contractResult.passed) {
|
|
244
272
|
const repairDirective = sacModule.createRepairReverifyDirective(perFileContract, contractResult);
|
|
245
|
-
|
|
273
|
+
loadedCtx.repair_reverify_directive = {
|
|
246
274
|
contract_id: perFileContract.asset_id,
|
|
247
275
|
file_path: changedFile,
|
|
248
276
|
status: "repair_required",
|
|
249
277
|
repair_suggestion: repairDirective.repair_suggestion,
|
|
250
278
|
blocked: true,
|
|
251
279
|
};
|
|
252
|
-
await taskContext.save(
|
|
280
|
+
await taskContext.save(loadedCtx);
|
|
253
281
|
return {
|
|
254
282
|
result: {
|
|
255
283
|
error: `文件 ${changedFile} 模板契约验证未通过,进入修复重验闭环`,
|
|
@@ -265,20 +293,143 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
265
293
|
}
|
|
266
294
|
}
|
|
267
295
|
// 全部契约验证通过 — 清零修复重验指令
|
|
268
|
-
if (
|
|
269
|
-
delete
|
|
270
|
-
await taskContext.save(
|
|
296
|
+
if (loadedCtx.repair_reverify_directive) {
|
|
297
|
+
delete loadedCtx.repair_reverify_directive;
|
|
298
|
+
await taskContext.save(loadedCtx);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
// ── 遗漏扫描:检测空洞章节、占位符、空表格(防 AI 偷懒) ──
|
|
302
|
+
const omissionScannedFiles = [];
|
|
303
|
+
const allOmissionFindings = [];
|
|
304
|
+
for (const changedFile of args.changed_files) {
|
|
305
|
+
if (!/\.md$/.test(changedFile))
|
|
306
|
+
continue;
|
|
307
|
+
const kind = inferArtifactKindFromPath(changedFile);
|
|
308
|
+
if (!kind)
|
|
309
|
+
continue;
|
|
310
|
+
const absFile = path.join(projectPath, changedFile);
|
|
311
|
+
if (!await fsp.access(absFile).then(() => true, () => false))
|
|
312
|
+
continue;
|
|
313
|
+
const content = await fsp.readFile(absFile, "utf-8");
|
|
314
|
+
if (content.length < 100)
|
|
315
|
+
continue; // 初始写入跳过
|
|
316
|
+
const omissionResult = scanArtifactForOmissions(kind, content, {
|
|
317
|
+
generate_adversarial_prompt: true,
|
|
318
|
+
});
|
|
319
|
+
if (omissionResult.findings.length > 0) {
|
|
320
|
+
omissionScannedFiles.push(changedFile);
|
|
321
|
+
allOmissionFindings.push({ file: changedFile, findings: omissionResult.findings });
|
|
271
322
|
}
|
|
323
|
+
if (!omissionResult.passed) {
|
|
324
|
+
const hardFails = omissionResult.findings.filter((f) => f.severity === "hard_fail");
|
|
325
|
+
const reasons = hardFails.map((f) => f.message).join(";");
|
|
326
|
+
await taskContext.save(loadedCtx);
|
|
327
|
+
return {
|
|
328
|
+
result: {
|
|
329
|
+
error: `产物遗漏扫描失败(${changedFile}):${reasons}`,
|
|
330
|
+
status: "blocked",
|
|
331
|
+
diagnostic_code: "SF-OMISSION-SCAN-FAILED",
|
|
332
|
+
recovery: `补齐以下缺失内容后重新执行 sf_verify:${reasons}`,
|
|
333
|
+
},
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
// 将遗漏扫描结果写入 VerifyResult(通过 loadedCtx 传递到最终结果组装)
|
|
338
|
+
if (omissionScannedFiles.length > 0) {
|
|
339
|
+
const totalFindings = allOmissionFindings.reduce((s, o) => s + o.findings.length, 0);
|
|
340
|
+
const hardFailCount = allOmissionFindings.reduce((s, o) => s + o.findings.filter((f) => f.severity === "hard_fail").length, 0);
|
|
341
|
+
// 生成对抗性 prompt(取第一个有 findings 的文件的 prompt)
|
|
342
|
+
const firstResultWithPrompt = allOmissionFindings[0];
|
|
343
|
+
loadedCtx.omission_scan_result = {
|
|
344
|
+
scanned_files: omissionScannedFiles,
|
|
345
|
+
total_findings: totalFindings,
|
|
346
|
+
hard_fail_count: hardFailCount,
|
|
347
|
+
summary: hardFailCount > 0
|
|
348
|
+
? `❌ 遗漏扫描发现 ${totalFindings} 项问题(${hardFailCount} 个阻塞)`
|
|
349
|
+
: `⚠️ 遗漏扫描发现 ${totalFindings} 个警告`,
|
|
350
|
+
adversarial_prompt: firstResultWithPrompt?.findings.length
|
|
351
|
+
? `对文件 ${firstResultWithPrompt.file} 执行深度遗漏审计`
|
|
352
|
+
: undefined,
|
|
353
|
+
};
|
|
354
|
+
await taskContext.save(loadedCtx);
|
|
355
|
+
}
|
|
356
|
+
// ── 步骤 7a: 偷懒模式检测(.ts 文件) ──
|
|
357
|
+
let lazyPatternHardFails = 0;
|
|
358
|
+
let lazyPatternWarnings = 0;
|
|
359
|
+
for (const changedFile of args.changed_files) {
|
|
360
|
+
if (!/\.ts$/.test(changedFile) || /\.d\.ts$/.test(changedFile))
|
|
361
|
+
continue;
|
|
362
|
+
const absFile = path.join(projectPath, changedFile);
|
|
363
|
+
if (!await fsp.access(absFile).then(() => true, () => false))
|
|
364
|
+
continue;
|
|
365
|
+
const content = await fsp.readFile(absFile, "utf-8");
|
|
366
|
+
const findings = detectLazyPatterns(content, changedFile);
|
|
367
|
+
const hfs = findings.filter((f) => f.severity === "hard_fail");
|
|
368
|
+
const wfs = findings.filter((f) => f.severity === "warning");
|
|
369
|
+
lazyPatternHardFails += hfs.length;
|
|
370
|
+
lazyPatternWarnings += wfs.length;
|
|
371
|
+
if (hfs.length > 0) {
|
|
372
|
+
const reasons = hfs.map((f) => f.message).join(";");
|
|
373
|
+
await taskContext.save(loadedCtx);
|
|
374
|
+
return {
|
|
375
|
+
result: {
|
|
376
|
+
error: `代码偷懒模式检测失败(${changedFile}):${reasons}`,
|
|
377
|
+
status: "blocked",
|
|
378
|
+
diagnostic_code: "SF-LAZY-PATTERN-DETECTED",
|
|
379
|
+
recovery: `修复以下代码质量问题后重新执行 sf_verify:${reasons}`,
|
|
380
|
+
},
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
// ── 步骤 7b: 错误处理路径验证(.ts 文件) ──
|
|
385
|
+
let errorPathHardFails = 0;
|
|
386
|
+
for (const changedFile of args.changed_files) {
|
|
387
|
+
if (!/\.ts$/.test(changedFile) || /\.d\.ts$/.test(changedFile))
|
|
388
|
+
continue;
|
|
389
|
+
const absFile = path.join(projectPath, changedFile);
|
|
390
|
+
if (!await fsp.access(absFile).then(() => true, () => false))
|
|
391
|
+
continue;
|
|
392
|
+
const content = await fsp.readFile(absFile, "utf-8");
|
|
393
|
+
const findings = verifyErrorHandlingPaths(content, changedFile);
|
|
394
|
+
const hfs = findings.filter((f) => f.severity === "hard_fail");
|
|
395
|
+
errorPathHardFails += hfs.length;
|
|
396
|
+
if (hfs.length > 0) {
|
|
397
|
+
const reasons = hfs.map((f) => f.message).join(";");
|
|
398
|
+
await taskContext.save(loadedCtx);
|
|
399
|
+
return {
|
|
400
|
+
result: {
|
|
401
|
+
error: `错误处理路径验证失败(${changedFile}):${reasons}`,
|
|
402
|
+
status: "blocked",
|
|
403
|
+
diagnostic_code: "SF-ERROR-PATH-VERIFICATION-FAILED",
|
|
404
|
+
recovery: `修复以下错误处理问题后重新执行 sf_verify:${reasons}`,
|
|
405
|
+
},
|
|
406
|
+
};
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
// ── 步骤 7c: 行为覆盖率检查 ──
|
|
410
|
+
const coverageFindings = verifyBehaviorCoverage(args.changed_files, projectPath);
|
|
411
|
+
const coverageWarnings = coverageFindings.length;
|
|
412
|
+
// ── 汇总 code_quality 结果到 loadedCtx ──
|
|
413
|
+
if (lazyPatternHardFails > 0 || lazyPatternWarnings > 0 || errorPathHardFails > 0 || coverageWarnings > 0) {
|
|
414
|
+
loadedCtx.code_quality_result = {
|
|
415
|
+
lazy_pattern_findings: lazyPatternHardFails + lazyPatternWarnings,
|
|
416
|
+
error_path_findings: errorPathHardFails,
|
|
417
|
+
test_quality_hard_fails: 0,
|
|
418
|
+
mutation_hard_fails: 0,
|
|
419
|
+
behavior_coverage_warnings: coverageWarnings,
|
|
420
|
+
summary: `偷懒模式: ${lazyPatternHardFails} 阻塞/${lazyPatternWarnings} 警告;错误路径: ${errorPathHardFails};行为覆盖: ${coverageWarnings} 警告`,
|
|
421
|
+
};
|
|
422
|
+
await taskContext.save(loadedCtx);
|
|
272
423
|
}
|
|
273
424
|
// RouteDecision 合同验证 — 无条件,在状态预检之前
|
|
274
|
-
const rdFromCtx =
|
|
275
|
-
const wtFromCtx =
|
|
425
|
+
const rdFromCtx = loadedCtx.route_decision ?? loadedCtx.classification?.route_decision ?? null;
|
|
426
|
+
const wtFromCtx = loadedCtx.workflow_trace ?? loadedCtx.expansion?.workflow_trace ?? null;
|
|
276
427
|
const rdContractInput = {
|
|
277
428
|
route_decision: rdFromCtx,
|
|
278
429
|
workflow_trace: wtFromCtx,
|
|
279
|
-
expansion_input_materials:
|
|
280
|
-
expansion_output_artifact:
|
|
281
|
-
expansion_constraints:
|
|
430
|
+
expansion_input_materials: loadedCtx.expansion?.input_materials?.map((m) => ({ path_or_ref: m.path_or_ref })),
|
|
431
|
+
expansion_output_artifact: loadedCtx.artifact_output ? { kind: loadedCtx.artifact_output.kind, path: loadedCtx.artifact_output.path } : null,
|
|
432
|
+
expansion_constraints: loadedCtx.expansion?.contract?.constraints,
|
|
282
433
|
};
|
|
283
434
|
const rdFindings = verifyRouteDecisionContract(rdContractInput);
|
|
284
435
|
const hasHardFail = rdFindings.some(f => f.severity === "hard_fail" || f.severity === "blocked");
|
|
@@ -292,20 +443,20 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
292
443
|
};
|
|
293
444
|
}
|
|
294
445
|
const VALID_VERIFY_STATES = ["executing", "retrying"];
|
|
295
|
-
if (!VALID_VERIFY_STATES.includes(
|
|
446
|
+
if (!VALID_VERIFY_STATES.includes(loadedCtx.status)) {
|
|
296
447
|
return {
|
|
297
|
-
result: { error: `任务状态 ${
|
|
448
|
+
result: { error: `任务状态 ${loadedCtx.status} 不可验证,需要 executing 或 retrying`, status: loadedCtx.status },
|
|
298
449
|
};
|
|
299
450
|
}
|
|
300
|
-
const acceptanceItems =
|
|
301
|
-
? [...
|
|
451
|
+
const acceptanceItems = loadedCtx.expansion
|
|
452
|
+
? [...loadedCtx.expansion.acceptance.automated, ...loadedCtx.expansion.acceptance.manual]
|
|
302
453
|
: [];
|
|
303
454
|
// H4: 工作区完整性检查 — advisory 模式,仅警告不阻断
|
|
304
455
|
const integrity = await ioController.verify();
|
|
305
456
|
const h4Warning = !integrity.clean
|
|
306
457
|
? { warning: `H4 advisory: ${integrity.message}`, dirty_files: integrity.dirty_files }
|
|
307
458
|
: undefined;
|
|
308
|
-
const verifyResult = (await lazyVerifier()).generateVerifyCommands(config, args.changed_files, acceptanceItems,
|
|
459
|
+
const verifyResult = (await lazyVerifier()).generateVerifyCommands(config, args.changed_files, acceptanceItems, loadedCtx?.expansion?.workflow_trace?.route);
|
|
309
460
|
verifyResult.task_id = args.task_id;
|
|
310
461
|
// 创建 VerificationPlan(plan_only,非执行结果)
|
|
311
462
|
const vcModule = await lazyVerificationContract();
|
|
@@ -327,9 +478,9 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
327
478
|
// 产物生命周期检查: draft → verified 需要 ArtifactVerificationResult.passed
|
|
328
479
|
let artifactVerificationResult;
|
|
329
480
|
let artifactFileMissing = false;
|
|
330
|
-
if (
|
|
481
|
+
if (loadedCtx.artifact_output && loadedCtx.artifact_output.status === "draft") {
|
|
331
482
|
// 验证前解析产物文件并计算 hash
|
|
332
|
-
const artifact =
|
|
483
|
+
const artifact = loadedCtx.artifact_output;
|
|
333
484
|
const fullPath = path.join(projectPath, artifact.path);
|
|
334
485
|
if (await fsp.access(fullPath).then(() => true, () => false)) {
|
|
335
486
|
const fileContent = await fsp.readFile(fullPath);
|
|
@@ -357,9 +508,9 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
357
508
|
// 写入护栏 — 检查变更文件是否在允许范围
|
|
358
509
|
if (args.changed_files.length > 0) {
|
|
359
510
|
const guardModule = await lazyEnforcementGuard();
|
|
360
|
-
const scopePaths =
|
|
511
|
+
const scopePaths = loadedCtx.expansion?.scope?.allowed_paths ?? [];
|
|
361
512
|
for (const cf of args.changed_files) {
|
|
362
|
-
const writeFindings = guardModule.evaluateWriteGuard(
|
|
513
|
+
const writeFindings = guardModule.evaluateWriteGuard(loadedCtx.classification?.route_decision?.route ?? "code_execution", cf, scopePaths, "command_execution_contract");
|
|
363
514
|
if (writeFindings.some((f) => f.blocked)) {
|
|
364
515
|
return {
|
|
365
516
|
result: {
|
|
@@ -373,7 +524,7 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
373
524
|
}
|
|
374
525
|
await taskContext.setExecution(args.task_id, args.changed_files);
|
|
375
526
|
// 无实际文件变更但存在产物时标记 no_change_artifact
|
|
376
|
-
if (args.changed_files.length === 0 &&
|
|
527
|
+
if (args.changed_files.length === 0 && loadedCtx.artifact_output) {
|
|
377
528
|
const execCtx = await taskContext.load(args.task_id);
|
|
378
529
|
if (execCtx?.execution) {
|
|
379
530
|
execCtx.execution.no_change_artifact = true;
|
|
@@ -381,15 +532,15 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
381
532
|
}
|
|
382
533
|
}
|
|
383
534
|
// 生成验证命令成功后再转换状态,避免操作失败导致任务卡在 verifying
|
|
384
|
-
if (
|
|
535
|
+
if (loadedCtx.status === "retrying") {
|
|
385
536
|
await taskContext.updateStatus(args.task_id, "executing");
|
|
386
537
|
}
|
|
387
538
|
await taskContext.updateStatus(args.task_id, "verifying");
|
|
388
539
|
// 存储验证结果
|
|
389
540
|
await taskContext.setVerification(args.task_id, verifyResult);
|
|
390
541
|
// 产物生命周期转换: draft → verified 仅在 ArtifactVerificationResult.passed 时
|
|
391
|
-
if (
|
|
392
|
-
const evidenceRef = `verification:${
|
|
542
|
+
if (loadedCtx.artifact_output && loadedCtx.artifact_output.status === "draft" && artifactVerificationResult?.passed) {
|
|
543
|
+
const evidenceRef = `verification:${loadedCtx.task_id}:checks=${artifactVerificationResult.checks.length}:summary=${artifactVerificationResult.summary.slice(0, 60)}`;
|
|
393
544
|
try {
|
|
394
545
|
await taskContext.updateArtifactStatus(args.task_id, {
|
|
395
546
|
status: "verified",
|
|
@@ -408,9 +559,9 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
408
559
|
verifyExtras.h4_advisory = h4Warning;
|
|
409
560
|
if (verifyAnchors && verifyAnchors.length > 0)
|
|
410
561
|
verifyExtras.cognitive_anchors = verifyAnchors;
|
|
411
|
-
if (
|
|
562
|
+
if (loadedCtx.artifact_output && loadedCtx.artifact_output.status === "draft" && artifactVerificationResult && !artifactVerificationResult.passed) {
|
|
412
563
|
const reason = artifactFileMissing
|
|
413
|
-
? `产物文件不存在 (${
|
|
564
|
+
? `产物文件不存在 (${loadedCtx.artifact_output.path}),无法计算 hash`
|
|
414
565
|
: artifactVerificationResult.summary;
|
|
415
566
|
verifyExtras.artifact_warning = `产物验收检查未通过: ${reason}`;
|
|
416
567
|
verifyExtras.artifact_verification = artifactVerificationResult;
|
|
@@ -424,12 +575,12 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
424
575
|
// 问题六十:验证结论必须经过 FactClaimVerifier,不得把计划当结果
|
|
425
576
|
{
|
|
426
577
|
const { createEvidenceGroundingSystem, assessTaskRisk } = await import("../../../engine/contracts/evidence_grounding_contract.js");
|
|
427
|
-
const _vRoute =
|
|
428
|
-
const _vRisk = assessTaskRisk(
|
|
578
|
+
const _vRoute = loadedCtx.route_decision?.route ?? loadedCtx.classification?.route_decision?.route;
|
|
579
|
+
const _vRisk = assessTaskRisk(loadedCtx.classification?.task_type, _vRoute, loadedCtx.intent);
|
|
429
580
|
if (_vRisk !== "low") {
|
|
430
581
|
const _veg = createEvidenceGroundingSystem();
|
|
431
582
|
// 只有真实执行结果才能作为 validation_result 证据
|
|
432
|
-
const _hasRealPassed =
|
|
583
|
+
const _hasRealPassed = loadedCtx.verification_result && loadedCtx.verification_result.status === "passed";
|
|
433
584
|
if (_hasRealPassed) {
|
|
434
585
|
_veg.registry.register({
|
|
435
586
|
source_type: "validation_result",
|
|
@@ -437,7 +588,7 @@ export async function registerVerifyLearnTools(ctx) {
|
|
|
437
588
|
freshness: "current",
|
|
438
589
|
permission: "allowed",
|
|
439
590
|
scope: "verification",
|
|
440
|
-
description: `验证状态: ${
|
|
591
|
+
description: `验证状态: ${loadedCtx.verification_result?.status ?? "unknown"}`,
|
|
441
592
|
source_ref: `verification:${args.task_id}`,
|
|
442
593
|
});
|
|
443
594
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify_learn.js","sourceRoot":"","sources":["../../../../src/server/tools/tool_groups/verify_learn.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verify_learn.js","sourceRoot":"","sources":["../../../../src/server/tools/tool_groups/verify_learn.ts"],"names":[],"mappings":"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"}
|
package/dist/types/analysis.d.ts
CHANGED
|
@@ -290,6 +290,8 @@ export interface TestQualityCheck {
|
|
|
290
290
|
passed: boolean;
|
|
291
291
|
/** 详细说明 */
|
|
292
292
|
detail: string;
|
|
293
|
+
/** 严重级别(防 AI 偷懒门禁硬化):passed 时无 severity,未通过时为 warning */
|
|
294
|
+
severity?: "warning";
|
|
293
295
|
}
|
|
294
296
|
/** 测试质量报告 */
|
|
295
297
|
export interface TestQualityReport {
|
|
@@ -301,6 +303,9 @@ export interface TestQualityReport {
|
|
|
301
303
|
checks: TestQualityCheck[];
|
|
302
304
|
/** 改进建议 */
|
|
303
305
|
suggestions: string[];
|
|
306
|
+
/** 代码质量门禁汇总(防 AI 偷懒):warning 级别的未通过检查数 */
|
|
307
|
+
hard_fail_count?: number;
|
|
308
|
+
warning_count?: number;
|
|
304
309
|
}
|
|
305
310
|
/** 漏洞条目 */
|
|
306
311
|
export interface VulnerabilityItem {
|