create-yss-spec 3.4.9 → 3.4.10

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 (128) hide show
  1. package/package.json +1 -1
  2. package/src/template/attach-planner.js +5 -0
  3. package/src/template/sync-planner.js +5 -0
  4. package/template/.agents/skills/.strategic-design-skills-manifest.json +1 -1
  5. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
  6. package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +2 -0
  7. package/template/.agents/skills/yss-openapi-governance/SKILL.md +4 -0
  8. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +11 -5
  9. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +63 -1
  10. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +2 -2
  11. package/template/.agents/skills/yss-prototype-stage/SKILL.md +2 -0
  12. package/template/.agents/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +2 -2
  13. package/template/.agents/skills/yss-stage-decision/SKILL.md +2 -0
  14. package/template/.agents/skills/yss-tactical-design/SKILL.md +2 -0
  15. package/template/.agents/skills/yss-technical-design/SKILL.md +2 -0
  16. package/template/.agents/skills/yss-technical-design/scripts/engineering-design.mjs +1 -1
  17. package/template/.agents/skills/yss-technical-design/scripts/validate-technical-design.mjs +11 -8
  18. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
  19. package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +2 -0
  20. package/template/.codex/skills/yss-openapi-governance/SKILL.md +4 -0
  21. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +11 -5
  22. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +63 -1
  23. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +2 -2
  24. package/template/.codex/skills/yss-prototype-stage/SKILL.md +2 -0
  25. package/template/.codex/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +2 -2
  26. package/template/.codex/skills/yss-stage-decision/SKILL.md +2 -0
  27. package/template/.codex/skills/yss-tactical-design/SKILL.md +2 -0
  28. package/template/.codex/skills/yss-technical-design/SKILL.md +2 -0
  29. package/template/.codex/skills/yss-technical-design/scripts/engineering-design.mjs +1 -1
  30. package/template/.codex/skills/yss-technical-design/scripts/validate-technical-design.mjs +11 -8
  31. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
  32. package/template/.cursor/skills/yss-openapi-draft-review/SKILL.md +2 -0
  33. package/template/.cursor/skills/yss-openapi-governance/SKILL.md +4 -0
  34. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +11 -5
  35. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +63 -1
  36. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +2 -2
  37. package/template/.cursor/skills/yss-prototype-stage/SKILL.md +2 -0
  38. package/template/.cursor/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +2 -2
  39. package/template/.cursor/skills/yss-stage-decision/SKILL.md +2 -0
  40. package/template/.cursor/skills/yss-tactical-design/SKILL.md +2 -0
  41. package/template/.cursor/skills/yss-technical-design/SKILL.md +2 -0
  42. package/template/.cursor/skills/yss-technical-design/scripts/engineering-design.mjs +1 -1
  43. package/template/.cursor/skills/yss-technical-design/scripts/validate-technical-design.mjs +11 -8
  44. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
  45. package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +2 -0
  46. package/template/.pi/skills/yss-openapi-governance/SKILL.md +4 -0
  47. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +11 -5
  48. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +63 -1
  49. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +2 -2
  50. package/template/.pi/skills/yss-prototype-stage/SKILL.md +2 -0
  51. package/template/.pi/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +2 -2
  52. package/template/.pi/skills/yss-stage-decision/SKILL.md +2 -0
  53. package/template/.pi/skills/yss-tactical-design/SKILL.md +2 -0
  54. package/template/.pi/skills/yss-technical-design/SKILL.md +2 -0
  55. package/template/.pi/skills/yss-technical-design/scripts/engineering-design.mjs +1 -1
  56. package/template/.pi/skills/yss-technical-design/scripts/validate-technical-design.mjs +11 -8
  57. package/template/AGENTS.md +2 -0
  58. package/template/CONTEXT.md +2 -1
  59. package/template/README.md +1 -0
  60. package/template/docs/agents/issue-tracker.md +7 -0
  61. package/template/docs/process/contract-reading.md +46 -0
  62. package/template/docs/process/lifecycle-artifact-map.md +2 -2
  63. package/template/docs/process/lifecycle-registry-baseline.json +2 -1
  64. package/template/docs/process/lifecycle-registry.yaml +10 -4
  65. package/template/docs/process/schemas/api-contract-decision-v2.schema.json +198 -0
  66. package/template/docs/process/schemas/digital-human-task-package.schema.json +8 -0
  67. package/template/docs/process/schemas/lifecycle-checkpoint.schema.json +259 -0
  68. package/template/docs/process/schemas/stage-tracking.schema.json +259 -0
  69. package/template/docs/process/stage-tracking.md +62 -0
  70. package/template/docs/process/strategic-handoff-package.md +8 -0
  71. package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +2 -0
  72. package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214/347/264/242/345/274/225.md +1 -0
  73. package/template/docs/user-guide//351/230/266/346/256/265/346/216/245/345/205/245/344/270/216/344/272/247/347/211/251/345/244/215/347/224/250/344/275/277/347/224/250/346/211/213/345/206/214.md +243 -0
  74. package/template/scripts/api-contract-decision +16 -0
  75. package/template/scripts/complete-backend-delivery +17 -0
  76. package/template/scripts/contract +13 -0
  77. package/template/scripts/dispatch-slice-task +13 -0
  78. package/template/scripts/lib/api-contract-decision.mjs +45 -4
  79. package/template/scripts/lib/approval-record.mjs +1 -1
  80. package/template/scripts/lib/approved-execution-context.mjs +35 -7
  81. package/template/scripts/lib/backend-architecture.mjs +2 -2
  82. package/template/scripts/lib/backend-delivery-terminal.mjs +51 -0
  83. package/template/scripts/lib/backend-platform-provenance.mjs +1 -1
  84. package/template/scripts/lib/backend-platform.mjs +1 -1
  85. package/template/scripts/lib/backend-scaffold-prerequisites.mjs +1 -1
  86. package/template/scripts/lib/context-contract.mjs +1 -1
  87. package/template/scripts/lib/context-reconciliation.mjs +1 -1
  88. package/template/scripts/lib/contract-source.mjs +22 -0
  89. package/template/scripts/lib/contract-views.mjs +109 -0
  90. package/template/scripts/lib/delivery-preflight.mjs +3 -2
  91. package/template/scripts/lib/digital-human-roles.mjs +1 -1
  92. package/template/scripts/lib/existing-backend-architecture.mjs +4 -3
  93. package/template/scripts/lib/existing-ui-baseline.mjs +4 -2
  94. package/template/scripts/lib/frontend-delivery-boundary.mjs +1 -1
  95. package/template/scripts/lib/frontend-delivery.mjs +1 -1
  96. package/template/scripts/lib/harness-execution-scope.mjs +15 -1
  97. package/template/scripts/lib/implementation-contract-compiler.mjs +4 -4
  98. package/template/scripts/lib/json-schema.mjs +19 -4
  99. package/template/scripts/lib/lifecycle-context-query.mjs +5 -1
  100. package/template/scripts/lib/lifecycle-controls.mjs +1 -1
  101. package/template/scripts/lib/lifecycle-execution-scope.mjs +92 -0
  102. package/template/scripts/lib/lifecycle-registry.mjs +2 -1
  103. package/template/scripts/lib/lifecycle-transition.mjs +21 -3
  104. package/template/scripts/lib/openapi-draft-validation.mjs +2 -1
  105. package/template/scripts/lib/skill-registry.mjs +1 -1
  106. package/template/scripts/lib/slice-contract-preparation.mjs +16 -14
  107. package/template/scripts/lib/slice-contract-views.mjs +1 -1
  108. package/template/scripts/lib/slice-contract.mjs +18 -3
  109. package/template/scripts/lib/slice-execution-preflight.mjs +7 -3
  110. package/template/scripts/lib/slice-repositories.mjs +1 -1
  111. package/template/scripts/lib/slice-task-package.mjs +3 -2
  112. package/template/scripts/lib/stage-tracking-migration.mjs +176 -0
  113. package/template/scripts/lib/stage-tracking.mjs +184 -0
  114. package/template/scripts/lib/strategic-handoff-consumption.mjs +5 -4
  115. package/template/scripts/lib/strategic-handoff-io.mjs +5 -2
  116. package/template/scripts/lib/strategic-handoff-routing.mjs +31 -0
  117. package/template/scripts/lib/strategic-handoff.mjs +4 -2
  118. package/template/scripts/lib/task-package.mjs +2 -0
  119. package/template/scripts/lib/technical-design-boundary.mjs +4 -2
  120. package/template/scripts/lib/ui-baseline.mjs +1 -1
  121. package/template/scripts/lib/user-decision.mjs +1 -1
  122. package/template/scripts/lib/validation-phase.mjs +72 -0
  123. package/template/scripts/stage-tracking +25 -0
  124. package/template/scripts/strategic-consumer-entry +47 -0
  125. package/template/scripts/verify-context-reconciliation +4 -3
  126. package/template/scripts/verify-lifecycle-checkpoint +10 -0
  127. package/template/skills-lock.json +13 -13
  128. package/template.snapshot.json +4 -4
