create-yss-spec 3.3.6 → 3.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -13
- package/package.json +1 -1
- package/src/template/instance-runtime.js +8 -2
- package/src/validation/snapshot.js +7 -0
- package/template/.agents/skills/.strategic-design-skills-manifest.json +6 -4
- package/template/.agents/skills/archify/SKILL.md +1 -1
- package/template/.agents/skills/implementation-repo-onboarding/SKILL.md +2 -2
- package/template/.agents/skills/yss-application/SKILL.md +1 -1
- package/template/.agents/skills/yss-application/references/profiles/existing-domain-driven-maven.md +5 -0
- package/template/.agents/skills/yss-application/references/profiles/existing-layered-mvc-maven.md +5 -0
- package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +2 -2
- package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +4 -0
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +6 -1
- package/template/.agents/skills/yss-prototype-stage/SKILL.md +10 -1
- package/template/.agents/skills/yss-stage-decision/SKILL.md +13 -4
- package/template/.agents/skills/yss-stage-decision/references/domain-strategy-contract.md +4 -3
- package/template/.agents/skills/yss-stage-decision/references/domain-strategy-v2.schema.json +8 -0
- package/template/.agents/skills/yss-stage-decision/references/domain-strategy-v3.schema.json +8 -0
- package/template/.agents/skills/yss-stage-decision/references/domain-strategy.schema.json +75 -5
- package/template/.agents/skills/yss-stage-decision/references/stage-decision-package-contract.md +4 -4
- package/template/.agents/skills/yss-stage-decision/references/stage-decision-package-v2.schema.json +8 -0
- package/template/.agents/skills/yss-stage-decision/references/stage-decision-package-v3.schema.json +8 -0
- package/template/.agents/skills/yss-stage-decision/references/stage-decision-package.schema.json +59 -9
- package/template/.agents/skills/yss-stage-decision/references/validation-rules.md +2 -2
- package/template/.agents/skills/yss-stage-decision/scripts/migrate-contract-v3.mjs +143 -0
- package/template/.agents/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +46 -4
- package/template/.agents/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +48 -4
- package/template/.agents/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +42 -13
- package/template/.agents/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +37 -5
- package/template/.agents/skills/yss-stage-decision/tests/run-scenarios.mjs +116 -23
- package/template/.agents/skills/yss-technical-design/SKILL.md +2 -0
- package/template/.agents/skills/yss-technical-design/references/engineering-design.schema.json +224 -0
- package/template/.agents/skills/yss-technical-design/references/technical-design-common.schema.json +6 -0
- package/template/.agents/skills/yss-technical-design/references/technical-design.schema.json +288 -10
- package/template/.agents/skills/yss-technical-design/scripts/engineering-design.mjs +30 -0
- package/template/.agents/skills/yss-technical-design/scripts/generate-schema.mjs +2 -1
- package/template/.agents/skills/yss-technical-design/scripts/validate-technical-design.mjs +20 -8
- package/template/.agents/skills/yss-technical-design/tests/engineering-scenarios.mjs +12 -0
- package/template/.agents/skills/yss-web-controller/SKILL.md +1 -1
- package/template/.agents/skills/yss-web-controller/references/profiles/existing-domain-driven-maven.md +5 -0
- package/template/.agents/skills/yss-web-controller/references/profiles/existing-layered-mvc-maven.md +5 -0
- package/template/.codex/skills/archify/SKILL.md +1 -1
- package/template/.codex/skills/implementation-repo-onboarding/SKILL.md +2 -2
- package/template/.codex/skills/yss-application/SKILL.md +1 -1
- package/template/.codex/skills/yss-application/references/profiles/existing-domain-driven-maven.md +5 -0
- package/template/.codex/skills/yss-application/references/profiles/existing-layered-mvc-maven.md +5 -0
- package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +2 -2
- package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +4 -0
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +6 -1
- package/template/.codex/skills/yss-prototype-stage/SKILL.md +10 -1
- package/template/.codex/skills/yss-stage-decision/SKILL.md +13 -4
- package/template/.codex/skills/yss-stage-decision/references/domain-strategy-contract.md +4 -3
- package/template/.codex/skills/yss-stage-decision/references/domain-strategy-v2.schema.json +8 -0
- package/template/.codex/skills/yss-stage-decision/references/domain-strategy-v3.schema.json +8 -0
- package/template/.codex/skills/yss-stage-decision/references/domain-strategy.schema.json +75 -5
- package/template/.codex/skills/yss-stage-decision/references/stage-decision-package-contract.md +4 -4
- package/template/.codex/skills/yss-stage-decision/references/stage-decision-package-v2.schema.json +8 -0
- package/template/.codex/skills/yss-stage-decision/references/stage-decision-package-v3.schema.json +8 -0
- package/template/.codex/skills/yss-stage-decision/references/stage-decision-package.schema.json +59 -9
- package/template/.codex/skills/yss-stage-decision/references/validation-rules.md +2 -2
- package/template/.codex/skills/yss-stage-decision/scripts/migrate-contract-v3.mjs +143 -0
- package/template/.codex/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +46 -4
- package/template/.codex/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +48 -4
- package/template/.codex/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +42 -13
- package/template/.codex/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +37 -5
- package/template/.codex/skills/yss-stage-decision/tests/run-scenarios.mjs +116 -23
- package/template/.codex/skills/yss-technical-design/SKILL.md +2 -0
- package/template/.codex/skills/yss-technical-design/references/engineering-design.schema.json +224 -0
- package/template/.codex/skills/yss-technical-design/references/technical-design-common.schema.json +6 -0
- package/template/.codex/skills/yss-technical-design/references/technical-design.schema.json +288 -10
- package/template/.codex/skills/yss-technical-design/scripts/engineering-design.mjs +30 -0
- package/template/.codex/skills/yss-technical-design/scripts/generate-schema.mjs +2 -1
- package/template/.codex/skills/yss-technical-design/scripts/validate-technical-design.mjs +20 -8
- package/template/.codex/skills/yss-technical-design/tests/engineering-scenarios.mjs +12 -0
- package/template/.codex/skills/yss-web-controller/SKILL.md +1 -1
- package/template/.codex/skills/yss-web-controller/references/profiles/existing-domain-driven-maven.md +5 -0
- package/template/.codex/skills/yss-web-controller/references/profiles/existing-layered-mvc-maven.md +5 -0
- package/template/.cursor/skills/archify/SKILL.md +1 -1
- package/template/.cursor/skills/implementation-repo-onboarding/SKILL.md +2 -2
- package/template/.cursor/skills/yss-application/SKILL.md +1 -1
- package/template/.cursor/skills/yss-application/references/profiles/existing-domain-driven-maven.md +5 -0
- package/template/.cursor/skills/yss-application/references/profiles/existing-layered-mvc-maven.md +5 -0
- package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +2 -2
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +4 -0
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +6 -1
- package/template/.cursor/skills/yss-prototype-stage/SKILL.md +10 -1
- package/template/.cursor/skills/yss-stage-decision/SKILL.md +13 -4
- package/template/.cursor/skills/yss-stage-decision/references/domain-strategy-contract.md +4 -3
- package/template/.cursor/skills/yss-stage-decision/references/domain-strategy-v2.schema.json +8 -0
- package/template/.cursor/skills/yss-stage-decision/references/domain-strategy-v3.schema.json +8 -0
- package/template/.cursor/skills/yss-stage-decision/references/domain-strategy.schema.json +75 -5
- package/template/.cursor/skills/yss-stage-decision/references/stage-decision-package-contract.md +4 -4
- package/template/.cursor/skills/yss-stage-decision/references/stage-decision-package-v2.schema.json +8 -0
- package/template/.cursor/skills/yss-stage-decision/references/stage-decision-package-v3.schema.json +8 -0
- package/template/.cursor/skills/yss-stage-decision/references/stage-decision-package.schema.json +59 -9
- package/template/.cursor/skills/yss-stage-decision/references/validation-rules.md +2 -2
- package/template/.cursor/skills/yss-stage-decision/scripts/migrate-contract-v3.mjs +143 -0
- package/template/.cursor/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +46 -4
- package/template/.cursor/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +48 -4
- package/template/.cursor/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +42 -13
- package/template/.cursor/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +37 -5
- package/template/.cursor/skills/yss-stage-decision/tests/run-scenarios.mjs +116 -23
- package/template/.cursor/skills/yss-technical-design/SKILL.md +2 -0
- package/template/.cursor/skills/yss-technical-design/references/engineering-design.schema.json +224 -0
- package/template/.cursor/skills/yss-technical-design/references/technical-design-common.schema.json +6 -0
- package/template/.cursor/skills/yss-technical-design/references/technical-design.schema.json +288 -10
- package/template/.cursor/skills/yss-technical-design/scripts/engineering-design.mjs +30 -0
- package/template/.cursor/skills/yss-technical-design/scripts/generate-schema.mjs +2 -1
- package/template/.cursor/skills/yss-technical-design/scripts/validate-technical-design.mjs +20 -8
- package/template/.cursor/skills/yss-technical-design/tests/engineering-scenarios.mjs +12 -0
- package/template/.cursor/skills/yss-web-controller/SKILL.md +1 -1
- package/template/.cursor/skills/yss-web-controller/references/profiles/existing-domain-driven-maven.md +5 -0
- package/template/.cursor/skills/yss-web-controller/references/profiles/existing-layered-mvc-maven.md +5 -0
- package/template/.pi/skills/archify/SKILL.md +1 -1
- package/template/.pi/skills/implementation-repo-onboarding/SKILL.md +2 -2
- package/template/.pi/skills/yss-application/SKILL.md +1 -1
- package/template/.pi/skills/yss-application/references/profiles/existing-domain-driven-maven.md +5 -0
- package/template/.pi/skills/yss-application/references/profiles/existing-layered-mvc-maven.md +5 -0
- package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +2 -2
- package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +4 -0
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +6 -1
- package/template/.pi/skills/yss-prototype-stage/SKILL.md +10 -1
- package/template/.pi/skills/yss-stage-decision/SKILL.md +13 -4
- package/template/.pi/skills/yss-stage-decision/references/domain-strategy-contract.md +4 -3
- package/template/.pi/skills/yss-stage-decision/references/domain-strategy-v2.schema.json +8 -0
- package/template/.pi/skills/yss-stage-decision/references/domain-strategy-v3.schema.json +8 -0
- package/template/.pi/skills/yss-stage-decision/references/domain-strategy.schema.json +75 -5
- package/template/.pi/skills/yss-stage-decision/references/stage-decision-package-contract.md +4 -4
- package/template/.pi/skills/yss-stage-decision/references/stage-decision-package-v2.schema.json +8 -0
- package/template/.pi/skills/yss-stage-decision/references/stage-decision-package-v3.schema.json +8 -0
- package/template/.pi/skills/yss-stage-decision/references/stage-decision-package.schema.json +59 -9
- package/template/.pi/skills/yss-stage-decision/references/validation-rules.md +2 -2
- package/template/.pi/skills/yss-stage-decision/scripts/migrate-contract-v3.mjs +143 -0
- package/template/.pi/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +46 -4
- package/template/.pi/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +48 -4
- package/template/.pi/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +42 -13
- package/template/.pi/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +37 -5
- package/template/.pi/skills/yss-stage-decision/tests/run-scenarios.mjs +116 -23
- package/template/.pi/skills/yss-technical-design/SKILL.md +2 -0
- package/template/.pi/skills/yss-technical-design/references/engineering-design.schema.json +224 -0
- package/template/.pi/skills/yss-technical-design/references/technical-design-common.schema.json +6 -0
- package/template/.pi/skills/yss-technical-design/references/technical-design.schema.json +288 -10
- package/template/.pi/skills/yss-technical-design/scripts/engineering-design.mjs +30 -0
- package/template/.pi/skills/yss-technical-design/scripts/generate-schema.mjs +2 -1
- package/template/.pi/skills/yss-technical-design/scripts/validate-technical-design.mjs +20 -8
- package/template/.pi/skills/yss-technical-design/tests/engineering-scenarios.mjs +12 -0
- package/template/.pi/skills/yss-web-controller/SKILL.md +1 -1
- package/template/.pi/skills/yss-web-controller/references/profiles/existing-domain-driven-maven.md +5 -0
- package/template/.pi/skills/yss-web-controller/references/profiles/existing-layered-mvc-maven.md +5 -0
- package/template/README.md +4 -6
- package/template/docs/agents/backend-architecture-profiles.md +4 -0
- package/template/docs/agents/yss-skill-registry.yaml +13 -0
- package/template/docs/design/templates/prototype-confirmation-template.md +2 -2
- package/template/docs/design/templates/prototype-review-checklist.md +2 -2
- package/template/docs/plan/templates/market-analysis-template.md +3 -3
- package/template/docs/plan/templates/user-pain-points-template.md +3 -3
- package/template/docs/process/delivery-preflight.md +72 -0
- package/template/docs/process/document-writing.md +5 -1
- package/template/docs/process/existing-backend-architecture.md +31 -0
- package/template/docs/process/existing-ui-baseline.md +40 -0
- package/template/docs/process/frontend-backend-delivery.md +21 -5
- package/template/docs/process/implementation-repo-integration.md +6 -0
- package/template/docs/process/schemas/backend-architecture-identity.schema.json +111 -14
- package/template/docs/process/schemas/backend-delivery.schema.json +4 -0
- package/template/docs/process/schemas/delivery-preflight-input.schema.json +158 -0
- package/template/docs/process/schemas/delivery-preflight-result.schema.json +159 -0
- package/template/docs/process/schemas/digital-human-task-package.schema.json +1 -1
- package/template/docs/process/schemas/existing-ui-baseline.schema.json +365 -0
- package/template/docs/process/schemas/frontend-delivery-acceptance-v1.schema.json +200 -0
- package/template/docs/process/schemas/frontend-delivery-acceptance-v3.schema.json +308 -0
- package/template/docs/process/schemas/frontend-delivery-acceptance.schema.json +37 -3
- package/template/docs/process/schemas/frontend-strategic-preflight-v2.schema.json +114 -0
- package/template/docs/process/schemas/frontend-strategic-preflight.schema.json +32 -0
- package/template/docs/process/schemas/lifecycle-checkpoint.schema.json +2 -1
- package/template/docs/process/schemas/strategic-consumer-feedback.schema.json +40 -0
- package/template/docs/process/schemas/strategic-design-handoff-v3.schema.json +743 -0
- package/template/docs/process/schemas/strategic-design-handoff-v4.schema.json +712 -0
- package/template/docs/process/schemas/strategic-design-handoff-v5.schema.json +932 -0
- package/template/docs/process/schemas/strategic-feedback-adjudication.schema.json +42 -0
- package/template/docs/process/schemas/strategic-handoff-domain-strategy-v3.schema.json +216 -0
- package/template/docs/process/schemas/strategic-handoff-export-v2.schema.json +378 -0
- package/template/docs/process/schemas/strategic-handoff-import-receipt.schema.json +39 -0
- package/template/docs/process/schemas/strategic-handoff-stage-decision-package-v3.schema.json +148 -0
- package/template/docs/process/strategic-handoff-package.md +51 -10
- package/template/docs/process/templates/lifecycle-checkpoint-template.yaml +1 -0
- package/template/docs/process/templates/stage-checkpoint-template.md +1 -0
- package/template/docs/user-guide//346/212/200/346/234/257/350/256/276/350/256/241/347/224/250/346/210/267/346/214/207/345/215/227.md +43 -0
- package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +83 -67
- package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214/347/264/242/345/274/225.md +9 -10
- package/template/docs/user-guide//350/256/276/345/244/207/345/200/237/347/224/250/350/264/257/347/251/277/346/241/210/344/276/213.md +12 -9
- package/template/scripts/backend-delivery +20 -4
- package/template/scripts/lib/approval-record.mjs +2 -1
- package/template/scripts/lib/approved-execution-context.mjs +106 -0
- package/template/scripts/lib/backend-architecture.mjs +12 -0
- package/template/scripts/lib/backend-delivery.mjs +21 -5
- package/template/scripts/lib/delivery-preflight.mjs +238 -0
- package/template/scripts/lib/existing-backend-architecture.mjs +139 -0
- package/template/scripts/lib/existing-ui-baseline.mjs +84 -0
- package/template/scripts/lib/frontend-delivery-boundary.mjs +20 -4
- package/template/scripts/lib/frontend-delivery.mjs +76 -4
- package/template/scripts/lib/implementation-contract-compiler.mjs +19 -5
- package/template/scripts/lib/json-schema.mjs +19 -4
- package/template/scripts/lib/profile-skill-sync.mjs +26 -0
- package/template/scripts/lib/strategic-feedback.mjs +33 -0
- package/template/scripts/lib/strategic-handoff-consumption.mjs +11 -5
- package/template/scripts/lib/strategic-handoff-design-targets.mjs +2 -3
- package/template/scripts/lib/strategic-handoff-io.mjs +11 -0
- package/template/scripts/lib/strategic-handoff.mjs +143 -34
- package/template/scripts/lib/task-package.mjs +11 -3
- package/template/scripts/lib/technical-design-boundary.mjs +9 -1
- package/template/scripts/lib/ui-baseline.mjs +26 -0
- package/template/scripts/lib/user-decision-reuse.mjs +38 -0
- package/template/scripts/lib/user-decision.mjs +4 -1
- package/template/scripts/preflight-delivery +14 -0
- package/template/scripts/strategic-feedback +10 -0
- package/template/scripts/strategic-handoff +19 -4
- package/template/scripts/sync-profile-skills +4 -5
- package/template/scripts/verify-frontend-strategic-preflight +12 -0
- package/template/skills-lock.json +18 -18
- package/template.manifest.json +1 -0
- package/template.snapshot.json +6 -5
- package/template/docs/user-guide//346/210/230/346/234/257/350/256/276/350/256/241/345/255/220/351/241/271/347/233/256/347/224/250/346/210/267/346/211/213/345/206/214.md +0 -35
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { parseArgs } from 'node:util';
|
|
3
|
+
import { verifyConsumerFeedback, verifyFeedbackAdjudication } from './lib/strategic-feedback.mjs';
|
|
4
|
+
|
|
5
|
+
try{
|
|
6
|
+
const [command,...args]=process.argv.slice(2);const {values,positionals}=parseArgs({args,options:{root:{type:'string',default:process.cwd()}},allowPositionals:true,strict:true});
|
|
7
|
+
if(positionals.length!==1||!['verify-feedback','verify-adjudication'].includes(command))throw new TypeError('用法: scripts/strategic-feedback <verify-feedback|verify-adjudication> --root <target> <contract.json>');
|
|
8
|
+
const result=command==='verify-feedback'?await verifyConsumerFeedback({root:values.root,feedbackRef:positionals[0]}):await verifyFeedbackAdjudication({root:values.root,adjudicationRef:positionals[0]});
|
|
9
|
+
process.stdout.write(`${JSON.stringify(result,null,2)}\n`);
|
|
10
|
+
}catch(error){process.stderr.write(`${error.message}\n`);process.exitCode=1;}
|
|
@@ -2,13 +2,28 @@
|
|
|
2
2
|
import { parseArgs } from 'node:util';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { exportBundle, openBundle, importBundle } from './lib/strategic-handoff.mjs';
|
|
5
|
+
import { read, safe, ensure } from './lib/strategic-handoff-io.mjs';
|
|
6
|
+
|
|
7
|
+
async function preflightExport(values) {
|
|
8
|
+
const root=path.resolve(values['source-root']),handoff=read(safe(root,values.handoff));
|
|
9
|
+
const required=handoff.schema_version===5&&handoff.ui_baseline_kind==='existing-ui-baseline';
|
|
10
|
+
ensure(!required||values['preflight-input'],'preflight-required: 既有 UI 战略导出必须提供 --preflight-input <file>;先按 docs/process/delivery-preflight.md 准备源资产清单并执行 export 阶段只读预检');
|
|
11
|
+
if(!values['preflight-input'])return;
|
|
12
|
+
const {preflightDelivery}=await import('./lib/delivery-preflight.mjs');
|
|
13
|
+
const input=read(path.resolve(values['preflight-input']));
|
|
14
|
+
ensure(!input.delivery_kind||input.delivery_kind==='strategic-handoff','preflight-scope-conflict: 战略导出只能使用 strategic-handoff 清单');
|
|
15
|
+
ensure(path.resolve(root,input.governance_root||'.')===root,'preflight-scope-conflict: 预检治理根与导出来源不同');
|
|
16
|
+
ensure(input.assets?.strategic_handoff?.ref===values.handoff,'preflight-scope-conflict: 预检未绑定本次导出的 handoff 源文件');
|
|
17
|
+
const result=await preflightDelivery({...input,delivery_kind:'strategic-handoff'},{stage:'export',root});
|
|
18
|
+
if(result.exit_code!==0){const error=new TypeError('delivery-preflight-blocked: 请按每项 recovery 补证,再从正常导出入口重试');error.preflight=result;throw error;}
|
|
19
|
+
}
|
|
5
20
|
try {
|
|
6
|
-
const {values,positionals}=parseArgs({allowPositionals:true,strict:true,options:{'source-root':{type:'string'},handoff:{type:'string'},output:{type:'string'},zip:{type:'boolean'},previous:{type:'string'},bundle:{type:'string'},'target-root':{type:'string'}}});
|
|
21
|
+
const {values,positionals}=parseArgs({allowPositionals:true,strict:true,options:{'source-root':{type:'string'},handoff:{type:'string'},output:{type:'string'},zip:{type:'boolean'},previous:{type:'string'},bundle:{type:'string'},'target-root':{type:'string'},'preflight-input':{type:'string'}}});
|
|
7
22
|
const [command]=positionals;
|
|
8
23
|
let result;
|
|
9
|
-
if(command==='export'&&values['source-root']&&values.handoff&&values.output)result=await exportBundle({sourceRoot:values['source-root'],handoffRef:values.handoff,output:values.output,zip:values.zip,previous:values.previous});
|
|
24
|
+
if(command==='export'&&values['source-root']&&values.handoff&&values.output){await preflightExport(values);result=await exportBundle({sourceRoot:values['source-root'],handoffRef:values.handoff,output:values.output,zip:values.zip,previous:values.previous});}
|
|
10
25
|
else if(command==='verify'&&values.bundle)result=await openBundle(path.resolve(values.bundle),b=>({result:'verified',bundle_id:b.manifest.bundle_id,version:b.manifest.version,bundle_digest:b.manifest.bundle_digest,rules:b.indexes.rules.length,scenarios:b.indexes.scenarios.length}));
|
|
11
26
|
else if(command==='import'&&values.bundle&&values['target-root'])result=await importBundle({bundle:path.resolve(values.bundle),targetRoot:values['target-root']});
|
|
12
|
-
else throw new TypeError('用法: strategic-handoff export --source-root <repo> --handoff <relative-file> --output <new-dir> [--zip] [--previous <bundle>] | verify --bundle <dir|zip> | import --bundle <dir|zip> --target-root <repo>');
|
|
27
|
+
else throw new TypeError('用法: strategic-handoff export --source-root <repo> --handoff <relative-file> --output <new-dir> [--preflight-input <file>] [--zip] [--previous <bundle>] | verify --bundle <dir|zip> | import --bundle <dir|zip> --target-root <repo>');
|
|
13
28
|
process.stdout.write(`${JSON.stringify(result,null,2)}\n`);
|
|
14
|
-
}catch(error){process.stderr.write(`${JSON.stringify({result:'blocked',error:error.message})}\n`);process.exitCode=1;}
|
|
29
|
+
}catch(error){process.stderr.write(`${JSON.stringify({result:'blocked',error:error.message,...(error.preflight?{preflight:error.preflight}:{})})}\n`);process.exitCode=1;}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
|
-
import { applyProfileSkillSync, loadProfileSyncConfig, planProfileSkillSync, reportProfileSkillSync } from "./lib/profile-skill-sync.mjs";
|
|
4
|
+
import { applyProfileSkillSync, formatProfileSkillSync, loadProfileSyncConfig, planProfileSkillSync, reportProfileSkillSync } from "./lib/profile-skill-sync.mjs";
|
|
5
5
|
|
|
6
6
|
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
|
7
7
|
try {
|
|
@@ -30,10 +30,9 @@ try {
|
|
|
30
30
|
const report = reportProfileSkillSync(result);
|
|
31
31
|
if (json) process.stdout.write(`${JSON.stringify(report, null, 2)}\n`);
|
|
32
32
|
else {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
for (const item of report.issues) process.stderr.write(`${item.profile}: ${item.status}: ${item.path ?? item.skill ?? item.message}\n`);
|
|
33
|
+
const output = formatProfileSkillSync(report, modes[0]);
|
|
34
|
+
process.stdout.write(output.stdout);
|
|
35
|
+
process.stderr.write(output.stderr);
|
|
37
36
|
}
|
|
38
37
|
if (args.includes("--check") && (plan.changes.length || plan.issues.length)) process.exitCode = 1;
|
|
39
38
|
if (args.includes("--apply") && plan.issues.length) process.exitCode = 1;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { parseArgs } from 'node:util';
|
|
3
|
+
import { verifyFrontendStrategicPreflight } from './lib/frontend-delivery.mjs';
|
|
4
|
+
|
|
5
|
+
try {
|
|
6
|
+
const {values,positionals}=parseArgs({options:{root:{type:'string',default:process.cwd()},'expected-digest':{type:'string'}},allowPositionals:true,strict:true});
|
|
7
|
+
if(positionals.length!==1)throw new TypeError('用法: scripts/verify-frontend-strategic-preflight [--root <frontend>] [--expected-digest <sha256>] <preflight.json>');
|
|
8
|
+
const result=await verifyFrontendStrategicPreflight({root:values.root,preflightRef:positionals[0],expectedDigest:values['expected-digest']});
|
|
9
|
+
process.stdout.write(`${JSON.stringify(result,null,2)}\n`);
|
|
10
|
+
}catch(error){
|
|
11
|
+
process.stderr.write(`${error.message}\n`);process.exitCode=1;
|
|
12
|
+
}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"revision": "c4d958f18cc947cb91cbe1bd48783fa4601cc18f"
|
|
19
19
|
},
|
|
20
20
|
"iloveZzz/yss-harness-design-agent": {
|
|
21
|
-
"revision": "
|
|
21
|
+
"revision": "b7947298f74510861a36caedda4e77d03df35569"
|
|
22
22
|
},
|
|
23
23
|
"ayghri/i-have-adhd": {
|
|
24
24
|
"revision": "7b9069b39972e269e61bd95c2f66ebb90cac6a02"
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"source": "tt-a1i/archify",
|
|
43
43
|
"sourceType": "github",
|
|
44
44
|
"skillPath": "archify/SKILL.md",
|
|
45
|
-
"effectiveHash": "
|
|
45
|
+
"effectiveHash": "f7e3f1643070db1537ad4dfe7f5718c5d90033b27c12cce1762720724ed0e356",
|
|
46
46
|
"sourceRevision": "199360cc6687a7857b54dd188d4922b09e466a4b",
|
|
47
47
|
"upstreamHash": "a04c5666d6a5f46bc6f220a36b851e96aaa69ff0630049631364fb23fa5b2ee5",
|
|
48
48
|
"adaptationRef": "docs/agents/archify-integration.md",
|
|
@@ -331,7 +331,7 @@
|
|
|
331
331
|
"source": "project",
|
|
332
332
|
"sourceType": "local",
|
|
333
333
|
"skillPath": ".agents/skills/implementation-repo-onboarding/SKILL.md",
|
|
334
|
-
"effectiveHash": "
|
|
334
|
+
"effectiveHash": "905e97faee589bcc283cc299a05e795d75a3028440f7059f0115ebe80a266b3c",
|
|
335
335
|
"targets": [
|
|
336
336
|
".agents/skills",
|
|
337
337
|
".codex/skills",
|
|
@@ -481,7 +481,7 @@
|
|
|
481
481
|
"sourceType": "git-submodule",
|
|
482
482
|
"skillPath": ".agents/skills/prototype-review/SKILL.md",
|
|
483
483
|
"effectiveHash": "df6f131bef0f52a96d307d98ab42d74888a9b72c5508911b5622913b334e8eab",
|
|
484
|
-
"sourceRevision": "
|
|
484
|
+
"sourceRevision": "b7947298f74510861a36caedda4e77d03df35569",
|
|
485
485
|
"upstreamHash": "9206df8b6c555c1af1351e425c5ec99ec2a40263c6861607f1418b9c520873ab",
|
|
486
486
|
"adaptationRef": "docs/agents/strategic-design-skills-integration.md",
|
|
487
487
|
"targets": [
|
|
@@ -701,7 +701,7 @@
|
|
|
701
701
|
"sourceType": "git-submodule",
|
|
702
702
|
"skillPath": ".agents/skills/yss-antd-design/SKILL.md",
|
|
703
703
|
"effectiveHash": "92739eb34352fd70fbb52f4d9d6c6ac09aa02bc0155a4bd812a98cd5f933ff70",
|
|
704
|
-
"sourceRevision": "
|
|
704
|
+
"sourceRevision": "b7947298f74510861a36caedda4e77d03df35569",
|
|
705
705
|
"upstreamHash": "08ce99d45586d5ea19e25fdd9e9a6ede16e66f18992b70b87e0cd23f92343b16",
|
|
706
706
|
"adaptationRef": "docs/agents/strategic-design-skills-integration.md",
|
|
707
707
|
"targets": [
|
|
@@ -716,7 +716,7 @@
|
|
|
716
716
|
"sourceType": "git-submodule",
|
|
717
717
|
"skillPath": ".agents/skills/yss-antdv-next-design/SKILL.md",
|
|
718
718
|
"effectiveHash": "c7c07c5dc3716f578904559473d43d92878aa25a6a45c8827e288f0242d42b75",
|
|
719
|
-
"sourceRevision": "
|
|
719
|
+
"sourceRevision": "b7947298f74510861a36caedda4e77d03df35569",
|
|
720
720
|
"upstreamHash": "2942ed52dd58a38e51f09eb11254809334aeaed08f21cd081f09f35e6647a68c",
|
|
721
721
|
"adaptationRef": "docs/agents/strategic-design-skills-integration.md",
|
|
722
722
|
"targets": [
|
|
@@ -745,7 +745,7 @@
|
|
|
745
745
|
"source": "project",
|
|
746
746
|
"sourceType": "local",
|
|
747
747
|
"skillPath": ".agents/skills/yss-application/SKILL.md",
|
|
748
|
-
"effectiveHash": "
|
|
748
|
+
"effectiveHash": "a5a4b5765ab59178656a2d888961a19712623a3b5f0fa24d3a9f33dbc799df14",
|
|
749
749
|
"targets": [
|
|
750
750
|
".agents/skills",
|
|
751
751
|
".codex/skills",
|
|
@@ -806,7 +806,7 @@
|
|
|
806
806
|
"sourceType": "git-submodule",
|
|
807
807
|
"skillPath": ".agents/skills/yss-design-system/SKILL.md",
|
|
808
808
|
"effectiveHash": "e69597b8b6a5ce4de5bd40f67630443b8176202f6b028b2ce146a2a1d062816f",
|
|
809
|
-
"sourceRevision": "
|
|
809
|
+
"sourceRevision": "b7947298f74510861a36caedda4e77d03df35569",
|
|
810
810
|
"upstreamHash": "90aaf06b2514353152464a4d032076fa9d5ef56272d8ad526f5544f3c22a2b00",
|
|
811
811
|
"adaptationRef": "docs/agents/strategic-design-skills-integration.md",
|
|
812
812
|
"targets": [
|
|
@@ -931,7 +931,7 @@
|
|
|
931
931
|
"source": "project",
|
|
932
932
|
"sourceType": "local",
|
|
933
933
|
"skillPath": ".agents/skills/yss-implementation-contract-compiler/SKILL.md",
|
|
934
|
-
"effectiveHash": "
|
|
934
|
+
"effectiveHash": "7697e5d2dfc3b2cbf09b56c2bfac3ed63686508173986b5d19512ef4e3192a5b",
|
|
935
935
|
"targets": [
|
|
936
936
|
".agents/skills",
|
|
937
937
|
".codex/skills",
|
|
@@ -1027,7 +1027,7 @@
|
|
|
1027
1027
|
"source": "project",
|
|
1028
1028
|
"sourceType": "local",
|
|
1029
1029
|
"skillPath": ".agents/skills/yss-product-lifecycle/SKILL.md",
|
|
1030
|
-
"effectiveHash": "
|
|
1030
|
+
"effectiveHash": "1364bc3f4541427a47444dd2e0aa4500ed6cbe6519dfc48efc580a22c3001892",
|
|
1031
1031
|
"targets": [
|
|
1032
1032
|
".agents/skills",
|
|
1033
1033
|
".codex/skills",
|
|
@@ -1039,9 +1039,9 @@
|
|
|
1039
1039
|
"source": "iloveZzz/yss-harness-design-agent",
|
|
1040
1040
|
"sourceType": "git-submodule",
|
|
1041
1041
|
"skillPath": ".agents/skills/yss-prototype-stage/SKILL.md",
|
|
1042
|
-
"effectiveHash": "
|
|
1043
|
-
"sourceRevision": "
|
|
1044
|
-
"upstreamHash": "
|
|
1042
|
+
"effectiveHash": "ebfdc89f7feb70ff5995132cbe5574ca680a433115ebe59c342ad6309c5a8ed6",
|
|
1043
|
+
"sourceRevision": "b7947298f74510861a36caedda4e77d03df35569",
|
|
1044
|
+
"upstreamHash": "4bb0ba6cdbbbd1a3b89e97d94a7b0829c9282e21c8ce9e4bfda6e69a8714bc6d",
|
|
1045
1045
|
"adaptationRef": "docs/agents/strategic-design-skills-integration.md",
|
|
1046
1046
|
"targets": [
|
|
1047
1047
|
".agents/skills",
|
|
@@ -1117,9 +1117,9 @@
|
|
|
1117
1117
|
"source": "iloveZzz/yss-harness-design-agent",
|
|
1118
1118
|
"sourceType": "git-submodule",
|
|
1119
1119
|
"skillPath": ".agents/skills/yss-stage-decision/SKILL.md",
|
|
1120
|
-
"effectiveHash": "
|
|
1121
|
-
"sourceRevision": "
|
|
1122
|
-
"upstreamHash": "
|
|
1120
|
+
"effectiveHash": "ada584c7b996439a47e24153e156c38198f60f3f84250cd37aea6e2a118131aa",
|
|
1121
|
+
"sourceRevision": "b7947298f74510861a36caedda4e77d03df35569",
|
|
1122
|
+
"upstreamHash": "8752a1ed6903bd20c33e21b521d52bd4f7a0662b1d25e00152b60ba38333c93b",
|
|
1123
1123
|
"adaptationRef": "docs/agents/strategic-design-skills-integration.md",
|
|
1124
1124
|
"targets": [
|
|
1125
1125
|
".agents/skills",
|
|
@@ -1144,7 +1144,7 @@
|
|
|
1144
1144
|
"source": "project",
|
|
1145
1145
|
"sourceType": "local",
|
|
1146
1146
|
"skillPath": ".agents/skills/yss-technical-design/SKILL.md",
|
|
1147
|
-
"effectiveHash": "
|
|
1147
|
+
"effectiveHash": "1370875d4316133101a4eae60d75d47759861f3e3f31177f0ea528379639ae3f",
|
|
1148
1148
|
"targets": [
|
|
1149
1149
|
".agents/skills",
|
|
1150
1150
|
".codex/skills",
|
|
@@ -1249,7 +1249,7 @@
|
|
|
1249
1249
|
"source": "project",
|
|
1250
1250
|
"sourceType": "local",
|
|
1251
1251
|
"skillPath": ".agents/skills/yss-web-controller/SKILL.md",
|
|
1252
|
-
"effectiveHash": "
|
|
1252
|
+
"effectiveHash": "63192f78bcc7fe099cd856552ff2899453c1aeafd17203099694c25d425f4797",
|
|
1253
1253
|
"targets": [
|
|
1254
1254
|
".agents/skills",
|
|
1255
1255
|
".codex/skills",
|
package/template.manifest.json
CHANGED
|
@@ -82,6 +82,7 @@
|
|
|
82
82
|
"scripts/verify-retired-skill-ids",
|
|
83
83
|
"scripts/verify-skill-governance",
|
|
84
84
|
"scripts/verify-skill-registry",
|
|
85
|
+
"scripts/verify-strategic-handoff-tools-lock",
|
|
85
86
|
"scripts/verify-template",
|
|
86
87
|
"scripts/verify-template-candidate",
|
|
87
88
|
"scripts/verify-template-fast",
|
package/template.snapshot.json
CHANGED
|
@@ -3,15 +3,16 @@
|
|
|
3
3
|
"templateName": "yss-spec-project-template",
|
|
4
4
|
"templateSource": "github:iloveZzz/yss-spec-project-template",
|
|
5
5
|
"templateRepository": "https://github.com/iloveZzz/yss-spec-project-template.git",
|
|
6
|
-
"requestedRef": "
|
|
7
|
-
"templateCommit": "
|
|
8
|
-
"
|
|
6
|
+
"requestedRef": "working-tree",
|
|
7
|
+
"templateCommit": "c2a0489cba660853488955c2d97ffd96f5a27f7e",
|
|
8
|
+
"sourceState": "working-tree",
|
|
9
|
+
"manifestHash": "191240f4716de5f93cf1b30ea917a9a14dfd4a29b12dd2ba569c6271fa46009e",
|
|
9
10
|
"encodedPaths": {
|
|
10
11
|
".codex/skills/data-analytics/.gitignore": ".codex/skills/data-analytics/__yss_dotfile__.gitignore",
|
|
11
12
|
".codex/skills/product-design/.npmignore": ".codex/skills/product-design/__yss_dotfile__.npmignore",
|
|
12
13
|
".codex/skills/product-design/templates/prototype/.npmrc": ".codex/skills/product-design/templates/prototype/__yss_dotfile__.npmrc",
|
|
13
14
|
".gitignore": "__yss_dotfile__.gitignore"
|
|
14
15
|
},
|
|
15
|
-
"snapshotHash": "
|
|
16
|
-
"generatedAt": "2026-09-
|
|
16
|
+
"snapshotHash": "cdc85dabb8211657647a1fb94f74b7a64ec4d1bbbac7ca82953595b4a955d386",
|
|
17
|
+
"generatedAt": "2026-09-12T11:15:53.384Z"
|
|
17
18
|
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# 战术设计子项目用户手册
|
|
2
|
-
|
|
3
|
-
本入口保留给既有读者。“战术设计子项目”通过 `yss-technical-design` 统一承接技术设计,整体主控仍为 `yss-product-lifecycle`。先确认后端项目采用 `domain-driven` 或 `layered-mvc`,再分别调用 `yss-tactical-design` 或 `yss-mvc-design`;DDD 是选项,不是默认要求。技术设计不代替 API Freeze 或 Slice Contract 批准。
|
|
4
|
-
|
|
5
|
-
## 输入与开始
|
|
6
|
-
|
|
7
|
-
先核对本仓身份、profile、根 CONTEXT.md、适用的战略交接、需求及批准证据。已有战略包时,导入快照后完成目标词汇对账,再逐项登记源规则/关键场景的承接;缺失、冲突或过期先回交,不能猜测业务规则。
|
|
8
|
-
|
|
9
|
-
```text
|
|
10
|
-
请按本仓生命周期检查“设备领用”当前战略输入及目标词汇对账。
|
|
11
|
-
使用 yss-technical-design 核对已确认的项目架构并起草技术设计,
|
|
12
|
-
DDD 调用 yss-tactical-design,传统 MVC 调用 yss-mvc-design;
|
|
13
|
-
解释设备占用的竞争、状态转换和一致性边界,并映射公开测试 seam。
|
|
14
|
-
逐项列出已承接、冲突、延期及依赖切片,等待适用审查后再编译实现合同。
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## 评审要回答的问题
|
|
18
|
-
|
|
19
|
-
| 设计问题 | 设备借用中的例子 |
|
|
20
|
-
|---|---|
|
|
21
|
-
| 谁保护不变量 | 哪个对象/边界保证设备不能同时被领用 |
|
|
22
|
-
| 状态是否合法 | 未批准申请是否允许领用;重复归还如何处理 |
|
|
23
|
-
| 一致性在哪里保证 | 申请与设备占用是否同事务;失败如何恢复 |
|
|
24
|
-
| 外部依赖如何隔离 | API/Repository/适配边界怎样映射而不篡改业务含义 |
|
|
25
|
-
| 如何证伪设计 | 并发领用、无权限、重复请求的公开 seam 与预期结果 |
|
|
26
|
-
|
|
27
|
-
案例只是提问方向,答案由项目实际业务与工程条件决定。MVC 不要求先完成战略 DDD,也不要求聚合、值对象或 DDD Gateway;用例、规则、事务、幂等、并发和测试承接仍须清晰。没有相关技术设计影响时记录带原因的 not-applicable。
|
|
28
|
-
|
|
29
|
-
## 从设计到实现
|
|
30
|
-
|
|
31
|
-
综合项目由本仓生命周期继续路由,通用研发/后端由 Harness 流程承接。前端专职只消费上游规则、冻结接口并准备前端工程设计,不在本仓派发后端战术实现。
|
|
32
|
-
|
|
33
|
-
技术设计经现有门禁批准后,编译器消费当前设计并起草实现合同,批准与可实现状态由本仓编排和门禁控制。实现前确认工程登记、冻结接口、测试 seam、允许路径与回滚点。战术评审通过不等于 ready-for-agent。
|
|
34
|
-
|
|
35
|
-
过程示例见 [设备借用贯穿案例](设备借用贯穿案例.md);项目选型见 [用户手册](用户手册.md)。
|