create-yss-spec 3.3.7 → 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.
Files changed (131) hide show
  1. package/README.md +12 -13
  2. package/package.json +1 -1
  3. package/template/.agents/skills/.strategic-design-skills-manifest.json +2 -2
  4. package/template/.agents/skills/implementation-repo-onboarding/SKILL.md +2 -2
  5. package/template/.agents/skills/yss-application/SKILL.md +1 -1
  6. package/template/.agents/skills/yss-application/references/profiles/existing-domain-driven-maven.md +5 -0
  7. package/template/.agents/skills/yss-application/references/profiles/existing-layered-mvc-maven.md +5 -0
  8. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +2 -2
  9. package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +4 -0
  10. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +6 -1
  11. package/template/.agents/skills/yss-prototype-stage/SKILL.md +10 -1
  12. package/template/.agents/skills/yss-technical-design/SKILL.md +2 -0
  13. package/template/.agents/skills/yss-technical-design/references/engineering-design.schema.json +224 -0
  14. package/template/.agents/skills/yss-technical-design/references/technical-design-common.schema.json +6 -0
  15. package/template/.agents/skills/yss-technical-design/references/technical-design.schema.json +288 -10
  16. package/template/.agents/skills/yss-technical-design/scripts/engineering-design.mjs +30 -0
  17. package/template/.agents/skills/yss-technical-design/scripts/generate-schema.mjs +2 -1
  18. package/template/.agents/skills/yss-technical-design/scripts/validate-technical-design.mjs +20 -8
  19. package/template/.agents/skills/yss-technical-design/tests/engineering-scenarios.mjs +12 -0
  20. package/template/.agents/skills/yss-web-controller/SKILL.md +1 -1
  21. package/template/.agents/skills/yss-web-controller/references/profiles/existing-domain-driven-maven.md +5 -0
  22. package/template/.agents/skills/yss-web-controller/references/profiles/existing-layered-mvc-maven.md +5 -0
  23. package/template/.codex/skills/implementation-repo-onboarding/SKILL.md +2 -2
  24. package/template/.codex/skills/yss-application/SKILL.md +1 -1
  25. package/template/.codex/skills/yss-application/references/profiles/existing-domain-driven-maven.md +5 -0
  26. package/template/.codex/skills/yss-application/references/profiles/existing-layered-mvc-maven.md +5 -0
  27. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +2 -2
  28. package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +4 -0
  29. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +6 -1
  30. package/template/.codex/skills/yss-prototype-stage/SKILL.md +10 -1
  31. package/template/.codex/skills/yss-technical-design/SKILL.md +2 -0
  32. package/template/.codex/skills/yss-technical-design/references/engineering-design.schema.json +224 -0
  33. package/template/.codex/skills/yss-technical-design/references/technical-design-common.schema.json +6 -0
  34. package/template/.codex/skills/yss-technical-design/references/technical-design.schema.json +288 -10
  35. package/template/.codex/skills/yss-technical-design/scripts/engineering-design.mjs +30 -0
  36. package/template/.codex/skills/yss-technical-design/scripts/generate-schema.mjs +2 -1
  37. package/template/.codex/skills/yss-technical-design/scripts/validate-technical-design.mjs +20 -8
  38. package/template/.codex/skills/yss-technical-design/tests/engineering-scenarios.mjs +12 -0
  39. package/template/.codex/skills/yss-web-controller/SKILL.md +1 -1
  40. package/template/.codex/skills/yss-web-controller/references/profiles/existing-domain-driven-maven.md +5 -0
  41. package/template/.codex/skills/yss-web-controller/references/profiles/existing-layered-mvc-maven.md +5 -0
  42. package/template/.cursor/skills/implementation-repo-onboarding/SKILL.md +2 -2
  43. package/template/.cursor/skills/yss-application/SKILL.md +1 -1
  44. package/template/.cursor/skills/yss-application/references/profiles/existing-domain-driven-maven.md +5 -0
  45. package/template/.cursor/skills/yss-application/references/profiles/existing-layered-mvc-maven.md +5 -0
  46. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +2 -2
  47. package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +4 -0
  48. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +6 -1
  49. package/template/.cursor/skills/yss-prototype-stage/SKILL.md +10 -1
  50. package/template/.cursor/skills/yss-technical-design/SKILL.md +2 -0
  51. package/template/.cursor/skills/yss-technical-design/references/engineering-design.schema.json +224 -0
  52. package/template/.cursor/skills/yss-technical-design/references/technical-design-common.schema.json +6 -0
  53. package/template/.cursor/skills/yss-technical-design/references/technical-design.schema.json +288 -10
  54. package/template/.cursor/skills/yss-technical-design/scripts/engineering-design.mjs +30 -0
  55. package/template/.cursor/skills/yss-technical-design/scripts/generate-schema.mjs +2 -1
  56. package/template/.cursor/skills/yss-technical-design/scripts/validate-technical-design.mjs +20 -8
  57. package/template/.cursor/skills/yss-technical-design/tests/engineering-scenarios.mjs +12 -0
  58. package/template/.cursor/skills/yss-web-controller/SKILL.md +1 -1
  59. package/template/.cursor/skills/yss-web-controller/references/profiles/existing-domain-driven-maven.md +5 -0
  60. package/template/.cursor/skills/yss-web-controller/references/profiles/existing-layered-mvc-maven.md +5 -0
  61. package/template/.pi/skills/implementation-repo-onboarding/SKILL.md +2 -2
  62. package/template/.pi/skills/yss-application/SKILL.md +1 -1
  63. package/template/.pi/skills/yss-application/references/profiles/existing-domain-driven-maven.md +5 -0
  64. package/template/.pi/skills/yss-application/references/profiles/existing-layered-mvc-maven.md +5 -0
  65. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +2 -2
  66. package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +4 -0
  67. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +6 -1
  68. package/template/.pi/skills/yss-prototype-stage/SKILL.md +10 -1
  69. package/template/.pi/skills/yss-technical-design/SKILL.md +2 -0
  70. package/template/.pi/skills/yss-technical-design/references/engineering-design.schema.json +224 -0
  71. package/template/.pi/skills/yss-technical-design/references/technical-design-common.schema.json +6 -0
  72. package/template/.pi/skills/yss-technical-design/references/technical-design.schema.json +288 -10
  73. package/template/.pi/skills/yss-technical-design/scripts/engineering-design.mjs +30 -0
  74. package/template/.pi/skills/yss-technical-design/scripts/generate-schema.mjs +2 -1
  75. package/template/.pi/skills/yss-technical-design/scripts/validate-technical-design.mjs +20 -8
  76. package/template/.pi/skills/yss-technical-design/tests/engineering-scenarios.mjs +12 -0
  77. package/template/.pi/skills/yss-web-controller/SKILL.md +1 -1
  78. package/template/.pi/skills/yss-web-controller/references/profiles/existing-domain-driven-maven.md +5 -0
  79. package/template/.pi/skills/yss-web-controller/references/profiles/existing-layered-mvc-maven.md +5 -0
  80. package/template/README.md +4 -6
  81. package/template/docs/agents/backend-architecture-profiles.md +4 -0
  82. package/template/docs/agents/yss-skill-registry.yaml +13 -0
  83. package/template/docs/design/templates/prototype-confirmation-template.md +2 -2
  84. package/template/docs/design/templates/prototype-review-checklist.md +2 -2
  85. package/template/docs/plan/templates/market-analysis-template.md +3 -3
  86. package/template/docs/plan/templates/user-pain-points-template.md +3 -3
  87. package/template/docs/process/delivery-preflight.md +72 -0
  88. package/template/docs/process/document-writing.md +5 -1
  89. package/template/docs/process/existing-backend-architecture.md +31 -0
  90. package/template/docs/process/existing-ui-baseline.md +40 -0
  91. package/template/docs/process/frontend-backend-delivery.md +19 -6
  92. package/template/docs/process/implementation-repo-integration.md +6 -0
  93. package/template/docs/process/schemas/backend-architecture-identity.schema.json +111 -14
  94. package/template/docs/process/schemas/delivery-preflight-input.schema.json +158 -0
  95. package/template/docs/process/schemas/delivery-preflight-result.schema.json +159 -0
  96. package/template/docs/process/schemas/digital-human-task-package.schema.json +1 -1
  97. package/template/docs/process/schemas/existing-ui-baseline.schema.json +365 -0
  98. package/template/docs/process/schemas/frontend-delivery-acceptance-v3.schema.json +308 -0
  99. package/template/docs/process/schemas/frontend-strategic-preflight-v2.schema.json +114 -0
  100. package/template/docs/process/schemas/strategic-design-handoff-v5.schema.json +932 -0
  101. package/template/docs/process/schemas/strategic-handoff-export-v2.schema.json +378 -0
  102. package/template/docs/process/strategic-handoff-package.md +21 -13
  103. 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
  104. package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +83 -67
  105. 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
  106. 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
  107. package/template/scripts/backend-delivery +20 -4
  108. package/template/scripts/lib/approved-execution-context.mjs +106 -0
  109. package/template/scripts/lib/backend-architecture.mjs +12 -0
  110. package/template/scripts/lib/backend-delivery.mjs +10 -6
  111. package/template/scripts/lib/delivery-preflight.mjs +238 -0
  112. package/template/scripts/lib/existing-backend-architecture.mjs +139 -0
  113. package/template/scripts/lib/existing-ui-baseline.mjs +84 -0
  114. package/template/scripts/lib/frontend-delivery.mjs +23 -15
  115. package/template/scripts/lib/implementation-contract-compiler.mjs +19 -5
  116. package/template/scripts/lib/json-schema.mjs +19 -4
  117. package/template/scripts/lib/profile-skill-sync.mjs +26 -0
  118. package/template/scripts/lib/strategic-handoff-consumption.mjs +6 -5
  119. package/template/scripts/lib/strategic-handoff-design-targets.mjs +2 -3
  120. package/template/scripts/lib/strategic-handoff-io.mjs +10 -0
  121. package/template/scripts/lib/strategic-handoff.mjs +47 -29
  122. package/template/scripts/lib/task-package.mjs +11 -3
  123. package/template/scripts/lib/technical-design-boundary.mjs +9 -1
  124. package/template/scripts/lib/ui-baseline.mjs +26 -0
  125. package/template/scripts/lib/user-decision.mjs +4 -1
  126. package/template/scripts/preflight-delivery +14 -0
  127. package/template/scripts/strategic-handoff +19 -4
  128. package/template/scripts/sync-profile-skills +4 -5
  129. package/template/skills-lock.json +15 -15
  130. package/template.snapshot.json +3 -3
  131. 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
