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
|
@@ -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`。
|
|
@@ -1,34 +1,33 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: yss-openapi-draft-review
|
|
3
|
-
description: Use when reviewing a `docs/.scratch/<feature>/api/` OpenAPI Draft before Engineering Baseline, YSS DDD Review, architecture/Spec Delta design, OpenAPI Freeze, vertical slicing, frontend/backend implementation, or when checking P0 requirement coverage, page action to endpoint mapping, YSS response wrappers, errors,
|
|
3
|
+
description: Use when reviewing a `docs/.scratch/<feature>/api/` OpenAPI Draft before Engineering Baseline, YSS DDD Review, architecture/Spec Delta design, OpenAPI Freeze, vertical slicing, frontend/backend implementation, or when checking P0 requirement coverage, page action to endpoint mapping, YSS response wrappers, errors, pagination, optimistic locking, and contract test seams.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# YSS OpenAPI Draft Review
|
|
7
7
|
|
|
8
|
-
Use this skill after OpenAPI Draft creation and before Engineering Baseline / YSS DDD Review. It is a fail-closed contract review skill for design-time OpenAPI files under `docs/.scratch/<feature>/api/`; it
|
|
8
|
+
Use this skill after OpenAPI Draft creation and before Engineering Baseline / YSS DDD Review. It is a fail-closed contract review skill for design-time OpenAPI files under `docs/.scratch/<feature>/api/`; it does not bundle JSON or generate Orval clients.
|
|
9
9
|
|
|
10
10
|
## Required Inputs
|
|
11
11
|
|
|
12
|
-
- OpenAPI Draft under `docs/.scratch/<feature>/api/<feature>.yaml
|
|
12
|
+
- OpenAPI Draft under `docs/.scratch/<feature>/api/<feature>.yaml`,作为唯一权威的单一 OAS 3.1 YAML document;生命周期元数据和 Freeze 决策位于相邻 Markdown 记录。
|
|
13
13
|
- Calibrated Spec.
|
|
14
14
|
- Interaction spec / prototype review when UI exists.
|
|
15
15
|
- YSS engineering baseline rules, especially `SingleResult<T>`, `MultiResult<T>`, and `PageResult<T>`.
|
|
16
16
|
|
|
17
17
|
## Review Flow
|
|
18
18
|
|
|
19
|
-
1. Consume fresh automated evidence for YAML parsing, `$ref`, path parameters, and lint. Generate it once with the Draft or when the Draft changes; do not manually repeat unchanged structural checks.
|
|
20
|
-
2. Build a P0 traceability matrix from Spec functional requirements and interaction actions to OpenAPI paths, schemas, errors, and contract tests.
|
|
21
|
-
3. Check page action coverage: every action has `actionKey`, endpoint or explicit non-goal,
|
|
19
|
+
1. Consume fresh automated evidence for YAML parsing, single-document OAS 3.1 shape, `$ref`, path parameters, and lint. Generate it once with the Draft or when the Draft changes; do not manually repeat unchanged structural checks.
|
|
20
|
+
2. Build a P0 traceability matrix from Spec functional requirements and interaction actions to OpenAPI paths, schemas, errors, and contract tests. Each UI action must map to a stable `operationId` and `x-yss-action-key` or an equivalent traceability entry.
|
|
21
|
+
3. Check page action coverage: every action has `actionKey`, endpoint or explicit non-goal, state transition, idempotency/concurrency rule, and error codes. When the Spec explicitly changes authentication or authorization behavior, trace that behavior through the same matrix.
|
|
22
22
|
4. Check object lifecycle coverage: manage/maintain/configure/create/update/archive/retry/cancel/publish/export/create-draft semantics have endpoints or explicit scope downgrades.
|
|
23
23
|
5. Check YSS API baseline: REST shape, `SingleResult<T>` for single objects, `MultiResult<T>` for non-page lists, `PageResult<T>` for pagination, and stable DTO/schema names.
|
|
24
|
-
6. Check error
|
|
25
|
-
7.
|
|
26
|
-
8. Output a persistent review artifact under `docs/.scratch/<feature>/architecture/` or update the existing one.
|
|
24
|
+
6. Check error contracts: field-level errors, model-level errors, disabled reasons, gate failures, and conflict responses. When the Spec explicitly changes authentication or authorization behavior, include its `401` / `403` and resource-filtering semantics here.
|
|
25
|
+
7. Output a persistent review artifact under `docs/.scratch/<feature>/architecture/` or update the existing one.
|
|
27
26
|
|
|
28
27
|
## Automation Boundary
|
|
29
28
|
|
|
30
|
-
- Automated checks own YAML syntax, `$ref` resolution, path-parameter consistency, OpenAPI lint, and stable machine-checkable style rules.
|
|
31
|
-
- Human or independent semantic review owns P0 traceability, page-action coverage,
|
|
29
|
+
- Automated checks own YAML single-document syntax, `$ref` resolution, path-parameter consistency, OpenAPI lint, and stable machine-checkable style rules.
|
|
30
|
+
- Human or independent semantic review owns P0 traceability, page-action coverage, error behavior, concurrency/idempotency, scope downgrades, contract-test seams, and any explicitly specified authentication or authorization behavior.
|
|
32
31
|
- Fresh passing automation evidence may be referenced by the semantic review; copying the same findings into a second checklist is unnecessary.
|
|
33
32
|
- Re-run structural automation only when the Draft, ruleset, or referenced schema changes.
|
|
34
33
|
|
|
@@ -40,8 +39,8 @@ Block if any of these are true:
|
|
|
40
39
|
- A UI action has no endpoint/non-goal mapping.
|
|
41
40
|
- A configurable rule or gate lacks a source, owner, fixed/default decision, or API representation.
|
|
42
41
|
- Pagination does not align with YSS `PageResult<T>` or documented exception.
|
|
43
|
-
- Draft has no contract test seam for import, mapping coverage, validation, review, publish, export,
|
|
44
|
-
-
|
|
42
|
+
- Draft has no contract test seam for import, mapping coverage, validation, review, publish, export, and optimistic locking.
|
|
43
|
+
- YAML contains lifecycle frontmatter / root metadata, or the proposed JSON client input is not explicitly deferred until Freeze and governance export.
|
|
45
44
|
|
|
46
45
|
## Output Contract
|
|
47
46
|
|
|
@@ -61,14 +60,11 @@ Block if any of these are true:
|
|
|
61
60
|
### YSS Baseline
|
|
62
61
|
- <response wrappers, DDD boundary implications, implementation feasibility>
|
|
63
62
|
|
|
64
|
-
### Security Review
|
|
65
|
-
- <red lines and human-review items>
|
|
66
|
-
|
|
67
63
|
### Contract Test Checklist
|
|
68
64
|
- <minimum contract tests before OpenAPI Freeze>
|
|
69
65
|
|
|
70
66
|
### Next Action
|
|
71
|
-
- <return to OpenAPI Draft / enter Engineering Baseline / architecture design>
|
|
67
|
+
- <return to OpenAPI Draft / enter Engineering Baseline / architecture design / request YAML-to-JSON export after Freeze>
|
|
72
68
|
```
|
|
73
69
|
|
|
74
70
|
Prefer `docs/api/templates/openapi-draft-review-checklist.md` when a tabular checklist is useful.
|
|
@@ -1,145 +1,120 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: yss-openapi-governance
|
|
3
|
-
description: Use when
|
|
3
|
+
description: Use when creating, governing, linting, freezing, or exporting YSS OpenAPI 3.1 design-time contracts. The frozen YAML is the only authority; this skill produces the reviewed JSON derivative consumed by frontend client generation.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# YSS OpenAPI Governance
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
本 skill 负责 YSS OpenAPI 的 **YAML-first** 工作流:
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
```text
|
|
11
|
+
Spec / 设计输入 → OpenAPI YAML Draft → 审查与 Freeze → JSON 派生物 → 下游既有前端代码生成流程
|
|
12
|
+
```
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
`docs/.scratch/<feature>/api/<feature>.yaml` 是唯一权威的 OpenAPI 3.1 契约。JSON 只能由冻结后的 YAML 可复现地产生,用于前端代码生成或分发;不得手写、不得反向覆盖 YAML、不得把运行时代码当成设计契约来源。
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
- Running Spectral or Redocly CLI against `docs/.scratch/<feature>/api/<feature>.yaml`.
|
|
16
|
-
- Checking YSS response wrappers, error contracts, pagination, permissions, security red lines, and contract-test seams.
|
|
17
|
-
- Comparing generated `openapi.json` against frozen design rules when backend code is already implemented.
|
|
18
|
-
- Writing or updating governance notes under `docs/.scratch/<feature>/api/`, `docs/.scratch/<feature>/architecture/`, or the active Spec Delta design.
|
|
16
|
+
## 边界与职责
|
|
19
17
|
|
|
20
|
-
|
|
18
|
+
使用 `yss-openapi-governance`:
|
|
21
19
|
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
20
|
+
- 基于冻结前的 Spec、产品设计、架构约束创建或更新 `docs/.scratch/<feature>/api/<feature>.yaml`。
|
|
21
|
+
- 保证 YAML 是单一 YAML document、根节点为 `openapi: 3.1.0`,且不把 `pipeline`、`stage`、`status`、`owner` 等生命周期元数据写入 OpenAPI 根节点。
|
|
22
|
+
- 运行受项目 lockfile 约束的 lint / bundle,检查 `$ref`、operationId、响应包装、错误、分页、幂等和契约测试 seam;只有 Spec 明确改变认证或授权行为时才检查对应契约。
|
|
23
|
+
- 在 OpenAPI Freeze 后,用锁定的 Redocly CLI 将 YAML bundle 为 JSON,并记录可重现证据。
|
|
24
|
+
- 维护治理记录、Freeze 记录和 JSON 派生记录。
|
|
25
|
+
- Spec Delta 影响存在时,在 `docs/.scratch/<feature>/spec-delta/` 记录与冻结 YAML 的关系;没有影响时明确记录 `not-applicable`。
|
|
25
26
|
|
|
26
|
-
|
|
27
|
+
不使用本 skill 来替代:
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
- `yss-openapi-draft-review`:独立、fail-closed 的语义评审与 P0 追踪。
|
|
30
|
+
- `api-integration`:消费已派生的 JSON,并在目标前端实现仓库中接入既有客户端生成流程。
|
|
31
|
+
- `to-tickets`:在 Freeze 后正式化垂直切片。
|
|
29
32
|
|
|
30
|
-
|
|
31
|
-
npx --yes @stoplight/spectral-cli lint -r .spectral.yaml docs/.scratch/<feature>/api/<feature>.yaml
|
|
32
|
-
```
|
|
33
|
+
## 受控工具链
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
在持有冻结 YAML 与派生记录的项目工作区中,将 `@redocly/cli` 固定在 `devDependencies` 并提交对应的 pnpm lockfile。使用项目脚本或下列等价命令;不得使用浮动 `npx --yes`、全局安装或未记录版本的转换器。
|
|
35
36
|
|
|
36
37
|
```bash
|
|
37
|
-
|
|
38
|
+
pnpm exec redocly lint docs/.scratch/<feature>/api/<feature>.yaml
|
|
39
|
+
|
|
40
|
+
pnpm exec redocly bundle \
|
|
41
|
+
docs/.scratch/<feature>/api/<feature>.yaml \
|
|
42
|
+
--output docs/.scratch/<feature>/api/<feature>.json \
|
|
43
|
+
--ext json \
|
|
44
|
+
--component-renaming-conflicts-severity=error \
|
|
45
|
+
--metafile docs/.scratch/<feature>/api/<feature>.bundle-metafile.json
|
|
38
46
|
```
|
|
39
47
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
## Governance Flow
|
|
43
|
-
|
|
44
|
-
1. Locate contract inputs.
|
|
45
|
-
- Check `docs/.scratch/<feature>/api/<feature>.yaml` first.
|
|
46
|
-
- If only generated contracts exist, inspect `*/target/openapi/openapi.json` or frontend `openapi/openapi.json` as implemented evidence, not as design authority.
|
|
47
|
-
- Confirm whether the task is pre-freeze design governance or post-implementation conformance checking.
|
|
48
|
-
|
|
49
|
-
2. Detect existing lint configuration.
|
|
50
|
-
- Look for `.spectral.yaml`, `.spectral.yml`, `redocly.yaml`, `redocly.yml`, `package.json` scripts, or CI jobs.
|
|
51
|
-
- Reuse the existing toolchain and scripts when present.
|
|
52
|
-
- If both Spectral and Redocly exist, run the repo's documented CI path first, then targeted local lint.
|
|
53
|
-
|
|
54
|
-
3. Validate baseline OpenAPI correctness.
|
|
55
|
-
- Parse YAML/JSON successfully.
|
|
56
|
-
- Check OpenAPI version, `$ref` resolution, duplicate `operationId`, path parameter coverage, unused schemas, and invalid examples.
|
|
57
|
-
- Bundle or dereference only when needed for tooling; keep source files maintainable.
|
|
58
|
-
|
|
59
|
-
4. Apply YSS API governance rules.
|
|
60
|
-
- Paths are versioned under `/api/v1/` unless a documented exception exists.
|
|
61
|
-
- Operations use stable `operationId` values suitable for Orval/client generation.
|
|
62
|
-
- Single-object responses use `SingleResult<T>`.
|
|
63
|
-
- Non-page list responses use `MultiResult<T>`.
|
|
64
|
-
- Page responses use `PageResult<T>` and expose the project's standard page request/response fields.
|
|
65
|
-
- Error responses include a consistent envelope, machine-readable code, human-readable message, and field/model-level validation shape where applicable.
|
|
66
|
-
- Permission failures avoid data leakage; 403/disabled-action behavior is explicit.
|
|
67
|
-
- Mutating operations define idempotency, optimistic locking, or conflict semantics when repeated submission or concurrent edits are possible.
|
|
68
|
-
- Download, upload, export, import, audit, sensitive data, SQL, DDL, authentication, authorization, and encryption surfaces are marked for human/security review when they touch AGENTS.md safety red lines.
|
|
69
|
-
- Contract-test seams are named for each P0 workflow and critical error path.
|
|
70
|
-
|
|
71
|
-
5. Produce governance output.
|
|
72
|
-
- For quick checks, report lint command, pass/fail result, and blocking findings with file paths.
|
|
73
|
-
- For durable decisions, write or update a Chinese governance artifact under `docs/.scratch/<feature>/api/` or `docs/.scratch/<feature>/architecture/`.
|
|
74
|
-
- For active Spec Delta work, reference `docs/.scratch/<feature>/spec-delta/` and keep rules aligned with the related design, task, and spec artifacts.
|
|
75
|
-
|
|
76
|
-
## Minimal Spectral Baseline
|
|
77
|
-
|
|
78
|
-
When the repo lacks a ruleset and the user asks to add one, start with a small `.spectral.yaml` that extends the OpenAPI baseline and encodes only stable YSS rules. Keep controversial product semantics in review checklists until the team agrees.
|
|
79
|
-
|
|
80
|
-
```yaml
|
|
81
|
-
extends:
|
|
82
|
-
- spectral:oas
|
|
83
|
-
|
|
84
|
-
rules:
|
|
85
|
-
yss-paths-versioned:
|
|
86
|
-
description: YSS API paths should be versioned under /api/v1.
|
|
87
|
-
message: "Path '{{property}}' should start with /api/v1/ or document an exception."
|
|
88
|
-
severity: warn
|
|
89
|
-
given: "$.paths[*]~"
|
|
90
|
-
then:
|
|
91
|
-
function: pattern
|
|
92
|
-
functionOptions:
|
|
93
|
-
match: "^/api/v1/"
|
|
94
|
-
|
|
95
|
-
yss-operation-id-required:
|
|
96
|
-
description: Operation IDs must be stable for generated clients and contract tests.
|
|
97
|
-
severity: error
|
|
98
|
-
given: "$.paths[*][*]"
|
|
99
|
-
then:
|
|
100
|
-
field: operationId
|
|
101
|
-
function: truthy
|
|
102
|
-
|
|
103
|
-
yss-tags-required:
|
|
104
|
-
description: Operations should be grouped by bounded context or module.
|
|
105
|
-
severity: warn
|
|
106
|
-
given: "$.paths[*][*]"
|
|
107
|
-
then:
|
|
108
|
-
field: tags
|
|
109
|
-
function: truthy
|
|
110
|
-
```
|
|
48
|
+
默认 bundle 保留内部 `$ref`,不要为图省事加入 `--dereferenced`;递归模型或循环引用需要保留其可表示的 `$ref` 结构。若项目将命令包装为 `pnpm openapi:bundle`,该脚本必须实际执行上述 `redocly bundle` 语义,并在记录中写明脚本和已锁定的包版本。
|
|
111
49
|
|
|
112
|
-
|
|
50
|
+
`$ref` 默认只允许引用本 feature API 目录内的相对文件;禁止远程 URL、绝对路径以及越出该目录的路径遍历。需要共享组件或例外时,先在治理 / 架构记录中列出允许位置、所有者与 Freeze 影响,再执行 bundle。
|
|
113
51
|
|
|
114
|
-
##
|
|
52
|
+
## 治理流程
|
|
115
53
|
|
|
116
|
-
|
|
54
|
+
1. **建立或读取 YAML Draft**
|
|
55
|
+
- 读取 Spec、产品设计 / 状态矩阵、架构约束和既有 Freeze 记录。
|
|
56
|
+
- 在 `docs/.scratch/<feature>/api/<feature>.yaml` 创建或更新单一 OAS 3.1 文档;生命周期状态写入相邻 Markdown 记录,不写入 YAML 前置元数据。
|
|
57
|
+
- 所有操作使用稳定、可生成客户端的 `operationId`;页面动作可通过 `x-yss-action-key` 或同路径的追踪矩阵关联。
|
|
117
58
|
|
|
118
|
-
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
- A safety-red-line area is implemented as final contract without `TODO-HUMAN-REVIEW` or equivalent review record.
|
|
123
|
-
- Contract tests cannot be identified for P0 flows and critical error paths.
|
|
59
|
+
2. **运行结构与治理校验**
|
|
60
|
+
- 先执行项目锁定的 `pnpm exec redocly lint` 或等价 CI 脚本。
|
|
61
|
+
- 检查 YAML 可解析、`$ref` 可解析、路径参数完整、operationId 唯一、examples 合法、schema 命名稳定。
|
|
62
|
+
- 检查 `/api/v1/` 版本策略(或记录例外)、`SingleResult<T>` / `MultiResult<T>` / `PageResult<T>`、统一错误结构、分页、幂等 / 乐观锁和契约测试 seam。Spec 明确改变认证或授权行为时,把对应 `401` / `403`、资源过滤和错误语义作为普通 API 行为检查。
|
|
124
63
|
|
|
125
|
-
|
|
64
|
+
3. **独立 Draft Review 与 Freeze**
|
|
65
|
+
- 将 fresh lint 证据交给 `yss-openapi-draft-review`;阻断项未关闭前,YAML 仍是 review-only Draft,不得生成生产客户端。
|
|
66
|
+
- Freeze 记录必须引用 YAML 路径、Git ref(如适用)和 YAML SHA-256。冻结后 API 行为变更必须先回到 YAML Draft 与审查。
|
|
126
67
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
68
|
+
4. **从冻结 YAML 派生 JSON**
|
|
69
|
+
- 使用上面的锁定 `redocly bundle` 命令生成 `docs/.scratch/<feature>/api/<feature>.json`,JSON 不纳入人工编辑面。
|
|
70
|
+
- 对输出 JSON 重新执行解析 / lint(按项目工具链),确认 bundle 未产生组件重名冲突或无法解析的引用。
|
|
71
|
+
- 写入 `docs/.scratch/<feature>/api/<feature>-json-export.md`,可从 `docs/api/templates/openapi-json-export-record-template.md` 创建。
|
|
72
|
+
- 记录 YAML SHA-256、JSON SHA-256、OAS 版本、Redocly CLI 版本与 lockfile 引用、完整命令、metafile、`$ref` 例外以及结果。
|
|
73
|
+
|
|
74
|
+
5. **交给下游前端**
|
|
75
|
+
- 仅当 Freeze、JSON 派生记录和 JSON 校验均通过时,才把派生 JSON 交给 `api-integration` 与目标前端实现仓库。
|
|
76
|
+
- JSON 的治理产物固定为 `docs/.scratch/<feature>/api/<feature>.json`。跨仓库时只能由批准的 Cross-repo 子合同或项目脚本将同一字节内容物化为 `<frontend>/openapi/openapi.json`,并记录两端相同的 SHA-256 与交接路径。
|
|
77
|
+
- 本模板不读取、修改或验证目标前端项目的客户端生成配置,不执行客户端生成,也不把生成动作加入 CI;目标前端项目在需要时手动运行其既有代码生成命令。
|
|
78
|
+
- 接口调整回写 YAML,而不是编辑 JSON 或生成的 TypeScript。
|
|
130
79
|
|
|
131
|
-
|
|
132
|
-
- <Spectral/Redocly command used or proposed>
|
|
80
|
+
## 阻断规则
|
|
133
81
|
|
|
134
|
-
|
|
135
|
-
- <file:line grounded finding>
|
|
82
|
+
阻断 OpenAPI Freeze 或 JSON 导出,若:
|
|
136
83
|
|
|
137
|
-
|
|
138
|
-
-
|
|
84
|
+
- YAML 不是单一 OAS 3.1 document,或其根节点混入生命周期元数据。
|
|
85
|
+
- YAML / `$ref` / lint 不通过,operationId 不稳定或不唯一,或路径参数、schema、examples 无法解析。
|
|
86
|
+
- P0 操作缺请求、响应、错误、并发 / 幂等规则或可验证 seam;Spec 明确的认证或授权行为没有契约表示。
|
|
87
|
+
- `$ref` 超出允许范围,或转换器版本、lockfile、命令、输入 YAML 无法识别。
|
|
88
|
+
- Freeze 记录、YAML SHA-256、JSON SHA-256、JSON 解析 / lint 证据缺失。
|
|
89
|
+
- JSON 被手工编辑,或生成结果试图反向成为 YAML 的权威来源。
|
|
139
90
|
|
|
140
|
-
|
|
141
|
-
- <response wrappers, errors, pagination, permissions, security red lines, contract tests>
|
|
91
|
+
## 输出契约
|
|
142
92
|
|
|
143
|
-
|
|
144
|
-
|
|
93
|
+
```markdown
|
|
94
|
+
### Governance Result
|
|
95
|
+
<Draft / Approved for Freeze / Blocked / JSON Exported>
|
|
96
|
+
|
|
97
|
+
### YAML Authority
|
|
98
|
+
- YAML: <docs/.scratch/<feature>/api/<feature>.yaml>
|
|
99
|
+
- OAS: 3.1.0
|
|
100
|
+
- YAML SHA-256: <sha256>
|
|
101
|
+
- Freeze record: <path / ref>
|
|
102
|
+
|
|
103
|
+
### Validation
|
|
104
|
+
- Lint command and result: <locked pnpm command / result>
|
|
105
|
+
- `$ref` policy / approved exceptions: <details>
|
|
106
|
+
- Blocking findings: <file:line grounded finding>
|
|
107
|
+
|
|
108
|
+
### JSON Derivative
|
|
109
|
+
- JSON: <docs/.scratch/<feature>/api/<feature>.json>
|
|
110
|
+
- JSON SHA-256: <sha256>
|
|
111
|
+
- Redocly CLI / lockfile: <version and lock reference>
|
|
112
|
+
- Bundle command and metafile: <command / path>
|
|
113
|
+
- JSON validation result: <pass / blocked>
|
|
114
|
+
|
|
115
|
+
### Downstream Handoff
|
|
116
|
+
- Canonical JSON / frontend materialization SHA-256: <same sha / blocked>
|
|
117
|
+
- Frontend materialization path: <frontend/openapi/openapi.json / blocked>
|
|
118
|
+
- Existing frontend code generation: <manual command in target repository / blocked reason>
|
|
119
|
+
- Template boundary: <no frontend configuration, code-generation execution, or CI change>
|
|
145
120
|
```
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "YSS OpenAPI Governance"
|
|
3
|
-
short_description: "
|
|
4
|
-
default_prompt: "Use $yss-openapi-governance to
|
|
3
|
+
short_description: "Govern YAML-first OpenAPI and export frozen JSON"
|
|
4
|
+
default_prompt: "Use $yss-openapi-governance to govern an OpenAPI YAML Draft, freeze it, and export its reviewed JSON derivative."
|
|
@@ -12,7 +12,7 @@ YSS 产品研发的全生命周期主控编排器。它决定阶段、条件门
|
|
|
12
12
|
1. 读取根目录 `yss-project.yaml`;非法或缺失时停止并进入迁移检查。
|
|
13
13
|
2. 读取 `CONTEXT.md`、相关 ADR、父 Ticket/checkpoint、当前资产与 tracker 配置。
|
|
14
14
|
3. `template-source` 只走模板维护流程;不得生成具体产品 Spec、原型、OpenAPI 或切片 Ticket。
|
|
15
|
-
4. `project-instance` 以 `docs/process/lifecycle-artifact-map.md` 和 `docs/process/harness-process-tailoring.md` 为阶段、门禁和裁剪事实来源。
|
|
15
|
+
4. `project-instance` 以 `docs/process/lifecycle-registry.yaml`、由其派生的 `docs/process/lifecycle-artifact-map.md` 和 `docs/process/harness-process-tailoring.md` 为阶段、门禁和裁剪事实来源。
|
|
16
16
|
|
|
17
17
|
YSS 仓库以本 skill 为直接入口,不机械嵌套调用 `ask-matt`。`ask-matt` 仅在用户显式调用时作为 Matt 通用导航,且不得修改 Matt skills。
|
|
18
18
|
|
|
@@ -29,7 +29,8 @@ YSS 仓库以本 skill 为直接入口,不机械嵌套调用 `ask-matt`。`ask
|
|
|
29
29
|
|
|
30
30
|
## 核心规则
|
|
31
31
|
|
|
32
|
-
-
|
|
32
|
+
- 保留生命周期注册表定义的主阶段;其中条件门禁全部按影响面强制。命中项必须达到 `approved`,未命中项记录 `not-applicable` 和原因;产物、工作单元和证据不得被统称为门禁。
|
|
33
|
+
- 安全 / 权限不设独立生命周期资料、专属门禁或 `not-applicable` 记录。只有需求或冻结资产明确要求改变认证、授权、租户隔离、敏感数据或合规行为时,才把该行为写入普通 Spec、API、架构、验收和测试 seam,并仅按实际 UI、API、Backend、Data、High-risk 影响触发既有门禁;普通 action 注册、沿用认证中间件、未变化的 `401` / `403`、一般字段、SQL / DDL / 迁移和上传 / 下载本身不触发安全 / 权限流程。
|
|
33
34
|
- 有效 `yss-project.yaml` 存在时,`ask-matt` 和 `setup-matt-pocock-skills` 只能作为子流程;最终入口、仓库身份和模式裁决归本编排器。
|
|
34
35
|
- `template-source` 命中产品 flow 时必须返回 `blocked`(`template-source-product-artifact-forbidden`),不得继续到产品资产或 Ticket 生成。
|
|
35
36
|
- 文件存在不等于就绪。按内容、审查结论和上游新鲜度评估资产。
|
|
@@ -37,20 +38,23 @@ YSS 仓库以本 skill 为直接入口,不机械嵌套调用 `ask-matt`。`ask
|
|
|
37
38
|
- 上游变化按依赖图精准传播 `stale`;不要无条件重跑完整阶段。
|
|
38
39
|
- Matt 五态保持原义。只有解除阻塞、门禁通过且可直接实现的垂直切片才能使用 `ready-for-agent`。
|
|
39
40
|
- YSS active 调用 `to-spec` 时,必须把 Matt 独立 flow 的 `ready-for-agent` 发布提示归一化为 Spec `ready-for-human`;不得把 Spec 初稿当作可直接实现的 Ticket。
|
|
41
|
+
- YSS active 调用 `to-tickets` 时,新建垂直切片统一写为 `ready-for-human`;只有本编排器复算完整 `ready-for-agent` 公式后才能提升,Matt 的通用默认标签不得提前覆盖生命周期状态。
|
|
40
42
|
- `orchestrate`/`resume` 连续执行安全工作单元,直到人工门禁、真实阻塞、新授权、实现/发布裁决或专项失败。
|
|
41
|
-
- 进入实现后继续主控,通过 `yss-router`、`implement`、`tdd` 和 YSS 专项 skills 执行;独立审查和 fresh verification
|
|
42
|
-
- 原型确认 →
|
|
43
|
+
- 进入实现后继续主控,通过 `yss-router`、`implement`、`tdd` 和 YSS 专项 skills 执行;独立审查和 fresh verification 后才能作完成判断。只有工作单元真实触碰当前用户、审计、加密或明确的权限业务行为时,才增加 `yss-userinfo`、`yss-audit-log`、`yss-security-algorithm` 等专项依赖。
|
|
44
|
+
- 原型确认 → 后端脚手架:命中产品设计影响时,先按 `yss-prototype-stage` 形成交互说明、独立 Prototype Review、高保真 HTML、AntD CLI 与浏览器验证、用户确认;只有 `gate.prototype-reviewed`、`gate.prototype-verified` 和 `gate.user-confirmation` 均满足时,才能进入下游。若 backend `scaffold_status=required`,随后先完成工程基线,由 `yss-router` 编译脚手架受控生成工作单元合同,经生命周期编排器批准并持久化后,才使用 `yss-ddd-scaffold-generator` 生成后端骨架;随后由 `yss-backend-scaffold-parent` 校验并重新进入 `yss-router`,不得先写业务代码。
|
|
43
45
|
- 所有后续生成的后端代码都必须消费生命周期批准、已持久化且版本当前的 Slice Implementation Contract,绑定最小 YSS skill 闭包、允许写路径、证据文件和 YSS Skill Execution Result;没有这些证据时必须阻断。
|
|
44
46
|
- Harness 内承载运行时代码时,项目路径策略固定为 `apps/backend/<project>/` 和 `apps/frontend/<project>/`;`apps/backend/`、`apps/frontend/` 仅是项目容器,`app/backend/`、`app/frontend/` 及其子路径禁止生成。外部实现仓库不强制使用该目录,但必须登记真实项目根路径并写入合同。
|
|
45
47
|
- Setup readiness 每个任务只评估一次并在本轮缓存;只有 tracker、主远端、真实标签或配置变化时重查。
|
|
46
48
|
- Ticket tracker 支持 `local-markdown`、GitHub 和 GitLab;模板默认 `local-markdown`,以 `docs/.scratch/<feature>/` 完整功能包为主载体。Git remote 只代表代码托管,不能覆盖已持久化的 tracker 选择;Local 主 tracker 不要求远程 Ticket。根 `.scratch/` 与 `docs/requirements/tickets/` 只作为旧路径迁移来源。
|
|
47
49
|
- 小改动和中等变更允许同一独立执行者完成 Review 与 fresh verification;该执行者不得是实现者。新模块、高风险或职责冲突时拆分 Reviewer 与 Verifier。
|
|
50
|
+
- 进入 `code-review` 前必须持久化或明确传入 `review_mode`、`review_base_ref`、`candidate_snapshot_ref`、`candidate_digest` 和完整候选引用;`worktree` 模式必须一次捕获 committed、staged、unstaged、untracked,并让两个 Reviewer 消费同一快照,不能用只看 `HEAD` 或实时变化的 diff 宣称已审查。候选 manifest 和 `yss-worktree-candidate-v1` 不可变摘要流以 `orchestration-contract.yaml.review_input` 为唯一机器契约。
|
|
51
|
+
- 实现授权不包含 Git 授权。只有用户分别明确给出值为 `true` 的 `commit_authorized` / `push_authorized`、非空 scope 和对应 `*_authorization_ref` 时才执行动作;缺失时只记录 checkpoint 判断,不得把 `implement`、`orchestrate`、当前分支或负责人要求解释成隐含授权。
|
|
48
52
|
- 连续自动推进期间累积 Ticket/Git 证据,在人工暂停、handoff、进入实现、合并或发布边界集中 checkpoint;不为每个连续经过的概念阶段重复写同类记录。
|
|
49
53
|
- 跨线程、仓库、原型分支或上下文边界时使用 `handoff` 或等价记录。
|
|
50
54
|
- 在 Matt 阶段边界(phase boundary)先按 `Continue → /clear → /handoff → subagent → /compact` 判断上下文动作;只在 checkpoint 记录可选 `phase_boundary` 证据,不新增生命周期状态。
|
|
51
55
|
- `to-questionnaire` 进入结构化 `external-input-required` 暂停;回答回流后必须重新分类影响面并更新权威资产,不能直接恢复下游实现。
|
|
52
56
|
- `wait-what` 只重新解释当前结论,不改变阶段、门禁、Ticket 或 `ready-for-agent` 状态;`wizard` 只处理人工才能完成的步骤,默认临时使用,秘密值不得进入持久化输出。
|
|
53
|
-
- Matt `prototype` 是保留在 `prototype/<name>` 分支的单文件可分享 HTML 主来源;YSS 高保真 HTML 原型仍必须经过 Prototype Review、AntD CLI
|
|
57
|
+
- Matt `prototype` 是保留在 `prototype/<name>` 分支的单文件可分享 HTML 主来源;YSS 高保真 HTML 原型仍必须经过 Prototype Review、AntD CLI、浏览器验证和用户确认,两者不得互相替代。
|
|
54
58
|
- Matt skill 返回结果必须先归一化为 `Matt Skill Result`;`drift`、`new_impacts`、`violation`、`stale_candidates`、缺失证据或不完整结果不得推进为 `completed`。
|
|
55
59
|
|
|
56
60
|
### 原型完成后的后端脚手架与代码生成边界
|
|
@@ -62,15 +66,17 @@ YSS 仓库以本 skill 为直接入口,不机械嵌套调用 `ask-matt`。`ask
|
|
|
62
66
|
- `yss-ddd-scaffold-generator` 必须读取已持久化的结构化脚手架合同 JSON,并校验 `status=approved`、当前版本、主 skill、`controlled-generation` 和固定验证命令;只传任意字符串引用不得放行。
|
|
63
67
|
- 生成项目必须包含 `.yss/scaffold-generation.json`,回勾实际使用的合同 ID、版本、Router draft 引用、生命周期批准引用、持久化引用、生成输入、受控模式和固定验证命令;元数据清单缺失或过期时阻断后续 Router。
|
|
64
68
|
- 三条 `./mvnw` 命令必须由受控工作单元真实执行,并记录每条命令的 `exit_code`、`duration_ms`、stdout/stderr 引用和执行时间;生成器打印的命令、输出目录存在或“生成成功”都不构成验证证据。
|
|
65
|
-
- 脚手架只生成多模块工程结构、POM、配置、Wrapper
|
|
69
|
+
- 脚手架只生成多模块工程结构、POM、配置、Wrapper 和经验证的机械模板;不得生成或承载领域规则、状态机、权限、事务、复杂查询、错误映射或用户可见业务行为。
|
|
66
70
|
- 该生命周期脚手架工作单元必须关闭 `--with-example`,不得把 User CRUD 或业务字段伪装成样板;目标目录非空时 `--force` 默认阻断,只有覆盖范围、备份、回滚点和明确批准全部进入合同后才能另行审查。
|
|
67
71
|
- `scaffold_status=existing` 或 `initialized` 时不重复全量生成,但仍须完成 `yss-backend-scaffold-parent` 基线证据、Wrapper 校验和 `yss-router` 合同重编译。
|
|
68
72
|
- 脚手架完成不等于实现仓库接入、架构放行、契约批准或 `ready-for-agent`。后续每一个 Agent / generator 写入的后端代码都必须绑定批准合同和对应 YSS skill;业务行为只能使用 `behavior-tdd`,机械生成才可使用 `controlled-generation`。
|
|
69
73
|
|
|
70
74
|
| 压力诱因 | 统一裁决 |
|
|
71
75
|
|---|---|
|
|
76
|
+
| “普通 action、SQL / DDL 或下载也要补安全姿态吗” | 不补。没有明确的安全 / 权限行为需求时只按实际 API、Data 或工程影响推进;明确改变相关行为时也只复用普通产物和门禁。 |
|
|
77
|
+
| “延期项先不写责任人和目标版本,之后再补” | 阻断 `seam-deferred`;必须写风险、责任人、后续 Ticket、验证计划和目标版本 / 发布日期。 |
|
|
72
78
|
| “脚手架本来就是 YSS,先生成代码再补合同” | 先阻断;Router draft 不能批准合同或替代生命周期放行。 |
|
|
73
|
-
| “`./mvnw validate` 已通过,直接继续最省时间” |
|
|
79
|
+
| “`./mvnw validate` 已通过,直接继续最省时间” | 只证明工程基线可验证,不证明业务、事务或契约已获批;三条实际命令的结果还必须进入 Execution Result。 |
|
|
74
80
|
| “后续代码也是生成物,不需要重新路由” | 只要写入业务代码,就必须重新消费当前 Slice Implementation Contract 和 YSS skill 闭包。 |
|
|
75
81
|
| “发布窗口快结束了,可以把业务字段放进脚手架” | 时间、上级要求、已有产出和演示压力都不能放宽禁止模式;必须拆为 `behavior-tdd` 工作单元。 |
|
|
76
82
|
|
|
@@ -16,7 +16,7 @@ Implementation → Independent Review → Fresh Verification → Release
|
|
|
16
16
|
|
|
17
17
|
## 传播算法
|
|
18
18
|
|
|
19
|
-
1. 分类变化:文案、UI
|
|
19
|
+
1. 分类变化:文案、UI 状态、API schema、状态机、数据模型、服务边界、NFR、部署。
|
|
20
20
|
2. 只遍历与变化类型相关的边。
|
|
21
21
|
3. 受影响下游先标记 `stale`;不要删除或立即重建。
|
|
22
22
|
4. 移除相关切片的 `ready-for-agent`,直到必要门禁重新为 `approved/not-applicable`。
|
|
@@ -27,6 +27,6 @@ Implementation → Independent Review → Fresh Verification → Release
|
|
|
27
27
|
|
|
28
28
|
每个 `stale` 节点必须记录 `stale_by`、影响类型、证据引用和重新批准条件。重新批准 direct 节点后,逐个重新核验 transitive 节点;只有其全部受影响上游恢复为 `approved/not-applicable` 且本节点重新验证通过,才能移除 `stale`。
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
明确写入需求的认证、授权、租户隔离、敏感数据或合规行为变化不使用独立影响类型;按它实际改变的 UI 状态、API schema、状态机、数据模型或服务边界传播。普通 action 注册、SQL / DDL / 迁移和上传 / 下载只使用既有技术影响类型,不增加安全 / 权限传播。
|
|
31
31
|
|
|
32
32
|
OpenAPI Freeze 后发生上游变化时,不得仅因父 Ticket 仍写阶段 6 就继续实现。先做影响分析,再精准更新相关资产和门禁。
|
|
@@ -20,7 +20,7 @@ Matt skills 决定如何工作;YSS 生命周期决定是否允许推进;YSS
|
|
|
20
20
|
| 技术事实 | `research` | 一手资料回填 Spec/OpenAPI/架构/ADR |
|
|
21
21
|
| runnable 问题 | `prototype` | 生成单文件可分享 HTML,保留 `prototype/<name>` 分支作为主来源;必须 source/return handoff 和结论回填,不得替代阶段 4 的低保真评审、Ant Design v6 高保真 HTML、AntD CLI 证据和用户确认 |
|
|
22
22
|
| Spec 综合 | `to-spec` | 初稿进入 `ready-for-human`,不得直接实现 |
|
|
23
|
-
| 切片 | `to-tickets` |
|
|
23
|
+
| 切片 | `to-tickets` | 仅在冻结/无影响记录后拆垂直切片;初始角色为 `ready-for-human` |
|
|
24
24
|
| 实现 | `implement`、`tdd` | `yss-router` 编译 Slice Implementation Contract 草案;本编排器核验并持久化后才执行,专项 Execution Result 返回后再次核验 |
|
|
25
25
|
| Bug | `diagnosing-bugs`、`tdd` | 先建立红色反馈;高风险影响升级上游门禁 |
|
|
26
26
|
| 审查 | `code-review` | 唯一默认代码审查入口;审查者独立,结合 Spec、仓库治理规则和 YSS 标准 |
|
|
@@ -61,9 +61,15 @@ Router 状态映射为:`draft → completed`、`blocked → blocked`、`ready-
|
|
|
61
61
|
| Matt flow | 进入条件 | 生命周期结果 |
|
|
62
62
|
|---|---|---|
|
|
63
63
|
| `to-spec` | `grill-with-docs` 已满足退出条件,且不存在未回流的 runnable blocker;用户问题、MVP/非目标、成功标准、测试 seam 和术语审查均有证据 | Spec 初稿为 `ready-for-human`,不等于批准 |
|
|
64
|
-
| `to-tickets` | OpenAPI Freeze 或 `no-api-impact` 记录、必要门禁、垂直切片范围和阻塞边均已明确 | 只能生成垂直切片 Ticket |
|
|
64
|
+
| `to-tickets` | OpenAPI Freeze 或 `no-api-impact` 记录、必要门禁、垂直切片范围和阻塞边均已明确 | 只能生成垂直切片 Ticket;YSS active 的 `to-tickets` 初始统一为 `ready-for-human` |
|
|
65
65
|
| `implement` | `ready-for-agent` 公式、Contract 已批准/持久化/版本一致、Build Architecture Checklist、实现仓库/分支/CI/验证命令/回滚点,以及后端 Contract(适用时)均满足 | 单会话实现同样适用,不得绕过门禁 |
|
|
66
66
|
|
|
67
|
+
## Review 候选与 Git 授权
|
|
68
|
+
|
|
69
|
+
YSS 调用 `code-review` 前必须形成 review input,至少包含 `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`,并满足 `orchestration-contract.yaml.review_input.manifest_required_by_mode`。`committed` 审查 merge-base 到不可变 `HEAD`;`worktree` 一次捕获 merge-base 到 working tree 的 committed、staged、unstaged 和 untracked 内容,使用 `yss-worktree-candidate-v1` 规定的 raw path、uint64 big-endian 长度、tracked/untracked record 和不支持条目阻断规则计算 SHA-256,让两个 Reviewer 消费同一不可变快照,并在返回和完成 checkpoint 复核摘要未变化。缺少输入、候选为空或摘要变化时返回 `blocked`,不能缩小审查范围或合并不同候选的结论。
|
|
70
|
+
|
|
71
|
+
Matt `implement` 的通用提交指令不构成 YSS Git 授权。只有用户明确给出 `commit_authorized` 为 `true`、非空 `commit_scope` 和 `commit_authorization_ref` 时才能 commit;只有明确给出 `push_authorized` 为 `true`、非空 `push_scope` 和 `push_authorization_ref` 时才能 push。缺少任一字段时保持工作区不变,只输出 checkpoint 判断;不得把 `orchestrate`、实现授权、当前分支、测试通过或负责人要求解释为隐含授权。
|
|
72
|
+
|
|
67
73
|
## Setup readiness
|
|
68
74
|
|
|
69
75
|
编排器先做幂等 readiness 检查,再决定是否调用 `setup-matt-pocock-skills`。检查结果只能是:
|