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
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ npx create-yss-spec@latest
|
|
|
33
33
|
- 旧、新资产内容冲突或清单 schema / mode 非法时 fail closed
|
|
34
34
|
- 保留模板的共享 skill 投影;生成实例可在尚未 `git init` 时运行模板校验
|
|
35
35
|
|
|
36
|
-
本次新增能力按 `2.1.
|
|
36
|
+
本次新增能力按 `2.1.4` 发布。`templateCommit` 会写入实例 metadata;“最新模板”指用户执行的 `npx create-yss-spec@latest` 所携带的最新已发布快照,CLI 运行时不会拉取模板仓库。
|
|
37
37
|
|
|
38
38
|
## 接管已有项目
|
|
39
39
|
|
package/package.json
CHANGED
|
@@ -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`.
|
|
@@ -18,10 +18,28 @@ description: Guide AI to correctly use Orval-generated API clients in Vue 3 micr
|
|
|
18
18
|
|
|
19
19
|
1. **契约状态已明确**:
|
|
20
20
|
- 已有生成客户端:可以直接集成。
|
|
21
|
-
- 新增或变更 API:必须先在 `docs/.scratch/<feature>/api/<feature>.yaml` 形成 OpenAPI Draft,经工程基线 / 架构 / Spec Delta 设计和设计审查后 Freeze
|
|
22
|
-
-
|
|
23
|
-
2. **API
|
|
24
|
-
3. **了解 OpenAPI**:查看 `openapi/openapi.json`
|
|
21
|
+
- 新增或变更 API:必须先在 `docs/.scratch/<feature>/api/<feature>.yaml` 形成 OpenAPI Draft,经工程基线 / 架构 / Spec Delta 设计和设计审查后 Freeze。冻结的 OpenAPI YAML 是唯一权威,JSON 仅为它的受控派生物。
|
|
22
|
+
- 如果接口尚未冻结、JSON 派生记录缺失或生成函数不存在,先回到 `yss-product-lifecycle` / `yss-openapi-governance`,不要手写临时路径、DTO 或响应结构。
|
|
23
|
+
2. **API 已生成**:在目标前端实现仓库中,按其既有的手动代码生成命令(例如 `pnpm generate:api`)刷新 API;本 Harness 不配置、不执行该命令,也不把它加入 CI。
|
|
24
|
+
3. **了解 OpenAPI**:查看 Freeze 记录、JSON 派生记录和 `openapi/openapi.json` 了解接口定义;不得把 JSON 或生成 TypeScript 当成可手改的源文件。
|
|
25
|
+
|
|
26
|
+
## 契约输入与生成链
|
|
27
|
+
|
|
28
|
+
客户端重新生成只能走下列受控链路:
|
|
29
|
+
|
|
30
|
+
```text
|
|
31
|
+
冻结的 OpenAPI YAML
|
|
32
|
+
→ 锁定的 redocly bundle 生成 openapi.json
|
|
33
|
+
→ 原样物化到目标前端
|
|
34
|
+
→ 既有前端代码生成流程(由目标项目手动执行)
|
|
35
|
+
→ 类型检查与调用方验证
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
1. 读取 `yss-openapi-governance` 产出的 OpenAPI Freeze 记录和 `docs/.scratch/<feature>/api/<feature>-json-export.md`;确认 YAML SHA-256、JSON SHA-256、Redocly CLI 版本、lockfile 引用和 JSON 校验均通过。治理 JSON 的唯一产物路径是 `docs/.scratch/<feature>/api/<feature>.json`。
|
|
39
|
+
2. JSON 导出由 `yss-openapi-governance` 负责。`api-integration` 只接受该 skill 留下的派生记录;记录中的锁定 `redocly bundle` 命令是治理导出证据,不是前端集成任意重跑的入口。
|
|
40
|
+
3. **受控交接**:若前端实现仓库需要本地输入,批准的 Cross-repo 子合同或项目脚本只能将上述治理 JSON 原样物化为 `<frontend>/openapi/openapi.json`;物化后的 SHA-256 必须与派生记录一致。禁止从 URL、Draft YAML、后端运行时或任意本地文件临时替换输入。
|
|
41
|
+
4. `api-integration` 只核对 JSON 派生记录、交接路径和 SHA-256,并把原始 JSON 交给既有前端代码生成流程;本 Harness 不读取或修改目标前端的生成器配置,不在此仓库执行生成,也不建立生成 CI 门禁。若 JSON SHA 与派生记录不一致,停止交接并回到治理流程。
|
|
42
|
+
5. 目标前端项目在需要时手动运行其既有生成命令、类型检查和受影响组件 / API 测试;将实际命令、结果、生成输入 SHA 和偏离写入 `YSS Skill Execution Result`。
|
|
25
43
|
|
|
26
44
|
## 📁 API 文件结构
|
|
27
45
|
|
|
@@ -329,7 +347,7 @@ const handleSubmit = async (payload: SubmitCmd) => {
|
|
|
329
347
|
request.post("/api/v1/todo/guess", payload as any);
|
|
330
348
|
```
|
|
331
349
|
|
|
332
|
-
✅ **正确做法**:确认 OpenAPI Draft/Freeze
|
|
350
|
+
✅ **正确做法**:确认 OpenAPI Draft/Freeze 状态;Freeze 后先由 `yss-openapi-governance` 从 YAML 生成并记录 JSON,再运行 `pnpm generate:api`,最后从 `@/api/generated/api` 和 `@/api/generated/model` 导入。
|
|
333
351
|
|
|
334
352
|
### ❌ 错误 3:缺少错误处理
|
|
335
353
|
|
|
@@ -386,7 +404,7 @@ const fetchData = async () => {
|
|
|
386
404
|
pnpm generate:api
|
|
387
405
|
```
|
|
388
406
|
|
|
389
|
-
生成前应确认 `docs/.scratch/<feature>/api/<feature>.yaml` 中的 OpenAPI Draft 已完成设计审查并 Freeze
|
|
407
|
+
生成前应确认 `docs/.scratch/<feature>/api/<feature>.yaml` 中的 OpenAPI Draft 已完成设计审查并 Freeze,且 `yss-openapi-governance` 已用锁定的 `redocly bundle` 留下对应 JSON 派生记录;随后才运行 `pnpm generate:api`。
|
|
390
408
|
|
|
391
409
|
2. **封装业务逻辑到 Hook**:
|
|
392
410
|
- 将 API 调用封装在 `hooks/use{Name}Api.ts`
|
|
@@ -404,6 +422,6 @@ const fetchData = async () => {
|
|
|
404
422
|
|
|
405
423
|
## 阶段 7 合同
|
|
406
424
|
|
|
407
|
-
-
|
|
425
|
+
- 只消费冻结的 OpenAPI YAML 派生出的 JSON、生成客户端和批准后的 `Slice Implementation Contract`;实现中的半成品 backend 不得作为稳定 source of truth。
|
|
408
426
|
- 客户端重新生成属于 `controlled-generation`;页面请求状态、错误处理、权限和用户交互属于 `behavior-tdd`。
|
|
409
427
|
- 必须按统一 `YSS Skill Execution Result` 返回生成客户端引用、调用文件、组件/API 测试、实际 pnpm 验证结果、偏离和 `new_impacts`;发现缺失路径或 schema 变化时暂停并回生命周期。
|
|
@@ -26,7 +26,7 @@ description: 用于生成完整的 YSS DDD 多模块后端脚手架。当用户
|
|
|
26
26
|
1. 确认项目名、基础包名、输出目录、数据库类型。
|
|
27
27
|
Harness 内输出目录必须是 `apps/backend/` 容器,生成器再以 `project_name` 创建 `apps/backend/<project>/`;禁止使用 `app/backend/`、`app/frontend/` 或把 `apps/backend/` 之外的容器根当作后端项目根。
|
|
28
28
|
2. 运行 `scripts/generate_scaffold.py` 生成骨架。
|
|
29
|
-
3. 检查生成的模块名、POM
|
|
29
|
+
3. 检查生成的模块名、POM、基础配置文件和包路径。
|
|
30
30
|
4. 由生命周期受控工作单元在生成项目根目录实际执行 `./mvnw validate`、`./mvnw test` 和 `./mvnw package`;生成器打印的下一步命令不构成验证证据。
|
|
31
31
|
5. 如需继续细化,再追加其他 YSS skill 补全领域、仓储和 Web。
|
|
32
32
|
|
|
@@ -57,7 +57,6 @@ python3 scripts/generate_scaffold.py \
|
|
|
57
57
|
- `*-adapter`
|
|
58
58
|
- `*-bootstrap`
|
|
59
59
|
- 基础配置、机械模板、构建脚本
|
|
60
|
-
- `bootstrap/src/main/resources/smart-doc.json` 基础配置
|
|
61
60
|
|
|
62
61
|
## 使用约束
|
|
63
62
|
|
|
@@ -70,8 +69,8 @@ python3 scripts/generate_scaffold.py \
|
|
|
70
69
|
- 生成后要检查依赖关系是否仍符合分层约束。
|
|
71
70
|
- 生成后必须继续使用 `yss-backend-scaffold-parent` 校验工程基线,再按垂直切片加载 `yss-domain`、`yss-repository`、`yss-web-controller` 等局部技能。
|
|
72
71
|
- 当前脚手架第一阶段仅支持经过验证的 `mysql`;未提供完整模板和验证的数据库类型不得伪装成已支持。
|
|
73
|
-
- 生成后的后端工程必须使用项目根目录 `./mvnw ...`
|
|
74
|
-
- 原型确认后,`scaffold_status=required` 才能进入本 skill;本 skill 的生成边界是工程结构、POM、配置、Wrapper
|
|
72
|
+
- 生成后的后端工程必须使用项目根目录 `./mvnw ...` 执行构建、测试、运行和 CI 验证;不得在 README、实施记录、Ticket、Review 或 Release 中默认写裸 `mvn ...`。既有仓库确实无法使用 wrapper 时,必须记录受控例外。
|
|
73
|
+
- 原型确认后,`scaffold_status=required` 才能进入本 skill;本 skill 的生成边界是工程结构、POM、配置、Wrapper 和机械模板,不是业务实现。
|
|
75
74
|
- 脚手架合同必须携带 `contract_id`、`contract_version`、Router draft 引用、生命周期批准引用、持久化引用、当前版本、允许写路径、预期证据文件和验证命令;字段缺失或版本过期时阻断。
|
|
76
75
|
- 运行生成器必须传入 `--contract-file`;生成器会校验合同 `status=approved`、`current_version`、`primary_skill`、`controlled-generation` 和固定三条验证命令,不接受仅凭任意字符串引用的放行。
|
|
77
76
|
- 生成项目必须写入非业务元数据清单 `.yss/scaffold-generation.json`,回勾合同 ID、版本、批准引用、生成输入、受控模式和固定验证命令;清单缺失时不得交给后续 Router。
|
|
@@ -81,19 +80,6 @@ python3 scripts/generate_scaffold.py \
|
|
|
81
80
|
- `.mvn/settings.xml` 只能通过 `${env.MAVEN_REPO_USERNAME}` 和 `${env.MAVEN_REPO_PASSWORD}` 读取 Maven 仓库凭据;内部仓库构建前由 CI 或本地安全环境注入变量,禁止把 Maven 仓库用户名、明文密码或 Maven 加密密码写入 skill、模板或生成工程。
|
|
82
81
|
- 涉及 API 契约时,先确认 `docs/.scratch/<feature>/api/<feature>.yaml` 中的 OpenAPI Draft / Freeze 状态;不要用脚手架生成结果反向替代产品契约设计。
|
|
83
82
|
|
|
84
|
-
## Smart Doc 配置参考
|
|
85
|
-
|
|
86
|
-
脚手架只生成不包含环境地址、Torna token 和业务项目名称的基础 `smart-doc.json`。参考真实项目配置时,仅提炼通用生成行为:
|
|
87
|
-
|
|
88
|
-
- `allInOne: true`:生成单一 OpenAPI 文档。
|
|
89
|
-
- `outPath: "target/openapi"`:生成文件输出到构建产物目录。
|
|
90
|
-
- `packageFilters: "<base_package>.*"`:按 Smart Doc 的正则语义扫描当前服务的 Controller 包。
|
|
91
|
-
- `componentType: "NORMAL"`:使用稳定的类名作为 schema 组件名。
|
|
92
|
-
- `inlineEnum: true`、`recursionLimit: 7`:保持枚举展开和递归深度策略。
|
|
93
|
-
- `requestExample`、`responseExample`、`createDebugPage` 默认关闭,避免把环境或示例数据带入契约产物。
|
|
94
|
-
|
|
95
|
-
`serverUrl`、`debugEnvUrl`、`openUrl`、`appToken`、`revisionLogs` 属于具体环境或项目治理配置,必须在实现仓库中按实际契约补充,不能写入通用脚手架模板。
|
|
96
|
-
|
|
97
83
|
## 按需读取
|
|
98
84
|
|
|
99
85
|
- 主脚本:`scripts/generate_scaffold.py`
|
|
@@ -45,36 +45,6 @@
|
|
|
45
45
|
<groupId>org.springframework.boot</groupId>
|
|
46
46
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
|
47
47
|
</plugin>
|
|
48
|
-
<plugin>
|
|
49
|
-
<artifactId>smart-doc-maven-plugin</artifactId>
|
|
50
|
-
<version>yss-4.0.0</version>
|
|
51
|
-
<configuration>
|
|
52
|
-
<configFile>src/main/resources/smart-doc.json</configFile>
|
|
53
|
-
<includes>
|
|
54
|
-
<!-- 如果配置了includes的情况下, 使用了jpa的分页需要include所使用的源码包 -->
|
|
55
|
-
<include>com.yss.cloud:yss-component-dto</include>
|
|
56
|
-
<include>com.yss.datamiddle:datamiddle-component-exception</include>
|
|
57
|
-
<include>com.yss.datamiddle:datamiddle-component-cache-starter</include>
|
|
58
|
-
<include>com.yss.datamiddle:valuation-outsourced-client</include>
|
|
59
|
-
<include>com.yss.cloud:yss-component-dir-client</include>
|
|
60
|
-
<include>com.yss.cloud:yss-component-dir</include>
|
|
61
|
-
<include>com.yss.cloud:yss-component-dir-common</include>
|
|
62
|
-
<include>com.yss.datamiddle:{{project_name}}-domain</include>
|
|
63
|
-
<include>com.yss.datamiddle:{{project_name}}-infrastructure</include>
|
|
64
|
-
<include>com.yss.datamiddle:{{project_name}}-domain</include>
|
|
65
|
-
</includes>
|
|
66
|
-
<projectName>${project.description}</projectName>
|
|
67
|
-
</configuration>
|
|
68
|
-
<groupId>com.github.shalousun</groupId>
|
|
69
|
-
<dependencies>
|
|
70
|
-
<!-- 显式添加 commons-codec 依赖 -->
|
|
71
|
-
<dependency>
|
|
72
|
-
<groupId>commons-codec</groupId>
|
|
73
|
-
<artifactId>commons-codec</artifactId>
|
|
74
|
-
<version>1.15</version> <!-- 或与项目一致的版本 -->
|
|
75
|
-
</dependency>
|
|
76
|
-
</dependencies>
|
|
77
|
-
</plugin>
|
|
78
48
|
</plugins>
|
|
79
49
|
</build>
|
|
80
50
|
</project>
|
|
@@ -119,7 +119,7 @@ description: "YSS 服务的后端开发脚手架框架和技术指南。在开
|
|
|
119
119
|
- Infrastructure 是否只实现 Gateway / Repository,并隔离 PO、Mapper、SQL、外部系统客户端。
|
|
120
120
|
- Web / Adapter 是否只做协议适配、鉴权上下文、参数校验、DTO/VO 转换和响应包装。
|
|
121
121
|
- Application 是否承载用例编排、事务边界和跨聚合协调,不把领域规则下沉到 Controller 或 Mapper。
|
|
122
|
-
- OpenAPI Draft / Freeze、ADR、测试 seam
|
|
122
|
+
- OpenAPI Draft / Freeze、ADR、测试 seam 和已批准的架构约束是否已经明确。
|
|
123
123
|
|
|
124
124
|
## 5. 常用命令
|
|
125
125
|
|
|
@@ -321,9 +321,6 @@ class ScaffoldGenerator:
|
|
|
321
321
|
required_files = [
|
|
322
322
|
self.project_root / "pom.xml",
|
|
323
323
|
self.project_root / f"{self.project_name}-bootstrap" / "pom.xml",
|
|
324
|
-
self.project_root
|
|
325
|
-
/ f"{self.project_name}-bootstrap"
|
|
326
|
-
/ "src/main/resources/smart-doc.json",
|
|
327
324
|
self.project_root / "mvnw",
|
|
328
325
|
self.project_root / ".yss/scaffold-generation.json",
|
|
329
326
|
]
|
|
@@ -331,9 +328,7 @@ class ScaffoldGenerator:
|
|
|
331
328
|
if missing:
|
|
332
329
|
raise FileNotFoundError(f"生成产物缺失: {', '.join(missing)}")
|
|
333
330
|
|
|
334
|
-
|
|
335
|
-
json.loads(smart_doc_path.read_text(encoding="utf-8"))
|
|
336
|
-
manifest = json.loads(required_files[4].read_text(encoding="utf-8"))
|
|
331
|
+
manifest = json.loads(required_files[3].read_text(encoding="utf-8"))
|
|
337
332
|
if (
|
|
338
333
|
manifest.get("contract_id") != self.contract_id
|
|
339
334
|
or manifest.get("contract_version") != self.contract_version
|
|
@@ -343,14 +338,6 @@ class ScaffoldGenerator:
|
|
|
343
338
|
!= ["./mvnw validate", "./mvnw test", "./mvnw package"]
|
|
344
339
|
):
|
|
345
340
|
raise ValueError("脚手架生成元数据清单与当前批准合同或固定验证命令不一致")
|
|
346
|
-
bootstrap_pom = required_files[1].read_text(encoding="utf-8")
|
|
347
|
-
plugin_versions = re.findall(
|
|
348
|
-
r"<artifactId>smart-doc-maven-plugin</artifactId>\s*<version>([^<]+)</version>",
|
|
349
|
-
bootstrap_pom,
|
|
350
|
-
)
|
|
351
|
-
if plugin_versions != ["yss-4.0.0"]:
|
|
352
|
-
raise ValueError("smart-doc-maven-plugin 必须且只能使用 yss-4.0.0")
|
|
353
|
-
|
|
354
341
|
binary_suffixes = {".class", ".db", ".jar", ".png", ".jpg", ".jpeg", ".gif"}
|
|
355
342
|
for path in self.project_root.rglob("*"):
|
|
356
343
|
if not path.is_file() or path.suffix in binary_suffixes:
|
|
@@ -452,17 +439,10 @@ class ScaffoldGenerator:
|
|
|
452
439
|
/ f"{self.project_name}-bootstrap"
|
|
453
440
|
/ "src/main/resources/logback-spring.xml",
|
|
454
441
|
),
|
|
455
|
-
(
|
|
456
|
-
self.config_template_dir / "smart-doc.json.template",
|
|
457
|
-
self.project_root
|
|
458
|
-
/ f"{self.project_name}-bootstrap"
|
|
459
|
-
/ "src/main/resources/smart-doc.json",
|
|
460
|
-
),
|
|
461
442
|
]
|
|
462
443
|
self._render_and_write_templates(config_templates)
|
|
463
444
|
print(" ✓ application.yml")
|
|
464
445
|
print(" ✓ logback-spring.xml")
|
|
465
|
-
print(" ✓ smart-doc.json")
|
|
466
446
|
|
|
467
447
|
def _generate_database_scripts(self):
|
|
468
448
|
"""只保留数据库目录布局,不生成业务表或初始化数据。"""
|
|
@@ -13,6 +13,7 @@ description: Use when YSS 产品设计系统与 Ant Design 企业级 UI 风格
|
|
|
13
13
|
- 项目 token 快照:`docs/design/tokens/theme.json`、`docs/design/tokens/tokens.default.json`、`docs/design/tokens/tokens.dark.json`、`docs/design/tokens/tokens.compact.json`、`docs/design/tokens/variables.css`、`docs/design/tokens/variables.dark.css`。
|
|
14
14
|
- 本技能执行清单:`references/design-system.md`,用于 Agent 执行和评审,不替代 `docs/design/design.md`。
|
|
15
15
|
- 历史输入包:`/Users/zhudaoming/Downloads/Product-Design-System`,只用于追溯首次引入来源,不作为后续工程依赖。
|
|
16
|
+
- 原型阶段合同:`yss-prototype-stage`,用于统一跨 Agent 的原型资产、AntD 事实和浏览器验证证据。
|
|
16
17
|
|
|
17
18
|
如果只需要快速判断,先读本文件。若要写 UI 规范、实现页面、评审设计或调整 token,必须读项目内 `docs/design/design.md`;若要执行评审或实现检查,再读 `references/design-system.md`。
|
|
18
19
|
|
|
@@ -21,7 +22,7 @@ description: Use when YSS 产品设计系统与 Ant Design 企业级 UI 风格
|
|
|
21
22
|
1. 先判断任务阶段:设计系统引入 / 产品设计 / 原型评审 / 前端实现 / UI 改造 / 主题 token 落地。
|
|
22
23
|
2. 读取已有资产:`docs/design/design.md`、相关 Spec、交互说明、状态矩阵、OpenAPI Draft、现有页面代码。
|
|
23
24
|
3. 按设计系统基线约束输出或修改产物:颜色、排版、间距、圆角、动效、组件、状态、响应式。
|
|
24
|
-
4.
|
|
25
|
+
4. 若是产品设计阶段,先使用 `yss-prototype-stage`;Codex 以 `product-design:index` 为主入口,其他 Agent 必须交付等价合同资产和证据。
|
|
25
26
|
5. 若是前端实现阶段,配合 `yss-ui`、`yss-components`、`yss-formily`、`yss-page-module-development`,但本技能负责风格与体验一致性门禁。
|
|
26
27
|
6. 若发现现有设计系统文档不足,先更新 `docs/design/design.md`,再让实现或评审引用该文档。
|
|
27
28
|
|
|
@@ -76,15 +77,15 @@ description: Use when YSS 产品设计系统与 Ant Design 企业级 UI 风格
|
|
|
76
77
|
|
|
77
78
|
| 场景 | 配合技能 |
|
|
78
79
|
| --- | --- |
|
|
79
|
-
| Spec 后做页面 / 原型 / 交互说明 | `product-design
|
|
80
|
+
| Spec 后做页面 / 原型 / 交互说明 | `yss-prototype-stage` → `product-design:index` |
|
|
80
81
|
| 低保真原型进入高保真前评审 | `prototype-review` |
|
|
81
|
-
| 低保真评审通过后的高保真 HTML 原型 | `high-fidelity-html-prototype` |
|
|
82
|
-
| 低保真线框或流程图 | `wireframe-prototype` / `excalidraw-diagram-generator` |
|
|
82
|
+
| 低保真评审通过后的高保真 HTML 原型 | `yss-prototype-stage`;`high-fidelity-html-prototype` 仅兼容入口 |
|
|
83
|
+
| 低保真线框或流程图 | `product-design:index` 或 `wireframe-prototype` 兼容入口 / `excalidraw-diagram-generator` |
|
|
83
84
|
| 前端页面实现 | `yss-ui` / `yss-page-module-development` |
|
|
84
85
|
| 表单 schema | `yss-formily` |
|
|
85
86
|
| YTable / YTree / 高度自适应 | `yss-components` / `yss-use-table-height` / `yss-use-tree-height` |
|
|
86
87
|
| Ant Design v6 组件 / token / demo 查询 | 官方 `@ant-design/cli` / `https://ant.design/docs/react/for-agents` |
|
|
87
|
-
| API 契约 / 接入 | `
|
|
88
|
+
| API 契约 / 接入 | `yss-openapi-governance` / `api-integration` |
|
|
88
89
|
|
|
89
90
|
## 更新设计系统
|
|
90
91
|
|
|
@@ -21,7 +21,9 @@ branch: template
|
|
|
21
21
|
- `app_name`:应用名。
|
|
22
22
|
- `microapp_name`:微应用注册名。
|
|
23
23
|
- `base_route`:基础路由。
|
|
24
|
-
-
|
|
24
|
+
- OpenAPI Freeze 记录:已批准的冻结 YAML 版本和引用。
|
|
25
|
+
- OpenAPI JSON 派生记录:`docs/.scratch/<feature>/api/<feature>-json-export.md`,包含 YAML / JSON SHA-256、Redocly CLI 版本和 lockfile 引用。
|
|
26
|
+
- 冻结 JSON 产物:`docs/.scratch/<feature>/api/<feature>.json`;这是唯一允许交给既有前端代码生成流程的上游产物。
|
|
25
27
|
- `target_git_url` 或 `output_dir`:目标实现仓库或本地输出目录。
|
|
26
28
|
- `package_manager`:默认 pnpm。
|
|
27
29
|
- `init_git`:是否初始化 Git;默认必须用户明确确认。
|
|
@@ -33,9 +35,10 @@ branch: template
|
|
|
33
35
|
3. 只读检查模板分支是否可访问:`git ls-remote --heads <repo> template`。
|
|
34
36
|
4. 需要生成工程时,克隆或复制模板到用户确认的目标位置;不得默认写入 Harness 仓库。
|
|
35
37
|
5. 替换应用名、微应用名、路由、`micro-config.json`、环境变量和 README 中的模板占位。
|
|
36
|
-
6.
|
|
37
|
-
7.
|
|
38
|
-
8.
|
|
38
|
+
6. 核验 OpenAPI Freeze 记录和 OpenAPI JSON 派生记录;通过批准的 Cross-repo 子合同或项目脚本,将记录中的 JSON 原样物化到 `<frontend>/openapi/openapi.json`,并再次核对 SHA-256。
|
|
39
|
+
7. 保持模板既有的前端代码生成配置不变;本 Harness 只将 SHA-256 一致的 JSON 原样交给既有前端代码生成流程,不修改该配置、不在此仓库执行生成,也不设置生成 CI 门禁。目标前端项目在需要时手动运行其既有命令。
|
|
40
|
+
8. 记录目标前端项目的 install / lint / type-check / build 命令,以及既有客户端生成命令(如有);生成命令仅作为目标项目的手动验证项。
|
|
41
|
+
9. 按 `docs/templates/implementation-repo-registry-template.md` 回写前端实现仓库登记。
|
|
39
42
|
|
|
40
43
|
## Expected Template Shape
|
|
41
44
|
|
|
@@ -55,7 +58,9 @@ packages/package.json
|
|
|
55
58
|
|
|
56
59
|
- 不直接创建远端 Git 项目,除非用户明确要求。
|
|
57
60
|
- 不推送、不创建 MR / PR,除非用户明确要求。
|
|
58
|
-
- 不绕过 OpenAPI Draft / Freeze;API client
|
|
61
|
+
- 不绕过 OpenAPI Draft / Freeze;API client 只消费与 OpenAPI JSON 派生记录 SHA-256 一致的冻结 JSON。
|
|
62
|
+
- 不接受任意 URL、未冻结 YAML、后端运行时输出或手工 JSON 作为既有前端代码生成流程的输入。
|
|
63
|
+
- 不修改模板既有的代码生成配置,也不把客户端生成加入 CI。
|
|
59
64
|
- 不得把 `apps/frontend/` 容器根登记为项目根;Harness 内每个前端项目必须有独立的 `apps/frontend/<project>/` 路径。
|
|
60
65
|
- 不把模板示例页面当作业务功能交付。
|
|
61
66
|
- 生成后仍需使用 `yss-page-module-development`、`yss-components`、`api-integration` 等专项 skill 实现业务页面。
|
|
@@ -65,6 +70,7 @@ packages/package.json
|
|
|
65
70
|
- 前端工程生成位置或目标仓库信息。
|
|
66
71
|
- 模板来源和 commit / branch 证据。
|
|
67
72
|
- 替换参数清单。
|
|
68
|
-
- install / lint / type-check / build
|
|
73
|
+
- install / lint / type-check / build 命令,以及目标前端项目既有的手动客户端生成命令(如有)。
|
|
74
|
+
- OpenAPI Freeze 记录、OpenAPI JSON 派生记录、JSON SHA-256 和 `openapi/openapi.json` 物化证据。
|
|
69
75
|
- Harness 实现仓库登记草案。
|
|
70
76
|
- 未覆盖项和 `TODO-HUMAN-REVIEW`。
|