@@ -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
- process.stdout.write(`profile skills: ${report.profiles.join(", ")}\n`);
34
- for (const [status, count] of Object.entries(report.counts)) process.stdout.write(`${status}: ${count}\n`);
35
- for (const item of report.changes) process.stdout.write(`${item.profile}: ${item.status}: ${item.path}\n`);
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;
@@ -18,7 +18,7 @@
18
18
  "revision": "c4d958f18cc947cb91cbe1bd48783fa4601cc18f"
19
19
  },
20
20
  "iloveZzz/yss-harness-design-agent": {
21
- "revision": "e24465921a8a51d8690a1732842274a35b935c9e"
21
+ "revision": "b7947298f74510861a36caedda4e77d03df35569"
22
22
  },
23
23
  "ayghri/i-have-adhd": {
24
24
  "revision": "7b9069b39972e269e61bd95c2f66ebb90cac6a02"
@@ -331,7 +331,7 @@
331
331
  "source": "project",
332
332
  "sourceType": "local",
333
333
  "skillPath": ".agents/skills/implementation-repo-onboarding/SKILL.md",
334
- "effectiveHash": "2083358c6ed57dbae7b94c2e52f91f9e9103168ad14f4b296ac084d8d9ac4ff3",
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": "e24465921a8a51d8690a1732842274a35b935c9e",
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": "e24465921a8a51d8690a1732842274a35b935c9e",
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": "e24465921a8a51d8690a1732842274a35b935c9e",
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": "51115e474c8cd55991fd40c8ab8802fbcced3b5debed61e30ce95c7db7a8d7cb",
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": "e24465921a8a51d8690a1732842274a35b935c9e",
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": "cfa69127e633d485a6691d9e70737fd050401bee7e598971c42bf5d6825c0391",
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": "9bebb957fdd80cfe812605cec25cdb2d2c2ba229db2547f870efb00e2175b2a9",
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": "c87c7c38c9598c04f28cfa759fd6c1c12b2937b49e92f8171992d8346cb179e0",
1043
- "sourceRevision": "e24465921a8a51d8690a1732842274a35b935c9e",
1044
- "upstreamHash": "aa78ef758ad3c515e94fb6b87d4e519f39a38e53bb3c82413d707f7d0f96f58b",
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",
@@ -1118,7 +1118,7 @@
1118
1118
  "sourceType": "git-submodule",
1119
1119
  "skillPath": ".agents/skills/yss-stage-decision/SKILL.md",
1120
1120
  "effectiveHash": "ada584c7b996439a47e24153e156c38198f60f3f84250cd37aea6e2a118131aa",
1121
- "sourceRevision": "e24465921a8a51d8690a1732842274a35b935c9e",
1121
+ "sourceRevision": "b7947298f74510861a36caedda4e77d03df35569",
1122
1122
  "upstreamHash": "8752a1ed6903bd20c33e21b521d52bd4f7a0662b1d25e00152b60ba38333c93b",
1123
1123
  "adaptationRef": "docs/agents/strategic-design-skills-integration.md",
1124
1124
  "targets": [
@@ -1144,7 +1144,7 @@
1144
1144
  "source": "project",
1145
1145
  "sourceType": "local",
1146
1146
  "skillPath": ".agents/skills/yss-technical-design/SKILL.md",
1147
- "effectiveHash": "06e7cdbf6441be90a19ec705388c1e164daefed5ace237c7e6595cf0c0f81e1f",
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": "164e31bcb783676fe7ddd99b400c3b199c4c747a8153fe039048c62b914aa132",
1252
+ "effectiveHash": "63192f78bcc7fe099cd856552ff2899453c1aeafd17203099694c25d425f4797",
1253
1253
  "targets": [
1254
1254
  ".agents/skills",
1255
1255
  ".codex/skills",
@@ -4,7 +4,7 @@
4
4
  "templateSource": "github:iloveZzz/yss-spec-project-template",
5
5
  "templateRepository": "https://github.com/iloveZzz/yss-spec-project-template.git",
6
6
  "requestedRef": "working-tree",
7
- "templateCommit": "32fa044c0123f73b8d8091590d1f060440ac9ccb",
7
+ "templateCommit": "c2a0489cba660853488955c2d97ffd96f5a27f7e",
8
8
  "sourceState": "working-tree",
9
9
  "manifestHash": "191240f4716de5f93cf1b30ea917a9a14dfd4a29b12dd2ba569c6271fa46009e",
10
10
  "encodedPaths": {
@@ -13,6 +13,6 @@
13
13
  ".codex/skills/product-design/templates/prototype/.npmrc": ".codex/skills/product-design/templates/prototype/__yss_dotfile__.npmrc",
14
14
  ".gitignore": "__yss_dotfile__.gitignore"
15
15
  },
16
- "snapshotHash": "c6c4ab647dbf5a99159098417f05edcd7133c2907fe00aeaae0ea06d5589bf0d",
17
- "generatedAt": "2026-09-11T13:22:12.721Z"
16
+ "snapshotHash": "cdc85dabb8211657647a1fb94f74b7a64ec4d1bbbac7ca82953595b4a955d386",
17
+ "generatedAt": "2026-09-12T11:15:53.384Z"
18
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)。