@@ -255,6 +255,265 @@
255
255
  }
256
256
  },
257
257
  "additionalProperties": false
258
+ },
259
+ "stage_tracking": {
260
+ "type": "object",
261
+ "additionalProperties": false,
262
+ "required": [
263
+ "schema_version",
264
+ "feature_id",
265
+ "checkpoint_ref",
266
+ "entry_stage",
267
+ "entry",
268
+ "items"
269
+ ],
270
+ "properties": {
271
+ "schema_version": {
272
+ "const": 1
273
+ },
274
+ "feature_id": {
275
+ "type": "string",
276
+ "minLength": 1
277
+ },
278
+ "checkpoint_ref": {
279
+ "type": "string",
280
+ "minLength": 1
281
+ },
282
+ "entry_stage": {
283
+ "type": "string",
284
+ "minLength": 1
285
+ },
286
+ "entry": {
287
+ "type": "object",
288
+ "additionalProperties": false,
289
+ "required": [
290
+ "kind",
291
+ "ref"
292
+ ],
293
+ "properties": {
294
+ "kind": {
295
+ "enum": [
296
+ "parent-ticket",
297
+ "checkpoint"
298
+ ]
299
+ },
300
+ "ref": {
301
+ "type": "string",
302
+ "minLength": 1
303
+ }
304
+ }
305
+ },
306
+ "items": {
307
+ "type": "array",
308
+ "items": {
309
+ "type": "object",
310
+ "additionalProperties": false,
311
+ "required": [
312
+ "id",
313
+ "kind",
314
+ "title",
315
+ "stage",
316
+ "work_unit",
317
+ "owner",
318
+ "scope",
319
+ "acceptance",
320
+ "dependencies",
321
+ "source_refs",
322
+ "progress",
323
+ "split_reasons",
324
+ "completion"
325
+ ],
326
+ "properties": {
327
+ "id": {
328
+ "type": "string",
329
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
330
+ },
331
+ "kind": {
332
+ "const": "stage-work-item"
333
+ },
334
+ "title": {
335
+ "type": "string",
336
+ "minLength": 1
337
+ },
338
+ "stage": {
339
+ "type": "string",
340
+ "minLength": 1
341
+ },
342
+ "work_unit": {
343
+ "type": "string",
344
+ "minLength": 1
345
+ },
346
+ "owner": {
347
+ "type": "string",
348
+ "minLength": 1
349
+ },
350
+ "scope": {
351
+ "type": "string",
352
+ "minLength": 1
353
+ },
354
+ "acceptance": {
355
+ "type": "array",
356
+ "items": {
357
+ "type": "string",
358
+ "minLength": 1
359
+ },
360
+ "minItems": 1,
361
+ "uniqueItems": true
362
+ },
363
+ "dependencies": {
364
+ "type": "array",
365
+ "items": {
366
+ "type": "string",
367
+ "minLength": 1
368
+ },
369
+ "uniqueItems": true
370
+ },
371
+ "source_refs": {
372
+ "type": "array",
373
+ "items": {
374
+ "type": "object",
375
+ "additionalProperties": false,
376
+ "required": [
377
+ "ref",
378
+ "digest"
379
+ ],
380
+ "properties": {
381
+ "ref": {
382
+ "type": "string",
383
+ "minLength": 1
384
+ },
385
+ "digest": {
386
+ "type": "string",
387
+ "pattern": "^sha256:[0-9a-f]{64}$"
388
+ }
389
+ }
390
+ }
391
+ },
392
+ "progress": {
393
+ "enum": [
394
+ "pending",
395
+ "running",
396
+ "blocked",
397
+ "completed",
398
+ "cancelled"
399
+ ]
400
+ },
401
+ "split_reasons": {
402
+ "type": "array",
403
+ "items": {
404
+ "enum": [
405
+ "different-owner",
406
+ "independent-acceptance",
407
+ "blocks-other-work",
408
+ "cross-stage-deferral"
409
+ ]
410
+ },
411
+ "uniqueItems": true
412
+ },
413
+ "completion": {
414
+ "type": "array",
415
+ "items": {
416
+ "type": "object",
417
+ "additionalProperties": false,
418
+ "required": [
419
+ "criterion",
420
+ "evidence_refs"
421
+ ],
422
+ "properties": {
423
+ "criterion": {
424
+ "type": "string",
425
+ "minLength": 1
426
+ },
427
+ "evidence_refs": {
428
+ "type": "array",
429
+ "items": {
430
+ "type": "object",
431
+ "additionalProperties": false,
432
+ "required": [
433
+ "ref",
434
+ "digest"
435
+ ],
436
+ "properties": {
437
+ "ref": {
438
+ "type": "string",
439
+ "minLength": 1
440
+ },
441
+ "digest": {
442
+ "type": "string",
443
+ "pattern": "^sha256:[0-9a-f]{64}$"
444
+ }
445
+ }
446
+ },
447
+ "minItems": 1
448
+ }
449
+ }
450
+ }
451
+ },
452
+ "definition_ref": {
453
+ "type": "string",
454
+ "minLength": 1
455
+ },
456
+ "definition_digest": {
457
+ "type": "string",
458
+ "pattern": "^sha256:[0-9a-f]{64}$"
459
+ },
460
+ "recheck_required": {
461
+ "type": "boolean"
462
+ },
463
+ "cancellation_reason": {
464
+ "type": "string",
465
+ "minLength": 1
466
+ },
467
+ "deferred": {
468
+ "type": "object",
469
+ "additionalProperties": false,
470
+ "required": [
471
+ "owner",
472
+ "resolve_by",
473
+ "receiver",
474
+ "verification_plan",
475
+ "decision_ref",
476
+ "risk",
477
+ "follow_up_ref"
478
+ ],
479
+ "properties": {
480
+ "owner": {
481
+ "type": "string",
482
+ "minLength": 1
483
+ },
484
+ "resolve_by": {
485
+ "type": "string",
486
+ "format": "date-time"
487
+ },
488
+ "receiver": {
489
+ "type": "string",
490
+ "minLength": 1
491
+ },
492
+ "verification_plan": {
493
+ "type": "string",
494
+ "minLength": 1
495
+ },
496
+ "decision_ref": {
497
+ "type": "string",
498
+ "minLength": 1
499
+ },
500
+ "risk": {
501
+ "type": "string",
502
+ "minLength": 1
503
+ },
504
+ "follow_up_ref": {
505
+ "type": "string",
506
+ "minLength": 1
507
+ }
508
+ }
509
+ }
510
+ }
511
+ }
512
+ }
513
+ },
514
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
515
+ "$id": "https://yss.dev/schemas/stage-tracking.schema.json",
516
+ "title": "阶段工作追踪 v1"
258
517
  }
