create-yss-spec 2.1.3 → 2.1.5
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/template/.agents/skills/code-review/SKILL.md +38 -10
- package/template/.agents/skills/high-fidelity-html-prototype/SKILL.md +16 -12
- package/template/.agents/skills/product-design-prototype/SKILL.md +6 -2
- package/template/.agents/skills/prototype-review/SKILL.md +6 -2
- package/template/.agents/skills/wireframe-prototype/SKILL.md +5 -1
- package/template/.agents/skills/yss-api-integration/SKILL.md +25 -7
- package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
- package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
- package/template/.agents/skills/yss-design-system/SKILL.md +6 -5
- package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
- package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +13 -17
- package/template/.agents/skills/yss-openapi-governance/SKILL.md +89 -114
- package/template/.agents/skills/yss-openapi-governance/agents/openai.yaml +2 -2
- package/template/.agents/skills/yss-product-lifecycle/SKILL.md +13 -7
- package/template/.agents/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
- package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +77 -30
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +7 -2
- package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +8 -0
- package/template/.agents/skills/yss-prototype-stage/SKILL.md +40 -0
- package/template/.agents/skills/yss-router/SKILL.md +2 -2
- package/template/.agents/skills/yss-router/references/router-contract.yaml +9 -8
- package/template/.agents/skills/yss-router/references/slice-implementation-contract.md +4 -1
- package/template/.agents/skills/yss-router/references/yss-skill-execution-result.md +2 -1
- package/template/.claude/skills/code-review/SKILL.md +38 -10
- package/template/.claude/skills/high-fidelity-html-prototype/SKILL.md +16 -12
- package/template/.claude/skills/product-design-prototype/SKILL.md +6 -2
- package/template/.claude/skills/prototype-review/SKILL.md +6 -2
- package/template/.claude/skills/wireframe-prototype/SKILL.md +5 -1
- package/template/.claude/skills/yss-api-integration/SKILL.md +25 -7
- package/template/.claude/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
- package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
- package/template/.claude/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
- package/template/.claude/skills/yss-design-system/SKILL.md +6 -5
- package/template/.claude/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
- package/template/.claude/skills/yss-openapi-draft-review/SKILL.md +13 -17
- package/template/.claude/skills/yss-openapi-governance/SKILL.md +89 -114
- package/template/.claude/skills/yss-openapi-governance/agents/openai.yaml +2 -2
- package/template/.claude/skills/yss-product-lifecycle/SKILL.md +13 -7
- package/template/.claude/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
- package/template/.claude/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +77 -30
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +7 -2
- package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +8 -0
- package/template/.claude/skills/yss-prototype-stage/SKILL.md +40 -0
- package/template/.claude/skills/yss-router/SKILL.md +2 -2
- package/template/.claude/skills/yss-router/references/router-contract.yaml +9 -8
- package/template/.claude/skills/yss-router/references/slice-implementation-contract.md +4 -1
- package/template/.claude/skills/yss-router/references/yss-skill-execution-result.md +2 -1
- package/template/.codex/skills/code-review/SKILL.md +38 -10
- package/template/.codex/skills/high-fidelity-html-prototype/SKILL.md +16 -12
- package/template/.codex/skills/product-design-prototype/SKILL.md +6 -2
- package/template/.codex/skills/prototype-review/SKILL.md +6 -2
- package/template/.codex/skills/wireframe-prototype/SKILL.md +5 -1
- package/template/.codex/skills/yss-api-integration/SKILL.md +25 -7
- package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
- package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
- package/template/.codex/skills/yss-design-system/SKILL.md +6 -5
- package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
- package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +13 -17
- package/template/.codex/skills/yss-openapi-governance/SKILL.md +89 -114
- package/template/.codex/skills/yss-openapi-governance/agents/openai.yaml +2 -2
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +13 -7
- package/template/.codex/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
- package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +77 -30
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +7 -2
- package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +8 -0
- package/template/.codex/skills/yss-prototype-stage/SKILL.md +40 -0
- package/template/.codex/skills/yss-router/SKILL.md +2 -2
- package/template/.codex/skills/yss-router/references/router-contract.yaml +9 -8
- package/template/.codex/skills/yss-router/references/slice-implementation-contract.md +4 -1
- package/template/.codex/skills/yss-router/references/yss-skill-execution-result.md +2 -1
- package/template/.hermes/skills/code-review/SKILL.md +38 -10
- package/template/.hermes/skills/high-fidelity-html-prototype/SKILL.md +16 -12
- package/template/.hermes/skills/product-design-prototype/SKILL.md +6 -2
- package/template/.hermes/skills/prototype-review/SKILL.md +6 -2
- package/template/.hermes/skills/wireframe-prototype/SKILL.md +5 -1
- package/template/.hermes/skills/yss-api-integration/SKILL.md +25 -7
- package/template/.hermes/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
- package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
- package/template/.hermes/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
- package/template/.hermes/skills/yss-design-system/SKILL.md +6 -5
- package/template/.hermes/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
- package/template/.hermes/skills/yss-openapi-draft-review/SKILL.md +13 -17
- package/template/.hermes/skills/yss-openapi-governance/SKILL.md +89 -114
- package/template/.hermes/skills/yss-openapi-governance/agents/openai.yaml +2 -2
- package/template/.hermes/skills/yss-product-lifecycle/SKILL.md +13 -7
- package/template/.hermes/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
- package/template/.hermes/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration-contract.yaml +77 -30
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration.md +7 -2
- package/template/.hermes/skills/yss-product-lifecycle/references/state-model.md +8 -0
- package/template/.hermes/skills/yss-prototype-stage/SKILL.md +40 -0
- package/template/.hermes/skills/yss-router/SKILL.md +2 -2
- package/template/.hermes/skills/yss-router/references/router-contract.yaml +9 -8
- package/template/.hermes/skills/yss-router/references/slice-implementation-contract.md +4 -1
- package/template/.hermes/skills/yss-router/references/yss-skill-execution-result.md +2 -1
- package/template/.pi/skills/code-review/SKILL.md +38 -10
- package/template/.pi/skills/high-fidelity-html-prototype/SKILL.md +16 -12
- package/template/.pi/skills/product-design-prototype/SKILL.md +6 -2
- package/template/.pi/skills/prototype-review/SKILL.md +6 -2
- package/template/.pi/skills/wireframe-prototype/SKILL.md +5 -1
- package/template/.pi/skills/yss-api-integration/SKILL.md +25 -7
- package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
- package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
- package/template/.pi/skills/yss-design-system/SKILL.md +6 -5
- package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
- package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +13 -17
- package/template/.pi/skills/yss-openapi-governance/SKILL.md +89 -114
- package/template/.pi/skills/yss-openapi-governance/agents/openai.yaml +2 -2
- package/template/.pi/skills/yss-product-lifecycle/SKILL.md +13 -7
- package/template/.pi/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
- package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +77 -30
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +7 -2
- package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +8 -0
- package/template/.pi/skills/yss-prototype-stage/SKILL.md +40 -0
- package/template/.pi/skills/yss-router/SKILL.md +2 -2
- package/template/.pi/skills/yss-router/references/router-contract.yaml +9 -8
- package/template/.pi/skills/yss-router/references/slice-implementation-contract.md +4 -1
- package/template/.pi/skills/yss-router/references/yss-skill-execution-result.md +2 -1
- package/template/.qoder/skills/code-review/SKILL.md +38 -10
- package/template/.qoder/skills/high-fidelity-html-prototype/SKILL.md +16 -12
- package/template/.qoder/skills/product-design-prototype/SKILL.md +6 -2
- package/template/.qoder/skills/prototype-review/SKILL.md +6 -2
- package/template/.qoder/skills/wireframe-prototype/SKILL.md +5 -1
- package/template/.qoder/skills/yss-api-integration/SKILL.md +25 -7
- package/template/.qoder/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
- package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
- package/template/.qoder/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
- package/template/.qoder/skills/yss-design-system/SKILL.md +6 -5
- package/template/.qoder/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
- package/template/.qoder/skills/yss-openapi-draft-review/SKILL.md +13 -17
- package/template/.qoder/skills/yss-openapi-governance/SKILL.md +89 -114
- package/template/.qoder/skills/yss-openapi-governance/agents/openai.yaml +2 -2
- package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +13 -7
- package/template/.qoder/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
- package/template/.qoder/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +77 -30
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +7 -2
- package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +8 -0
- package/template/.qoder/skills/yss-prototype-stage/SKILL.md +40 -0
- package/template/.qoder/skills/yss-router/SKILL.md +2 -2
- package/template/.qoder/skills/yss-router/references/router-contract.yaml +9 -8
- package/template/.qoder/skills/yss-router/references/slice-implementation-contract.md +4 -1
- package/template/.qoder/skills/yss-router/references/yss-skill-execution-result.md +2 -1
- package/template/.trae/skills/code-review/SKILL.md +38 -10
- package/template/.trae/skills/high-fidelity-html-prototype/SKILL.md +16 -12
- package/template/.trae/skills/product-design-prototype/SKILL.md +6 -2
- package/template/.trae/skills/prototype-review/SKILL.md +6 -2
- package/template/.trae/skills/wireframe-prototype/SKILL.md +5 -1
- package/template/.trae/skills/yss-api-integration/SKILL.md +25 -7
- package/template/.trae/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
- package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
- package/template/.trae/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
- package/template/.trae/skills/yss-design-system/SKILL.md +6 -5
- package/template/.trae/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
- package/template/.trae/skills/yss-openapi-draft-review/SKILL.md +13 -17
- package/template/.trae/skills/yss-openapi-governance/SKILL.md +89 -114
- package/template/.trae/skills/yss-openapi-governance/agents/openai.yaml +2 -2
- package/template/.trae/skills/yss-product-lifecycle/SKILL.md +13 -7
- package/template/.trae/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
- package/template/.trae/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +77 -30
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +7 -2
- package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +8 -0
- package/template/.trae/skills/yss-prototype-stage/SKILL.md +40 -0
- package/template/.trae/skills/yss-router/SKILL.md +2 -2
- package/template/.trae/skills/yss-router/references/router-contract.yaml +9 -8
- package/template/.trae/skills/yss-router/references/slice-implementation-contract.md +4 -1
- package/template/.trae/skills/yss-router/references/yss-skill-execution-result.md +2 -1
- package/template/AGENTS.md +7 -5
- package/template/CONTEXT.md +15 -1
- package/template/README.md +2 -1
- package/template/__yss_dotfile__.gitignore +4 -0
- package/template/docs/adr/0001-product-design-prototype-entrypoint.md +1 -1
- package/template/docs/adr/0003-machine-readable-lifecycle-registry.md +5 -0
- package/template/docs/adr/0004-split-lifecycle-and-router-registry-domains.md +5 -0
- package/template/docs/adr/0005-cross-repository-ecosystem-release-manifest.md +5 -0
- package/template/docs/adr/0006-stable-lifecycle-ids-and-generated-structure.md +5 -0
- package/template/docs/adr/0007-separate-skill-routing-registry-from-integrity-lock.md +5 -0
- package/template/docs/agents/issue-tracker.md +1 -0
- package/template/docs/api/templates/openapi-draft-review-checklist.md +8 -6
- package/template/docs/api/templates/openapi-freeze-record-template.md +8 -2
- package/template/docs/api/templates/openapi-json-export-record-template.md +60 -0
- package/template/docs/architecture/templates/architecture-review-checklist.md +6 -19
- package/template/docs/architecture/templates/functional-architecture-template.md +4 -4
- package/template/docs/architecture/templates/system-overview-design-template.md +10 -5
- package/template/docs/architecture/templates/tech-design-template.md +4 -11
- package/template/docs/design/README.md +4 -2
- package/template/docs/design/design.md +4 -0
- package/template/docs/design/templates/interaction-spec-template.md +3 -3
- package/template/docs/design/templates/prototype-confirmation-template.md +9 -6
- package/template/docs/design/templates/prototype-evidence-template.yaml +46 -0
- package/template/docs/design/templates/prototype-review-checklist.md +4 -4
- package/template/docs/discovery/templates/discovery-template.md +0 -1
- package/template/docs/implementation/create-yss-spec-repository-mode-contract.md +2 -2
- package/template/docs/process/harness-process-tailoring.md +2 -0
- package/template/docs/process/harness-work-unit-map.md +14 -10
- package/template/docs/process/lifecycle-artifact-map.md +84 -39
- package/template/docs/process/lifecycle-registry-baseline.json +70 -0
- package/template/docs/process/lifecycle-registry.yaml +289 -0
- package/template/docs/process/schemas/lifecycle-registry.schema.json +35 -0
- package/template/docs/reviews/lifecycle-registry-phase0-1-red-green-2026-08-17.md +61 -0
- package/template/docs/reviews/matt-yss-p0-ticket-review-git-red-green-2026-08-17.md +91 -0
- package/template/docs/reviews/openapi-skill-primary-source-research-2026-08-16.md +76 -0
- package/template/docs/reviews/openapi-yaml-first-independent-review-2026-08-16.md +121 -0
- package/template/docs/reviews/openapi-yaml-first-pressure-scenarios-2026-08-16.md +191 -0
- package/template/docs/reviews/openapi-yaml-first-red-green-2026-08-16.md +76 -0
- package/template/docs/reviews/openapi-yaml-json-output-independent-review-2026-08-16.md +30 -0
- package/template/docs/reviews/openapi-yaml-json-output-scope-red-green-2026-08-16.md +154 -0
- package/template/docs/reviews/research-create-yss-spec-refresh-2026-08-16.md +164 -0
- package/template/docs/reviews/security-permission-lifecycle-simplification-red-green-2026-08-16.md +43 -0
- package/template/docs/reviews/template-release-review-remediation-red-green-2026-08-17.md +41 -0
- package/template/docs/templates/agent-brief-template.md +2 -2
- package/template/docs/templates/build-architecture-checklist-template.md +3 -4
- package/template/docs/templates/implementation-repo-registry-template.md +0 -2
- package/template/docs/templates/implementation-routing-template.md +6 -6
- package/template/docs/templates/openapi-spec-template.yaml +0 -6
- package/template/docs/templates/review-report-template.md +2 -1
- package/template/docs/templates/spec-delta-template.md +1 -1
- package/template/docs/templates/spec-template.md +0 -1
- package/template/docs/templates/vertical-slice-ticket-template.md +2 -2
- package/template/docs/user-guide//344/272/247/345/223/201/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201.md +6 -6
- package/template/docs/user-guide//344/272/247/345/223/201/347/240/224/345/217/221/345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +3 -3
- package/template/docs/user-guide//345/244/226/351/203/250/345/221/275/344/273/244/350/241/214/345/267/245/345/205/267/345/256/236/350/267/265/346/214/207/345/215/227.md +1 -1
- package/template/docs/user-guide//347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +1 -1
- package/template/scripts/generate-lifecycle-artifacts +26 -0
- package/template/scripts/lifecycle-registry.rb +194 -0
- package/template/scripts/sync-skills +1 -0
- package/template/scripts/test-export-yss-skills.rb +10 -6
- package/template/scripts/test-lifecycle-registry.rb +74 -0
- package/template/scripts/update-skill-lock +1 -0
- package/template/scripts/verify-governance-release +39 -0
- package/template/scripts/verify-lifecycle-registry +67 -0
- package/template/scripts/verify-lifecycle-scenarios +193 -23
- package/template/scripts/verify-matt-yss-integration-scenarios +297 -1
- package/template/scripts/verify-openapi-json-handoff-scenarios +270 -0
- package/template/scripts/verify-openapi-yaml-first-scenarios +120 -0
- package/template/scripts/verify-prototype-backend-scaffold-scenarios +26 -4
- package/template/scripts/verify-template +27 -3
- package/template/scripts/verify-yss-router-scenarios +51 -14
- package/template/skills-lock.json +25 -25
- package/template/wiki/raw/skills-lock.json +0 -15
- package/template/wiki/wiki/OpenAPI/345/245/221/347/272/246.md +1 -1
- package/template/wiki/wiki/YSS/345/267/245/347/250/213/346/212/200/350/203/275/344/275/223/347/263/273.md +1 -1
- package/template/yss-public-skills.json +5 -5
- package/template.snapshot.json +4 -4
- package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
- package/template/.agents/skills/yss-openapi/SKILL.md +0 -116
- package/template/.agents/skills/yss-openapi/agents/openai.yaml +0 -4
- package/template/.agents/skills/yss-openapi/img.png +0 -0
- package/template/.agents/skills/yss-openapi/img_1.png +0 -0
- package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
- package/template/.claude/skills/yss-openapi/SKILL.md +0 -116
- package/template/.claude/skills/yss-openapi/agents/openai.yaml +0 -4
- package/template/.claude/skills/yss-openapi/img.png +0 -0
- package/template/.claude/skills/yss-openapi/img_1.png +0 -0
- package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
- package/template/.codex/skills/yss-openapi/SKILL.md +0 -116
- package/template/.codex/skills/yss-openapi/agents/openai.yaml +0 -4
- package/template/.codex/skills/yss-openapi/img.png +0 -0
- package/template/.codex/skills/yss-openapi/img_1.png +0 -0
- package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
- package/template/.hermes/skills/yss-openapi/SKILL.md +0 -116
- package/template/.hermes/skills/yss-openapi/agents/openai.yaml +0 -4
- package/template/.hermes/skills/yss-openapi/img.png +0 -0
- package/template/.hermes/skills/yss-openapi/img_1.png +0 -0
- package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
- package/template/.pi/skills/yss-openapi/SKILL.md +0 -116
- package/template/.pi/skills/yss-openapi/agents/openai.yaml +0 -4
- package/template/.pi/skills/yss-openapi/img.png +0 -0
- package/template/.pi/skills/yss-openapi/img_1.png +0 -0
- package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
- package/template/.qoder/skills/yss-openapi/SKILL.md +0 -116
- package/template/.qoder/skills/yss-openapi/agents/openai.yaml +0 -4
- package/template/.qoder/skills/yss-openapi/img.png +0 -0
- package/template/.qoder/skills/yss-openapi/img_1.png +0 -0
- package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
- package/template/.trae/skills/yss-openapi/SKILL.md +0 -116
- package/template/.trae/skills/yss-openapi/agents/openai.yaml +0 -4
- package/template/.trae/skills/yss-openapi/img.png +0 -0
- package/template/.trae/skills/yss-openapi/img_1.png +0 -0
|
@@ -68,16 +68,90 @@ flow_preconditions:
|
|
|
68
68
|
to-tickets:
|
|
69
69
|
required: [openapi_freeze_or_no_api_impact, required_gates_satisfied, vertical_slice_scope, blocking_edges]
|
|
70
70
|
output: vertical-slice-tickets
|
|
71
|
+
output_role: ready-for-human
|
|
71
72
|
implement:
|
|
72
73
|
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]
|
|
73
74
|
applies_to_single_session: true
|
|
74
75
|
|
|
76
|
+
ticket_role_transition:
|
|
77
|
+
yss_active:
|
|
78
|
+
to_tickets_initial_role: ready-for-human
|
|
79
|
+
promotion_owner: yss-product-lifecycle
|
|
80
|
+
promoted_role: ready-for-agent
|
|
81
|
+
promotion_requires: ready_for_agent
|
|
82
|
+
|
|
83
|
+
review_input:
|
|
84
|
+
schema_version: 1
|
|
85
|
+
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]
|
|
86
|
+
nullable: [spec_ref]
|
|
87
|
+
modes: [committed, worktree]
|
|
88
|
+
committed:
|
|
89
|
+
candidate_ref: HEAD
|
|
90
|
+
diff_scope: merge-base-to-head
|
|
91
|
+
worktree:
|
|
92
|
+
candidate_ref: working-tree
|
|
93
|
+
diff_scope: merge-base-to-working-tree
|
|
94
|
+
required_coverage: [committed, staged, unstaged, untracked]
|
|
95
|
+
tracked_diff_command: git diff --no-ext-diff --binary --full-index <merge-base>
|
|
96
|
+
untracked_inventory_command: git ls-files -z --others --exclude-standard
|
|
97
|
+
untracked_files_encoding: nul-delimited-raw-path-bytes
|
|
98
|
+
untracked_diff_command: git diff --no-index --no-ext-diff --binary --full-index -- /dev/null <path>
|
|
99
|
+
capture_once: true
|
|
100
|
+
verify_unchanged_after_review: true
|
|
101
|
+
manifest_required_by_mode:
|
|
102
|
+
committed: [merge_base, tracked_diff_command, commit_list_command]
|
|
103
|
+
worktree: [merge_base, tracked_diff_command, untracked_inventory_command, untracked_diff_command, untracked_files, commit_list_command]
|
|
104
|
+
snapshot:
|
|
105
|
+
immutable: true
|
|
106
|
+
protocol: yss-worktree-candidate-v1
|
|
107
|
+
digest_algorithm: sha256
|
|
108
|
+
digest_framing: length-prefixed-path-and-bytes
|
|
109
|
+
path_order: bytewise
|
|
110
|
+
path_encoding: raw-bytes
|
|
111
|
+
length_encoding: uint64-big-endian
|
|
112
|
+
header_ascii: YSS-WORKTREE-CANDIDATE-V1
|
|
113
|
+
terminator_byte: "0x00"
|
|
114
|
+
tracked_record:
|
|
115
|
+
type_byte: "0x54"
|
|
116
|
+
fields: [type_byte, uint64be_content_length, binary_diff_bytes]
|
|
117
|
+
source: tracked_diff_command_stdout
|
|
118
|
+
untracked_record:
|
|
119
|
+
type_byte: "0x55"
|
|
120
|
+
fields: [type_byte, uint64be_path_length, raw_path_bytes, uint32be_file_mode, entry_kind_byte, uint64be_content_length, content_bytes]
|
|
121
|
+
order: bytewise-raw-path
|
|
122
|
+
entry_kinds: {regular: "0x52", symlink: "0x4c"}
|
|
123
|
+
regular_content_source: file_bytes
|
|
124
|
+
symlink_content_source: link_target_bytes
|
|
125
|
+
unsupported_entry_action: blocked
|
|
126
|
+
snapshot_artifact:
|
|
127
|
+
identity: candidate_digest
|
|
128
|
+
required: [candidate-manifest.yaml, tracked.diff, untracked/]
|
|
129
|
+
access: immutable-read-only
|
|
130
|
+
on_digest_change: blocked
|
|
131
|
+
completion_requires_current_digest: true
|
|
132
|
+
|
|
133
|
+
git_authorization:
|
|
134
|
+
commit:
|
|
135
|
+
requires_explicit_user_authorization: true
|
|
136
|
+
required: [commit_authorized, commit_scope, commit_authorization_ref]
|
|
137
|
+
authorized_value: true
|
|
138
|
+
non_empty: [commit_scope, commit_authorization_ref]
|
|
139
|
+
unauthorized_action: checkpoint-only
|
|
140
|
+
push:
|
|
141
|
+
requires_explicit_user_authorization: true
|
|
142
|
+
required: [push_authorized, push_scope, push_authorization_ref]
|
|
143
|
+
authorized_value: true
|
|
144
|
+
non_empty: [push_scope, push_authorization_ref]
|
|
145
|
+
unauthorized_action: checkpoint-only
|
|
146
|
+
|
|
147
|
+
seam_deferred_required: [risk, owner, follow_up_ticket, verification_plan, target_version_or_release_date]
|
|
148
|
+
|
|
75
149
|
backend_scaffold:
|
|
76
150
|
applies_when: [backend_impact]
|
|
77
151
|
scaffold_statuses: [existing, required, initialized]
|
|
78
152
|
required_status: required
|
|
79
153
|
sequence:
|
|
80
|
-
after: [prototype_confirmation, engineering_baseline]
|
|
154
|
+
after: [prototype_review, prototype_verification, antd_cli_verification, browser_verification, prototype_confirmation, engineering_baseline]
|
|
81
155
|
before_generator: [yss-router-scaffold-contract, lifecycle-approve-scaffold-contract]
|
|
82
156
|
before: [business_code_generation, implement]
|
|
83
157
|
generator_skill: yss-ddd-scaffold-generator
|
|
@@ -115,7 +189,7 @@ scaffold_work_unit_policy:
|
|
|
115
189
|
scope: pre_business_code_generation
|
|
116
190
|
required: [approved_scaffold_contract, primary_yss_skill, allowed_write_paths, expected_evidence_files, verification_commands]
|
|
117
191
|
controlled_generation:
|
|
118
|
-
allowed_for: [project_scaffold, pom, mechanical_config, wrapper
|
|
192
|
+
allowed_for: [project_scaffold, pom, mechanical_config, wrapper]
|
|
119
193
|
forbidden_when: [business_behavior, business_fields, business_state, permission, transaction, complex_query, error_mapping, business_example_crud]
|
|
120
194
|
on_violation: blocked
|
|
121
195
|
|
|
@@ -195,19 +269,6 @@ impact_propagation:
|
|
|
195
269
|
- {kind: artifact, name: openapi-draft, level: transitive, when: api_impact}
|
|
196
270
|
- {kind: gate, name: openapi-freeze, level: transitive, when: api_impact}
|
|
197
271
|
- {kind: artifact, name: vertical-slice-tickets, level: transitive, when: always}
|
|
198
|
-
permission:
|
|
199
|
-
targets:
|
|
200
|
-
- {kind: artifact, name: spec, level: direct, when: always}
|
|
201
|
-
- {kind: artifact, name: spec-delta, level: direct, when: existing_frozen_baseline}
|
|
202
|
-
- {kind: artifact, name: product-design, level: direct, when: ui_impact}
|
|
203
|
-
- {kind: gate, name: requirement-freeze, level: direct, when: always}
|
|
204
|
-
- {kind: artifact, name: openapi-draft, level: transitive, when: api_impact}
|
|
205
|
-
- {kind: gate, name: draft-review, level: transitive, when: api_impact}
|
|
206
|
-
- {kind: gate, name: design-review, level: transitive, when: always}
|
|
207
|
-
- {kind: gate, name: openapi-freeze, level: transitive, when: api_impact}
|
|
208
|
-
- {kind: artifact, name: vertical-slice-tickets, level: transitive, when: always}
|
|
209
|
-
- {kind: artifact, name: implementation-contract, level: transitive, when: always}
|
|
210
|
-
- {kind: artifact, name: test-mapping, level: transitive, when: always}
|
|
211
272
|
api-schema:
|
|
212
273
|
targets:
|
|
213
274
|
- {kind: artifact, name: spec, level: direct, when: always}
|
|
@@ -263,20 +324,6 @@ impact_propagation:
|
|
|
263
324
|
- {kind: artifact, name: rollback-plan, level: direct, when: always}
|
|
264
325
|
- {kind: gate, name: design-review, level: transitive, when: always}
|
|
265
326
|
- {kind: artifact, name: release-plan, level: transitive, when: always}
|
|
266
|
-
security:
|
|
267
|
-
targets:
|
|
268
|
-
- {kind: artifact, name: spec, level: direct, when: always}
|
|
269
|
-
- {kind: artifact, name: spec-delta, level: direct, when: existing_frozen_baseline}
|
|
270
|
-
- {kind: artifact, name: product-design, level: direct, when: ui_impact}
|
|
271
|
-
- {kind: artifact, name: system-architecture, level: direct, when: always}
|
|
272
|
-
- {kind: artifact, name: data-architecture, level: direct, when: data_impact}
|
|
273
|
-
- {kind: gate, name: requirement-freeze, level: direct, when: always}
|
|
274
|
-
- {kind: gate, name: architecture-review, level: direct, when: always}
|
|
275
|
-
- {kind: artifact, name: openapi-draft, level: transitive, when: api_impact}
|
|
276
|
-
- {kind: gate, name: openapi-freeze, level: transitive, when: api_impact}
|
|
277
|
-
- {kind: artifact, name: vertical-slice-tickets, level: transitive, when: always}
|
|
278
|
-
- {kind: artifact, name: release-plan, level: transitive, when: always}
|
|
279
|
-
|
|
280
327
|
prototype_return_evidence:
|
|
281
328
|
required: [prototype_mode, source_handoff, prototype_asset_or_run, conclusion, updated_authoritative_asset, remaining_questions, return_handoff]
|
|
282
329
|
allowed_modes: [matt_logic, yss_high_fidelity]
|
|
@@ -313,7 +360,7 @@ prototype_modes:
|
|
|
313
360
|
replaces_yss_high_fidelity: false
|
|
314
361
|
yss_high_fidelity:
|
|
315
362
|
asset: ant_design_v6_html
|
|
316
|
-
required: [prototype_mode, prototype_review, antd_cli_verification, user_confirmation]
|
|
363
|
+
required: [prototype_mode, prototype_review, antd_cli_verification, browser_verification, prototype_evidence, user_confirmation]
|
|
317
364
|
purpose: product_design_review
|
|
318
365
|
replaces_matt_logic: false
|
|
319
366
|
|
|
@@ -52,20 +52,25 @@ tracker 选择和冲突按 `docs/agents/issue-tracker.md` 裁决:已持久化
|
|
|
52
52
|
## Matt flow 进入条件
|
|
53
53
|
|
|
54
54
|
- `to-spec` 只能在 `grill-with-docs` 退出条件满足且没有未回流 runnable blocker 时进入;产物默认为 `ready-for-human`。
|
|
55
|
-
- `to-tickets` 只能在 OpenAPI Freeze 或无 API 影响记录完成后进入,并且只能生成垂直切片 Ticket
|
|
55
|
+
- `to-tickets` 只能在 OpenAPI Freeze 或无 API 影响记录完成后进入,并且只能生成垂直切片 Ticket;YSS active 下初始角色统一为 `ready-for-human`,不得沿用 Matt 的通用 `ready-for-agent` 默认值。
|
|
56
56
|
- `implement` 无论是多会话还是单会话,都必须满足 `ready-for-agent` 公式、批准并持久化的 Slice Implementation Contract 和 Build Architecture Checklist。
|
|
57
57
|
- `implement` 遇到 backend `scaffold_status=required` 时,还必须满足原型确认后的脚手架策略:脚手架 Execution Result、`yss-backend-scaffold-parent` 基线、Wrapper 验证和 Router 合同重编译均已回写;否则停在工程基线,不得写业务代码。
|
|
58
58
|
- Matt Result 出现 `drift`、`new_impacts`、`stale_candidates`、`violation`、`missing_evidence`、空 `evidence_refs` 或缺少必需字段时暂停当前工作单元。
|
|
59
59
|
|
|
60
60
|
## 审查与验证
|
|
61
61
|
|
|
62
|
+
- 调用 `code-review` 前先固定 review input:`review_mode`、`review_base_ref`、`implementation_candidate_ref`、`candidate_snapshot_ref`、`candidate_digest`、Spec/Ticket、Slice Implementation Contract、Build Architecture Checklist 和 YSS Skill Execution Result 引用。`committed` 模式审查不可变 `HEAD`;`worktree` 模式一次捕获 committed、staged、unstaged 和 untracked 内容。必须按 `orchestration-contract.yaml.review_input` 的 manifest 按模式必填字段及 `yss-worktree-candidate-v1` 字节流(raw path、uint64 big-endian 长度、tracked/untracked record)计算 SHA-256,两个 Reviewer 必须消费同一不可变快照。返回后或完成 checkpoint 摘要变化时返回 `blocked`,由编排器决定重新审查。候选为空、漏项或 fixed point 不可解析时阻断。
|
|
62
63
|
- 小改动和中等变更可由同一独立执行者完成 `code-review` 与 fresh verification,并在同一报告中分别记录 findings、命令、结果和残余风险。
|
|
63
64
|
- 该执行者必须独立于实现者;新模块、高风险变更、职责冲突或需双人控制时,Reviewer 与 Verifier 分开。
|
|
64
65
|
- `code-review` 是唯一默认代码审查 skill。GitLab、CI、Sonar、Alibaba Java 等治理事实作为仓库规则或专项检查输入,不再叠加第二个通用审查 skill。
|
|
65
66
|
|
|
67
|
+
## Git 授权
|
|
68
|
+
|
|
69
|
+
实现授权、`orchestrate`/`resume` 的有界写入、当前分支和 Git checkpoint 都不蕴含 commit 或 push 授权。执行 commit 前必须同时取得 `commit_authorized=true`、非空 `commit_scope` 和 `commit_authorization_ref`;执行 push 前必须同时取得 `push_authorized=true`、非空 `push_scope` 和 `push_authorization_ref`。任一缺失时只记录 checkpoint 判断并保持 Git 状态不变;负责人要求、时间压力、测试通过或“本地 commit 可逆”都不能补足用户授权。
|
|
70
|
+
|
|
66
71
|
## 必须暂停
|
|
67
72
|
|
|
68
|
-
- Spec baseline、需求冻结、原型确认、OpenAPI Freeze
|
|
73
|
+
- Spec baseline、需求冻结、原型确认、OpenAPI Freeze 或 Architecture Review 等普通门禁等待人工裁决。
|
|
69
74
|
- 需要目标仓库、外部凭据、发布窗口或其他新授权。
|
|
70
75
|
- 状态与证据冲突且无法可靠重建。
|
|
71
76
|
- 专项 skill 失败或返回不可验收结果。
|
|
@@ -50,6 +50,14 @@ AND 所有后续生成代码均绑定主 YSS skill、依赖闭包、允许写路
|
|
|
50
50
|
|
|
51
51
|
父 Ticket、Spec、设计、原型、OpenAPI Draft、wayfinder map 和 decision ticket 不得使用 `ready-for-agent`。
|
|
52
52
|
|
|
53
|
+
YSS active 调用 `to-tickets` 时,垂直切片初始角色固定为 `ready-for-human`。只有 `yss-product-lifecycle` 复算上述公式全部为真后,才能把它提升为 `ready-for-agent`;Matt `to-tickets` 的独立默认值不参与该裁决。
|
|
54
|
+
|
|
55
|
+
## Review 与 Git 授权状态
|
|
56
|
+
|
|
57
|
+
进入代码审查时保存 `review_mode`、`review_base_ref`、`implementation_candidate_ref`、`candidate_snapshot_ref`、`candidate_digest` 及 Spec、Ticket、合同、Checklist、YSS Execution Result 引用。`worktree` 候选必须一次捕获 committed、staged、unstaged 和 untracked 文件;manifest 的按模式必填字段以及 `yss-worktree-candidate-v1`(raw path、uint64 big-endian 长度、tracked/untracked record、symlink 和不支持条目)以 `orchestration-contract.yaml.review_input` 为唯一执行定义。两个 Reviewer 消费同一不可变快照;返回后或完成 checkpoint 摘要变化则返回 `blocked` 并重新审查。不新增生命周期状态,只把该清单作为审查证据。
|
|
58
|
+
|
|
59
|
+
Git 动作分别保存 `commit_authorized`、`commit_scope`、`commit_authorization_ref`、`push_authorized`、`push_scope`、`push_authorization_ref`。只有授权值严格为 `true`、范围和用户授权引用均非空时才执行相应动作;缺失授权时保持工作区不变并记录 checkpoint 判断。
|
|
60
|
+
|
|
53
61
|
## 状态块
|
|
54
62
|
|
|
55
63
|
状态块位于主 tracker 的功能父 Ticket;Local Markdown 使用 `docs/.scratch/<feature>/parent-ticket.md`,远程 tracker 使用 Issue 并在本地功能包保留引用。平台不可用时才位于 stage checkpoint。只保存索引、状态、引用和因果关系:
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: yss-prototype-stage
|
|
3
|
+
description: Use when a YSS feature has product-design impact on a primary flow, navigation, state, recovery, permission experience, or UI-driven API contract and needs prototype assets before implementation readiness.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# YSS Prototype Stage
|
|
7
|
+
|
|
8
|
+
把产品设计影响收敛为跨 Agent 一致的产物、证据和生命周期回流合同。它不替代 `yss-product-lifecycle` 的门禁裁决,也不把原型当作生产前端代码。
|
|
9
|
+
|
|
10
|
+
## 进入条件与主入口
|
|
11
|
+
|
|
12
|
+
- 先由 `yss-product-lifecycle` 判断产品设计影响;无行为变化的孤立视觉修复记录 `not-applicable`,不创建空资产。
|
|
13
|
+
- Codex 的产出主入口是 `product-design:index`;其他 Agent 使用等价的产品设计能力,但必须产出本技能规定的相同资产和证据。能力或证据不能等价时,暂停并回到人工确认。
|
|
14
|
+
- 旧 `product-design-prototype`、`wireframe-prototype`、`high-fidelity-html-prototype` 仅为兼容入口;从它们进入时立即回到本合同。
|
|
15
|
+
|
|
16
|
+
## 资产与门禁顺序
|
|
17
|
+
|
|
18
|
+
1. 以 Spec、产品总体设计和 `docs/design/design.md` 形成交互说明、低保真页面/流程与状态矩阵。
|
|
19
|
+
2. 用 `prototype-review` 形成独立评审结论;未通过不得生成高保真或进入需求冻结。
|
|
20
|
+
3. 通过 `product-design:index` 产出 `docs/.scratch/<feature>/design/prototypes/index.html`。
|
|
21
|
+
4. 写入 `docs/.scratch/<feature>/verification/prototype-evidence.yaml`,完成 AntD CLI 与浏览器验证。
|
|
22
|
+
5. 用户确认后,才可校准 Spec、分析 API 影响或进入 Router readiness。
|
|
23
|
+
|
|
24
|
+
## 设计与 AntD 依据
|
|
25
|
+
|
|
26
|
+
优先级固定为:官方 `design.md` 的上游默认 → `docs/design/design.md` 与项目 token 的 `project_design` 项目覆盖 → 当前功能的语义组件映射。不得用上游默认覆盖项目 token。
|
|
27
|
+
|
|
28
|
+
使用官方 `antd` skill / CLI 查询事实,始终用 `--format json`,并记录实际 `antd`、CLI 和目标组件版本。至少保存 `antd design.md`、已选组件的 `info`/`demo`/`token`/`semantic` 查询和 `antd lint` 结果;目标版本存在时,将同一 `<target_antd_version>` 传给版本敏感查询,禁止在模板中固化某个 CLI 或组件版本。
|
|
29
|
+
|
|
30
|
+
## 验证与回流
|
|
31
|
+
|
|
32
|
+
`browser_verification` 至少覆盖非空渲染、主流程、一个失败/权限/冲突状态、桌面与窄屏视口和控制台错误;优先使用 Browser 或可执行浏览器自动化,Computer Use 只作人工交互补充。把路径、命令、版本、视口、结果和阻塞项写入证据清单。
|
|
33
|
+
|
|
34
|
+
`gate.prototype-reviewed` 的证据是评审记录;`gate.prototype-verified` 的证据是 AntD CLI 与浏览器验证;`gate.user-confirmation` 的证据是确认记录。三者均不是实现授权。
|
|
35
|
+
|
|
36
|
+
## 常见错误
|
|
37
|
+
|
|
38
|
+
- 仅有截图或 HTML,却没有可复现的 CLI、浏览器和确认记录。
|
|
39
|
+
- 把 `product-design:index` 或某个旧技能当作生命周期批准者。
|
|
40
|
+
- 直接复制官方默认颜色、圆角或间距,忽略项目覆盖。
|
|
@@ -30,7 +30,7 @@ description: Use when a YSS vertical slice is entering implementation, spans mul
|
|
|
30
30
|
- API 变化必须回到生命周期 Draft/Review/Freeze;半成品 backend 不得冒充稳定 source of truth。
|
|
31
31
|
- 后端端到端切片必须包含 Application;对象/POJO 影响按契约自动补 `mapstruct`、`lombok`、`alibaba-java-code-style`。
|
|
32
32
|
- Harness 内实现路径必须落在 `apps/backend/<project>/` 或 `apps/frontend/<project>/` 的具体项目目录;`apps/backend/`、`apps/frontend/` 只能作为容器,`app/backend/`、`app/frontend/` 及其子路径一律阻断。外部实现仓库使用其登记的真实项目根路径。
|
|
33
|
-
- 当前用户、审计事件、普通技术日志、请求校验、错误映射或加解密命中时,必须按 `router-contract.yaml` 的 `component_impact_routing` 补齐长尾 skill;不能只在 `boundaries.md`
|
|
33
|
+
- 当前用户、审计事件、普通技术日志、请求校验、错误映射或加解密命中时,必须按 `router-contract.yaml` 的 `component_impact_routing` 补齐长尾 skill;不能只在 `boundaries.md` 中提及。仅复用已经验证的平台认证 / 授权能力不算 component impact,不自动增加权限专项 skill。
|
|
34
34
|
- 业务行为使用 `behavior-tdd`;只有机械脚手架/生成物可用 `controlled-generation`,并记录例外和验证。
|
|
35
35
|
- 原型确认后若 backend `scaffold_status=required`,先由本 Router 按 `scaffold_contract_schema` 编译 `yss-ddd-scaffold-generator` 的 `controlled-generation` 工作单元合同 draft;合同必须带 `contract_id`、`contract_version`、Router draft、生命周期批准、持久化引用、允许写路径、预期证据和验证命令。经生命周期编排器批准并持久化后才能运行生成器,再由受控工作单元实际执行固定的 `./mvnw validate`、`./mvnw test`、`./mvnw package` 并记录逐条结果,随后加载 `yss-backend-scaffold-parent` 并重新编译业务合同;脚手架不承载业务行为。
|
|
36
36
|
- 脚手架合同在 Router 阶段只能是 `draft` / `ready-for-lifecycle-review` / `blocked`;只有生命周期编排器可以把已持久化脚手架合同标记为 `approved`。脚手架合同只覆盖业务代码前的工程骨架工作单元;生成、基线校验和 Router 重编译完成后,它不能替代脚手架后的 Slice Implementation Contract。
|
|
@@ -42,7 +42,7 @@ description: Use when a YSS vertical slice is entering implementation, spans mul
|
|
|
42
42
|
|
|
43
43
|
- 切片基线路由:生成完整合同和技能闭包。
|
|
44
44
|
- 工作单元增量路由:绑定一个行为、主/辅 skills、TDD 模式、路径和证据。
|
|
45
|
-
- 完整重路由:API/schema
|
|
45
|
+
- 完整重路由:API/schema、状态机、数据模型、仓库、写路径、skill、测试 seam 或架构约束发生实质变化时触发。实现中出现未冻结的新行为(包括明确的权限业务行为)统一写入 `new_impacts`,由生命周期按普通影响面重新分诊。
|
|
46
46
|
|
|
47
47
|
## 输出
|
|
48
48
|
|
|
@@ -20,7 +20,7 @@ subcontract_statuses: [required, not-applicable]
|
|
|
20
20
|
|
|
21
21
|
readiness:
|
|
22
22
|
common: [spec, slice_ticket, architecture_review, build_architecture_checklist, implementation_repository, verification_commands]
|
|
23
|
-
ui_impact: [requirement_freeze, low_fidelity_review, high_fidelity_html, antd_cli_evidence, prototype_confirmation]
|
|
23
|
+
ui_impact: [requirement_freeze, low_fidelity_review, prototype_review, high_fidelity_html, prototype_verification, antd_cli_evidence, browser_verification_evidence, prototype_confirmation]
|
|
24
24
|
api_impact: [openapi_freeze]
|
|
25
25
|
no_api_impact: [no_api_impact_record]
|
|
26
26
|
data_impact: [data_architecture]
|
|
@@ -33,13 +33,13 @@ routing_input_required:
|
|
|
33
33
|
- lifecycle
|
|
34
34
|
- implementation
|
|
35
35
|
- acceptance
|
|
36
|
-
impact_flags_required: [ui_impact, api_impact, no_api_impact, data_impact, backend_impact, cross_repo]
|
|
36
|
+
impact_flags_required: [ui_impact, api_impact, no_api_impact, data_impact, backend_impact, cross_repo, existing_frozen_baseline]
|
|
37
37
|
exclusive_flags:
|
|
38
38
|
- [api_impact, no_api_impact]
|
|
39
39
|
|
|
40
40
|
slice_contract_required:
|
|
41
41
|
root: [schema_version, contract_id, contract_version, slice_id, status, lifecycle_refs, readiness, common, frontend, backend, contract, cross_repo, work_units]
|
|
42
|
-
lifecycle_refs: [spec, ticket, requirement_freeze, low_fidelity_review, high_fidelity_html, antd_cli_evidence, prototype_confirmation, openapi_freeze_or_no_impact, architecture_review, data_architecture, engineering_baseline, build_architecture_checklist, implementation_repository, frontend_repository, backend_repository, maven_wrapper]
|
|
42
|
+
lifecycle_refs: [spec, ticket, requirement_freeze, low_fidelity_review, prototype_review, high_fidelity_html, prototype_verification, antd_cli_evidence, browser_verification_evidence, prototype_confirmation, openapi_freeze_or_no_impact, architecture_review, data_architecture, engineering_baseline, build_architecture_checklist, implementation_repository, frontend_repository, backend_repository, maven_wrapper]
|
|
43
43
|
readiness: [blockers, stale_inputs, not_applicable]
|
|
44
44
|
common: [impacted_areas, implementation_path_policy, project_roots, required_skills, optional_skills, unavailable_skills, allowed_write_paths, forbidden_patterns, expected_evidence_files, verification_commands, human_review_points, full_reroute_triggers]
|
|
45
45
|
frontend: [status, required_skills, approved_prototype_ref, state_matrix_ref, allowed_write_paths, component_test_seams, e2e_paths]
|
|
@@ -55,8 +55,11 @@ lifecycle_ref_by_readiness:
|
|
|
55
55
|
implementation_repository: implementation_repository
|
|
56
56
|
requirement_freeze: requirement_freeze
|
|
57
57
|
low_fidelity_review: low_fidelity_review
|
|
58
|
+
prototype_review: prototype_review
|
|
58
59
|
high_fidelity_html: high_fidelity_html
|
|
60
|
+
prototype_verification: prototype_verification
|
|
59
61
|
antd_cli_evidence: antd_cli_evidence
|
|
62
|
+
browser_verification_evidence: browser_verification_evidence
|
|
60
63
|
prototype_confirmation: prototype_confirmation
|
|
61
64
|
openapi_freeze: openapi_freeze_or_no_impact
|
|
62
65
|
no_api_impact_record: openapi_freeze_or_no_impact
|
|
@@ -91,7 +94,7 @@ scaffold_contract_schema:
|
|
|
91
94
|
work_unit:
|
|
92
95
|
required: [id, behavior, primary_skill, supporting_skills, tdd_mode, allowed_write_paths, expected_evidence, verification_commands, controlled_generation]
|
|
93
96
|
generation_boundary:
|
|
94
|
-
allowed_for: [project_scaffold, pom, mechanical_config, wrapper
|
|
97
|
+
allowed_for: [project_scaffold, pom, mechanical_config, wrapper]
|
|
95
98
|
forbidden_when: [business_behavior, business_fields, business_state, permission, transaction, complex_query, error_mapping, business_example_crud]
|
|
96
99
|
verification:
|
|
97
100
|
commands: ["./mvnw validate", "./mvnw test", "./mvnw package"]
|
|
@@ -147,7 +150,7 @@ dependency_closure:
|
|
|
147
150
|
when_form: [yss-formily]
|
|
148
151
|
when_api: [api-integration]
|
|
149
152
|
api-integration:
|
|
150
|
-
when_regeneration: [yss-openapi]
|
|
153
|
+
when_regeneration: [yss-openapi-governance]
|
|
151
154
|
|
|
152
155
|
component_impact_values:
|
|
153
156
|
- current-user-context
|
|
@@ -191,7 +194,6 @@ full_reroute_triggers:
|
|
|
191
194
|
- scaffold-baseline-drift
|
|
192
195
|
- api-schema-impact
|
|
193
196
|
- database-schema-impact
|
|
194
|
-
- permission-impact
|
|
195
197
|
- state-machine-impact
|
|
196
198
|
- data-model-impact
|
|
197
199
|
- new-write-path
|
|
@@ -209,7 +211,6 @@ reroute_destinations:
|
|
|
209
211
|
scaffold-baseline-drift: stage7-scaffold-revalidation
|
|
210
212
|
api-schema-impact: system-data-architecture-and-contract-review
|
|
211
213
|
database-schema-impact: data-architecture-and-migration-review
|
|
212
|
-
permission-impact: spec-product-design-and-contract-review
|
|
213
214
|
state-machine-impact: spec-system-data-and-contract-review
|
|
214
215
|
data-model-impact: data-architecture-and-contract-review
|
|
215
216
|
new-write-path: stage7-contract-recompile
|
|
@@ -242,7 +243,7 @@ execution_result_required:
|
|
|
242
243
|
- deviations
|
|
243
244
|
- new_impacts
|
|
244
245
|
- not_applicable_reason
|
|
245
|
-
seam_deferred_required: [risk, owner, follow_up_ticket, verification_plan]
|
|
246
|
+
seam_deferred_required: [risk, owner, follow_up_ticket, verification_plan, target_version_or_release_date]
|
|
246
247
|
deviation_required: [rule, reason, approval_ref]
|
|
247
248
|
not_applicable_required: [item, reason]
|
|
248
249
|
unavailable_skill_required: [skill, provider, fallback, resolution]
|
|
@@ -14,8 +14,11 @@ slice_contract:
|
|
|
14
14
|
ticket:
|
|
15
15
|
requirement_freeze:
|
|
16
16
|
low_fidelity_review:
|
|
17
|
+
prototype_review:
|
|
17
18
|
high_fidelity_html:
|
|
19
|
+
prototype_verification:
|
|
18
20
|
antd_cli_evidence:
|
|
21
|
+
browser_verification_evidence:
|
|
19
22
|
prototype_confirmation:
|
|
20
23
|
openapi_freeze_or_no_impact:
|
|
21
24
|
architecture_review:
|
|
@@ -107,4 +110,4 @@ work_unit:
|
|
|
107
110
|
behavior_tests_after_generation: []
|
|
108
111
|
```
|
|
109
112
|
|
|
110
|
-
`controlled_generation` 仅在 `tdd_mode: controlled-generation` 时必填;其他模式标记 `not-applicable
|
|
113
|
+
`controlled_generation` 仅在 `tdd_mode: controlled-generation` 时必填;其他模式标记 `not-applicable`。明确写入需求的权限业务行为仍使用 `behavior-tdd`;API schema 与 database schema 分别触发契约或数据架构回退,不得用一个含糊的 schema 类型决定路线。
|
|
@@ -33,6 +33,7 @@ execution_result:
|
|
|
33
33
|
owner:
|
|
34
34
|
follow_up_ticket:
|
|
35
35
|
verification_plan:
|
|
36
|
+
target_version_or_release_date:
|
|
36
37
|
deviations:
|
|
37
38
|
- rule:
|
|
38
39
|
reason:
|
|
@@ -51,7 +52,7 @@ Router 必须验证:
|
|
|
51
52
|
2. `changed_files` 全部位于工作单元和切片允许路径内。
|
|
52
53
|
3. `expected_evidence_files` 全部存在并能回指行为。
|
|
53
54
|
4. 验证命令包含实际结果和时间;计划命令不算证据。
|
|
54
|
-
5. `seam_deferred` 有风险、责任人、补齐 Ticket
|
|
55
|
+
5. `seam_deferred` 有风险、责任人、补齐 Ticket、验证计划和目标版本 / 发布日期。
|
|
55
56
|
6. `new_impacts` 非空时暂停并重路由。
|
|
56
57
|
7. `drift` 触发 Architecture Re-check;`violation` 阻断 build。
|
|
57
58
|
8. `status: not-applicable` 必须填写 `not_applicable_reason`;其他状态保留字段但可为空。
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-review
|
|
3
|
-
description:
|
|
3
|
+
description: Use when the user wants to review a branch, PR, committed candidate, uncommitted work-in-progress changes, or changes since a fixed point.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
Two-axis review of
|
|
6
|
+
Two-axis review of a pinned candidate against a fixed point:
|
|
7
7
|
|
|
8
8
|
- **Standards** — does the code conform to this repo's documented coding standards?
|
|
9
9
|
- **Spec** — does the code faithfully implement the originating issue / spec?
|
|
@@ -14,20 +14,46 @@ The issue tracker should have been provided to you — run `/setup-matt-pocock-s
|
|
|
14
14
|
|
|
15
15
|
## Process
|
|
16
16
|
|
|
17
|
-
### 1. Pin the fixed point
|
|
17
|
+
### 1. Pin the fixed point and candidate
|
|
18
18
|
|
|
19
19
|
Whatever the user said is the fixed point — a commit SHA, branch name, tag, `main`, `HEAD~5`, etc. If they didn't specify one, ask for it.
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
Choose one candidate mode from the request or an upstream review contract:
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
- **Committed candidate** — review committed branch/PR state. Capture `git diff <fixed-point>...HEAD` and `git log <fixed-point>..HEAD --oneline`.
|
|
24
|
+
- **Worktree candidate** — review work in progress without requiring a commit. Resolve `<merge-base>` with `git merge-base <fixed-point> HEAD`, then capture:
|
|
25
|
+
- `git diff --no-ext-diff --binary --full-index <merge-base>` for committed, staged and unstaged tracked content as it exists in the working tree;
|
|
26
|
+
- `git ls-files -z --others --exclude-standard` for NUL-delimited raw untracked paths;
|
|
27
|
+
- each untracked file's content, using `git diff --no-index --no-ext-diff --binary --full-index -- /dev/null <path>` when a diff representation is useful. Exit code `1` from this command means a difference was found, not that review failed;
|
|
28
|
+
- `git log <fixed-point>..HEAD --oneline` for the committed portion of the candidate.
|
|
29
|
+
|
|
30
|
+
Record one **candidate manifest** before spawning reviewers:
|
|
31
|
+
|
|
32
|
+
```yaml
|
|
33
|
+
review_mode: committed # or worktree
|
|
34
|
+
review_base_ref: <fixed-point>
|
|
35
|
+
merge_base: <resolved-sha>
|
|
36
|
+
implementation_candidate_ref: HEAD # or working-tree
|
|
37
|
+
candidate_snapshot_ref: <immutable-commit-or-captured-snapshot>
|
|
38
|
+
candidate_digest: <sha256-or-immutable-tree-id>
|
|
39
|
+
tracked_diff_command: <command>
|
|
40
|
+
untracked_inventory_command: <command-or-null>
|
|
41
|
+
untracked_files: []
|
|
42
|
+
commit_list_command: <command>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
For a Committed candidate, resolve `HEAD` to an immutable commit and tree before review. Its manifest must include `merge_base`, `tracked_diff_command` and `commit_list_command`. For a Worktree candidate, the manifest must additionally include `untracked_inventory_command`, `untracked_diff_command` and the exact `untracked_files` inventory.
|
|
46
|
+
|
|
47
|
+
For a Worktree candidate, capture the tracked binary diff and every untracked file's bytes once into an immutable snapshot, compute `candidate_digest`, and make that **captured candidate** available to both reviewers. The following is normative, not illustrative: use the `yss-worktree-candidate-v1` byte stream. Start with ASCII `YSS-WORKTREE-CANDIDATE-V1` followed by one NUL byte. Append one tracked record: byte `0x54`, unsigned 64-bit big-endian binary-diff byte length, then the exact stdout bytes from `git diff --no-ext-diff --binary --full-index <merge-base>`. Then append one untracked record for each NUL-delimited raw path from `git ls-files -z --others --exclude-standard`, sorted bytewise by the raw path: byte `0x55`, unsigned 64-bit big-endian path length, raw path bytes, unsigned 32-bit big-endian `lstat` mode, entry-kind byte (`0x52` regular or `0x4c` symlink), unsigned 64-bit big-endian content length, then raw regular-file bytes or raw symlink-target bytes. Other entry kinds block capture. This is the sole length-prefixed framing and bytewise path order for the digest. SHA-256 is calculated over exactly this stream. The immutable snapshot stores `candidate-manifest.yaml`, `tracked.diff` and the `untracked/` bytes under the digest identity; both reviewers must consume those captured bytes and must not independently reread a live worktree.
|
|
48
|
+
|
|
49
|
+
Before going further, confirm the fixed point and merge-base resolve. A committed candidate must have a non-empty committed diff. A Worktree candidate is non-empty when either its tracked diff or untracked inventory is non-empty. A bad ref, missing candidate part or empty candidate should fail here — not inside two parallel sub-agents. Do not silently downgrade Worktree review to `HEAD`-only review.
|
|
24
50
|
|
|
25
51
|
### 2. Identify the spec source
|
|
26
52
|
|
|
27
53
|
Look for the originating spec, in this order:
|
|
28
54
|
|
|
29
|
-
1.
|
|
30
|
-
2.
|
|
55
|
+
1. A spec/Ticket/contract reference supplied by the user or an upstream lifecycle review input.
|
|
56
|
+
2. Issue references in the commit messages (`#123`, `Closes #45`, GitLab `!67`, etc.) — fetch via the workflow in `docs/agents/issue-tracker.md`.
|
|
31
57
|
3. A spec file under `docs/`, `specs/`, or `docs/.scratch/` matching the branch name or feature.
|
|
32
58
|
4. If nothing is found, ask the user where the spec is. If they say there isn't one, the **Spec** sub-agent will skip and report "no spec available".
|
|
33
59
|
|
|
@@ -59,13 +85,13 @@ Each smell reads *what it is* → *how to fix*; match it against the diff:
|
|
|
59
85
|
|
|
60
86
|
**Standards sub-agent prompt** — include:
|
|
61
87
|
|
|
62
|
-
- The full diff
|
|
88
|
+
- The full candidate manifest, captured candidate, `candidate_digest`, diff/inventory commands and commit list. For Worktree candidates, explicitly include every untracked file.
|
|
63
89
|
- The list of standards-source files you found in step 3, **plus the smell baseline from step 3** pasted in full — the sub-agent has no other access to it.
|
|
64
90
|
- The brief: "Report — per file/hunk where relevant — (a) every place the diff violates a documented standard: cite the standard (file + the rule); and (b) any baseline smell you spot: name it and quote the hunk. Distinguish hard violations from judgement calls — documented-standard breaches can be hard, but baseline smells are always judgement calls, and a documented repo standard overrides the baseline. Skip anything tooling enforces. Under 400 words."
|
|
65
91
|
|
|
66
92
|
**Spec sub-agent prompt** — include:
|
|
67
93
|
|
|
68
|
-
- The diff
|
|
94
|
+
- The same candidate manifest, captured candidate, `candidate_digest`, diff/inventory commands and commit list.
|
|
69
95
|
- The path or fetched contents of the spec.
|
|
70
96
|
- The brief: "Report: (a) requirements the spec asked for that are missing or partial; (b) behaviour in the diff that wasn't asked for (scope creep); (c) requirements that look implemented but where the implementation looks wrong. Quote the spec line for each finding. Under 400 words."
|
|
71
97
|
|
|
@@ -75,7 +101,9 @@ If the spec is missing, skip the Spec sub-agent and note this in the final repor
|
|
|
75
101
|
|
|
76
102
|
Present the two reports under `## Standards` and `## Spec` headings, verbatim or lightly cleaned. Do **not** merge or rerank findings — the two axes are deliberately separate (see _Why two axes_).
|
|
77
103
|
|
|
78
|
-
|
|
104
|
+
For Worktree mode, recapture the candidate digest after both reports return. If it differs from `candidate_digest`, mark both reports as reviewing a **stale candidate** and return `blocked`; the caller may start a new review against a new capture, but this invocation must not aggregate findings from different bytes. Recheck the same digest again at the completion/checkpoint boundary.
|
|
105
|
+
|
|
106
|
+
State the reviewed `review_mode`, fixed point, candidate digest and coverage before the two reports. End with a one-line summary: total findings per axis, and the worst issue _within each axis_ (if any). Don't pick a single winner across axes — that's the reranking the separation exists to prevent.
|
|
79
107
|
|
|
80
108
|
## Why two axes
|
|
81
109
|
|
|
@@ -5,6 +5,10 @@ description: Use after low-fidelity prototype review is approved and before Spec
|
|
|
5
5
|
|
|
6
6
|
# High Fidelity HTML Prototype
|
|
7
7
|
|
|
8
|
+
## 兼容入口
|
|
9
|
+
|
|
10
|
+
本 skill 仅服务旧名称或既有链接;新的高保真产出遵循 `yss-prototype-stage`,在 Codex 由 `product-design:index` 路由。它不批准生命周期门禁或实现就绪状态。
|
|
11
|
+
|
|
8
12
|
Use this skill only after `prototype-review` approves the low-fidelity prototype / interaction design. It turns reviewed product design into a high-fidelity, browser-runnable HTML artifact for business, UX, frontend, and API review.
|
|
9
13
|
|
|
10
14
|
## Required Inputs
|
|
@@ -16,33 +20,33 @@ Use this skill only after `prototype-review` approves the low-fidelity prototype
|
|
|
16
20
|
- Approved low-fidelity prototype review: `docs/.scratch/<feature>/design/<feature>-prototype-review.md` or equivalent issue comment.
|
|
17
21
|
- Project design system: `docs/design/design.md` and `docs/design/tokens/*`.
|
|
18
22
|
|
|
19
|
-
If low-fidelity `prototype-review` is blocked or missing, stop and return to `
|
|
23
|
+
If low-fidelity `prototype-review` is blocked or missing, stop and return to `yss-prototype-stage` / `prototype-review`.
|
|
20
24
|
|
|
21
25
|
## Ant Design Official Agent Baseline
|
|
22
26
|
|
|
23
|
-
Use the official Ant Design agent guidance as the
|
|
27
|
+
Use the official Ant Design agent guidance as the fact baseline through `yss-prototype-stage`:
|
|
24
28
|
|
|
25
29
|
- Read or reference `https://ant.design/docs/react/for-agents` when the task starts.
|
|
26
30
|
- Use `@ant-design/cli` before choosing unfamiliar components, props, tokens, or migration-sensitive APIs.
|
|
27
31
|
- Prefer direct CLI subcommands because `--help` may fail in some Node environments while subcommands still work.
|
|
28
32
|
|
|
29
|
-
|
|
33
|
+
Record the installed CLI version and the target AntD version in `prototype-evidence.yaml`. Use `--format json`; pass the recorded target version to version-sensitive queries:
|
|
30
34
|
|
|
31
35
|
```bash
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
antd design.md --format json
|
|
37
|
+
antd info Button --version <target_antd_version> --format json
|
|
38
|
+
antd token Button --version <target_antd_version> --format json
|
|
39
|
+
antd demo Select basic --version <target_antd_version> --format json
|
|
40
|
+
antd semantic Button --version <target_antd_version> --format json
|
|
41
|
+
antd lint <prototype-path> --format json
|
|
38
42
|
```
|
|
39
43
|
|
|
40
|
-
Use the
|
|
44
|
+
Use the project-selected version when one exists; otherwise record the CLI's actual default version before making version-sensitive decisions. Record every queried component in the evidence manifest.
|
|
41
45
|
|
|
42
46
|
## Core Rules
|
|
43
47
|
|
|
44
48
|
- Output is HTML: `docs/.scratch/<feature>/design/prototypes/index.html`.
|
|
45
|
-
- The prototype must use Ant Design v6.
|
|
49
|
+
- The prototype must use the approved Ant Design v6 target. Obtain component facts from the official `antd` CLI and record the exact CLI/target versions; do not infer version-sensitive APIs from memory.
|
|
46
50
|
- Use React >= 18, `antd@6.x`, and `@ant-design/icons@6.x` for interactive prototypes.
|
|
47
51
|
- Prefer Ant Design components and tokens over hand-built controls: `Layout`, `Menu`, `Breadcrumb`, `Button`, `Input`, `Select`, `Table`, `Form`, `Tabs`, `Steps`, `Drawer`, `Modal`, `Alert`, `Tooltip`, `Tag`, `Badge`, `DatePicker`, `Upload`, `Pagination`, `Empty`, `Spin`, `Result`.
|
|
48
52
|
- Do not create extra data-service or fixture artifacts. Use embedded sample data inside the HTML/JS for visual and interaction demonstration only.
|
|
@@ -71,7 +75,7 @@ Run a local browser verification before calling the artifact ready:
|
|
|
71
75
|
- Check that the page renders nonblank.
|
|
72
76
|
- Exercise the main flow and at least one failure / permission / conflict state.
|
|
73
77
|
- Check at least one desktop and one mobile viewport.
|
|
74
|
-
- Record verification evidence in
|
|
78
|
+
- Record verification evidence in `docs/.scratch/<feature>/verification/prototype-evidence.yaml` and link it from the review and confirmation record.
|
|
75
79
|
|
|
76
80
|
## Output Contract
|
|
77
81
|
|
|
@@ -5,7 +5,11 @@ description: Use when a Spec baseline or user story has UI impact and needs page
|
|
|
5
5
|
|
|
6
6
|
# Product Design Prototype
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
## 兼容入口
|
|
9
|
+
|
|
10
|
+
本 skill 仅服务旧名称或既有链接;它不是新的原型主入口。进入后先加载 `yss-prototype-stage`,并在 Codex 使用 `product-design:index` 产出设计资产。生命周期门禁仍由 `yss-product-lifecycle` 裁决。
|
|
11
|
+
|
|
12
|
+
其余内容只描述可复用的交互说明检查项,不能替代统一合同中的 AntD CLI、浏览器验证或用户确认。
|
|
9
13
|
|
|
10
14
|
## Required Inputs
|
|
11
15
|
|
|
@@ -25,7 +29,7 @@ If no Spec baseline exists, route back to `yss-product-lifecycle` / `grill-with-
|
|
|
25
29
|
5. Write the OpenAPI implication list: fields, filters, actions, errors, permissions, pagination, optimistic/concurrency states, and audit/version data.
|
|
26
30
|
6. For every primary page action, add an action-to-contract row: page/component, action label, `actionKey`, endpoint or explicit non-goal, request fields, response shape, permission behavior, state transition, idempotency/concurrency rule, and error codes.
|
|
27
31
|
7. For every P0 requirement containing verbs such as manage, maintain, configure, create, update, archive, retry, cancel, publish, export, or create draft, confirm the interaction spec either names the API implication or records that the capability is intentionally out of scope.
|
|
28
|
-
8. Hand off to `prototype-review`. After
|
|
32
|
+
8. Hand off to `prototype-review`. After approval, return to `yss-prototype-stage` for `product-design:index` 高保真产出、AntD CLI 与浏览器验证;未形成确认记录前不得冻结/校准 Spec 或进入 OpenAPI Draft。
|
|
29
33
|
9. 交互原型应标注 semantic token 角色、single primary action、interaction feedback 和不可逆操作确认;若页面使用 Ant Design,主题密度或暗色策略必须使用 theme algorithm,并在关键文本上复核 accessibility contrast。
|
|
30
34
|
|
|
31
35
|
## Tool Routing
|
|
@@ -5,7 +5,7 @@ description: Use when reviewing low-fidelity UI design, wireframes, prototype li
|
|
|
5
5
|
|
|
6
6
|
# Prototype Review
|
|
7
7
|
|
|
8
|
-
Use this skill as the low-fidelity
|
|
8
|
+
Use this skill as the independent low-fidelity review in `yss-prototype-stage`. The review is fail-closed: if the design cannot drive calibrated requirements, API, frontend acceptance, and slices, send it back to product design. `yss-product-lifecycle` alone records the resulting `gate.prototype-reviewed` decision.
|
|
9
9
|
|
|
10
10
|
## Trigger Boundary
|
|
11
11
|
|
|
@@ -17,6 +17,7 @@ Run this independent gate only when UI changes affect a primary user flow, navig
|
|
|
17
17
|
- `docs/.scratch/<feature>/design/<feature>-interaction-spec.md` or prototype link.
|
|
18
18
|
- State matrix, preferably based on `docs/design/templates/state-matrix-template.md`.
|
|
19
19
|
- Existing OpenAPI Draft only if the review is checking alignment; do not require OpenAPI before product design.
|
|
20
|
+
- `docs/.scratch/<feature>/verification/prototype-evidence.yaml` may be created as a pending evidence record, but CLI/browser validation belongs to the following high-fidelity verification gate.
|
|
20
21
|
|
|
21
22
|
## Review Gates
|
|
22
23
|
|
|
@@ -63,8 +64,11 @@ Run this independent gate only when UI changes affect a primary user flow, navig
|
|
|
63
64
|
### Frontend Prototype Readiness
|
|
64
65
|
- <component states, data dependencies, frontend acceptance notes>
|
|
65
66
|
|
|
67
|
+
### Lifecycle Evidence
|
|
68
|
+
- <persistent review path; blockers; `gate.prototype-reviewed` candidate result>
|
|
69
|
+
|
|
66
70
|
### Next Action
|
|
67
|
-
- <
|
|
71
|
+
- <yss-prototype-stage / return to product design>
|
|
68
72
|
```
|
|
69
73
|
|
|
70
74
|
Use `docs/design/templates/prototype-review-checklist.md` when writing a persistent review artifact.
|
|
@@ -5,6 +5,10 @@ description: Use when low-fidelity product screens, user flows, whiteboards, Exc
|
|
|
5
5
|
|
|
6
6
|
# Wireframe Prototype
|
|
7
7
|
|
|
8
|
+
## 兼容入口
|
|
9
|
+
|
|
10
|
+
本 skill 仅服务旧名称或既有链接;新的低保真产出遵循 `yss-prototype-stage`,在 Codex 由 `product-design:index` 路由。它不批准产品设计门禁。
|
|
11
|
+
|
|
8
12
|
Use this skill for low-fidelity product decisions. It favors fast, inspectable artifacts over polished visuals.
|
|
9
13
|
|
|
10
14
|
## Choose The Medium
|
|
@@ -49,4 +53,4 @@ Then link or paste this into `docs/.scratch/<feature>/design/<feature>-interacti
|
|
|
49
53
|
|
|
50
54
|
## Handoff
|
|
51
55
|
|
|
52
|
-
After the wireframe is captured, return to `
|
|
56
|
+
After the wireframe is captured, return to `yss-prototype-stage` to fill the interaction spec, state matrix, API implications, and then run `prototype-review`.
|