soloforge 1.1.46 → 1.1.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -7
- package/dist/cli/adapter_writers.d.ts +5 -0
- package/dist/cli/adapter_writers.d.ts.map +1 -1
- package/dist/cli/adapter_writers.js +25 -0
- package/dist/cli/adapter_writers.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +3 -1
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/scope_check.d.ts +4 -0
- package/dist/cli/scope_check.d.ts.map +1 -0
- package/dist/cli/scope_check.js +41 -0
- package/dist/cli/scope_check.js.map +1 -0
- package/dist/context/adapters/claude_code/hooks.d.ts +5 -7
- package/dist/context/adapters/claude_code/hooks.d.ts.map +1 -1
- package/dist/context/adapters/claude_code/hooks.js +11 -9
- package/dist/context/adapters/claude_code/hooks.js.map +1 -1
- package/dist/context/adapters/shared/integration_guide.js +18 -6
- package/dist/context/adapters/shared/integration_guide.js.map +1 -1
- package/dist/context/adapters/shared/workflow_template.js +1 -1
- package/dist/context/config/intent_schema.d.ts +793 -6
- package/dist/context/config/intent_schema.d.ts.map +1 -1
- package/dist/context/config/intent_schema.js +9 -0
- package/dist/context/config/intent_schema.js.map +1 -1
- package/dist/context/config/resolver.d.ts +9 -0
- package/dist/context/config/resolver.d.ts.map +1 -1
- package/dist/context/config/resolver.js +5 -0
- package/dist/context/config/resolver.js.map +1 -1
- package/dist/core/adversarial_review_store.d.ts +133 -0
- package/dist/core/adversarial_review_store.d.ts.map +1 -0
- package/dist/core/adversarial_review_store.js +161 -0
- package/dist/core/adversarial_review_store.js.map +1 -0
- package/dist/core/domain_transition.d.ts.map +1 -1
- package/dist/core/domain_transition.js +3 -0
- package/dist/core/domain_transition.js.map +1 -1
- package/dist/core/gate_record_store.d.ts +13 -7
- package/dist/core/gate_record_store.d.ts.map +1 -1
- package/dist/core/gate_record_store.js +39 -17
- package/dist/core/gate_record_store.js.map +1 -1
- package/dist/core/git_utils.d.ts +1 -1
- package/dist/core/git_utils.js +1 -1
- package/dist/core/observer.d.ts.map +1 -1
- package/dist/core/observer.js +33 -6
- package/dist/core/observer.js.map +1 -1
- package/dist/core/task_context/constants.js +1 -1
- package/dist/core/task_context/constants.js.map +1 -1
- package/dist/core/task_context/manager.d.ts +4 -0
- package/dist/core/task_context/manager.d.ts.map +1 -1
- package/dist/core/task_context/manager.js +48 -30
- package/dist/core/task_context/manager.js.map +1 -1
- package/dist/core/task_context/manager_setters.d.ts +2 -0
- package/dist/core/task_context/manager_setters.d.ts.map +1 -1
- package/dist/core/task_context/manager_setters.js +10 -0
- package/dist/core/task_context/manager_setters.js.map +1 -1
- package/dist/core/types.d.ts +19 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/domain/asset_registry/derived_registry.d.ts.map +1 -1
- package/dist/domain/asset_registry/derived_registry.js +20 -5
- package/dist/domain/asset_registry/derived_registry.js.map +1 -1
- package/dist/domain/asset_registry/derived_types.d.ts +22 -1
- package/dist/domain/asset_registry/derived_types.d.ts.map +1 -1
- package/dist/domain/build/contract.d.ts.map +1 -1
- package/dist/domain/build/contract.js +3 -8
- package/dist/domain/build/contract.js.map +1 -1
- package/dist/domain/build/engine.d.ts +4 -2
- package/dist/domain/build/engine.d.ts.map +1 -1
- package/dist/domain/build/engine.js +38 -5
- package/dist/domain/build/engine.js.map +1 -1
- package/dist/domain/contracts/design_lifecycle_contract.d.ts.map +1 -1
- package/dist/domain/contracts/design_lifecycle_contract.js +11 -4
- package/dist/domain/contracts/design_lifecycle_contract.js.map +1 -1
- package/dist/domain/design/contract.d.ts.map +1 -1
- package/dist/domain/design/contract.js +13 -31
- package/dist/domain/design/contract.js.map +1 -1
- package/dist/domain/design/engine.d.ts +4 -2
- package/dist/domain/design/engine.d.ts.map +1 -1
- package/dist/domain/design/engine.js +39 -4
- package/dist/domain/design/engine.js.map +1 -1
- package/dist/domain/engine_helpers.d.ts +55 -2
- package/dist/domain/engine_helpers.d.ts.map +1 -1
- package/dist/domain/engine_helpers.js +173 -8
- package/dist/domain/engine_helpers.js.map +1 -1
- package/dist/domain/operate/contract.js +1 -1
- package/dist/domain/operate/contract.js.map +1 -1
- package/dist/domain/operate/engine.d.ts +4 -2
- package/dist/domain/operate/engine.d.ts.map +1 -1
- package/dist/domain/operate/engine.js +23 -3
- package/dist/domain/operate/engine.js.map +1 -1
- package/dist/domain/types.d.ts +6 -0
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/domain/types.js.map +1 -1
- package/dist/domain/verify/engine.d.ts +4 -2
- package/dist/domain/verify/engine.d.ts.map +1 -1
- package/dist/domain/verify/engine.js +22 -2
- package/dist/domain/verify/engine.js.map +1 -1
- package/dist/gate/contracts/tool_actions.d.ts +2 -2
- package/dist/gate/contracts/tool_actions.d.ts.map +1 -1
- package/dist/gate/contracts/tool_actions.js +2 -2
- package/dist/gate/contracts/tool_actions.js.map +1 -1
- package/dist/gate/contracts/tool_invocation_contract_registry.js +1 -1
- package/dist/gate/contracts/tool_invocation_contract_registry.js.map +1 -1
- package/dist/gate/executors/executors_artifact.d.ts +19 -0
- package/dist/gate/executors/executors_artifact.d.ts.map +1 -1
- package/dist/gate/executors/executors_artifact.js +108 -8
- package/dist/gate/executors/executors_artifact.js.map +1 -1
- package/dist/gate/executors/executors_build.d.ts.map +1 -1
- package/dist/gate/executors/executors_build.js +17 -15
- package/dist/gate/executors/executors_build.js.map +1 -1
- package/dist/gate/executors/executors_external_command.d.ts.map +1 -1
- package/dist/gate/executors/executors_external_command.js +32 -0
- package/dist/gate/executors/executors_external_command.js.map +1 -1
- package/dist/gate/executors/executors_field_mapping.d.ts +7 -0
- package/dist/gate/executors/executors_field_mapping.d.ts.map +1 -0
- package/dist/gate/executors/executors_field_mapping.js +179 -0
- package/dist/gate/executors/executors_field_mapping.js.map +1 -0
- package/dist/gate/executors/executors_prerequisite.d.ts.map +1 -1
- package/dist/gate/executors/executors_prerequisite.js +27 -7
- package/dist/gate/executors/executors_prerequisite.js.map +1 -1
- package/dist/gate/executors/executors_regex_scan.d.ts.map +1 -1
- package/dist/gate/executors/executors_regex_scan.js +36 -15
- package/dist/gate/executors/executors_regex_scan.js.map +1 -1
- package/dist/gate/executors/executors_scope.js +4 -4
- package/dist/gate/executors/executors_scope.js.map +1 -1
- package/dist/gate/executors/executors_trace.d.ts +5 -0
- package/dist/gate/executors/executors_trace.d.ts.map +1 -1
- package/dist/gate/executors/executors_trace.js +186 -3
- package/dist/gate/executors/executors_trace.js.map +1 -1
- package/dist/gate/executors/index.d.ts.map +1 -1
- package/dist/gate/executors/index.js +2 -0
- package/dist/gate/executors/index.js.map +1 -1
- package/dist/gate/gate_engine.d.ts +9 -0
- package/dist/gate/gate_engine.d.ts.map +1 -1
- package/dist/gate/gate_engine.js +15 -0
- package/dist/gate/gate_engine.js.map +1 -1
- package/dist/gate/gate_registry_bridge.d.ts +9 -8
- package/dist/gate/gate_registry_bridge.d.ts.map +1 -1
- package/dist/gate/gate_registry_bridge.js +57 -16
- package/dist/gate/gate_registry_bridge.js.map +1 -1
- package/dist/gate/middleware_gates.js +1 -1
- package/dist/gate/middleware_gates.js.map +1 -1
- package/dist/gate/scope_resolver.d.ts +7 -0
- package/dist/gate/scope_resolver.d.ts.map +1 -1
- package/dist/gate/scope_resolver.js +1 -1
- package/dist/gate/scope_resolver.js.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/server/tools/sf_doctor.d.ts +2 -0
- package/dist/server/tools/sf_doctor.d.ts.map +1 -1
- package/dist/server/tools/sf_doctor.js +35 -1
- package/dist/server/tools/sf_doctor.js.map +1 -1
- package/dist/server/tools/sf_gate.d.ts +1 -1
- package/dist/server/tools/sf_gate.js +2 -2
- package/dist/server/tools/sf_gate.js.map +1 -1
- package/dist/server/tools/sf_task.d.ts +83 -0
- package/dist/server/tools/sf_task.d.ts.map +1 -1
- package/dist/server/tools/sf_task.js +121 -4
- package/dist/server/tools/sf_task.js.map +1 -1
- package/dist/server/tools/sf_work.d.ts +203 -0
- package/dist/server/tools/sf_work.d.ts.map +1 -1
- package/dist/server/tools/sf_work.js +549 -46
- package/dist/server/tools/sf_work.js.map +1 -1
- package/dist/shared/traceability_id_utils.js +3 -3
- package/dist/shared/traceability_id_utils.js.map +1 -1
- package/dist/verify/contracts/decision_workshop.d.ts.map +1 -1
- package/dist/verify/contracts/decision_workshop.js +4 -3
- package/dist/verify/contracts/decision_workshop.js.map +1 -1
- package/package.json +2 -1
- package/templates/build/enforced.md +299 -39
- package/templates/build//344/270/223/351/241/271/345/256/236/347/216/260.md +75 -0
- package/templates/build//345/256/211/345/205/250/345/212/240/345/233/272.md +75 -0
- package/templates/build//346/263/250/351/207/212/347/272/252/345/276/213.md +48 -0
- package/templates/build//346/265/213/350/257/225/344/274/230/345/205/210/347/274/226/347/240/201.md +50 -79
- package/templates/build//346/265/213/350/257/225/350/256/241/345/210/222.md +31 -24
- package/templates/build//347/274/226/347/240/201/347/272/252/345/276/213.md +101 -0
- package/templates/build//350/260/203/350/257/225/346/216/222/346/237/245.md +44 -75
- package/templates/build//351/207/215/346/236/204/346/226/271/346/263/225.md +68 -0
- package/templates/design/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243.md +38 -28
- package/templates/design/enforced.md +234 -74
- package/templates/design//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 +5 -2
- package/templates/design//345/205/274/345/256/271/346/200/247/344/270/216/350/277/201/347/247/273/350/257/204/344/274/260.md +71 -0
- package/templates/design//345/206/263/347/255/226/344/270/216/351/200/211/345/236/213.md +70 -0
- package/templates/design//345/210/207/347/211/207/350/247/204/345/210/222.md +51 -55
- package/templates/design//345/274/200/345/217/221/345/210/207/347/211/207/350/256/241/345/210/222.md +75 -0
- package/templates/design//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/346/226/207/346/241/243.md +35 -47
- package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241.md +63 -81
- package/templates/design//350/256/276/350/256/241/345/206/263/347/255/226/347/272/252/345/276/213.md +58 -0
- package/templates/design//350/256/276/350/256/241/350/264/250/351/207/217/350/246/201/347/202/271.md +58 -0
- package/templates/design//351/234/200/346/261/202/345/210/206/346/236/220.md +49 -53
- package/templates/operate/UI/350/247/206/350/247/211/351/252/214/346/224/266/347/272/252/345/276/213.md +74 -0
- package/templates/operate/enforced.md +52 -5
- package/templates/operate//344/270/212/347/272/277/350/247/202/345/257/237.md +53 -32
- package/templates/operate//345/217/221/345/270/203/350/257/264/346/230/216.md +22 -1
- package/templates/operate//351/203/250/347/275/262/351/205/215/347/275/256.md +93 -0
- package/templates/shared/enforced.md +83 -5
- package/templates/shared//345/217/215/351/246/210/344/277/256/345/244/215/351/227/255/347/216/257.md +86 -0
- package/templates/shared//345/267/245/344/275/234/346/265/201/345/257/274/350/210/252/345/245/221/347/272/246.md +1 -1
- package/templates/shared//345/267/245/347/250/213/346/211/247/350/241/214/346/200/273/347/272/262.md +148 -0
- package/templates/shared//345/267/245/347/250/213/347/272/252/345/276/213.md +71 -0
- package/templates/shared//345/274/200/345/217/221/350/200/205/345/256/252/346/263/225.md +48 -43
- package/templates/shared//346/234/272/345/210/266/350/257/264/346/230/216.md +67 -0
- package/templates/shared//347/240/224/350/256/250/350/256/260/345/275/225.md +54 -0
- package/templates/shared//350/257/201/346/215/256/351/251/261/345/212/250/344/270/216/345/217/215/345/271/273/350/247/211.md +27 -17
- package/templates/shared//350/264/241/347/214/256/350/247/204/350/214/203.md +78 -0
- package/templates/verify/enforced.md +87 -263
- package/templates/verify//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245.md +46 -87
- package/templates/verify//344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212.md +17 -0
- package/templates/verify//345/256/241/346/237/245/346/270/205/345/215/225.md +79 -0
- package/templates/verify//346/236/266/346/236/204/350/257/255/344/271/211/347/272/242/347/272/277.md +60 -0
- package/templates/verify//351/252/214/350/257/201/346/226/271/346/263/225.md +72 -0
- package/dist/core/scope_checker.d.ts +0 -29
- package/dist/core/scope_checker.d.ts.map +0 -1
- package/dist/core/scope_checker.js +0 -53
- package/dist/core/scope_checker.js.map +0 -1
- package/templates/build/Bug/345/210/206/346/236/220.md +0 -59
- package/templates/build/Git/346/223/215/344/275/234.md +0 -48
- package/templates/build/OOD/350/256/276/350/256/241/346/221/230/350/246/201.md +0 -46
- package/templates/build/React/346/216/245/345/217/243/351/233/206/346/210/220.md +0 -42
- package/templates/build/Schema/345/217/230/346/233/264/346/265/201/346/260/264/347/272/277.md +0 -52
- package/templates/build/TS/350/264/250/351/207/217/345/256/241/346/237/245.md +0 -78
- package/templates/build//344/270/212/346/270/270/344/272/244/345/217/211/351/252/214/350/257/201.md +0 -68
- package/templates/build//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245/351/252/214/350/257/201.md +0 -56
- package/templates/build//344/273/243/347/240/201/351/227/250/347/246/201.md +0 -58
- package/templates/build//345/205/250/346/240/210/346/265/201/347/250/213/344/277/256/345/244/215.md +0 -48
- package/templates/build//345/210/207/347/211/207/346/211/247/350/241/214/347/272/252/345/276/213.md +0 -108
- package/templates/build//345/210/207/347/211/207/347/253/257/345/210/260/347/253/257/351/252/214/350/257/201.md +0 -221
- package/templates/build//345/212/237/350/203/275/345/274/200/345/217/221.md +0 -66
- package/templates/build//345/220/216/347/253/257/345/256/236/347/216/260.md +0 -39
- package/templates/build//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213.md +0 -33
- package/templates/build//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/256/241/346/237/245.md +0 -70
- package/templates/build//345/220/216/347/253/257/346/216/245/345/217/243/345/256/236/347/216/260.md +0 -43
- package/templates/build//345/233/275/351/231/205/345/214/226.md +0 -45
- package/templates/build//345/256/211/345/205/250/345/212/240/345/233/272/346/265/201/346/260/264/347/272/277.md +0 -68
- package/templates/build//345/256/211/345/205/250/345/256/241/346/237/245.md +0 -154
- package/templates/build//345/256/211/345/205/250/345/256/241/350/256/241.md +0 -47
- package/templates/build//345/267/245/347/250/213/347/272/252/345/276/213.md +0 -56
- package/templates/build//346/200/247/350/203/275/345/210/206/346/236/220.md +0 -59
- package/templates/build//346/200/247/350/203/275/346/265/201/346/260/264/347/272/277.md +0 -53
- package/templates/build//346/216/245/345/217/243/351/233/206/346/210/220/346/265/201/346/260/264/347/272/277.md +0 -76
- package/templates/build//346/225/260/346/215/256/345/272/223/350/277/201/347/247/273.md +0 -63
- package/templates/build//346/226/260/350/200/201/351/200/273/350/276/221/346/257/224/345/257/271/346/227/245/345/277/227.md +0 -39
- package/templates/build//346/235/203/351/231/220/350/256/244/350/257/201.md +0 -49
- package/templates/build//346/265/213/350/257/225/350/264/250/351/207/217.md +0 -45
- package/templates/build//347/206/224/346/226/255/351/231/215/347/272/247.md +0 -49
- package/templates/build//347/212/266/346/200/201/346/265/201/350/275/254.md +0 -43
- package/templates/build//347/213/254/347/253/213/345/256/241/346/237/245.md +0 -45
- package/templates/build//347/272/246/346/235/237/345/256/236/347/216/260.md +0 -47
- package/templates/build//347/274/226/347/240/201/345/260/261/347/273/252/345/256/241/346/237/245.md +0 -60
- package/templates/build//347/274/226/347/240/201/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
- package/templates/build//347/274/226/347/240/201/350/264/250/351/207/217.md +0 -46
- package/templates/build//347/274/226/347/240/201/351/230/266/346/256/265/346/211/247/350/241/214.md +0 -105
- package/templates/build//347/274/272/351/231/267/347/256/241/347/220/206.md +0 -47
- package/templates/build//350/200/246/345/220/210/346/243/200/346/265/213.md +0 -86
- package/templates/build//350/246/206/347/233/226/347/216/207/346/240/207/345/207/206.md +0 -40
- package/templates/build//350/264/250/351/207/217/345/256/241/346/237/245.md +0 -111
- package/templates/build//350/277/201/347/247/273/346/265/201/346/260/264/347/272/277.md +0 -52
- package/templates/build//351/200/232/347/224/250/350/264/250/351/207/217.md +0 -176
- package/templates/build//351/207/215/346/236/204/346/226/271/346/241/210.md +0 -61
- package/templates/build//351/207/215/346/236/204/346/265/201/346/260/264/347/272/277.md +0 -53
- package/templates/build//351/230/262/345/276/241/346/200/247/347/274/226/347/240/201.md +0 -94
- package/templates/build//351/233/206/346/210/220/351/252/214/350/257/201.md +0 -67
- package/templates/build//351/233/267/345/214/272/345/217/215/346/250/241/345/274/217.md +0 -135
- package/templates/build//351/252/214/346/224/266/346/240/207/345/207/206/345/256/241/346/237/245.md +0 -64
- package/templates/build//351/252/214/346/224/266/346/265/213/350/257/225/350/247/204/345/210/222.md +0 -75
- package/templates/design/API/350/256/276/350/256/241.md +0 -47
- package/templates/design/N/345/212/2401/346/237/245/350/257/242.md +0 -48
- package/templates/design/OOD/350/256/276/350/256/241.md +0 -72
- package/templates/design//344/270/200/350/207/264/346/200/247/346/240/241/351/252/214.md +0 -109
- package/templates/design//344/270/215/347/241/256/345/256/232/346/227/266/345/244/264/350/204/221/351/243/216/346/232/264.md +0 -105
- package/templates/design//344/273/273/345/212/241/346/213/206/350/247/243.md +0 -61
- package/templates/design//344/273/273/345/212/241/350/247/204/345/210/222.md +0 -84
- package/templates/design//344/274/232/350/257/235/346/201/242/345/244/215-procedures.md +0 -78
- package/templates/design//345/205/274/345/256/271/346/200/247/346/243/200/346/237/245.md +0 -89
- package/templates/design//345/210/207/347/211/207/350/256/241/345/210/222.md +0 -149
- package/templates/design//345/211/215/347/253/257/346/200/247/350/203/275.md +0 -49
- package/templates/design//345/216/206/345/217/262/351/201/227/347/225/231/351/233/267/345/214/272/346/270/205/345/215/225.md +0 -50
- package/templates/design//345/216/237/345/236/213/346/272/220/347/240/201/346/217/220/345/217/226.md +0 -78
- package/templates/design//345/216/237/345/236/213/350/257/264/346/230/216.md +0 -200
- package/templates/design//345/216/237/345/236/213/350/257/264/346/230/216/345/256/241/346/237/245.md +0 -81
- package/templates/design//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.md +0 -52
- package/templates/design//345/221/275/344/273/244/346/211/247/350/241/214-procedures.md +0 -45
- package/templates/design//345/221/275/344/273/244/350/267/257/347/224/261-procedures.md +0 -46
- package/templates/design//345/221/275/345/220/215.md +0 -49
- package/templates/design//345/242/236/351/207/217/350/276/271/347/225/214/347/225/214/345/256/232/346/226/207/346/241/243.md +0 -48
- package/templates/design//345/267/245/345/205/267/350/260/203/347/224/250-procedures.md +0 -41
- package/templates/design//345/271/266/345/217/221/346/216/247/345/210/266.md +0 -50
- package/templates/design//346/212/200/346/234/257/351/200/211/345/236/213.md +0 -33
- package/templates/design//346/216/245/345/217/243/345/257/271/346/216/245/346/226/271/346/241/210.md +0 -97
- package/templates/design//346/224/271/351/200/240/345/275/261/345/223/215/350/214/203/345/233/264/350/257/204/344/274/260.md +0 -56
- package/templates/design//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264/346/226/271/346/241/210.md +0 -75
- package/templates/design//346/225/260/346/215/256/350/241/200/347/274/230/345/233/276.md +0 -49
- package/templates/design//346/227/240/351/232/234/347/242/215.md +0 -49
- package/templates/design//346/236/266/346/236/204/345/206/263/347/255/226/350/256/260/345/275/225.md +0 -53
- package/templates/design//346/236/266/346/236/204/345/256/241/346/237/245.md +0 -256
- package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241-constraints.md +0 -177
- package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241-procedures.md +0 -130
- package/templates/design//346/246/202/345/277/265/351/252/214/350/257/201/346/265/201/346/260/264/347/272/277.md +0 -47
- package/templates/design//346/272/220/347/240/201/345/216/237/345/236/213/344/272/244/344/273/230.md +0 -58
- package/templates/design//347/216/260/346/234/211/347/263/273/347/273/237/345/267/256/350/267/235/345/210/206/346/236/220.md +0 -114
- package/templates/design//347/237/245/350/257/206/347/273/264/346/212/244/346/265/201/346/260/264/347/272/277.md +0 -64
- package/templates/design//347/254/254/344/270/200/346/200/247/345/216/237/347/220/206/346/216/250/347/220/206.md +0 -182
- package/templates/design//347/264/247/346/200/245/345/233/236/346/273/232/346/211/213/345/206/214.md +0 -77
- package/templates/design//347/274/226/347/240/201/345/211/215/346/276/204/346/270/205.md +0 -85
- package/templates/design//350/200/201/347/263/273/347/273/237/345/210/207/347/211/207/350/247/204/345/210/222.md +0 -48
- package/templates/design//350/207/252/344/270/273/351/200/211/345/236/213.md +0 -57
- package/templates/design//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.md +0 -34
- package/templates/design//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.md +0 -60
- package/templates/design//350/256/276/350/256/241/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -21
- package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241-procedures.md +0 -123
- package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241.md +0 -109
- package/templates/design//350/257/246/347/273/206/350/256/276/350/256/241/345/256/241/346/237/245.md +0 -88
- package/templates/design//350/260/203/350/257/225/346/226/271/346/263/225/350/256/272.md +0 -43
- package/templates/design//350/277/201/347/247/273/350/257/204/344/274/260.md +0 -67
- package/templates/design//351/232/224/347/246/273/351/200/202/351/205/215/345/231/250/346/226/271/346/241/210.md +0 -44
- package/templates/design//351/234/200/346/261/202/346/276/204/346/270/205.md +0 -65
- package/templates/design//351/234/200/346/261/202/350/264/250/351/207/217/345/256/241/346/237/245.md +0 -88
- package/templates/design//351/242/206/345/237/237/351/251/261/345/212/250/350/256/276/350/256/241.md +0 -43
- package/templates/operate//345/217/221/345/270/203/350/257/264/346/230/216/345/256/241/346/237/245.md +0 -60
- package/templates/operate//350/277/220/347/273/264/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
- package/templates/operate//351/203/250/347/275/262/351/205/215/347/275/256/345/256/241/346/237/245.md +0 -59
- package/templates/shared/Diff/345/275/222/345/261/236/350/277/275/350/270/252.md +0 -55
- package/templates/shared/Java/350/264/250/351/207/217/351/227/250/347/246/201.md +0 -54
- package/templates/shared/OOD/344/270/216SOLID/350/256/276/350/256/241.md +0 -48
- package/templates/shared//344/272/247/347/211/251Schema/346/263/250/345/206/214/344/270/255/345/277/203.md +0 -57
- package/templates/shared//344/272/247/347/211/251/345/245/221/347/272/246.md +0 -44
- package/templates/shared//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.md +0 -116
- package/templates/shared//344/273/273/345/212/241/344/270/212/344/270/213/346/226/207/347/224/237/345/221/275/345/221/250/346/234/237.md +0 -45
- package/templates/shared//344/273/273/345/212/241/347/212/266/346/200/201/346/234/272.md +0 -55
- package/templates/shared//344/273/273/345/212/241/347/256/241/347/220/206/345/231/250.md +0 -55
- package/templates/shared//344/274/230/351/233/205/345/201/234/346/234/272.md +0 -43
- package/templates/shared//344/275/234/347/224/250/345/237/237/344/270/216/345/257/206/351/222/245/346/213/246/346/210/252.md +0 -54
- package/templates/shared//344/275/234/347/224/250/345/237/237/347/247/237/347/272/246.md +0 -55
- package/templates/shared//345/206/262/347/252/201/351/227/250/347/246/201.md +0 -55
- package/templates/shared//345/206/263/347/255/226/347/275/221/345/205/263.md +0 -47
- package/templates/shared//345/210/207/347/211/207/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -72
- package/templates/shared//345/217/230/345/274/202/345/256/241/350/256/241.md +0 -58
- package/templates/shared//345/220/216/347/253/257/345/256/236/347/216/260/345/267/245/347/250/213/345/245/221/347/272/246.md +0 -40
- package/templates/shared//345/221/275/344/273/244/346/211/247/350/241/214.md +0 -48
- package/templates/shared//345/221/275/344/273/244/350/267/257/347/224/261.md +0 -45
- package/templates/shared//345/233/236/345/275/222/347/237/251/351/230/265.md +0 -54
- package/templates/shared//345/244/232/347/247/237/346/210/267.md +0 -49
- package/templates/shared//345/256/241/350/256/241/346/227/245/345/277/227.md +0 -46
- package/templates/shared//345/257/274/345/205/245/345/257/274/345/207/272.md +0 -51
- package/templates/shared//345/267/245/344/275/234/345/214/272/344/272/222/346/226/245/351/224/201.md +0 -52
- package/templates/shared//345/267/245/344/275/234/345/214/272/345/224/244/351/206/222.md +0 -54
- package/templates/shared//345/267/245/344/275/234/346/265/201/345/245/221/347/272/246.md +0 -42
- package/templates/shared//345/267/245/344/275/234/346/265/201/345/274/225/346/223/216.md +0 -50
- package/templates/shared//345/267/245/344/275/234/346/265/201/346/250/241/347/211/210/345/214/205.md +0 -34
- package/templates/shared//345/267/245/345/205/267/350/260/203/347/224/250.md +0 -48
- package/templates/shared//345/271/266/345/217/221/351/224/201.md +0 -57
- package/templates/shared//346/211/247/350/241/214/345/256/210/345/215/253/350/257/204/344/274/260.md +0 -47
- package/templates/shared//346/211/251/345/261/225/347/224/237/345/221/275/345/221/250/346/234/237.md +0 -34
- package/templates/shared//346/212/200/346/234/257/345/206/263/347/255/226/344/270/273/346/235/203.md +0 -50
- package/templates/shared//346/212/245/350/241/250/347/273/237/350/256/241.md +0 -50
- package/templates/shared//346/224/257/344/273/230.md +0 -51
- package/templates/shared//346/225/217/346/204/237/344/277/241/346/201/257/345/244/204/347/220/206.md +0 -77
- package/templates/shared//346/225/217/346/204/237/344/277/241/346/201/257/346/211/253/346/217/217.md +0 -53
- package/templates/shared//346/225/260/346/215/256/346/235/203/351/231/220.md +0 -47
- package/templates/shared//346/226/275/345/267/245/346/214/207/344/273/244/345/245/221/347/272/246.md +0 -69
- package/templates/shared//346/227/245/345/277/227/346/262/273/347/220/206.md +0 -31
- package/templates/shared//346/234/272/345/210/266/350/207/252/346/262/273/347/220/206.md +0 -31
- package/templates/shared//346/240/207/345/207/206/350/265/204/344/272/247/350/246/206/347/233/226.md +0 -50
- package/templates/shared//346/240/270/345/277/203/344/275/223/351/252/214/345/216/237/345/210/231.md +0 -38
- package/templates/shared//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214/345/216/237/345/210/231.md +0 -154
- package/templates/shared//346/250/241/347/211/210Frontmatter.md +0 -125
- package/templates/shared//346/250/241/347/211/210/350/264/241/347/214/256/346/214/207/345/215/227.md +0 -282
- package/templates/shared//346/250/241/347/211/210/350/265/204/344/272/247/345/217/257/350/247/201/346/200/247.md +0 -48
- package/templates/shared//346/262/273/347/220/206/350/277/220/350/241/214/346/227/266/345/276/252/347/216/257.md +0 -56
- package/templates/shared//346/263/250/345/206/214/350/241/250/345/237/272/347/241/200/350/256/276/346/226/275.md +0 -49
- package/templates/shared//346/274/224/350/277/233/345/233/236/345/275/222/351/227/250/346/216/247.md +0 -50
- package/templates/shared//347/224/250/346/210/267/345/217/215/351/246/210/345/245/221/347/272/246.md +0 -86
- package/templates/shared//347/237/245/350/257/206/344/270/273/346/235/203.md +0 -66
- package/templates/shared//347/237/245/350/257/206/346/262/273/347/220/206.md +0 -31
- package/templates/shared//347/237/245/350/257/206/346/263/250/345/205/245/350/276/271/347/225/214.md +0 -47
- package/templates/shared//347/273/206/350/212/202/347/272/252/345/276/213.md +0 -54
- package/templates/shared//350/204/221/346/232/264/344/270/216/346/226/271/346/241/210/346/216/242/347/264/242.md +0 -51
- package/templates/shared//350/256/241/345/210/222/345/211/215/347/275/256/351/227/250.md +0 -47
- package/templates/shared//350/256/276/350/256/241/344/272/247/347/211/251/345/214/205.md +0 -58
- package/templates/shared//350/257/255/344/271/211/350/257/201/346/215/256.md +0 -55
- package/templates/shared//350/267/250/345/271/263/345/217/260/350/267/257/345/276/204/345/256/211/345/205/250.md +0 -41
- package/templates/shared//350/276/223/345/205/245/346/235/220/346/226/231/345/245/221/347/272/246.md +0 -50
- package/templates/shared//350/277/220/350/241/214/345/256/211/345/205/250/345/214/205.md +0 -58
- package/templates/shared//351/200/232/347/224/250/345/206/263/347/255/226/347/240/224/350/256/250.md +0 -62
- package/templates/shared//351/200/232/347/224/250/346/234/272/346/242/260/346/235/241/346/254/276.md +0 -47
- package/templates/shared//351/200/232/347/237/245.md +0 -50
- package/templates/shared//351/203/250/347/275/262/351/205/215/347/275/256.md +0 -14
- package/templates/shared//351/205/215/347/275/256/344/274/230/345/205/210/347/272/247.md +0 -67
- package/templates/shared//351/205/215/347/275/256/350/220/275/347/233/230/350/276/271/347/225/214.md +0 -32
- package/templates/shared//351/230/262/345/255/244/345/262/233/345/256/236/347/216/260.md +0 -51
- package/templates/shared//351/233/266/351/205/215/347/275/256/345/210/235/345/247/213/345/214/226.md +0 -57
- package/templates/shared//351/252/214/346/224/266/346/250/241/347/211/210/350/276/223/345/207/272/345/245/221/347/272/246.md +0 -71
- package/templates/shared//351/252/214/350/257/201/345/221/275/344/273/244/347/224/237/346/210/220.md +0 -55
- package/templates/shared//351/252/214/350/257/201/345/245/221/347/272/246.md +0 -48
- package/templates/verify/Docker/351/203/250/347/275/262.md +0 -46
- package/templates/verify/POC/347/273/223/350/256/272.md +0 -53
- package/templates/verify/React/345/210/227/350/241/250/350/241/250/346/240/274.md +0 -43
- package/templates/verify/React/347/212/266/346/200/201/347/256/241/347/220/206.md +0 -42
- package/templates/verify/React/347/273/204/344/273/266.md +0 -42
- package/templates/verify/React/350/241/250/345/215/225.md +0 -43
- package/templates/verify/React/350/267/257/347/224/261.md +0 -43
- package/templates/verify/SOLID/344/273/243/347/240/201/345/256/241/346/237/245.md +0 -74
- package/templates/verify/SOLID/350/256/276/350/256/241.md +0 -31
- package/templates/verify/Schema/345/205/274/345/256/271.md +0 -42
- package/templates/verify/Vue/347/212/266/346/200/201/347/256/241/347/220/206.md +0 -42
- package/templates/verify/Vue/347/273/204/344/273/266.md +0 -42
- package/templates/verify/Vue/350/267/257/347/224/261.md +0 -43
- package/templates/verify//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.md +0 -76
- package/templates/verify//344/270/273/351/223/276/350/267/257/346/216/245/345/205/245.md +0 -38
- package/templates/verify//344/272/213/344/273/266/351/251/261/345/212/250.md +0 -46
- package/templates/verify//344/272/213/345/212/241/346/250/241/345/274/217.md +0 -42
- package/templates/verify//344/273/243/347/240/201/345/217/257/347/273/264/346/212/244/346/200/247/344/270/216/345/217/257/350/247/202/346/265/213/346/200/247/345/256/241/346/237/245.md +0 -92
- package/templates/verify//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.md +0 -64
- package/templates/verify//344/274/232/350/257/235/346/201/242/345/244/215.md +0 -46
- package/templates/verify//345/206/263/347/255/226/345/256/214/346/225/264/346/200/247/345/256/241/346/237/245.md +0 -71
- package/templates/verify//345/210/206/351/241/265/346/237/245/350/257/242.md +0 -41
- package/templates/verify//345/211/215/347/253/257/351/241/265/351/235/242.md +0 -40
- package/templates/verify//345/216/206/345/217/262/346/225/260/346/215/256/346/270/205/346/264/227/350/204/232/346/234/254.md +0 -55
- package/templates/verify//345/217/221/345/270/203/345/220/216/345/256/241/346/237/245.md +0 -73
- package/templates/verify//345/220/216/347/253/257API.md +0 -39
- package/templates/verify//345/242/236/345/210/240/346/224/271/346/237/245.md +0 -45
- package/templates/verify//345/244/226/351/203/250/344/276/235/350/265/226.md +0 -43
- package/templates/verify//345/245/221/347/272/246/345/205/274/345/256/271.md +0 -42
- package/templates/verify//345/256/232/346/227/266/344/273/273/345/212/241.md +0 -39
- package/templates/verify//345/256/236/346/227/266/346/216/250/351/200/201.md +0 -48
- package/templates/verify//345/256/241/346/237/245/346/221/230/350/246/201.md +0 -58
- package/templates/verify//345/267/245/344/275/234/346/265/201.md +0 -38
- package/templates/verify//345/271/266/345/217/221/345/256/241/346/237/245.md +0 -132
- package/templates/verify//345/274/202/346/255/245/345/257/274/345/207/272.md +0 -41
- package/templates/verify//346/200/247/350/203/275/345/256/241/346/237/245.md +0 -110
- package/templates/verify//346/216/245/345/217/243/345/245/221/347/272/246.md +0 -44
- package/templates/verify//346/216/245/345/217/243/345/245/221/347/272/246/345/256/241/346/237/245.md +0 -131
- package/templates/verify//346/220/234/347/264/242/346/250/241/345/274/217.md +0 -47
- package/templates/verify//346/225/205/351/232/234/345/244/215/347/233/230.md +0 -67
- package/templates/verify//346/225/260/346/215/256/345/272/223/345/217/230/346/233/264.md +0 -37
- package/templates/verify//346/225/260/346/215/256/351/232/220/347/247/201.md +0 -46
- package/templates/verify//346/226/207/344/273/266/344/270/212/344/274/240.md +0 -45
- package/templates/verify//346/227/245/345/277/227.md +0 -45
- package/templates/verify//346/234/254/345/234/260/346/265/217/350/247/210/345/231/250/351/252/214/346/224/266.md +0 -94
- package/templates/verify//346/240/270/345/277/203/345/267/245/347/250/213/346/211/247/350/241/214.md +0 -65
- package/templates/verify//347/237/245/350/257/206/346/263/250/345/205/245.md +0 -38
- package/templates/verify//347/264/247/346/200/245/344/277/256/345/244/215/346/265/201/346/260/264/347/272/277.md +0 -76
- package/templates/verify//347/274/223/345/255/230/347/255/226/347/225/245.md +0 -45
- package/templates/verify//350/201/224/350/260/203/350/256/276/350/256/241/347/274/272/351/231/267/345/210/244/345/256/232.md +0 -67
- package/templates/verify//350/201/224/350/260/203/351/252/214/350/257/201.md +0 -87
- package/templates/verify//350/256/276/350/256/241/345/256/241/350/256/241.md +0 -184
- package/templates/verify//350/257/225/350/277/220/350/241/214/347/206/224/346/226/255.md +0 -74
- package/templates/verify//350/276/223/345/205/245/346/240/241/351/252/214.md +0 -44
- package/templates/verify//351/203/250/347/275/262/345/217/221/345/270/203.md +0 -101
- package/templates/verify//351/224/231/350/257/257/345/244/204/347/220/206.md +0 -46
- package/templates/verify//351/224/231/350/257/257/350/276/271/347/225/214.md +0 -38
- package/templates/verify//351/232/220/347/247/201/345/256/241/346/237/245.md +0 -37
- package/templates/verify//351/252/214/350/257/201.md +0 -38
- package/templates/verify//351/252/214/350/257/201/350/201/232/345/220/210/346/243/200/346/237/245.md +0 -22
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: 架构设计
|
|
3
|
-
kind: guidance
|
|
4
|
-
title: 架构设计
|
|
5
|
-
sync_policy: copy_to_project
|
|
6
|
-
status: active
|
|
7
|
-
triggers:
|
|
8
|
-
- 架构设计规则
|
|
9
|
-
- 架构规则
|
|
10
|
-
- architecture rule
|
|
11
|
-
- 架构红线
|
|
12
|
-
- 系统架构
|
|
13
|
-
- 模块划分
|
|
14
|
-
- 服务边界
|
|
15
|
-
- 跨模块调用
|
|
16
|
-
- 服务拆分
|
|
17
|
-
- 技术架构
|
|
18
|
-
- 平台建设
|
|
19
|
-
extra:
|
|
20
|
-
name: architecture-design
|
|
21
|
-
type: constraint
|
|
22
|
-
scope:
|
|
23
|
-
- '*'
|
|
24
|
-
products:
|
|
25
|
-
- '*'
|
|
26
|
-
domain:
|
|
27
|
-
- design
|
|
28
|
-
- build
|
|
29
|
-
- verify
|
|
30
|
-
lifecycle_status: active
|
|
31
|
-
verification_layer: L2
|
|
32
|
-
stage: design
|
|
33
|
-
owner_mechanism: mc-command-router
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
# 架构设计规则(设计域治理规则)
|
|
37
|
-
|
|
38
|
-
> 合并自:架构设计.md + 架构决策研讨.md + 架构红线.md(3 件套职责重叠,统一为设计域治理规则)。
|
|
39
|
-
>
|
|
40
|
-
> **档位标注**(每条规则的可执行档位,对应 SoloForge 三档强制执行体系):
|
|
41
|
-
> - **A 档** = regex_pattern_scan 单行可判(命中=违规,仅适用「禁止 X」类规则)
|
|
42
|
-
> - **B 档** = external_command(委托成熟工具做 AST 依赖图/行数/项目级存在性检查,不自造解析器)
|
|
43
|
-
> - **C 档** = semantic(LLM 评判,advisory 不阻断,通过 Reflexion 反馈闭环改进)
|
|
44
|
-
>
|
|
45
|
-
> 关键约束:regex_pattern_scan 单行匹配 + 命中=违规,故「必须包含 X」「依赖方向」类检查无法用 regex,须归 B/C 档。
|
|
46
|
-
|
|
47
|
-
## 架构决策研讨硬底线(原「架构决策研讨规则」并入)
|
|
48
|
-
|
|
49
|
-
- 正式架构文档生成前必须覆盖业务流程、数据架构、安全架构、后端架构、前端架构、基础设施六类决策域。
|
|
50
|
-
- 每个必要域必须记录事实和约束、候选方案、推荐理由、风险和用户确认引用。
|
|
51
|
-
- 现有系统必须先引用现状分析和差距分析证据;空项目必须先确认目标、端范围和非功能约束。
|
|
52
|
-
- 任一必要域为未开始、讨论中、待确认或返工状态时,只能输出讨论清单或明确的不可执行草案。
|
|
53
|
-
- 决策变化必须将受影响设计产物标记为需要重新验证。
|
|
54
|
-
|
|
55
|
-
### 低风险边界
|
|
56
|
-
普通缺陷修复、样式或文案调整、只读解释不触发完整六域研讨;涉及契约、数据、安全、部署或重大模块边界变化时重新触发。
|
|
57
|
-
|
|
58
|
-
- ADR-HARD-01: 每条架构决策必须有对应 ADR,禁止口头决策不留记录【C 档|流程约束】
|
|
59
|
-
- ADR-HARD-02: ADR 状态变更必须经用户确认,Agent 不得自动变更状态【C 档|流程约束】
|
|
60
|
-
- ADR-HARD-03: 已 Accepted 的 ADR 被推翻时,必须创建新 ADR 并标注 Superseded-By【A 档|document_structure 可检测 Superseded-By 标记】
|
|
61
|
-
- ADR-HARD-04: 跳过决策研讨必须用户明确声明,Agent 不得自行跳过【C 档|流程约束】
|
|
62
|
-
|
|
63
|
-
## 架构决策要求
|
|
64
|
-
|
|
65
|
-
- 每个架构决策必须有 ADR(Architecture Decision Record)引用
|
|
66
|
-
- ADR 必须包含:决策背景、候选方案、选择理由、影响范围
|
|
67
|
-
- 重大架构变更(涉及 ≥3 个模块)必须经过决策研讨阶段确认
|
|
68
|
-
|
|
69
|
-
## 技术选型要求
|
|
70
|
-
|
|
71
|
-
- 技术选型必须列出至少 2 个候选方案
|
|
72
|
-
- 每个候选方案必须列出优势和劣势
|
|
73
|
-
- 最终选择必须有明确的理由说明(性能/成本/团队熟悉度/生态成熟度等)
|
|
74
|
-
- 禁止仅凭"业界主流"作为选型理由
|
|
75
|
-
- ARCH-MOD-04: 技术选型须有 NFR 量化对比【C 档|LLM 评判量化合理性】
|
|
76
|
-
格式:{候选技术} {NFR维度} {量化指标} {数据来源}
|
|
77
|
-
示例:Redis vs Memcached 缓存命中率 >99.9% 基准测试报告
|
|
78
|
-
|
|
79
|
-
## 技术选型格式要求
|
|
80
|
-
|
|
81
|
-
- ARCH-TECH-01: 技术选型决策必须包含以下字段【B 档|document_structure 检查文档字段存在性】
|
|
82
|
-
- 候选方案(≥2 个)
|
|
83
|
-
- 评估维度(性能/成熟度/团队熟悉度/社区活跃度/许可证)
|
|
84
|
-
- 评分矩阵(每维度 1-5 分)
|
|
85
|
-
- 最终选择 + 理由
|
|
86
|
-
- 关联 ADR-ID
|
|
87
|
-
|
|
88
|
-
## 架构图要求
|
|
89
|
-
|
|
90
|
-
- Mermaid 图必须反映实际模块关系,不得省略关键依赖
|
|
91
|
-
- 每个模块的职责边界必须明确标注
|
|
92
|
-
- 跨模块调用必须标注调用方向和数据流
|
|
93
|
-
- 部署架构图必须包含所有基础设施组件
|
|
94
|
-
|
|
95
|
-
## 模块依赖方向
|
|
96
|
-
|
|
97
|
-
> 依赖方向类检查无法用 regex_pattern_scan(需 AST 跨文件 import 分析),统一委托外部成熟工具。
|
|
98
|
-
|
|
99
|
-
- ARCH-DEP-01: 模块间依赖必须遵循分层架构方向(上层→下层,禁止反向依赖)【B 档|external_command: Java→ArchUnit, JS/TS→dependency-cruiser】
|
|
100
|
-
检查方式:AST 依赖图分析(ArchUnit layeredArchitecture / dependency-cruiser no-controller-to-dao)
|
|
101
|
-
例外:通过依赖注入/事件解耦的反向调用不计入
|
|
102
|
-
- ARCH-DEP-02: 循环依赖禁止(A→B→C→A)【B 档|external_command: ArchUnit beFreeOfCycles / dependency-cruiser no-circular】
|
|
103
|
-
检查方式:依赖图环检测
|
|
104
|
-
例外:无
|
|
105
|
-
- ARCH-DEP-03: 跨层直接访问禁止(表现层不得直接访问数据层)【B 档|external_command: dependency-cruiser no-utils-to-feature / ArchUnit 分层规则】
|
|
106
|
-
检查方式:import/require 链分析
|
|
107
|
-
例外:工具函数/类型定义可跨层引用
|
|
108
|
-
|
|
109
|
-
## Mermaid 图类型约束
|
|
110
|
-
|
|
111
|
-
> 「必须使用 X 图类型」是存在性检查(命中=通过),regex_pattern_scan 命中=违规语义不适用,归 B 档(document_structure/grep 检测)。
|
|
112
|
-
|
|
113
|
-
- ARCH-MER-01: 系统上下文必须使用 C4Context 或 deploymentDiagram【B 档|document_structure】
|
|
114
|
-
- ARCH-MER-02: 模块交互必须使用 graph (flowchart) 或 componentDiagram【B 档|document_structure】
|
|
115
|
-
- ARCH-MER-03: 时序交互必须使用 sequenceDiagram【B 档|document_structure】
|
|
116
|
-
- ARCH-MER-04: 状态流转必须使用 stateDiagram-v2【B 档|document_structure】
|
|
117
|
-
|
|
118
|
-
## 架构红线禁令(原「架构红线」并入)
|
|
119
|
-
|
|
120
|
-
> 12 条架构红线禁令。按可执行性分档:禁止类代码 pattern 归 A 档(regex 命中=违规);跨行/语义类归 B/C 档。
|
|
121
|
-
|
|
122
|
-
### 语义/流程类禁令(C 档|LLM 评判,Reflexion 反馈闭环)
|
|
123
|
-
|
|
124
|
-
- 禁止绕过统一认证和数据范围控制直接暴露业务接口
|
|
125
|
-
- 禁止通过 Patch JAR、docker commit 或运行时文件替换交付代码
|
|
126
|
-
- 禁止前端、Controller 或定时任务跨服务边界直接访问持久化实现
|
|
127
|
-
- 禁止将事务、认证、金额、库存、安全策略或数据库 Schema 变更打包为"小修改"而无设计追溯
|
|
128
|
-
- 禁止菜单可见性与接口可调用性解耦(菜单隐藏但接口暴露,或菜单存在但无权限支撑)
|
|
129
|
-
- 禁止异步消息、定时任务或补偿逻辑绕过主路径审计和幂等控制
|
|
130
|
-
- 所有新增写操作必须有可追溯的审计记录
|
|
131
|
-
|
|
132
|
-
### 跨行/深度检查类禁令(B 档|external_command 成熟工具)
|
|
133
|
-
|
|
134
|
-
- 禁止在循环内执行数据库操作(N+1),必须使用批量查询【与 verify-gate PER-01 同源,深度检查迁 B 档】
|
|
135
|
-
- 禁止在事务内执行远程调用(HTTP/RPC),防止长事务锁表【跨行检查迁 B 档: checkstyle 自定义规则】
|
|
136
|
-
|
|
137
|
-
### 代码 pattern 类禁令(A 档|regex_pattern_scan 单行命中=违规)
|
|
138
|
-
|
|
139
|
-
## ARCH-RED-01: 空 catch 块静默吞异常
|
|
140
|
-
pattern: /catch\s*\([^)]*\)\s*\{\s*\}/
|
|
141
|
-
severity: error
|
|
142
|
-
check_type: deterministic
|
|
143
|
-
executor: regex_pattern_scan
|
|
144
|
-
scope: backend
|
|
145
|
-
description: 禁止 catch 后空处理(同行空块),至少记录日志并标注忽略原因。多行空 catch 块单行 regex 不可靠,须 B 档 checkstyle 补充
|
|
146
|
-
evidence_required:
|
|
147
|
-
- "扫描结果:含空 catch 块的文件路径+行号"
|
|
148
|
-
|
|
149
|
-
## ARCH-RED-02: 直接使用 new Date() 获取时间
|
|
150
|
-
pattern: /new\s+Date\s*\(\s*\)/
|
|
151
|
-
severity: warning
|
|
152
|
-
check_type: deterministic
|
|
153
|
-
executor: regex_pattern_scan
|
|
154
|
-
scope: backend
|
|
155
|
-
description: 禁止直接 new Date(),必须通过时钟服务注入便于测试
|
|
156
|
-
evidence_required:
|
|
157
|
-
- "扫描结果:含 new Date() 的文件路径+行号"
|
|
158
|
-
|
|
159
|
-
## ARCH-RED-03: Service 层注入 HttpServletRequest/Response
|
|
160
|
-
pattern: /(?:HttpServletRequest|HttpServletResponse)\s/
|
|
161
|
-
severity: warning
|
|
162
|
-
check_type: deterministic
|
|
163
|
-
executor: regex_pattern_scan
|
|
164
|
-
scope: backend
|
|
165
|
-
description: 禁止 Service 层注入 Servlet API,保持层级清晰。与 verify-gate ARC-08 同源 pattern(本规则归设计红线,ARC-08 归代码审查,双重覆盖)
|
|
166
|
-
evidence_required:
|
|
167
|
-
- "扫描结果:Service 层引用 Servlet API 的文件路径+行号"
|
|
168
|
-
|
|
169
|
-
### 验收项
|
|
170
|
-
|
|
171
|
-
- [AC-01] 业务接口经过统一认证
|
|
172
|
-
- [AC-02] 无跨边界直接持久化访问
|
|
173
|
-
- [AC-03] 菜单与接口权限同步定义
|
|
174
|
-
- [AC-04] 写操作有审计记录
|
|
175
|
-
- [AC-05] 无循环内数据库调用
|
|
176
|
-
- [AC-06] 无事务内远程调用
|
|
177
|
-
- [AC-07] 无空 catch 块
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: ka-procedure-架构设计工作流
|
|
3
|
-
kind: guidance
|
|
4
|
-
title: 架构设计
|
|
5
|
-
sync_policy: copy_to_project
|
|
6
|
-
status: active
|
|
7
|
-
triggers:
|
|
8
|
-
- design
|
|
9
|
-
- 架构
|
|
10
|
-
- architecture
|
|
11
|
-
- 设计系统
|
|
12
|
-
- 多端设计
|
|
13
|
-
- 系统设计
|
|
14
|
-
- 技术方案设计
|
|
15
|
-
- 模块划分
|
|
16
|
-
- 技术方案
|
|
17
|
-
- 方案设计
|
|
18
|
-
- 架构评审
|
|
19
|
-
- 技术架构
|
|
20
|
-
- 平台建设
|
|
21
|
-
- 服务拆分
|
|
22
|
-
extra:
|
|
23
|
-
name: architecture-design-workflow
|
|
24
|
-
type: procedure
|
|
25
|
-
scope:
|
|
26
|
-
- backend
|
|
27
|
-
- frontend
|
|
28
|
-
- infrastructure
|
|
29
|
-
products:
|
|
30
|
-
- '*'
|
|
31
|
-
consumed_contracts:
|
|
32
|
-
- architecture_decision_workshop_contract
|
|
33
|
-
- design_artifact_pack_contract
|
|
34
|
-
- architecture_design_contract_entry
|
|
35
|
-
- technology_decision_contract
|
|
36
|
-
- brainstorm_contract
|
|
37
|
-
- detail_discipline_contract
|
|
38
|
-
- first_principles_contract
|
|
39
|
-
required_sections:
|
|
40
|
-
- 输入集确认
|
|
41
|
-
- 输出目录决策
|
|
42
|
-
- 技术栈策略
|
|
43
|
-
- 前端仓库策略
|
|
44
|
-
- 不确定项决策
|
|
45
|
-
- Mermaid 图要求
|
|
46
|
-
- 架构设计审查
|
|
47
|
-
- 约束条件分析
|
|
48
|
-
- NFR 启发与权衡
|
|
49
|
-
- 架构范式选择
|
|
50
|
-
hard_rules:
|
|
51
|
-
- 正式架构设计前必须完成六类架构决策研讨并引用用户确认的决策记录
|
|
52
|
-
- 架构设计必须进入包含数据库、API、OpenAPI/SQL 和一致性报告的设计产物包复验流程
|
|
53
|
-
- 输出目录名必须给推荐并进入用户确认;未确认时不得 delivered
|
|
54
|
-
- 后端必须默认优先 Java,除非存在项目证据或用户确认 override
|
|
55
|
-
- 前端必须默认优先最新稳定 Vue 生态 + TypeScript,除非存在项目证据或用户确认 override
|
|
56
|
-
- 不同前端端必须默认不同项目仓库或独立应用边界;合并仓库必须用户确认
|
|
57
|
-
- 不确定项必须包含推荐、理由、备选、风险和用户确认问题
|
|
58
|
-
- 架构级不确定项必须接 Brainstorm / Decision Sovereignty / User Confirmation
|
|
59
|
-
- 关键业务流程必须有 Mermaid sequenceDiagram
|
|
60
|
-
- Mermaid 必须可渲染
|
|
61
|
-
acceptance_checks:
|
|
62
|
-
- ArchitectureDesignContract 已创建且 status 非 pending
|
|
63
|
-
- 输出目录决策 status 为 confirmed
|
|
64
|
-
- 所有 required_source_artifacts 已覆盖
|
|
65
|
-
- Mermaid 图 render_check_status 为 passed
|
|
66
|
-
- 架构设计审查 review.passed 为 true
|
|
67
|
-
lifecycle_status: active
|
|
68
|
-
version: 1.2.0
|
|
69
|
-
last_reviewed: '2026-06-04'
|
|
70
|
-
domain: design
|
|
71
|
-
verification_layer: L2
|
|
72
|
-
stage: design
|
|
73
|
-
owner_mechanism: mc-architecture-design
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
## 适用场景
|
|
77
|
-
从多个 task 输入(原型说明、需求文档等)到完整架构设计产出的工作流。适用于多端、多模块、有不确定项的系统设计。原「架构决策研讨工作流」已内联并入步骤 2 的研讨子流程。
|
|
78
|
-
|
|
79
|
-
## 步骤
|
|
80
|
-
1. **输入集确认**: 识别docs/analyze/目录下所有的原型说明及docs/context/目录下的需求文档,确认覆盖所有端
|
|
81
|
-
2. **架构决策研讨**: 逐域闭合业务流程、数据、安全、后端、前端和基础设施决策,生成 `docs/architecture/00-架构决策记录.md`
|
|
82
|
-
- 每条决策使用 MADR 格式记录(标题/状态/上下文/决策/候选方案/理由/后果)
|
|
83
|
-
- ADR 状态管理:Proposed → Accepted → Superseded(被新 ADR 替代时标注 Superseded-By)
|
|
84
|
-
- 跨域权衡检测:某个域的决策可能影响其他域时,自动标记需重新确认的域
|
|
85
|
-
- **研讨子流程**(原「架构决策研讨工作流」内联,六步闭合决策):
|
|
86
|
-
2.1 判断项目为现有系统、新系统、空项目或重构升级
|
|
87
|
-
2.2 现有系统先获取现状与差距证据;空项目先确认业务目标和约束
|
|
88
|
-
2.3 默认按业务流程、数据、安全、后端、前端、基础设施逐域讨论
|
|
89
|
-
2.4 每域提供方案、推荐、风险与需要确认的问题;确认后记录 decision ref
|
|
90
|
-
2.5 全部必要域确认后生成 `docs/architecture/00-架构决策记录.md`
|
|
91
|
-
2.6 仅以该决策记录驱动正式架构设计与设计产物包
|
|
92
|
-
- **失败处理**: 缺证据、缺确认或决策返工时,停止生成正式文档并说明下一项待决事项;不得用模版默认值或模型偏好替代项目事实与用户决定
|
|
93
|
-
2a. **头脑风暴触发**:若架构决策存在 ≥ 3 个候选方案且无明确最优,或 AI 自检不确定:
|
|
94
|
-
→ 进入「不确定时头脑风暴流程」(templates/procedures/不确定时头脑风暴.md)
|
|
95
|
-
→ 若 fundamental_need 为空 → 先触发 FP-01
|
|
96
|
-
2b. **约束条件分析**: 读取需求文档中的约束、技术栈限制、合规要求,按技术/组织/法规/预算分类填充 Ch3a
|
|
97
|
-
3. **输出目录决策**: 给出推荐目录名,等待用户确认
|
|
98
|
-
4. **技术栈策略**:
|
|
99
|
-
- 后端默认 Java 优先(项目证据或用户确认可 override)
|
|
100
|
-
- 前端默认最新稳定 Vue 生态 + TypeScript(语言、构建工具、路由、状态管理、接口类型、测试、lint/format)
|
|
101
|
-
- 项目已有技术栈优先于 SoloForge 默认
|
|
102
|
-
4a. **架构范式选择**(可选): 参考七范式栈启发式菜单(DDD/Clean Architecture/Hexagonal/Modular Monolith/GRASP/SOLID/ADR),Agent 推荐 + 用户选择,填充 Ch4a。跳过条件:用户明确表示不需要范式指导
|
|
103
|
-
5. **前端仓库策略**: 不同前端端默认不同仓库;合并仓库需用户确认
|
|
104
|
-
6. **不确定项决策**: 每个不确定项包含推荐、理由、备选、风险和用户确认问题
|
|
105
|
-
7. **架构级不确定项**: 接入 Brainstorm → Decision Sovereignty → User Confirmation
|
|
106
|
-
8. **设计产物包**: 架构、数据库、API、OpenAPI/SQL 和一致性报告按权威来源联动生成/升级
|
|
107
|
-
9. **Mermaid 图**: 关键业务流程、登录鉴权、跨端协作、前后端交互、异步任务必须有 sequenceDiagram
|
|
108
|
-
9a. **NFR 启发与权衡**: 按 4 类 13+ 质量属性启发(性能/可靠性/安全性/可维护性),每项 NFR 须有量化目标值 + 验证方式,填充 Ch10.1 性能预算表 + Ch10.4 验证策略表
|
|
109
|
-
10. **架构设计审查**: reviewArchitectureDesign 与 DesignArtifactPack 真实复验通过
|
|
110
|
-
|
|
111
|
-
## 检查点
|
|
112
|
-
- [ ] 六类架构决策均已确认并记录 decision refs
|
|
113
|
-
- [ ] 输出目录已用户确认
|
|
114
|
-
- [ ] 技术栈有项目证据或用户确认支撑
|
|
115
|
-
- [ ] 不确定项全部有推荐和用户确认问题
|
|
116
|
-
- [ ] Mermaid sequenceDiagram 覆盖关键流程
|
|
117
|
-
- [ ] reviewArchitectureDesign passed
|
|
118
|
-
- [ ] 设计产物包进入 implementation_ready
|
|
119
|
-
- [ ] 约束条件 4 类各至少 1 条
|
|
120
|
-
- [ ] NFR 每项有量化目标值
|
|
121
|
-
- [ ] 架构范式选择(若启用)有用户确认
|
|
122
|
-
|
|
123
|
-
## 禁止退化
|
|
124
|
-
- 未确认目录不得 delivered
|
|
125
|
-
- 缺少 Mermaid 图不得 completed
|
|
126
|
-
- 六类决策未确认或设计产物包未复验不得 completed
|
|
127
|
-
- 架构级决策无 human gate 不得 approved
|
|
128
|
-
- 模版章节缺失不得 completed
|
|
129
|
-
- ADR 状态变更未经用户确认不得推进
|
|
130
|
-
- 六域确认后不得推翻已确认域的决策(推翻须记录 ADR 并重新确认受影响域)
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: ka-procedure-概念验证流水线
|
|
3
|
-
kind: guidance
|
|
4
|
-
title: 概念验证流水线
|
|
5
|
-
sync_policy: copy_to_project
|
|
6
|
-
status: active
|
|
7
|
-
triggers:
|
|
8
|
-
- 技术验证
|
|
9
|
-
- POC
|
|
10
|
-
- 可行性验证
|
|
11
|
-
- 技术选型
|
|
12
|
-
- 技术调研
|
|
13
|
-
- 原型验证
|
|
14
|
-
- spike
|
|
15
|
-
extra:
|
|
16
|
-
name: poc-pipeline
|
|
17
|
-
type: procedure
|
|
18
|
-
scope:
|
|
19
|
-
- backend
|
|
20
|
-
- frontend
|
|
21
|
-
products:
|
|
22
|
-
- '*'
|
|
23
|
-
lifecycle_status: active
|
|
24
|
-
version: 1.1.0
|
|
25
|
-
last_reviewed: '2026-06-01'
|
|
26
|
-
domain: design
|
|
27
|
-
verification_layer: L2
|
|
28
|
-
stage: design
|
|
29
|
-
owner_mechanism: mc-brainstorm-contract
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
# 技术验证管线
|
|
33
|
-
|
|
34
|
-
## 第1步:调研分析
|
|
35
|
-
明确验证目标和成功标准。调研候选方案的生态成熟度、社区活跃度、性能基准、与现有技术栈兼容性。列出关键评估维度和权重。
|
|
36
|
-
产出保存到:docs/analyze/*/01-调研报告.md
|
|
37
|
-
工具:(本步骤为任务入口,由 sf_task 统一路由)
|
|
38
|
-
|
|
39
|
-
## 第2步:原型实现
|
|
40
|
-
选择 1-2 个最有前景的方案实现最小原型。原型聚焦核心验证点,不追求完整功能。记录实现过程中的关键发现(坑、限制、惊喜)。
|
|
41
|
-
工具:sf_work action=act, sf_scaffold
|
|
42
|
-
|
|
43
|
-
## 第3步:评估结论
|
|
44
|
-
对比各方案在关键维度的表现(附量化数据)。给出推荐方案和理由。列出遗留风险和后续关注点。明确结论:推荐采用/需进一步验证/不建议采用。
|
|
45
|
-
模版:POC结论.md
|
|
46
|
-
产出保存到:docs/review/\*\*/*POC*.md
|
|
47
|
-
工具:sf_work action=verify, sf_gate
|
package/templates/design//346/272/220/347/240/201/345/216/237/345/236/213/344/272/244/344/273/230.md
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: ka-procedure-源码原型交付流程
|
|
3
|
-
kind: guidance
|
|
4
|
-
title: 源码原型交付
|
|
5
|
-
sync_policy: copy_to_project
|
|
6
|
-
status: active
|
|
7
|
-
triggers:
|
|
8
|
-
- 原型
|
|
9
|
-
- 源码原型
|
|
10
|
-
- 原型交付
|
|
11
|
-
- 原型提取
|
|
12
|
-
extra:
|
|
13
|
-
name: source-prototype-to-delivery
|
|
14
|
-
type: procedure
|
|
15
|
-
scope:
|
|
16
|
-
- backend
|
|
17
|
-
- frontend
|
|
18
|
-
products:
|
|
19
|
-
- '*'
|
|
20
|
-
lifecycle_status: active
|
|
21
|
-
version: 1.1.0
|
|
22
|
-
last_reviewed: '2026-06-01'
|
|
23
|
-
domain: design
|
|
24
|
-
verification_layer: L2
|
|
25
|
-
stage: design
|
|
26
|
-
owner_mechanism: mc-artifact-contract
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
# 源码原型需求到交付
|
|
30
|
-
|
|
31
|
-
## 第1步:原型抓取
|
|
32
|
-
只能从导出的源码包(如 React/Vite zip)或已解压源码目录提取原型信息:路由、页面组件、布局结构、状态变量、事件处理、弹窗/导航/表单交互、样式令牌和导入的业务说明。禁止使用 Figma MCP、浏览器运行态、figma.site 或截图作为补充来源。若未提供源码包或源码目录,停止原型抓取并要求补充源码输入。对每个端或页面独立输出原型说明。
|
|
33
|
-
模版:原型说明.md
|
|
34
|
-
产出保存到:docs/analyze/*/01-原型说明.md
|
|
35
|
-
工具:source
|
|
36
|
-
|
|
37
|
-
## 第2步:架构设计
|
|
38
|
-
根据原型说明和需求文档,设计系统模块划分、数据流向、技术选型与依据、风险点与应对方案。
|
|
39
|
-
产出保存到:docs/architecture/01-架构设计文档.md
|
|
40
|
-
|
|
41
|
-
## 第3步:详细设计
|
|
42
|
-
根据架构设计产出,把数据结构和接口契约落到正式设计载体。
|
|
43
|
-
默认产出:
|
|
44
|
-
- docs/design/01-数据库设计文档.md
|
|
45
|
-
- docs/design/02-API接口规格文档.md
|
|
46
|
-
- docs/api/openapi.yaml
|
|
47
|
-
- db/migration 或 db/migrations 下的 SQL/migration 权威资产
|
|
48
|
-
|
|
49
|
-
## 第4步:接口设计
|
|
50
|
-
设计 API 路径、请求/响应结构、错误码、鉴权方案。接口契约必须写入 `docs/design/02-API接口规格文档.md` 并与 `docs/api/openapi.yaml` 对齐。
|
|
51
|
-
|
|
52
|
-
## 第5步:编码实现
|
|
53
|
-
根据切片计划绑定的 `SLICE-*`、`DD-*`、`AC-*` 进行前后端编码实现。可使用脚手架生成骨架代码。
|
|
54
|
-
工具:sf_scaffold, sf_work action=act
|
|
55
|
-
|
|
56
|
-
## 第6步:测试与审查验收
|
|
57
|
-
执行自动验证(构建 + 测试)、代码审查(质量/安全/性能/架构/技术债务五维度)、学习记录。
|
|
58
|
-
工具:sf_work action=verify, sf_gate
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: ka-procedure-现有系统差距分析工作流
|
|
3
|
-
kind: guidance
|
|
4
|
-
title: 现有系统差距分析
|
|
5
|
-
sync_policy: copy_to_project
|
|
6
|
-
status: active
|
|
7
|
-
triggers:
|
|
8
|
-
- 现有项目
|
|
9
|
-
- 新需求
|
|
10
|
-
- 已有系统
|
|
11
|
-
- 现有系统
|
|
12
|
-
- 差距分析
|
|
13
|
-
- gap analysis
|
|
14
|
-
- existing system
|
|
15
|
-
- 现有源码
|
|
16
|
-
extra:
|
|
17
|
-
name: existing-system-gap-analysis-workflow
|
|
18
|
-
type: procedure
|
|
19
|
-
scope:
|
|
20
|
-
- backend
|
|
21
|
-
- frontend
|
|
22
|
-
- infrastructure
|
|
23
|
-
products:
|
|
24
|
-
- '*'
|
|
25
|
-
consumed_contracts:
|
|
26
|
-
- existing_system_analysis_contract_entry
|
|
27
|
-
- architecture_design_contract_entry
|
|
28
|
-
- technology_decision_contract
|
|
29
|
-
- brainstorm_contract
|
|
30
|
-
- detail_discipline_contract
|
|
31
|
-
- first_principles_contract
|
|
32
|
-
required_sections:
|
|
33
|
-
- 项目上下文检测
|
|
34
|
-
- 现有系统分析
|
|
35
|
-
- 需求差距分析
|
|
36
|
-
- 回归风险评估
|
|
37
|
-
- 主线集成计划
|
|
38
|
-
- 验证计划
|
|
39
|
-
hard_rules:
|
|
40
|
-
- >-
|
|
41
|
-
existing_system + new_requirement 必须先生成 ExistingSystemAnalysisContract 和
|
|
42
|
-
RequirementGapAnalysis
|
|
43
|
-
- new_system / empty_project 不得强制执行 ExistingSystemAnalysis
|
|
44
|
-
- unknown 必须 manual_required,不能猜测继续
|
|
45
|
-
- 现有系统分析必须读取真实代码和相关文档,不能只读需求文档
|
|
46
|
-
- >-
|
|
47
|
-
分析结论必须区分 fact / inference / assumption / unknown,并带 confidence 和
|
|
48
|
-
evidence_refs
|
|
49
|
-
- 差距分析必须列出现有能力、缺失能力、复用模块、required_changes、兼容/数据/权限/集成风险
|
|
50
|
-
- 实现前必须有 MainlineIntegrationPlan
|
|
51
|
-
- VerificationPlan 必须从 RequirementGapAnalysis 生成
|
|
52
|
-
- 回归风险评估须产出高回归风险区域列表和 AI 能力边界评估表,每项改造有风险等级
|
|
53
|
-
- 环境验证须通过(编译 + 测试套件 + 接口调用),未通过不得进入设计或编码;无测试套件时降级为编译通过 + 关键接口可调通
|
|
54
|
-
acceptance_checks:
|
|
55
|
-
- project_context_type 已检测且非 unknown
|
|
56
|
-
- ExistingSystemAnalysisContract 已创建
|
|
57
|
-
- RequirementGapAnalysis 已创建
|
|
58
|
-
- 现有项目已有技术栈和项目约定优先于 SoloForge 默认
|
|
59
|
-
- 分析结论包含 fact/inference/assumption/unknown 分类
|
|
60
|
-
- 回归风险评估已产出(高回归风险区域 + AI 能力边界评估)
|
|
61
|
-
- 环境验证已通过(编译 PASS + 测试 PASS + 接口可调通)
|
|
62
|
-
- 高回归风险区域已有缓解措施或人工确认记录
|
|
63
|
-
lifecycle_status: active
|
|
64
|
-
version: 1.2.0
|
|
65
|
-
last_reviewed: '2026-06-04'
|
|
66
|
-
domain: design
|
|
67
|
-
verification_layer: L2
|
|
68
|
-
stage: design
|
|
69
|
-
owner_mechanism: mc-existing-system-analysis
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## 适用场景
|
|
73
|
-
已有源码、路由、API、前端页面、权限模型和测试脚本的项目中开发新需求。必须先分析现有系统、再做差距分析、最后才进入设计或编码。
|
|
74
|
-
|
|
75
|
-
## 步骤
|
|
76
|
-
1. **项目上下文检测**: detectProjectContext 判断 project_context_type
|
|
77
|
-
2. **现有系统分析**:
|
|
78
|
-
- 读取真实代码和相关文档
|
|
79
|
-
- 识别技术栈、路由、API、前端页面、权限模型、测试脚本
|
|
80
|
-
- 区分 fact / inference / assumption / unknown
|
|
81
|
-
- 同时读取 `历史遗留雷区清单` 和 `数据血缘图`,将发现标注到差距分析
|
|
82
|
-
- 雷区中"高风险"项 → 差距分析 required_changes 中标注 `minefield:high`
|
|
83
|
-
- 数据血缘图中受影响接口 → 差距分析中标注 `lineage:affected`
|
|
84
|
-
3. **需求差距分析**:
|
|
85
|
-
- 列出现有能力、缺失能力、复用模块
|
|
86
|
-
- 列出 required_changes、optional_changes、out_of_scope
|
|
87
|
-
- 列出兼容/数据/权限/集成风险、前后端影响、测试回归范围
|
|
88
|
-
3a. **头脑风暴触发**:若改造方案存在多种路径且无明确最优,或复用/重写决策不确定:
|
|
89
|
-
→ 进入「不确定时头脑风暴流程」(templates/procedures/不确定时头脑风暴.md)
|
|
90
|
-
→ 若 fundamental_need 为空 → 先触发 FP-01
|
|
91
|
-
3b. **回归风险评估**(基于 SWE-CI 研究:75% AI 引入回归):
|
|
92
|
-
- 量化每项改造的回归风险(高/中/低),产出结构化表格
|
|
93
|
-
- 评估每项改造的 AI 自主能力(低级编辑/接口调整/架构重构)
|
|
94
|
-
- 执行环境验证(编译 + 测试 + 接口调用),建立回归基线
|
|
95
|
-
4. **主线集成计划**: 新增文件、组件、API、service、DTO/model、配置必须被真实消费
|
|
96
|
-
5. **验证计划**: VerificationPlan 从 RequirementGapAnalysis 生成
|
|
97
|
-
|
|
98
|
-
## 检查点
|
|
99
|
-
- [ ] project_context_type 已检测
|
|
100
|
-
- [ ] 现有系统分析读取了真实代码
|
|
101
|
-
- [ ] 差距分析包含完整风险列表
|
|
102
|
-
- [ ] MainlineIntegrationPlan 已创建
|
|
103
|
-
- [ ] VerificationPlan 已从差距分析生成
|
|
104
|
-
- [ ] 回归风险评估已产出(每项改造有风险等级 + AI 能力评估)
|
|
105
|
-
- [ ] 环境验证已通过(编译 + 测试 + 接口调用)
|
|
106
|
-
- [ ] 高回归风险区域已有缓解措施
|
|
107
|
-
|
|
108
|
-
## 禁止退化
|
|
109
|
-
- existing_system 未分析不得进入设计或编码
|
|
110
|
-
- unknown 类型不得猜测继续,必须 manual_required
|
|
111
|
-
- 不能只读需求文档,必须读代码
|
|
112
|
-
- 缺差距分析不得 coding
|
|
113
|
-
- 回归风险评估未产出不得进入设计或编码
|
|
114
|
-
- 环境验证未通过不得进入设计或编码(降级策略按规则执行)
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: ka-procedure-知识维护流水线
|
|
3
|
-
kind: guidance
|
|
4
|
-
title: 知识维护流水线
|
|
5
|
-
sync_policy: internal
|
|
6
|
-
status: active
|
|
7
|
-
triggers:
|
|
8
|
-
- 知识维护
|
|
9
|
-
- 知识更新
|
|
10
|
-
- 知识审计
|
|
11
|
-
- 新增知识
|
|
12
|
-
- 知识库维护
|
|
13
|
-
- SoloForge维护
|
|
14
|
-
extra:
|
|
15
|
-
name: knowledge-maintenance-pipeline
|
|
16
|
-
type: procedure
|
|
17
|
-
scope:
|
|
18
|
-
- backend
|
|
19
|
-
- frontend
|
|
20
|
-
products:
|
|
21
|
-
- '*'
|
|
22
|
-
lifecycle_status: active
|
|
23
|
-
version: 1.1.0
|
|
24
|
-
last_reviewed: '2026-06-01'
|
|
25
|
-
domain:
|
|
26
|
-
- build
|
|
27
|
-
- design
|
|
28
|
-
- verify
|
|
29
|
-
verification_layer: L2
|
|
30
|
-
stage: design
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
# 知识维护管线
|
|
34
|
-
|
|
35
|
-
## 第1步:知识审计
|
|
36
|
-
扫描现有知识库,识别过时条目(长期未被匹配/引用)、重复条目、缺失覆盖的领域。检查知识文件格式一致性。对比设计文档与实际实现的偏差。
|
|
37
|
-
工具:sf_knowledge action=audit
|
|
38
|
-
|
|
39
|
-
## 第2步:知识新增
|
|
40
|
-
根据审计结果和 sf_work action=verify 积累的高频问题,生成新知识条目草稿。草稿保存到 .soloforge/knowledge/drafts/ 目录,人工 review 后移入正式目录。
|
|
41
|
-
工具:sf_knowledge action=add
|
|
42
|
-
|
|
43
|
-
## 第3步:知识更新
|
|
44
|
-
更新已有条目的决策边界、when 触发词、验收项。同步更新设计文档中对应的描述。标记废弃条目(不删除,标记 deprecated)。
|
|
45
|
-
工具:sf_knowledge action=update
|
|
46
|
-
|
|
47
|
-
## 第4步:一致性验证
|
|
48
|
-
重新构建知识索引,验证新增/更新条目可被正确匹配。运行全量测试确认无功能影响。更新设计文档中的知识规模统计。
|
|
49
|
-
工具:sf_work action=verify, sf_gate
|
|
50
|
-
|
|
51
|
-
## 第5步:定期审计与质量控制
|
|
52
|
-
定期审计知识库(每月),检查过期/重复/不准确的条目。新增知识条目必须经过 review 后才发布(草稿 → 审核 → 正式)。知识条目使用统计数据纳入监控,低使用率条目评估是否保留。知识条目格式必须符合规约(字段顺序、body 标题、when 风格),使用 sf_knowledge action=audit 检查。
|
|
53
|
-
|
|
54
|
-
## 检查点
|
|
55
|
-
- [ ] 知识库审计执行完毕
|
|
56
|
-
- [ ] 新增/更新条目索引验证通过
|
|
57
|
-
- [ ] 新条目经过 review
|
|
58
|
-
- [ ] 低使用率条目已评估
|
|
59
|
-
- [ ] 格式规约检查通过
|
|
60
|
-
|
|
61
|
-
## 注意事项
|
|
62
|
-
- 废弃条目标记为 deprecated 而非直接删除,保留历史参考
|
|
63
|
-
- 知识条目应保持精简(决策规则 ≤ 20 条),过长难以匹配和阅读
|
|
64
|
-
- 知识条目变更应记录变更历史(更新原因、时间)
|