259
518
  }
260
519
  }
@@ -0,0 +1,259 @@
1
+ {
2
+ "type": "object",
3
+ "additionalProperties": false,
4
+ "required": [
5
+ "schema_version",
6
+ "feature_id",
7
+ "checkpoint_ref",
8
+ "entry_stage",
9
+ "entry",
10
+ "items"
11
+ ],
12
+ "properties": {
13
+ "schema_version": {
14
+ "const": 1
15
+ },
16
+ "feature_id": {
17
+ "type": "string",
18
+ "minLength": 1
19
+ },
20
+ "checkpoint_ref": {
21
+ "type": "string",
22
+ "minLength": 1
23
+ },
24
+ "entry_stage": {
25
+ "type": "string",
26
+ "minLength": 1
27
+ },
28
+ "entry": {
29
+ "type": "object",
30
+ "additionalProperties": false,
31
+ "required": [
32
+ "kind",
33
+ "ref"
34
+ ],
35
+ "properties": {
36
+ "kind": {
37
+ "enum": [
38
+ "parent-ticket",
39
+ "checkpoint"
40
+ ]
41
+ },
42
+ "ref": {
43
+ "type": "string",
44
+ "minLength": 1
45
+ }
46
+ }
47
+ },
48
+ "items": {
49
+ "type": "array",
50
+ "items": {
51
+ "type": "object",
52
+ "additionalProperties": false,
53
+ "required": [
54
+ "id",
55
+ "kind",
56
+ "title",
57
+ "stage",
58
+ "work_unit",
59
+ "owner",
60
+ "scope",
61
+ "acceptance",
62
+ "dependencies",
63
+ "source_refs",
64
+ "progress",
65
+ "split_reasons",
66
+ "completion"
67
+ ],
68
+ "properties": {
69
+ "id": {
70
+ "type": "string",
71
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
72
+ },
73
+ "kind": {
74
+ "const": "stage-work-item"
75
+ },
76
+ "title": {
77
+ "type": "string",
78
+ "minLength": 1
79
+ },
80
+ "stage": {
81
+ "type": "string",
82
+ "minLength": 1
83
+ },
84
+ "work_unit": {
85
+ "type": "string",
86
+ "minLength": 1
87
+ },
88
+ "owner": {
89
+ "type": "string",
90
+ "minLength": 1
91
+ },
92
+ "scope": {
93
+ "type": "string",
94
+ "minLength": 1
95
+ },
96
+ "acceptance": {
97
+ "type": "array",
98
+ "items": {
99
+ "type": "string",
100
+ "minLength": 1
101
+ },
102
+ "minItems": 1,
103
+ "uniqueItems": true
104
+ },
105
+ "dependencies": {
106
+ "type": "array",
107
+ "items": {
108
+ "type": "string",
109
+ "minLength": 1
110
+ },
111
+ "uniqueItems": true
112
+ },
113
+ "source_refs": {
114
+ "type": "array",
115
+ "items": {
116
+ "type": "object",
117
+ "additionalProperties": false,
118
+ "required": [
119
+ "ref",
120
+ "digest"
121
+ ],
122
+ "properties": {
123
+ "ref": {
124
+ "type": "string",
125
+ "minLength": 1
126
+ },
127
+ "digest": {
128
+ "type": "string",
129
+ "pattern": "^sha256:[0-9a-f]{64}$"
130
+ }
131
+ }
132
+ }
133
+ },
134
+ "progress": {
135
+ "enum": [
136
+ "pending",
137
+ "running",
138
+ "blocked",
139
+ "completed",
140
+ "cancelled"
141
+ ]
142
+ },
143
+ "split_reasons": {
144
+ "type": "array",
145
+ "items": {
146
+ "enum": [
147
+ "different-owner",
148
+ "independent-acceptance",
149
+ "blocks-other-work",
150
+ "cross-stage-deferral"
151
+ ]
152
+ },
153
+ "uniqueItems": true
154
+ },
155
+ "completion": {
156
+ "type": "array",
157
+ "items": {
158
+ "type": "object",
159
+ "additionalProperties": false,
160
+ "required": [
161
+ "criterion",
162
+ "evidence_refs"
163
+ ],
164
+ "properties": {
165
+ "criterion": {
166
+ "type": "string",
167
+ "minLength": 1
168
+ },
169
+ "evidence_refs": {
170
+ "type": "array",
171
+ "items": {
172
+ "type": "object",
173
+ "additionalProperties": false,
174
+ "required": [
175
+ "ref",
176
+ "digest"
177
+ ],
178
+ "properties": {
179
+ "ref": {
180
+ "type": "string",
181
+ "minLength": 1
182
+ },
183
+ "digest": {
184
+ "type": "string",
185
+ "pattern": "^sha256:[0-9a-f]{64}$"
186
+ }
187
+ }
188
+ },
189
+ "minItems": 1
190
+ }
191
+ }
192
+ }
193
+ },
194
+ "definition_ref": {
195
+ "type": "string",
196
+ "minLength": 1
197
+ },
198
+ "definition_digest": {
199
+ "type": "string",
200
+ "pattern": "^sha256:[0-9a-f]{64}$"
201
+ },
202
+ "recheck_required": {
203
+ "type": "boolean"
204
+ },
205
+ "cancellation_reason": {
206
+ "type": "string",
207
+ "minLength": 1
208
+ },
209
+ "deferred": {
210
+ "type": "object",
211
+ "additionalProperties": false,
212
+ "required": [
213
+ "owner",
214
+ "resolve_by",
215
+ "receiver",
216
+ "verification_plan",
217
+ "decision_ref",
218
+ "risk",
219
+ "follow_up_ref"
220
+ ],
221
+ "properties": {
222
+ "owner": {
223
+ "type": "string",
224
+ "minLength": 1
225
+ },
226
+ "resolve_by": {
227
+ "type": "string",
228
+ "format": "date-time"
229
+ },
230
+ "receiver": {
231
+ "type": "string",
232
+ "minLength": 1
233
+ },
234
+ "verification_plan": {
235
+ "type": "string",
236
+ "minLength": 1
237
+ },
238
+ "decision_ref": {
239
+ "type": "string",
240
+ "minLength": 1
241
+ },
242
+ "risk": {
243
+ "type": "string",
244
+ "minLength": 1
245
+ },
246
+ "follow_up_ref": {
247
+ "type": "string",
248
+ "minLength": 1
249
+ }
250
+ }
251
+ }
252
+ }
253
+ }
254
+ }
255
+ },
256
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
257
+ "$id": "https://yss.dev/schemas/stage-tracking.schema.json",
258
+ "title": "阶段工作追踪 v1"
259
+ }
@@ -0,0 +1,62 @@
1
+ # Plan / Spec / Design 阶段工作追踪
2
+
3
+ 本合同由主 tracker 与生命周期编排器消费。阶段、注册工作单元及父 Ticket 创建时点以生命周期注册表为准;工作项结构以 `schemas/stage-tracking.schema.json` 为准。
4
+
5
+ ## 启用与职责
6
+
7
+ `docs/agents/issue-tracker.md` 的 `tracker.lifecycle_tracking_version: 1` 表示项目已启用。新初始化默认启用;attach / sync 保留已有配置,未声明的旧项目不自动启用。只读检查不修改项目;旧项目先 plan 再显式 apply。模板源只维护机制,不在模板根生成产品工作项。
8
+
9
+ 完整研发从 Plan(或接入的最近可信阶段)建立唯一父 Ticket。Design 继续使用 checkpoint / map,不创建工程父 Ticket。Backend / Frontend 只消费已交接资产,不因本协议取得 Plan、Spec 或产品设计的编写权限。Dev 消费主模板的同一协议。
10
+
11
+ checkpoint 的 `stage_tracking` 是阶段工作项当前进度的唯一机器状态源。父 Ticket、map、远程镜像只引用它。业务 Ticket 与工程切片仍由现有 tracker 管理;本协议不替代 Ticket 五态、业务批准、工作单元结果或实现合同。
12
+
13
+ ## 工作项
14
+
15
+ 同一负责人可连续完成的小工作以内联项记录。不同负责人、独立验收、阻塞其他工作或跨阶段延期时创建 `work-items/<id>.md`,类型为 `stage-work-item`。`issues/` 继续承载各 profile 的业务 Ticket / 实现切片。
16
+
17
+ 工作项包含 ID、标题、阶段、注册工作单元、负责人、范围、验收条件、依赖、源资产摘要、进度和验收证据;独立说明文件不保存 `Status` 或进度。相同 ID 恢复时复用;同 ID 不同定义返回冲突。每项 `source_refs` 绑定实际消费的输入;`completion` 逐条将验收条件关联到可读取且当前的证据摘要,不能以文件存在代替验收。
18
+
19
+ 进度为 `pending / running / blocked / completed / cancelled`。取消要有理由;延期保留未完成进度,并记录风险、负责人、解决时点、接收方、后续引用、验证计划和既有决定引用。延期不绕过原有门禁或风险接受规则。完成要求所有依赖已完成、逐条验收有证据且来源未漂移。阶段工作项不得出现 `ready-for-agent`,也不能绑定为 Slice 的实现 Ticket。
20
+
21
+ ## 推进与恢复
22
+
23
+ 1. 正式写入阶段资产前,先建立 checkpoint 与当前工作项;缺负责人 / 范围 / 验收时保留缺口,不推断历史完成。
24
+ 2. 进入当前阶段前检查 `scripts/stage-tracking check`;恢复时同样执行。阻塞、责任变化、资产批准和阶段退出必须回写,普通编辑仍集中记录。
25
+ 3. `Workflow Execution Result.checkpoint_ref` 引用当前持久 checkpoint。流转验证读取真实 checkpoint,拒绝仅在结果中自述追踪已完成。
26
+ 4. 上游或验收证据摘要变化时,用 `plan --refresh` 生成受影响项回到 pending / recheck_required 的差异,再 apply;旧摘要与证据原样保留。复验后由主控更新源摘要及验收映射,清除 recheck_required。
27
+ 5. 流转要求当前工作单元的必需项完成或按原规则延期;跨阶段检查当前阶段。无依赖工作可继续,延期并不使依赖它的工作可执行。
28
+ 6. 完成工作项只代表其验收通过,不能替代 Spec、Design 或工程合同批准。
29
+
30
+ ## 公共命令
31
+
32
+ ```sh
33
+ scripts/stage-tracking check --root <项目> --checkpoint docs/.scratch/<feature>/checkpoint.yaml
34
+ scripts/stage-tracking plan --root <项目> --checkpoint docs/.scratch/<feature>/checkpoint.yaml --items <工作项数组.yaml> > <plan.json>
35
+ scripts/stage-tracking apply --root <项目> --plan <plan.json>
36
+ scripts/stage-tracking plan --root <项目> --checkpoint docs/.scratch/<feature>/checkpoint.yaml --refresh > <refresh-plan.json>
37
+ ```
38
+
39
+ check / plan 不写项目。首次 checkpoint 不存在时,plan 从本项目 checkpoint 模板形成草稿。没有明确工作项时输出 gaps,apply 拒绝。items 只登记 pending 项,不把历史产物推断为完成,也不覆盖已有同 ID 项。
40
+
41
+ apply 复验项目身份、计划摘要、全部观察文件及源证据摘要,备份后写入。写入失败恢复本次已写内容;若检测到后续并发修改,保留文件并报告恢复冲突。备份和失败清单保存在功能包 verification/stage-tracking-migrations 内;不得删除后续执行证据。相同成功计划再次应用返回 unchanged。
42
+
43
+ 远程 tracker 不可用时,父票保留 publication: pending 和 pending_publication_to;本工具不访问远程平台。下游正式化业务票 / 切片时关联本阶段资产与工作项引用,不将已完成设计工作项改写为开发切片。
44
+
45
+ 首次登记的工作项数组示例(路径、负责人、范围与验收按真实任务填写):
46
+
47
+ ```yaml
48
+ - id: clarify-scope
49
+ title: 明确本轮范围
50
+ stage: stage.plan
51
+ work_unit: work-unit.plan-requirements
52
+ owner: 当前需求负责人
53
+ scope: 明确本轮包含与排除的业务行为
54
+ acceptance:
55
+ - 范围及至少一个边界例子可供审阅
56
+ dependencies: []
57
+ source_refs:
58
+ - docs/.scratch/example/plan/input.md
59
+ split_reasons: []
60
+ ```
61
+
62
+ 不同负责人和被其他项依赖的工作会自动拆分;独立验收使用 `split_reasons: [independent-acceptance]`。登记只创建 pending 项,不能把输入文件当成已通过的验收证据。启用项目缺少 checkpoint 时,check 返回非零退出码;先审阅并应用登记计划,再进入阶段写入。
@@ -106,3 +106,11 @@ scripts/strategic-feedback verify-adjudication --root <消费者项目根> <adju
106
106
  `gate.strategic-design-handoff-approved` 不要求新的用户回复,也不把旧决定改写为交接决定。产品经理形成完整交接包后,由需求经理独立复核来源批准新鲜度、完整包摘要、风险与范围,并以 Fresh Verification 关闭交接门禁。缺少独立复核、来源批准过期、摘要漂移或验证失败均阻断 finalize。
