create-yss-spec 2.1.9 → 2.1.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.
- package/README.md +1 -1
- package/package.json +1 -1
- package/src/cli.js +82 -15
- package/template/.agents/skills/diagnosing-bugs/SKILL.md +2 -4
- package/template/.agents/skills/domain-modeling/SKILL.md +1 -1
- package/template/.agents/skills/grilling/SKILL.md +7 -1
- package/template/.agents/skills/triage/SKILL.md +2 -2
- package/template/.agents/skills/wait-what/SKILL.md +2 -2
- package/template/.agents/skills/wayfinder/SKILL.md +1 -1
- package/template/.agents/skills/yss-product-lifecycle/SKILL.md +43 -91
- package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +7 -5
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +88 -22
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +5 -4
- package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +4 -1
- package/template/.claude/skills/diagnosing-bugs/SKILL.md +2 -4
- package/template/.claude/skills/domain-modeling/SKILL.md +1 -1
- package/template/.claude/skills/grilling/SKILL.md +7 -1
- package/template/.claude/skills/triage/SKILL.md +2 -2
- package/template/.claude/skills/wait-what/SKILL.md +2 -2
- package/template/.claude/skills/wayfinder/SKILL.md +1 -1
- package/template/.claude/skills/yss-product-lifecycle/SKILL.md +43 -91
- package/template/.claude/skills/yss-product-lifecycle/references/matt-yss-adapter.md +7 -5
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +88 -22
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +5 -4
- package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +4 -1
- package/template/.codex/skills/diagnosing-bugs/SKILL.md +2 -4
- package/template/.codex/skills/domain-modeling/SKILL.md +1 -1
- package/template/.codex/skills/grilling/SKILL.md +7 -1
- package/template/.codex/skills/triage/SKILL.md +2 -2
- package/template/.codex/skills/wait-what/SKILL.md +2 -2
- package/template/.codex/skills/wayfinder/SKILL.md +1 -1
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +43 -91
- package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +7 -5
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +88 -22
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +5 -4
- package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +4 -1
- package/template/.hermes/skills/diagnosing-bugs/SKILL.md +2 -4
- package/template/.hermes/skills/domain-modeling/SKILL.md +1 -1
- package/template/.hermes/skills/grilling/SKILL.md +7 -1
- package/template/.hermes/skills/triage/SKILL.md +2 -2
- package/template/.hermes/skills/wait-what/SKILL.md +2 -2
- package/template/.hermes/skills/wayfinder/SKILL.md +1 -1
- package/template/.hermes/skills/yss-product-lifecycle/SKILL.md +43 -91
- package/template/.hermes/skills/yss-product-lifecycle/references/matt-yss-adapter.md +7 -5
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration-contract.yaml +88 -22
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration.md +5 -4
- package/template/.hermes/skills/yss-product-lifecycle/references/state-model.md +4 -1
- package/template/.pi/skills/diagnosing-bugs/SKILL.md +2 -4
- package/template/.pi/skills/domain-modeling/SKILL.md +1 -1
- package/template/.pi/skills/grilling/SKILL.md +7 -1
- package/template/.pi/skills/triage/SKILL.md +2 -2
- package/template/.pi/skills/wait-what/SKILL.md +2 -2
- package/template/.pi/skills/wayfinder/SKILL.md +1 -1
- package/template/.pi/skills/yss-product-lifecycle/SKILL.md +43 -91
- package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +7 -5
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +88 -22
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +5 -4
- package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +4 -1
- package/template/.qoder/skills/diagnosing-bugs/SKILL.md +2 -4
- package/template/.qoder/skills/domain-modeling/SKILL.md +1 -1
- package/template/.qoder/skills/grilling/SKILL.md +7 -1
- package/template/.qoder/skills/triage/SKILL.md +2 -2
- package/template/.qoder/skills/wait-what/SKILL.md +2 -2
- package/template/.qoder/skills/wayfinder/SKILL.md +1 -1
- package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +43 -91
- package/template/.qoder/skills/yss-product-lifecycle/references/matt-yss-adapter.md +7 -5
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +88 -22
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +5 -4
- package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +4 -1
- package/template/.trae/skills/diagnosing-bugs/SKILL.md +2 -4
- package/template/.trae/skills/domain-modeling/SKILL.md +1 -1
- package/template/.trae/skills/grilling/SKILL.md +7 -1
- package/template/.trae/skills/triage/SKILL.md +2 -2
- package/template/.trae/skills/wait-what/SKILL.md +2 -2
- package/template/.trae/skills/wayfinder/SKILL.md +1 -1
- package/template/.trae/skills/yss-product-lifecycle/SKILL.md +43 -91
- package/template/.trae/skills/yss-product-lifecycle/references/matt-yss-adapter.md +7 -5
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +88 -22
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +5 -4
- package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +4 -1
- package/template/AGENTS.md +2 -2
- package/template/CONTEXT.md +7 -1
- package/template/docs/adr/0007-lifecycle-native-work-units.md +5 -0
- package/template/docs/agents/skills-maintenance.md +11 -3
- package/template/docs/process/MATT-POCOCK-ENGINEERING-SKILLS.md +1 -1
- package/template/docs/process/lifecycle-artifact-map.md +19 -15
- package/template/docs/process/lifecycle-registry-baseline.json +15 -1
- package/template/docs/process/lifecycle-registry.yaml +77 -0
- package/template/docs/process/schemas/frontend-implementation-evidence.schema.json +39 -0
- package/template/docs/process/schemas/lifecycle-checkpoint.schema.json +56 -0
- package/template/docs/process/schemas/lifecycle-registry.schema.json +2 -2
- package/template/docs/process/templates/frontend-implementation-plan-template.yaml +16 -0
- package/template/docs/process/templates/frontend-implementation-verification-template.yaml +21 -0
- package/template/docs/process/templates/lifecycle-checkpoint-template.yaml +30 -0
- package/template/docs/process/templates/stage-checkpoint-template.md +9 -5
- package/template/scripts/lib/lifecycle-registry.mjs +9 -4
- package/template/scripts/lib/scenario-checks.mjs +37 -15
- package/template/scripts/lib/skill-supply-chain.mjs +33 -8
- package/template/scripts/verify-frontend-implementation-evidence +51 -0
- package/template/scripts/verify-lifecycle-checkpoint +37 -0
- package/template/scripts/verify-template +5 -2
- package/template/scripts/verify-upstream-skill-source +32 -0
- package/template/skills-lock.json +105 -55
- package/template.manifest.json +12 -0
- package/template.snapshot.json +4 -4
- package/template/.agents/skills/batch-grill-me/SKILL.md +0 -15
- package/template/.agents/skills/batch-grill-me/agents/openai.yaml +0 -5
- package/template/.claude/skills/batch-grill-me/SKILL.md +0 -15
- package/template/.claude/skills/batch-grill-me/agents/openai.yaml +0 -5
- package/template/.codex/skills/batch-grill-me/SKILL.md +0 -15
- package/template/.codex/skills/batch-grill-me/agents/openai.yaml +0 -5
- package/template/.hermes/skills/batch-grill-me/SKILL.md +0 -15
- package/template/.hermes/skills/batch-grill-me/agents/openai.yaml +0 -5
- package/template/.pi/skills/batch-grill-me/SKILL.md +0 -15
- package/template/.pi/skills/batch-grill-me/agents/openai.yaml +0 -5
- package/template/.qoder/skills/batch-grill-me/SKILL.md +0 -15
- package/template/.qoder/skills/batch-grill-me/agents/openai.yaml +0 -5
- package/template/.trae/skills/batch-grill-me/SKILL.md +0 -15
- package/template/.trae/skills/batch-grill-me/agents/openai.yaml +0 -5
|
@@ -92,41 +92,79 @@ workflow_execution_result:
|
|
|
92
92
|
completed_requires_no_blocking_signals: true
|
|
93
93
|
workflow_reference:
|
|
94
94
|
required: [source, skill, invocation_mode]
|
|
95
|
-
|
|
95
|
+
allowed_sources: [yss-product-lifecycle, mattpocock/skills]
|
|
96
96
|
|
|
97
97
|
# Matt user-invoked skills remain explicit user entry points. Lifecycle work units
|
|
98
98
|
# may prepare, validate and accept their results, but cannot invoke them or create
|
|
99
99
|
# their formal artifacts on their behalf.
|
|
100
100
|
matt_invocation_boundary:
|
|
101
|
-
user_invoked_skills: [ask-matt,
|
|
101
|
+
user_invoked_skills: [ask-matt, grill-me, grill-with-docs, handoff, implement, improve-codebase-architecture, loop-me, setup-matt-pocock-skills, setup-ts-deep-modules, teach, to-questionnaire, to-spec, to-tickets, triage, wait-what, wayfinder, writing-beats, writing-fragments, writing-shape]
|
|
102
102
|
lifecycle_managed_user_entries: [setup-matt-pocock-skills, grill-with-docs, to-spec, to-tickets, implement]
|
|
103
|
-
model_invoked_skills: [
|
|
103
|
+
model_invoked_skills: [code-review, codebase-design, diagnosing-bugs, domain-modeling, grilling, migrate-to-shoehorn, prototype, research, resolving-merge-conflicts, scaffold-exercises, setup-pre-commit, tdd, writing-for-agents]
|
|
104
|
+
lifecycle_allowed_model_invoked_skills: [code-review, codebase-design, diagnosing-bugs, domain-modeling, grilling, prototype, research, tdd]
|
|
104
105
|
lifecycle_may_invoke_user_invoked: false
|
|
105
106
|
formal_artifact_owner: explicit-user-entry
|
|
106
|
-
continuous_orchestration: prepare-and-validate-only
|
|
107
|
+
continuous_orchestration: compatibility-prepare-and-validate-only
|
|
107
108
|
direct_user_entry: lifecycle-validate-and-accept
|
|
108
109
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
skill_source_contract:
|
|
111
|
+
lock_version: 3
|
|
112
|
+
source_revisions_required: [mattpocock/skills]
|
|
113
|
+
adaptation_ref_required_when_effective_diff: true
|
|
114
|
+
retired_shared_skills: [batch-grill-me]
|
|
115
|
+
|
|
116
|
+
# 生命周期默认走原生工作单元;Matt user-invoked skill 仅保留为兼容入口。
|
|
117
|
+
lifecycle_native_entries:
|
|
118
|
+
default_entry: yss-product-lifecycle
|
|
119
|
+
formal_artifact_owner: yss-product-lifecycle
|
|
120
|
+
user_confirmation_required_at: [spec-baseline, prototype-confirmation, openapi-freeze, merge-or-release]
|
|
121
|
+
compatibility_entries:
|
|
122
|
+
to-spec: lifecycle-validate-and-accept
|
|
123
|
+
to-tickets: lifecycle-validate-and-accept
|
|
124
|
+
implement: lifecycle-validate-and-accept
|
|
125
|
+
|
|
126
|
+
work_unit_routes:
|
|
127
|
+
work-unit.discovery-opportunity:
|
|
128
|
+
native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
|
|
129
|
+
skills: [competitive-intelligence, research]
|
|
130
|
+
route_by: {market_or_competitor_fact: competitive-intelligence, technical_or_standard_fact: research, no_external_fact: yss-product-lifecycle}
|
|
131
|
+
work-unit.discovery-requirements:
|
|
132
|
+
native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
|
|
112
133
|
skills: [grilling, domain-modeling]
|
|
113
134
|
work-unit.spec-synthesis:
|
|
114
|
-
|
|
115
|
-
invocation_mode: reference
|
|
116
|
-
|
|
135
|
+
native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
|
|
136
|
+
compatibility: {source: mattpocock/skills, skill: to-spec, invocation_mode: reference, formal_artifact_owner: explicit-user-entry}
|
|
137
|
+
skills: [domain-modeling]
|
|
138
|
+
human_gate: spec-baseline
|
|
139
|
+
work-unit.prototype-design:
|
|
140
|
+
native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
|
|
141
|
+
skills: [yss-design-system, yss-prototype-stage, product-design:index]
|
|
142
|
+
human_gate: prototype-confirmation
|
|
143
|
+
work-unit.technical-analysis:
|
|
144
|
+
native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
|
|
145
|
+
skills: [yss-openapi-governance, yss-openapi-draft-review, codebase-design, implementation-repo-onboarding, yss-router]
|
|
146
|
+
human_gate: openapi-freeze_if_api_impact
|
|
117
147
|
work-unit.ticket-decomposition:
|
|
118
|
-
|
|
119
|
-
invocation_mode: reference
|
|
120
|
-
|
|
148
|
+
native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
|
|
149
|
+
compatibility: {source: mattpocock/skills, skill: to-tickets, invocation_mode: reference, formal_artifact_owner: explicit-user-entry}
|
|
150
|
+
skills: [yss-router]
|
|
121
151
|
work-unit.slice-implementation:
|
|
122
|
-
|
|
123
|
-
invocation_mode: reference
|
|
124
|
-
|
|
152
|
+
native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
|
|
153
|
+
compatibility: {source: mattpocock/skills, skill: implement, invocation_mode: reference, formal_artifact_owner: explicit-user-entry}
|
|
154
|
+
skills: [tdd, yss-router, yss-ui, yss-page-module-development]
|
|
155
|
+
work-unit.frontend-implementation-verification:
|
|
156
|
+
native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
|
|
157
|
+
skills: [yss-ui, yss-design-system, code-review]
|
|
158
|
+
applies_when: ui_impact
|
|
125
159
|
work-unit.code-review:
|
|
126
|
-
invocation_mode: model-invoked
|
|
127
|
-
|
|
160
|
+
native: {source: yss-product-lifecycle, skill: code-review, invocation_mode: model-invoked}
|
|
161
|
+
skills: [code-review]
|
|
162
|
+
work-unit.release-and-retrospective:
|
|
163
|
+
native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
|
|
164
|
+
skills: [yss-product-lifecycle]
|
|
165
|
+
human_gate: merge_or_release
|
|
128
166
|
|
|
129
|
-
|
|
167
|
+
compatibility_flow_preconditions:
|
|
130
168
|
to-spec:
|
|
131
169
|
required: [grill_exit, no_unresolved_runnable_blocker]
|
|
132
170
|
evidence: [user_problem, mvp_and_non_goals, success_criteria, test_seam, terminology_review]
|
|
@@ -136,7 +174,7 @@ flow_preconditions:
|
|
|
136
174
|
output: vertical-slice-tickets
|
|
137
175
|
output_role: ready-for-human
|
|
138
176
|
implement:
|
|
139
|
-
required: [ready_for_agent, slice_contract_approved, slice_contract_persisted, slice_contract_current_version, build_architecture_checklist, implementation_repo, implementation_branch, ci, verification_commands, rollback_point, backend_slice_contract_if_applicable, backend_scaffold_policy_satisfied]
|
|
177
|
+
required: [ready_for_agent, slice_contract_approved, slice_contract_persisted, slice_contract_current_version, build_architecture_checklist, implementation_repo, implementation_branch, ci, verification_commands, rollback_point, backend_slice_contract_if_applicable, backend_scaffold_policy_satisfied, frontend_implementation_plan_if_ui_impact]
|
|
140
178
|
applies_to_single_session: true
|
|
141
179
|
|
|
142
180
|
grill_exit:
|
|
@@ -159,6 +197,9 @@ review_input:
|
|
|
159
197
|
schema_version: 1
|
|
160
198
|
required: [review_mode, review_base_ref, implementation_candidate_ref, candidate_snapshot_ref, candidate_digest, spec_ref, ticket_ref, slice_contract_ref, build_architecture_checklist_ref, yss_execution_result_refs]
|
|
161
199
|
nullable: [spec_ref]
|
|
200
|
+
axes: [standards, spec, ui_fidelity_if_ui_impact]
|
|
201
|
+
repair_invalidates_candidate: true
|
|
202
|
+
repair_action: recapture_candidate_and_rerun_all_axes
|
|
162
203
|
modes: [committed, worktree]
|
|
163
204
|
committed:
|
|
164
205
|
candidate_ref: HEAD
|
|
@@ -328,14 +369,39 @@ setup_readiness:
|
|
|
328
369
|
|
|
329
370
|
lifecycle_owned_work_units: [release, retrospective]
|
|
330
371
|
lifecycle_work_unit_requirements:
|
|
331
|
-
release: [fresh_verification, release_or_rollback_evidence, independent_review]
|
|
372
|
+
release: [fresh_verification, release_or_rollback_evidence, independent_review, all_triggered_gates_approved_or_not_applicable]
|
|
332
373
|
retrospective: [fresh_verification, retrospective_record, governance_reflow_decision]
|
|
333
374
|
|
|
375
|
+
release_readiness:
|
|
376
|
+
required: [fresh_verification, release_or_rollback_evidence, independent_review, all_triggered_gates_approved_or_not_applicable]
|
|
377
|
+
conditional:
|
|
378
|
+
ui_impact: [gate.frontend-implementation-verified, evidence.frontend-implementation-verification]
|
|
379
|
+
blocked_when: [triggered_gate_blocked, triggered_gate_stale, triggered_gate_not_evaluated, missing_evidence]
|
|
380
|
+
|
|
334
381
|
wayfinder_completion:
|
|
335
382
|
required: [no_open_children, no_open_blocked_or_claimed_children, no_fog, destination_clear]
|
|
336
383
|
|
|
337
384
|
ready_for_agent:
|
|
338
|
-
required: [gates_satisfied, no_stale_artifacts, blockers_closed, implementation_context_ready, implementation_repo, implementation_branch, ci, verification_commands, rollback_point, slice_contract_approved, slice_contract_persisted, slice_contract_current_version, build_architecture_checklist, backend_slice_contract_if_applicable, backend_scaffold_policy_satisfied]
|
|
385
|
+
required: [gates_satisfied, no_stale_artifacts, blockers_closed, implementation_context_ready, implementation_repo, implementation_branch, ci, verification_commands, rollback_point, slice_contract_approved, slice_contract_persisted, slice_contract_current_version, build_architecture_checklist, backend_slice_contract_if_applicable, backend_scaffold_policy_satisfied, frontend_implementation_plan_if_ui_impact]
|
|
386
|
+
|
|
387
|
+
frontend_implementation_plan:
|
|
388
|
+
applies_when: [ui_impact]
|
|
389
|
+
required_before: [ready_for_agent]
|
|
390
|
+
required: [prototype_ref, spec_ref, route_and_page_inventory, visual_acceptance_cases, desktop_viewport, narrow_viewport, state_cases, pnpm_commands]
|
|
391
|
+
schema: docs/process/schemas/frontend-implementation-evidence.schema.json
|
|
392
|
+
validator: scripts/verify-frontend-implementation-evidence
|
|
393
|
+
acceptance: [kind_plan, template_false, status_approved, no_template_placeholders, readable_baseline_refs, non_empty_acceptance_cases]
|
|
394
|
+
|
|
395
|
+
frontend_implementation_verification:
|
|
396
|
+
applies_when: [ui_impact]
|
|
397
|
+
required_before: [release]
|
|
398
|
+
required: [prototype_ref, spec_ref, route_and_page_inventory, desktop_visual_evidence, narrow_view_visual_evidence, loading_empty_error_permission_interaction_results, console_warning_check, pnpm_commands, uncovered_differences, difference_owner]
|
|
399
|
+
verification: [actual_command, exit_code, executed_at, evidence_ref]
|
|
400
|
+
schema: docs/process/schemas/frontend-implementation-evidence.schema.json
|
|
401
|
+
validator: scripts/verify-frontend-implementation-evidence
|
|
402
|
+
acceptance: [kind_verification, template_false, status_approved, no_template_placeholders, console_warning_pass, independent_review_approved]
|
|
403
|
+
blocked_when: [unexplained_visual_difference, missing_visual_evidence, typecheck_only, claimed_alignment_without_evidence]
|
|
404
|
+
on_new_impact: [new_impacts, drift, reroute]
|
|
339
405
|
|
|
340
406
|
unknown_impact:
|
|
341
407
|
action: pause
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
2. `setup readiness`:每个任务只执行一次,核对 tracker、五态标签和领域文档布局,并在本轮缓存结果;仅在 tracker、主远端、真实标签或配置变化时重查。
|
|
7
7
|
3. 加载父 Ticket/checkpoint 与真实资产,计算最近可信阶段。
|
|
8
8
|
4. 评估资产、门禁和 `stale`,选择第一个未阻塞工作单元。
|
|
9
|
-
5. 执行最小生命周期工作单元:只实际调用允许的 model-invoked skill
|
|
9
|
+
5. 执行最小生命周期工作单元:只实际调用允许的 model-invoked skill;原生工作单元可直接持有正式资产,Matt 兼容 user-invoked skill 仅作为 workflow reference,仍由用户显式启动。将结果归一化为 `Workflow Execution Result`,验收输出并回写状态与证据。
|
|
10
10
|
6. 若仍在授权和自动推进边界内,回到第 3 步;否则暂停。
|
|
11
11
|
|
|
12
12
|
不要仅输出下一个提示词后结束 `orchestrate`/`resume`。不要因进入业务代码阶段而退出主控;应把实现交给专项 skill,并在返回后继续核验。
|
|
@@ -51,9 +51,9 @@ tracker 选择和冲突按 `docs/agents/issue-tracker.md` 裁决:已持久化
|
|
|
51
51
|
|
|
52
52
|
## Matt flow 进入条件
|
|
53
53
|
|
|
54
|
-
- `work-unit.discovery-
|
|
55
|
-
- `
|
|
56
|
-
-
|
|
54
|
+
- `work-unit.discovery-requirements` 实际调用 `grilling` 和 `domain-modeling`;`work-unit.discovery-opportunity` 按事实类型路由 `competitive-intelligence` 或 `research`。生命周期原生工作单元默认负责 Spec、Ticket 和实现资产;`to-spec`、`to-tickets`、`implement` 仅保留为显式兼容入口,结果必须回交生命周期验收。
|
|
55
|
+
- 原生 `work-unit.ticket-decomposition` 只能在 OpenAPI Freeze 或无 API 影响记录后创建垂直切片,初始角色统一为 `ready-for-human`;生命周期复算完整公式后才能提升 `ready-for-agent`。
|
|
56
|
+
- 原生 `work-unit.slice-implementation` 必须在生命周期批准并持久化 Slice Implementation Contract 和 Build Architecture Checklist 后执行;用户显式 `implement` 仍走兼容入口,不得绕过生命周期。
|
|
57
57
|
- `implement` 遇到 backend `scaffold_status=required` 时,还必须满足原型确认后的脚手架策略:脚手架 Execution Result、`yss-backend-scaffold-parent` 基线、Wrapper 验证和 Router 合同重编译均已回写;否则停在工程基线,不得写业务代码。
|
|
58
58
|
- `Workflow Execution Result` 出现 `drift`、`new_impacts`、`stale_candidates`、`violation`、`missing_evidence`、空 `evidence_refs` 或缺少必需字段时暂停当前工作单元;旧结果只能先经只读兼容 adapter 归一化。
|
|
59
59
|
|
|
@@ -63,6 +63,7 @@ tracker 选择和冲突按 `docs/agents/issue-tracker.md` 裁决:已持久化
|
|
|
63
63
|
- 小改动和中等变更可由同一独立执行者完成 `code-review` 与 fresh verification,并在同一报告中分别记录 findings、命令、结果和残余风险。
|
|
64
64
|
- 该执行者必须独立于实现者;新模块、高风险变更、职责冲突或需双人控制时,Reviewer 与 Verifier 分开。
|
|
65
65
|
- `code-review` 是唯一默认代码审查 skill。GitLab、CI、Sonar、Alibaba Java 等治理事实作为仓库规则或专项检查输入,不再叠加第二个通用审查 skill。
|
|
66
|
+
- UI 影响切片将 `UI fidelity` 作为 `code-review` 的条件第三轴;任何修复都会使候选摘要失效,必须重新捕获候选并重跑 Standards、Spec、UI fidelity 和 fresh verification。
|
|
66
67
|
|
|
67
68
|
## Git 授权
|
|
68
69
|
|
|
@@ -46,10 +46,13 @@ AND 当前工作单元消费的 contract_id/version 与最新批准版本一致
|
|
|
46
46
|
AND Backend Slice Implementation Contract(后端适用)和 Build Architecture Checklist 已完成
|
|
47
47
|
AND backend 影响且 scaffold_status=required 时,原型确认后的脚手架策略、`yss-backend-scaffold-parent` 基线、Wrapper 验证和 Router 重编译均已完成
|
|
48
48
|
AND 所有后续生成代码均绑定主 YSS skill、依赖闭包、允许写路径、预期证据和 YSS Skill Execution Result
|
|
49
|
+
AND UI 影响切片的前端实现还原计划已通过 schema 校验、`template=false`、`status=approved`,且基线引用可读取
|
|
49
50
|
```
|
|
50
51
|
|
|
51
52
|
父 Ticket、Spec、设计、原型、OpenAPI Draft、wayfinder map 和 decision ticket 不得使用 `ready-for-agent`。
|
|
52
53
|
|
|
54
|
+
发布前还必须满足所有已触发门禁均为 `approved` 或 `not-applicable`;UI 影响切片必须额外通过 `gate.frontend-implementation-verified`,不能只凭 fresh verification 和回滚点放行。
|
|
55
|
+
|
|
53
56
|
用户显式运行 `to-tickets` 后,垂直切片初始角色固定为 `ready-for-human`。只有 `yss-product-lifecycle` 复算上述公式全部为真后,才能把它提升为 `ready-for-agent`;生命周期不会自动调用 `to-tickets`,其默认标签也不参与该裁决。
|
|
54
57
|
|
|
55
58
|
## Review 与 Git 授权状态
|
|
@@ -60,7 +63,7 @@ Git 动作分别保存 `commit_authorized`、`commit_scope`、`commit_authorizat
|
|
|
60
63
|
|
|
61
64
|
## 状态块
|
|
62
65
|
|
|
63
|
-
状态块位于主 tracker 的功能父 Ticket
|
|
66
|
+
状态块位于主 tracker 的功能父 Ticket,并使用 `docs/process/templates/lifecycle-checkpoint-template.yaml` 的结构化形状和 `lifecycle-checkpoint.schema.json` 校验;Local Markdown 使用 `docs/.scratch/<feature>/parent-ticket.md`,可将完整 checkpoint 保存在 `docs/.scratch/<feature>/gates/lifecycle-checkpoint.yaml` 后由父 Ticket 引用,远程 tracker 使用 Issue 并在本地功能包保留引用。平台不可用时才位于 stage checkpoint。只保存索引、状态、引用和因果关系:
|
|
64
67
|
|
|
65
68
|
```yaml
|
|
66
69
|
lifecycle:
|
package/template/AGENTS.md
CHANGED
|
@@ -47,10 +47,10 @@ README、用户指南和其他说明文档只引用或解释上述事实,不
|
|
|
47
47
|
- 生命周期注册表中的条件门禁全部按影响面强制。命中触发条件时必须完成;未命中时只记录 `not-applicable` 及原因,不生成空文档;不得把产物、工作单元或证据统称为门禁。
|
|
48
48
|
- 安全 / 权限不设独立生命周期资料或专属门禁。日常功能不做额外登记、`not-applicable` 或推导校验;只有需求或冻结资产明确要求改变认证、授权、租户隔离、敏感数据或合规行为时,才把该行为写入普通 Spec、API、架构、验收和测试 seam,并仅按实际 UI、API、Backend、Data、High-risk 影响触发既有门禁。普通 action 注册、沿用既有认证中间件、未变化的 `401` / `403`、一般字段、SQL / DDL / 迁移和上传 / 下载本身不构成安全 / 权限专项。
|
|
49
49
|
- `seam-deferred` 只能显式记录风险、责任人、后续 Ticket、验证计划和目标版本或发布日期。
|
|
50
|
-
-
|
|
50
|
+
- 新功能或较大变更先进入 `yss-product-lifecycle` 的原生 Discovery / 需求分析工作单元;`grill-with-docs` 与 `to-spec` 仅作为用户显式兼容入口,Spec 基线和产品设计影响的完整判定以注册表和裁剪规则为准。
|
|
51
51
|
- API 契约变更先形成 OpenAPI 3.1 Draft,经必要的工程基线、系统 / 数据架构和设计审查后 Freeze,再进入实现。
|
|
52
52
|
- Spec Delta 只记录相对既有冻结 Spec 基线的高风险行为差异;全新产品、全新模块和低风险调整不生成 Spec Delta。
|
|
53
|
-
- OpenAPI Freeze 或无 API
|
|
53
|
+
- OpenAPI Freeze 或无 API 影响记录完成后,由生命周期原生 Ticket 正式化工作单元拆成可独立验证的窄垂直切片;用户显式 `to-tickets` 仅作为兼容入口,禁止只按 Adapter / Application / Domain / Infrastructure 横向拆分。
|
|
54
54
|
|
|
55
55
|
## 6. Ticket 与状态
|
|
56
56
|
|
package/template/CONTEXT.md
CHANGED
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
| Agent 入口规则 | Agent 启动任务时必须先遵守的全局路由、硬门禁和禁止事项。 | 不作为 YSS 后端、前端或其他专项编码规范的完整手册。 |
|
|
11
11
|
| 标准文档语言 | 面向业务、产品、架构、实施、审查、发布和复盘的持久化文档所使用的默认语言。 | 统一使用简体中文;英文专有名词、代码标识、API 路径、schema、文件名和协议 metadata 保持原样。 |
|
|
12
12
|
| Matt Engineering Skills | 来自 `mattpocock/skills` 的轻量工程流程技能集合。 | 用于澄清、Spec、Ticket、实现、TDD、诊断、审查和架构治理,不替代 YSS 专项规范。 |
|
|
13
|
+
| 上游技能基线 | 从外部技能源锁定的可追溯 revision 及其未经项目适配的原始内容。 | 不等同于项目当前实际生效的 skill;上游更新不得直接覆盖 YSS 适配。 |
|
|
14
|
+
| YSS 技能适配 | 在上游技能基线之上,为 YSS 仓库身份、门禁、状态、授权和专项规范保留的可追溯差异。 | 必须同时保留上游内容哈希、有效内容哈希和适配依据,不作无记录的直接 fork。 |
|
|
13
15
|
| YSS skills | 本项目内置的 YSS 工程规范技能。 | 用于 DDD、UI、OpenAPI、Repository、Controller、DTO、组件和编码规范。 |
|
|
14
16
|
| 技能投影 | 从权威共享技能生成、供特定 Agent root 加载的同步副本。 | 投影不是独立维护的技能源,不应在各 Agent root 中分别修改。 |
|
|
15
17
|
| Spec | 记录用户问题、解决方案、用户故事、关键决策、验收标准和测试 seam 的产品研发规格。 | 新资产统一使用 Spec;旧规格称谓只在迁移记录中保留。 |
|
|
@@ -26,6 +28,7 @@
|
|
|
26
28
|
| UI 影响 | 会改变用户可见页面、导航、交互流程、状态呈现或权限体验的功能影响。 | 纯后端、API、批处理或数据变更不自动构成 UI 影响。 |
|
|
27
29
|
| 产品设计影响 | UI 变化触及主流程、导航、权限体验、异常 / 恢复状态、状态流转或 API 反推,需要页面流、状态矩阵和原型校准。 | 文案、token、颜色、间距和无行为变化的孤立视觉修复属于 UI 影响,但不自动构成产品设计影响。 |
|
|
28
30
|
| 高保真 HTML 原型 | 低保真原型评审通过后,用于在浏览器中审查真实视觉密度、交互状态和页面流的产品设计资产。 | 不等同于生产前端实现,也不替代 OpenAPI、Spec 校准或垂直切片。 |
|
|
31
|
+
| Visual Baseline Contract | 为生产前端还原冻结页面、视口、交互状态、参考图像和允许差异的可验收合同。 | 不是仅有一张原型截图或绝对像素匹配;每个基线必须可定位到同一视口和同一状态复验。 |
|
|
29
32
|
| 垂直切片(Vertical Slice) | 贯穿所有受影响层、可独立验证的窄功能路径。 | 优先使用垂直切片,避免只按层拆分的横向任务。 |
|
|
30
33
|
| Slice Implementation Contract | 阶段 7 进入实现前,由 `yss-router` 根据冻结资产和垂直切片编译、再由生命周期编排器批准的实现合同,包含 Common、Frontend、Backend、Contract 和 Cross-repo 子合同。 | Router 只能生成草案,不能自行批准、设置 `ready-for-agent` 或宣布完成;Backend 子合同仍保留额外强约束。 |
|
|
31
34
|
| YSS Skill Execution Result | YSS 专项 skill 完成工作单元后返回的结构化执行证据,记录合同版本、变更文件、证据文件、实际验证、延期 seam、偏离和新增影响。 | 实现者自报 `implemented` 不构成最终通过,必须由 Router、生命周期编排器和独立 Reviewer 复核。 |
|
|
@@ -44,11 +47,14 @@
|
|
|
44
47
|
| Harness 工程 | 串联研发生命周期阶段、门禁、产物、Agent/Skill 编排和追踪证据的工程化治理载体。 | 不等同于单个 CI 流水线或零散提示词集合。 |
|
|
45
48
|
| YSS 研发操作系统 | 由生命周期控制、通用工作流、YSS 专项技能、证据反馈和技能供应链共同构成的可版本化研发治理体系。 | 不等同于单个主控 skill、某个 Agent 客户端或运行时代码平台。 |
|
|
46
49
|
| 生命周期注册表 | 结构化定义主阶段、门禁、产物、工作单元、证据及其稳定标识和关系的机器可读权威资产。 | Markdown 地图、数量说明和验证 fixture 是其派生产物,不应分别维护同一结构事实。 |
|
|
50
|
+
| 生命周期编排器 | 持有阶段、影响面、产物状态、门禁裁决、工作单元路由和恢复条件的研发流程控制平面。 | 不替代专项技能执行业务实现,也不以文件存在或执行者自述宣布完成。 |
|
|
51
|
+
| 前端实现还原验证 | 证明生产前端相对冻结 Spec、交互说明、状态矩阵和高保真原型不存在未解释差异的独立验证。 | 不是绝对像素复刻、普通 type-check 或原型评审;UI 影响切片需覆盖关键视觉、状态、交互和工程证据。 |
|
|
47
52
|
| 生命周期稳定 ID | 以对象类型命名空间和英文标识唯一指向一个生命周期对象的兼容身份。 | 中文名称、展示顺序和数量可以变化;已发布 ID 不得复用来表达另一种语义。 |
|
|
48
53
|
| 派生产物 | 根据生命周期注册表确定性生成的结构表、数量、索引、依赖图或测试 fixture。 | 不承载需要人工解释的原理、取舍或实践建议,禁止脱离注册表分别维护。 |
|
|
49
54
|
| 核心技能(Core Skill) | 默认可发现、负责生命周期控制或通用研发入口的稳定技能。 | 不包含只在特定技术影响下才需要的专项实现规则。 |
|
|
50
55
|
| 专项技能(Specialist Skill) | 由 Router 根据影响面和实现合同按需选择的前端、后端、OpenAPI 或组件技能。 | 不作为所有任务的平级默认入口。 |
|
|
51
|
-
|
|
|
56
|
+
| 试验技能 | 尚未达到项目默认支持成熟度的技能。 | 只在明确试验范围内使用,不进入 Router 默认技能闭包。 |
|
|
57
|
+
| 显式兼容入口 | 为已有用户操作习惯保留的 user-invoked 工作流入口,写入前由生命周期编排器预检,结果回交其验收。 | 不是默认路径、过时别名或可以越过门禁的第二套生命周期。 |
|
|
52
58
|
| 技能成熟度 | 描述技能从 `draft`、`verified`、`supported` 到 `deprecated` 的治理状态。 | 不等同于文件存在、已被投影或能够安装。 |
|
|
53
59
|
| 技能注册表 | 记录技能身份、别名、分层、适用影响面、成熟度、新鲜度、验证和公开状态的机器可读路由资产。 | 不替代 `skills-lock.json` 的来源、hash 和投影完整性职责。 |
|
|
54
60
|
| 生态发布清单 | 关联模板 schema 与 commit、CLI 版本与快照、公开技能来源与导出 hash 的跨仓发布证据。 | 不要求尚未生成的仓库 commit 互相循环引用。 |
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# ADR-0007: 生命周期使用原生工作单元并保留 Matt 兼容入口
|
|
2
|
+
|
|
3
|
+
`yss-product-lifecycle` 作为 YSS 研发生命周期的唯一默认入口,持有阶段、产物状态、门禁和正式资产所有权。Spec 综合、Ticket 正式化和切片实现使用生命周期注册表中的原生工作单元;`to-spec`、`to-tickets`、`implement` 保留为用户显式调用的兼容输入,结果必须回交生命周期验收,生命周期不得自动调用这些 user-invoked skills。
|
|
4
|
+
|
|
5
|
+
该选择避免用户手动记忆阶段切换,也避免 Matt 默认的 `ready-for-agent`、commit 等行为越过 YSS 门禁和授权。代价是生命周期需要维护原生工作单元路由和兼容适配,但两者在 `work_unit_routes` 中共享一个稳定工作单元身份、使用互斥的 `native` / `compatibility` 路由,不再形成两套执行定义。
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
| 来源 | 固定版本 / 路径 | 用途 |
|
|
15
15
|
|---|---|---|
|
|
16
|
-
| `mattpocock/skills` | `
|
|
16
|
+
| `mattpocock/skills` | `0ab1b63a410a03d3627979a109c8695de27af954` / `skills/engineering` 及锁文件记录的关联路径 | 通用工程流程及关联 skills |
|
|
17
17
|
| `anthropics/knowledge-work-plugins` | `sales/skills/competitive-intelligence` | 竞品与市场事实研究 |
|
|
18
18
|
| 项目本地 | `.agents/skills` 或平台专属 root | YSS 适配与项目治理 skills |
|
|
19
19
|
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
项目允许按 YSS 流程适配上游 skill,但必须同时保留可追溯的上游信息和适配后的有效哈希。
|
|
27
27
|
|
|
28
|
-
当前 Matt 快照为 `
|
|
28
|
+
当前 Matt 快照为 `0ab1b63a410a03d3627979a109c8695de27af954`。`ask-matt` 的关联入口包括 `to-questionnaire`、`wait-what`、`writing-for-agents` 和 `PHASE-BOUNDARIES.md`;这些支持文件随共享 skill 目录一起计算 `effectiveHash`,不得单独投影或维护。
|
|
29
29
|
|
|
30
30
|
本轮升级还将生命周期适配固定为:阶段边界只写可选 `phase_boundary` 证据;`to-questionnaire` 使用 `external-input-required` 暂停并在答案回流后重新分类影响面;Matt `prototype` 使用 `prototype/<name>` 分支和单文件 HTML,YSS 高保真原型继续执行 Prototype Review、AntD CLI 校验和用户确认。人工 checkpoint 与 `diagnosing-bugs` 的输出必须脱敏,`wait-what` 不改变生命周期状态。
|
|
31
31
|
|
|
@@ -41,6 +41,12 @@
|
|
|
41
41
|
scripts/update-skill-lock
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
+
若来源来自可访问的 Matt checkout,还应显式校验锁定 revision 与每个上游目录哈希:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
scripts/verify-upstream-skill-source --source-root <matt-skills-checkout>
|
|
48
|
+
```
|
|
49
|
+
|
|
44
50
|
新增共享 skill 时先显式登记:`scripts/update-skill-lock --add=<skill-name>`;新增平台专属 skill 使用 `scripts/update-skill-lock --add-platform=<root>:<skill-name>`。脚本不会把工作区中偶然出现的未跟踪目录自动纳入发布清单。
|
|
45
51
|
|
|
46
52
|
5. 执行发布阻断校验:
|
|
@@ -58,6 +64,8 @@
|
|
|
58
64
|
```bash
|
|
59
65
|
scripts/sync-skills --check
|
|
60
66
|
scripts/update-skill-lock --check
|
|
67
|
+
# 可选:对照锁文件中的 mattpocock/skills revision 与上游目录哈希
|
|
68
|
+
scripts/verify-upstream-skill-source --source-root <matt-skills-checkout>
|
|
61
69
|
```
|
|
62
70
|
|
|
63
71
|
前者检查所有共享投影是否指向或匹配权威内容,后者检查 `skills-lock.json` 是否与当前完整目录树一致。过时技能不会保留兼容别名;旧版项目按 `docs/user-guide/规格与任务迁移指南.md` 一次性迁移。
|
|
@@ -73,7 +81,7 @@ YSS 技能的公开发布仓库为 `iloveZzz/yss-spec-dev-skills`,它是本模
|
|
|
73
81
|
- 发布顺序为:同步 canonical projections → 更新 lock → `scripts/verify-template` → 导出并检查 → 独立审查 → 在 `yss-spec-dev-skills` 提交人工 PR。不得从目标仓库反向覆盖 `.agents/skills`。
|
|
74
82
|
- skills.sh 通过 `npx skills add iloveZzz/yss-spec-dev-skills` 的安装遥测自动发现技能,不需要手工注册;遥测可用 `DISABLE_TELEMETRY=1` 或 `DO_NOT_TRACK` 关闭。
|
|
75
83
|
|
|
76
|
-
|
|
84
|
+
已退休、personal 或由 YSS 有意排除的条目(`design-an-interface`、`qa`、`request-refactor-plan`、`ubiquitous-language`、`edit-article`、`obsidian-vault`、`writing-great-skills`、`web-design-engineer`、`web-video-presentation`、`wireframe-prototype`、`wizard`、`git-guardrails-claude-code`、`claude-handoff`、`batch-grill-me`)不再进入 `.agents/skills`、六个共享投影根或 `skills-lock.json`。其中 `wizard` 是最新上游仍存在但 YSS 当前有意排除的人工步骤技能,不应描述为上游已退休。迁移时使用 `codebase-design`、`triage + to-tickets`、`to-spec + improve-codebase-architecture`、`domain-modeling`、`product-design:index`、普通人工 checkpoint 或 `handoff` 等现行路由,不创建兼容目录。
|
|
77
85
|
|
|
78
86
|
## 外部工作流工具
|
|
79
87
|
|
|
@@ -4,6 +4,6 @@ Matt Pocock Engineering Skills 提供轻量的澄清、实现、TDD、诊断和
|
|
|
4
4
|
|
|
5
5
|
## 进入与退出
|
|
6
6
|
|
|
7
|
-
- Matt user-invoked 的 `grill-with-docs`、`to-spec`、`to-tickets` 和 `implement`
|
|
7
|
+
- Matt user-invoked 的 `grill-with-docs`、`to-spec`、`to-tickets` 和 `implement` 必须由用户显式启动,任何 skill 不得自动调用它们;YSS 生命周期只准备、校验和验收其结果。所有 Matt model-invoked skill 仍须遵守 `AGENTS.md` 的阶段、门禁和证据要求,并只能在生命周期允许的工作单元中调用。
|
|
8
8
|
- `template-source` 只执行模板维护流程,不生成具体产品 Spec、原型、OpenAPI 或垂直切片 Ticket。
|
|
9
9
|
- Agent 完成工作单元后返回可核验的 evidence refs、变更资产、验证命令、残余风险和下一路由。
|
|
@@ -24,21 +24,22 @@
|
|
|
24
24
|
|
|
25
25
|
### 2.1 条件门禁
|
|
26
26
|
|
|
27
|
-
| 稳定 ID | 门禁 | 所属阶段 | 触发条件 | 必须留下的证据 |
|
|
28
|
-
|
|
29
|
-
| `gate.repository-identity-valid` | 仓库身份校验 | `stage.entry-triage` | 每次进入流程。 | `evidence.repository-identity-check` |
|
|
30
|
-
| `gate.spec-baseline-approved` | Spec 基线批准 | `stage.spec-architecture` | 新功能、行为变化或范围扩大进入 Spec 基线。 | `evidence.approval-record` |
|
|
31
|
-
| `gate.prototype-reviewed` | 原型评审 | `stage.product-design` | 命中产品设计影响,且低保真页面、流程、状态或 API 反推需要独立评审。 | `evidence.prototype-review-result` |
|
|
32
|
-
| `gate.prototype-verified` | 高保真原型验证 | `stage.product-design` | 需要高保真 HTML 原型进行视觉与交互校准。 | `evidence.antd-cli-validation`、`evidence.browser-prototype-verification` |
|
|
33
|
-
| `gate.user-confirmation` | 用户确认 | `stage.product-design` | 产品设计影响尚未被人工确认。 | `evidence.prototype-confirmation` |
|
|
34
|
-
| `gate.openapi-draft-reviewed` | OpenAPI Draft Review | `stage.system-data-engineering` | 有 API 影响且 Draft 已生成。 | `evidence.openapi-draft-review` |
|
|
35
|
-
| `gate.design-reviewed` | 设计审查 | `stage.system-data-engineering` | API 或架构影响。 | `evidence.design-review-result` |
|
|
36
|
-
| `gate.openapi-frozen` | OpenAPI Freeze | `stage.system-data-engineering` | API 进入实现。 | `evidence.approval-record` |
|
|
37
|
-
| `gate.engineering-baseline-accepted` | 工程基线 | `stage.system-data-engineering` | 后端、前端或高风险工程变化。 | `evidence.fresh-verification` |
|
|
38
|
-
| `gate.architecture-reviewed` | 架构审查 | `stage.system-data-engineering` | 高风险或跨边界变化。 | `evidence.design-review-result` |
|
|
39
|
-
| `gate.slice-contract-approved` | Slice Implementation Contract 批准 | `stage.ticket-formalization` | Agent 进入实现;脚手架完成后每个后续生成代码工作单元。 | `evidence.contract-approval` |
|
|
40
|
-
| `gate.slice-ready-for-agent` | 垂直切片实现就绪 | `stage.ticket-formalization` | 垂直切片具备直接实现条件。 | `evidence.contract-approval`、`evidence.approval-record` |
|
|
41
|
-
| `gate.
|
|
27
|
+
| 稳定 ID | 门禁 | 所属阶段 | 触发条件 | 前置门禁 | 必须留下的证据 |
|
|
28
|
+
|---|---|---|---|---|---|
|
|
29
|
+
| `gate.repository-identity-valid` | 仓库身份校验 | `stage.entry-triage` | 每次进入流程。 | 无 | `evidence.repository-identity-check` |
|
|
30
|
+
| `gate.spec-baseline-approved` | Spec 基线批准 | `stage.spec-architecture` | 新功能、行为变化或范围扩大进入 Spec 基线。 | 无 | `evidence.approval-record` |
|
|
31
|
+
| `gate.prototype-reviewed` | 原型评审 | `stage.product-design` | 命中产品设计影响,且低保真页面、流程、状态或 API 反推需要独立评审。 | 无 | `evidence.prototype-review-result` |
|
|
32
|
+
| `gate.prototype-verified` | 高保真原型验证 | `stage.product-design` | 需要高保真 HTML 原型进行视觉与交互校准。 | 无 | `evidence.antd-cli-validation`、`evidence.browser-prototype-verification` |
|
|
33
|
+
| `gate.user-confirmation` | 用户确认 | `stage.product-design` | 产品设计影响尚未被人工确认。 | 无 | `evidence.prototype-confirmation` |
|
|
34
|
+
| `gate.openapi-draft-reviewed` | OpenAPI Draft Review | `stage.system-data-engineering` | 有 API 影响且 Draft 已生成。 | 无 | `evidence.openapi-draft-review` |
|
|
35
|
+
| `gate.design-reviewed` | 设计审查 | `stage.system-data-engineering` | API 或架构影响。 | 无 | `evidence.design-review-result` |
|
|
36
|
+
| `gate.openapi-frozen` | OpenAPI Freeze | `stage.system-data-engineering` | API 进入实现。 | 无 | `evidence.approval-record` |
|
|
37
|
+
| `gate.engineering-baseline-accepted` | 工程基线 | `stage.system-data-engineering` | 后端、前端或高风险工程变化。 | 无 | `evidence.fresh-verification` |
|
|
38
|
+
| `gate.architecture-reviewed` | 架构审查 | `stage.system-data-engineering` | 高风险或跨边界变化。 | 无 | `evidence.design-review-result` |
|
|
39
|
+
| `gate.slice-contract-approved` | Slice Implementation Contract 批准 | `stage.ticket-formalization` | Agent 进入实现;脚手架完成后每个后续生成代码工作单元。 | 无 | `evidence.contract-approval` |
|
|
40
|
+
| `gate.slice-ready-for-agent` | 垂直切片实现就绪 | `stage.ticket-formalization` | 垂直切片具备直接实现条件。 | 无 | `evidence.contract-approval`、`evidence.approval-record` |
|
|
41
|
+
| `gate.frontend-implementation-verified` | 前端实现还原验证 | `stage.verification-release-retrospective` | UI 影响切片完成实现并准备合并、发布或阶段完成。 | 无 | `evidence.frontend-implementation-verification` |
|
|
42
|
+
| `gate.release-ready` | 发布就绪 | `stage.verification-release-retrospective` | 合并、发布或阶段完成。 | `gate.frontend-implementation-verified` | `evidence.fresh-verification`、`evidence.checkpoint-and-rollback` |
|
|
42
43
|
|
|
43
44
|
### 2.2 生命周期产物
|
|
44
45
|
|
|
@@ -64,6 +65,8 @@
|
|
|
64
65
|
| `artifact.parent-ticket` | 功能父 Ticket | `stage.ticket-formalization` | 每个进入追踪的功能。 |
|
|
65
66
|
| `artifact.vertical-slice-ticket` | 垂直切片 Ticket | `stage.ticket-formalization` | 进入实现前。 |
|
|
66
67
|
| `artifact.slice-implementation-contract` | Slice Implementation Contract | `stage.ticket-formalization` | Agent 进入实现。 |
|
|
68
|
+
| `artifact.frontend-implementation-plan` | 前端实现还原计划 | `stage.ticket-formalization` | UI 影响切片提升 ready-for-agent 前。 |
|
|
69
|
+
| `artifact.frontend-implementation-verification` | 前端实现还原验证记录 | `stage.verification-release-retrospective` | UI 影响切片完成实现并准备合并、发布或阶段完成。 |
|
|
67
70
|
| `artifact.retrospective` | 复盘记录 | `stage.verification-release-retrospective` | 发布后或阶段性完成后满足复盘触发条件。 |
|
|
68
71
|
|
|
69
72
|
### 2.3 执行证据
|
|
@@ -82,6 +85,7 @@
|
|
|
82
85
|
| `evidence.openapi-draft-review` | OpenAPI Draft 审查记录 | P0、错误、分页、幂等和契约测试审查记录。 |
|
|
83
86
|
| `evidence.contract-approval` | Slice 合同批准记录 | 生命周期编排器批准且已持久化的当前版本合同引用。 |
|
|
84
87
|
| `evidence.yss-skill-execution-result` | YSS Skill Execution Result | 专项 skill 的合同版本、写入、验证、延期 seam 与偏离证据。 |
|
|
88
|
+
| `evidence.frontend-implementation-verification` | 前端实现还原验证证据 | UI 实现相对冻结原型和 Spec 的桌面/窄屏视觉、状态、交互、控制台与 pnpm 验证记录。 |
|
|
85
89
|
| `evidence.fresh-verification` | Fresh Verification 记录 | 本轮实际执行的验证命令、结果和时间。 |
|
|
86
90
|
| `evidence.checkpoint-and-rollback` | Checkpoint 与回滚点 | 可追溯的变更边界、发布记录和恢复动作。 |
|
|
87
91
|
<!-- lifecycle-registry:structure:end -->
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": 1,
|
|
3
3
|
"registry_id": "yss.lifecycle",
|
|
4
|
-
"semantic_sha256": "
|
|
4
|
+
"semantic_sha256": "6c7251b7929c696d41e04218c927a0679d61bd38c7af0c21cde96ecdc2f7107f",
|
|
5
5
|
"published_ids": [
|
|
6
6
|
"artifact.architecture-review",
|
|
7
7
|
"artifact.data-architecture",
|
|
8
8
|
"artifact.discovery-record",
|
|
9
9
|
"artifact.engineering-baseline",
|
|
10
|
+
"artifact.frontend-implementation-plan",
|
|
11
|
+
"artifact.frontend-implementation-verification",
|
|
10
12
|
"artifact.functional-architecture",
|
|
11
13
|
"artifact.high-fidelity-html-prototype",
|
|
12
14
|
"artifact.impact-assessment",
|
|
@@ -31,6 +33,7 @@
|
|
|
31
33
|
"evidence.contract-approval",
|
|
32
34
|
"evidence.design-review-result",
|
|
33
35
|
"evidence.fresh-verification",
|
|
36
|
+
"evidence.frontend-implementation-verification",
|
|
34
37
|
"evidence.impact-assessment",
|
|
35
38
|
"evidence.maintenance-intensity-checkpoint",
|
|
36
39
|
"evidence.openapi-draft-review",
|
|
@@ -41,6 +44,7 @@
|
|
|
41
44
|
"gate.architecture-reviewed",
|
|
42
45
|
"gate.design-reviewed",
|
|
43
46
|
"gate.engineering-baseline-accepted",
|
|
47
|
+
"gate.frontend-implementation-verified",
|
|
44
48
|
"gate.openapi-draft-reviewed",
|
|
45
49
|
"gate.openapi-frozen",
|
|
46
50
|
"gate.prototype-reviewed",
|
|
@@ -60,14 +64,24 @@
|
|
|
60
64
|
"stage.verification-release-retrospective",
|
|
61
65
|
"stage.vertical-slice-implementation",
|
|
62
66
|
"work-unit.attach-sync-integration",
|
|
67
|
+
"work-unit.code-review",
|
|
68
|
+
"work-unit.discovery-opportunity",
|
|
69
|
+
"work-unit.discovery-requirements",
|
|
63
70
|
"work-unit.entry-triage",
|
|
64
71
|
"work-unit.fresh-verification",
|
|
65
72
|
"work-unit.independent-review",
|
|
66
73
|
"work-unit.intensity-aware-review",
|
|
67
74
|
"work-unit.intensity-aware-verification",
|
|
75
|
+
"work-unit.frontend-implementation-verification",
|
|
76
|
+
"work-unit.prototype-design",
|
|
77
|
+
"work-unit.release-and-retrospective",
|
|
68
78
|
"work-unit.release-and-rollback",
|
|
69
79
|
"work-unit.skill-projection-sync",
|
|
80
|
+
"work-unit.slice-implementation",
|
|
81
|
+
"work-unit.spec-synthesis",
|
|
70
82
|
"work-unit.ssot-update",
|
|
83
|
+
"work-unit.technical-analysis",
|
|
84
|
+
"work-unit.ticket-decomposition",
|
|
71
85
|
"work-unit.template-snapshot-build"
|
|
72
86
|
]
|
|
73
87
|
}
|
|
@@ -81,6 +81,9 @@ evidence:
|
|
|
81
81
|
- id: evidence.yss-skill-execution-result
|
|
82
82
|
name: YSS Skill Execution Result
|
|
83
83
|
description: 专项 skill 的合同版本、写入、验证、延期 seam 与偏离证据。
|
|
84
|
+
- id: evidence.frontend-implementation-verification
|
|
85
|
+
name: 前端实现还原验证证据
|
|
86
|
+
description: UI 实现相对冻结原型和 Spec 的桌面/窄屏视觉、状态、交互、控制台与 pnpm 验证记录。
|
|
84
87
|
- id: evidence.fresh-verification
|
|
85
88
|
name: Fresh Verification 记录
|
|
86
89
|
description: 本轮实际执行的验证命令、结果和时间。
|
|
@@ -149,11 +152,17 @@ gates:
|
|
|
149
152
|
stage: stage.ticket-formalization
|
|
150
153
|
trigger: 垂直切片具备直接实现条件。
|
|
151
154
|
evidence: [evidence.contract-approval, evidence.approval-record]
|
|
155
|
+
- id: gate.frontend-implementation-verified
|
|
156
|
+
name: 前端实现还原验证
|
|
157
|
+
stage: stage.verification-release-retrospective
|
|
158
|
+
trigger: UI 影响切片完成实现并准备合并、发布或阶段完成。
|
|
159
|
+
evidence: [evidence.frontend-implementation-verification]
|
|
152
160
|
- id: gate.release-ready
|
|
153
161
|
name: 发布就绪
|
|
154
162
|
stage: stage.verification-release-retrospective
|
|
155
163
|
trigger: 合并、发布或阶段完成。
|
|
156
164
|
evidence: [evidence.fresh-verification, evidence.checkpoint-and-rollback]
|
|
165
|
+
requires_gates: [gate.frontend-implementation-verified]
|
|
157
166
|
|
|
158
167
|
artifacts:
|
|
159
168
|
- id: artifact.impact-assessment
|
|
@@ -236,6 +245,14 @@ artifacts:
|
|
|
236
245
|
name: Slice Implementation Contract
|
|
237
246
|
stage: stage.ticket-formalization
|
|
238
247
|
trigger: Agent 进入实现。
|
|
248
|
+
- id: artifact.frontend-implementation-plan
|
|
249
|
+
name: 前端实现还原计划
|
|
250
|
+
stage: stage.ticket-formalization
|
|
251
|
+
trigger: UI 影响切片提升 ready-for-agent 前。
|
|
252
|
+
- id: artifact.frontend-implementation-verification
|
|
253
|
+
name: 前端实现还原验证记录
|
|
254
|
+
stage: stage.verification-release-retrospective
|
|
255
|
+
trigger: UI 影响切片完成实现并准备合并、发布或阶段完成。
|
|
239
256
|
- id: artifact.retrospective
|
|
240
257
|
name: 复盘记录
|
|
241
258
|
stage: stage.verification-release-retrospective
|
|
@@ -290,3 +307,63 @@ work_units:
|
|
|
290
307
|
input: 已审查 commit。
|
|
291
308
|
output: release note、观察信号、回滚点。
|
|
292
309
|
completion: 两仓库顺序和恢复动作明确。
|
|
310
|
+
- id: work-unit.discovery-opportunity
|
|
311
|
+
name: 机会调研
|
|
312
|
+
scope: project-instance
|
|
313
|
+
input: 用户问题、市场/竞品事实需求和现有上下文。
|
|
314
|
+
output: Discovery 机会结论、证据、替代方案和关键假设。
|
|
315
|
+
completion: 机会继续/停止建议可审查;事实已 research 或记录为假设。
|
|
316
|
+
- id: work-unit.discovery-requirements
|
|
317
|
+
name: 需求分析
|
|
318
|
+
scope: project-instance
|
|
319
|
+
input: 机会结论、用户反馈和领域词汇。
|
|
320
|
+
output: 用户、MVP、非目标、成功标准、测试 seam 和未决项。
|
|
321
|
+
completion: frontier 清空;用户确认;无 runnable blocker。
|
|
322
|
+
- id: work-unit.spec-synthesis
|
|
323
|
+
name: Spec 综合
|
|
324
|
+
scope: project-instance
|
|
325
|
+
input: 已确认的 Discovery 记录和测试 seam。
|
|
326
|
+
output: Spec、产品总体设计和功能架构。
|
|
327
|
+
completion: Spec 内容完整并进入 ready-for-human;下游推进仍需 gate.spec-baseline-approved。
|
|
328
|
+
- id: work-unit.prototype-design
|
|
329
|
+
name: 原型设计与验证
|
|
330
|
+
scope: project-instance
|
|
331
|
+
input: Spec、产品设计影响和状态矩阵。
|
|
332
|
+
output: 交互说明、低/高保真原型、评审、AntD CLI 和浏览器证据。
|
|
333
|
+
completion: 原型评审、高保真验证和用户确认门禁均通过。
|
|
334
|
+
- id: work-unit.technical-analysis
|
|
335
|
+
name: 技术分析与契约冻结
|
|
336
|
+
scope: project-instance
|
|
337
|
+
input: Spec、原型、API/数据/工程影响面。
|
|
338
|
+
output: OpenAPI、数据架构、工程基线、架构审查和 Slice 合同草案。
|
|
339
|
+
completion: 命中契约已冻结;无 API 影响有可读记录;工程基线通过。
|
|
340
|
+
- id: work-unit.ticket-decomposition
|
|
341
|
+
name: 垂直切片 Ticket 正式化
|
|
342
|
+
scope: project-instance
|
|
343
|
+
input: 冻结 Spec、设计、契约和阻塞关系。
|
|
344
|
+
output: 功能父 Ticket、垂直切片和批准的 Slice Implementation Contract。
|
|
345
|
+
completion: 切片可独立验证;生命周期复算后才能 ready-for-agent。
|
|
346
|
+
- id: work-unit.slice-implementation
|
|
347
|
+
name: 垂直切片实现
|
|
348
|
+
scope: project-instance
|
|
349
|
+
input: 当前版本 Slice Implementation Contract 和允许写路径。
|
|
350
|
+
output: 前后端实现、TDD 和 YSS Skill Execution Result。
|
|
351
|
+
completion: 行为通过 `behavior-tdd`;UI 影响完成还原验证计划;无 drift/violation。
|
|
352
|
+
- id: work-unit.frontend-implementation-verification
|
|
353
|
+
name: 前端实现还原验证
|
|
354
|
+
scope: project-instance
|
|
355
|
+
input: 冻结原型、状态矩阵、实现候选和视觉验收用例。
|
|
356
|
+
output: 桌面/窄屏视觉、状态、交互、console 和 pnpm 验证证据。
|
|
357
|
+
completion: 关键场景无未解释差异;独立 Reviewer 通过 UI fidelity 轴。
|
|
358
|
+
- id: work-unit.code-review
|
|
359
|
+
name: 独立代码审查与验证
|
|
360
|
+
scope: project-instance
|
|
361
|
+
input: 不可变候选快照、Spec、Ticket、合同和执行结果。
|
|
362
|
+
output: Standards、Spec、UI fidelity 三轴 Review 与 fresh verification。
|
|
363
|
+
completion: findings 已处理;修复后重新捕获候选并全量复审。
|
|
364
|
+
- id: work-unit.release-and-retrospective
|
|
365
|
+
name: 发布与复盘
|
|
366
|
+
scope: project-instance
|
|
367
|
+
input: 已审查候选、发布窗口和回滚点。
|
|
368
|
+
output: 发布/回滚证据和复盘记录。
|
|
369
|
+
completion: 人工发布裁决、fresh verification 和治理回流均完成。
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://yss.dev/schemas/frontend-implementation-evidence.schema.json",
|
|
4
|
+
"title": "YSS 前端实现还原证据",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": true,
|
|
7
|
+
"required": ["schema_version", "kind", "template", "status", "prototype_ref", "spec_ref", "route_and_page_inventory"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema_version": { "const": 1 },
|
|
10
|
+
"kind": { "enum": ["plan", "verification"] },
|
|
11
|
+
"template": { "type": "boolean" },
|
|
12
|
+
"status": { "enum": ["draft", "approved", "blocked"] },
|
|
13
|
+
"prototype_ref": { "type": "string", "minLength": 1 },
|
|
14
|
+
"spec_ref": { "type": "string", "minLength": 1 },
|
|
15
|
+
"route_and_page_inventory": { "type": "array", "minItems": 1 },
|
|
16
|
+
"visual_acceptance_cases": { "type": "array", "minItems": 1 },
|
|
17
|
+
"desktop_viewport": { "type": "string", "minLength": 3 },
|
|
18
|
+
"narrow_viewport": { "type": "string", "minLength": 3 },
|
|
19
|
+
"state_cases": { "type": "array", "minItems": 1 },
|
|
20
|
+
"pnpm_commands": { "type": "array", "minItems": 1 },
|
|
21
|
+
"desktop_visual_evidence": { "type": "array", "minItems": 1 },
|
|
22
|
+
"narrow_view_visual_evidence": { "type": "array", "minItems": 1 },
|
|
23
|
+
"interaction_results": { "type": "array", "minItems": 1 },
|
|
24
|
+
"console_warning_check": { "enum": ["pass", "blocked"] },
|
|
25
|
+
"uncovered_differences": { "type": "array" },
|
|
26
|
+
"difference_owner": { "type": ["string", "null"] },
|
|
27
|
+
"independent_review": { "type": "object" }
|
|
28
|
+
},
|
|
29
|
+
"allOf": [
|
|
30
|
+
{
|
|
31
|
+
"if": { "properties": { "kind": { "const": "plan" } } },
|
|
32
|
+
"then": { "required": ["visual_acceptance_cases", "desktop_viewport", "narrow_viewport", "state_cases", "pnpm_commands"] }
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"if": { "properties": { "kind": { "const": "verification" } } },
|
|
36
|
+
"then": { "required": ["desktop_visual_evidence", "narrow_view_visual_evidence", "interaction_results", "console_warning_check", "pnpm_commands", "uncovered_differences", "difference_owner", "independent_review"] }
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|