107
107
 
108
108
  历史包中的 `strategic-decision-reuse-v1`、`decision_reuse_ref` 和旧门禁批准保持可读,供离线 `verify/import` 复核当时证据。它们不能关闭当前聚合门禁;任何修改、重发或继续流转都必须先完成战略门禁迁移并重新批准。
109
+
110
+ ## 插件接收入口与目标路由
111
+
112
+ `yss-product-design` 在战略 profile 内完成设计与 Handoff v5 交付,`yss-backend-delivery` 通过 `project-import-design` 调用目标项目的 `scripts/strategic-consumer-entry --root <目标根> --bundle <交付目录或ZIP>`。入口先验证源包与后端路线,再执行既有 import;返回收据和目标工程设计入口,固定 `ready_for_agent: false`。恢复以 `--receipt <项目内收据路径>` 重新验证,查询不导入文件。
113
+
114
+ 源 `work-unit.technical-design` 保留不变,目标主控 `consumer_entry_routes` 持有精确映射;`plan-to-backend` 和完整主模板进入 `work-unit.technical-analysis`,专职后端进入自己的 `work-unit.technical-design`。目标工作单元不存在或超出 profile/职责范围时阻断。后端插件的 scope 只选择 backend-technical-design;源包保留完整前端、协调路线,不宣称已接管或完成。
115
+
116
+ 正式交付目录导入生成 Receipt v3;现有运输 package.zip 按已有协议生成 v2 收据,源包、批准、逻辑摘要仍须完整校验,不能补造 source-delivery-record。消费校验、反馈裁决和 Slice Contract 的实现门禁保持不变。
@@ -92,6 +92,8 @@ npx create-yss-harness-frontend@latest init --target-dir ./frontend-project --pr
92
92
 
93
93
  完整演练见[设备借用贯穿案例](设备借用贯穿案例.md),后端技术设计见[技术设计用户指南](技术设计用户指南.md)。
94
94
 
95
+ 已有 Spec、设计、冻结接口或后端交付包时,按[阶段接入与产物复用使用手册](阶段接入与产物复用使用手册.md)从最近可信阶段继续。手册提供可复制指令、前端接收操作、命令及阻塞处理,帮助复用有效上游资产并补齐当前阶段缺口。
96
+
95
97
  ## 接管、同步与恢复
96
98
 
97
99
  综合 CLI 示例:
@@ -5,6 +5,7 @@
5
5
  1. [YSS 用户手册](用户手册.md):四个现行家族的选型、CLI、确认、同步和恢复。
6
6
  2. [设备借用贯穿案例](设备借用贯穿案例.md):战略、后端、前端与统一验收的完整练习。
7
7
  3. [技术设计用户指南](技术设计用户指南.md):批准战略或 Spec 如何进入 DDD / layered-mvc 技术设计和实现合同。
8
+ 4. [阶段接入与产物复用使用手册](阶段接入与产物复用使用手册.md):从已有产物继续,含后端交付后前端接收、准备、开发及恢复步骤。
8
9
 
9
10
  ## 按职责进入子项目
10
11