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
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# `create-yss-spec` 与 YSS 公开技能生态刷新研究
|
|
2
|
+
|
|
3
|
+
> 访问时间:2026-08-16 23:51(Asia/Shanghai)。
|
|
4
|
+
> 研究边界:只核对官方 GitHub、npm registry / tarball、当前仓库事实源,并在 `/tmp` 做只读 clone、打包检查和临时安装;未修改外部仓库,也未把 2026-08-10 研究直接当作当前事实。
|
|
5
|
+
|
|
6
|
+
## 结论先行
|
|
7
|
+
|
|
8
|
+
截至本次取证,2026-08-10 的三个主要 CLI 缺口已经实质修复:`.qoder` 投影进入 npm 包,`attach` / `sync` 已实现已知旧路径迁移和冲突 fail closed,`sync` 写入后会重新运行三项模板门禁并在失败时回滚。正式包也从浮动 `main` 改为绑定 40 位模板 commit 和快照 hash。CLI 默认固定快照的 fresh `npm test` 为 **28/28 通过**。
|
|
9
|
+
|
|
10
|
+
仍有两个跨仓库新鲜度缺口:
|
|
11
|
+
|
|
12
|
+
1. npm `latest` `2.1.3` 固定在模板 commit `41c68b5...`,而模板当前 `main` 已到 `5859e1e...`;固定快照提高了可复现性,但发布包不会自动包含 8 月 13 日之后的模板变化。按本仓库合同,新的模板 commit 仍应完成 CLI 集成验证后再发版,不能把“固定旧快照测试通过”解释为“当前模板 main 已兼容”。
|
|
13
|
+
2. 官方公开技能仓库当前能发现 **46** 个技能,而本地 [`yss-public-skills.json`](../../yss-public-skills.json) 冻结 **44** 个。44 个本地公开项都存在于远端,但远端还保留 `yss-domain-modeling` 和 `yss-openapi`;其中本地当前测试已明确把 `yss-openapi` 列为退休公开项。因此公开仓库不是当前 44 项清单的精确投影,需要重新导出、审查和发布。
|
|
14
|
+
|
|
15
|
+
## 一、当前可复核版本
|
|
16
|
+
|
|
17
|
+
| 对象 | 当前事实 | 一手证据 |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| `create-yss-spec` 默认分支 | `main` 当前 commit 为 `01fbcb2c927a0ef7912a6656960f09413f8eaecb`,提交信息 `fix: support ASCII locales during template verification` | [GitHub commit](https://github.com/iloveZzz/create-yss-spec/commit/01fbcb2c927a0ef7912a6656960f09413f8eaecb)、[GitHub commits API](https://api.github.com/repos/iloveZzz/create-yss-spec/commits/main) |
|
|
20
|
+
| npm `latest` | `create-yss-spec@2.1.3`,发布时间 `2026-08-14T06:24:59.711Z`,`gitHead` 正是 `01fbcb2...` | [npm registry 全量元数据](https://registry.npmjs.org/create-yss-spec)、[2.1.3 元数据](https://registry.npmjs.org/create-yss-spec/2.1.3) |
|
|
21
|
+
| npm tarball | `create-yss-spec-2.1.3.tgz`;registry `shasum` 为 `2e6461df8d25a54b266f5c3c3174953cb11967d9`,`integrity` 为 `sha512-/0gfygVyWg024tz8PVMoENbAIenmm6y/XUQPpN4ywcsUtJb8M0UtiQWNu/ITCXi8w0AZ1VebRHViro2c+e68IA==` | [官方 tarball](https://registry.npmjs.org/create-yss-spec/-/create-yss-spec-2.1.3.tgz)、[2.1.3 元数据](https://registry.npmjs.org/create-yss-spec/2.1.3) |
|
|
22
|
+
| npm 包绑定模板 | tarball 内 `template.snapshot.json` 的 `requestedRef` / `templateCommit` 都是 `41c68b545caaa439a999ec9d6786bf80a06c70ba`,`snapshotHash` 为 `8817d7689fe6ac5fff6c94ada86f7db25394133a7094108afefcde24fffcfaa5` | [模板固定 commit](https://github.com/iloveZzz/yss-spec-project-template/commit/41c68b545caaa439a999ec9d6786bf80a06c70ba)、[官方 tarball](https://registry.npmjs.org/create-yss-spec/-/create-yss-spec-2.1.3.tgz) |
|
|
23
|
+
| 模板当前默认分支 | `main` 当前 commit 为 `5859e1e5d54e41a7995e9c1eed0a6aeae3c62042`,提交信息 `feat: adopt YAML-first OpenAPI JSON governance` | [GitHub commit](https://github.com/iloveZzz/yss-spec-project-template/commit/5859e1e5d54e41a7995e9c1eed0a6aeae3c62042)、[GitHub commits API](https://api.github.com/repos/iloveZzz/yss-spec-project-template/commits/main) |
|
|
24
|
+
|
|
25
|
+
事实:CLI `package.json` 版本与 npm `latest` 均为 `2.1.3`;npm registry 的 `gitHead` 与 GitHub `main` 一致。[package.json](https://github.com/iloveZzz/create-yss-spec/blob/01fbcb2c927a0ef7912a6656960f09413f8eaecb/package.json#L1-L27)
|
|
26
|
+
|
|
27
|
+
推断:当前 GitHub `main` 与已发布 npm 包源码处于同一 CLI commit,但包内模板是发布时审查过的固定快照,并非模板仓库当前 `main`。这是可复现发布设计的结果,不是源码漂移;只有在使用者误把 `@latest` 等同于“模板 main 的实时内容”时才构成认知风险。
|
|
28
|
+
|
|
29
|
+
## 二、2026-08-10 缺口复核
|
|
30
|
+
|
|
31
|
+
### 1. `.qoder` 投影:已修复
|
|
32
|
+
|
|
33
|
+
当前 CLI 不再从 manifest 排除 `.qoder`;运行时投影根显式包含 `.qoder/skills`。[template.manifest.json](https://github.com/iloveZzz/create-yss-spec/blob/01fbcb2c927a0ef7912a6656960f09413f8eaecb/template.manifest.json#L1-L33)、[src/cli.js](https://github.com/iloveZzz/create-yss-spec/blob/01fbcb2c927a0ef7912a6656960f09413f8eaecb/src/cli.js#L27-L35)
|
|
34
|
+
|
|
35
|
+
从 npm `2.1.3` tarball 解包实测:`template/.qoder/skills/yss-product-lifecycle/SKILL.md` 存在,`.qoder/skills` 下有 101 个一级技能目录。CLI 测试也断言生成项目包含 `.qoder/skills/to-spec/SKILL.md` 和 `.qoder/skills/yss-product-lifecycle/SKILL.md`。[init-cli.test.js](https://github.com/iloveZzz/create-yss-spec/blob/01fbcb2c927a0ef7912a6656960f09413f8eaecb/tests/init-cli.test.js#L57-L166)
|
|
36
|
+
|
|
37
|
+
判定:2026-08-10 “manifest 排除 `.qoder` 导致 init 失败”已经修复。
|
|
38
|
+
|
|
39
|
+
### 2. 固定 commit / tag 发布:commit 已落实,tag 未见证据
|
|
40
|
+
|
|
41
|
+
CLI 同步脚本的默认模板引用已经固定为 `41c68b5...`,仍允许开发测试通过 `YSS_SPEC_TEMPLATE_REF` 覆盖;同步时 detach checkout,并把实际 commit 与 tree hash 写入快照 metadata。[sync-template.js](https://github.com/iloveZzz/create-yss-spec/blob/01fbcb2c927a0ef7912a6656960f09413f8eaecb/scripts/sync-template.js#L8-L16)、[sync-template.js](https://github.com/iloveZzz/create-yss-spec/blob/01fbcb2c927a0ef7912a6656960f09413f8eaecb/scripts/sync-template.js#L225-L254)
|
|
42
|
+
|
|
43
|
+
CLI 启动时强制快照包含 40 位 `templateCommit`、64 位 `snapshotHash`,并重算 bundled tree hash;不满足即 fail closed。[src/cli.js](https://github.com/iloveZzz/create-yss-spec/blob/01fbcb2c927a0ef7912a6656960f09413f8eaecb/src/cli.js#L57-L112)
|
|
44
|
+
|
|
45
|
+
本轮 `git ls-remote --tags` 对 CLI、模板和公开技能仓库均未返回 tag,GitHub Releases API 对公开技能仓库返回空数组。判定:**固定 commit 发布已完成;固定 tag / GitHub Release 没有当前一手证据**。这不阻断 commit-pinned 模式,但缺少人类可读发布锚点。
|
|
46
|
+
|
|
47
|
+
### 3. 迁移与 `attach`:已实现,且危险歧义 fail closed
|
|
48
|
+
|
|
49
|
+
源码已实现:
|
|
50
|
+
|
|
51
|
+
- `to-prd → to-spec`、`to-issues → to-tickets`,遍历 `.agents`、`.claude`、`.codex`、`.hermes`、`.pi`、`.qoder`、`.trae`;
|
|
52
|
+
- `prd-template.md → spec-template.md`、旧 vertical-slice 模板路径;
|
|
53
|
+
- `docs/requirements/issues → docs/requirements/tickets`、`*-prd.md → *-spec.md`、根 `.scratch/* → docs/.scratch/*`;
|
|
54
|
+
- 已存在且内容不同的目标进入 conflict;无法推断功能归属的扁平 Ticket 进入 unsafe,不允许 `--force` 绕过。
|
|
55
|
+
|
|
56
|
+
对应一手源码见 [src/cli.js](https://github.com/iloveZzz/create-yss-spec/blob/01fbcb2c927a0ef7912a6656960f09413f8eaecb/src/cli.js#L27-L46)、[迁移计划](https://github.com/iloveZzz/create-yss-spec/blob/01fbcb2c927a0ef7912a6656960f09413f8eaecb/src/cli.js#L721-L813) 与 [`attach` 阻断/事务](https://github.com/iloveZzz/create-yss-spec/blob/01fbcb2c927a0ef7912a6656960f09413f8eaecb/src/cli.js#L1522-L1606)。测试覆盖已知模板路径、issues 目录、冲突不覆盖、扁平 Ticket unsafe、备份和未受管文件保护。[init-cli.test.js](https://github.com/iloveZzz/create-yss-spec/blob/01fbcb2c927a0ef7912a6656960f09413f8eaecb/tests/init-cli.test.js#L828-L1028)
|
|
57
|
+
|
|
58
|
+
判定:2026-08-10 “README 声称迁移但源码/测试无实现”的缺口已修复。边界仍然成立:迁移只覆盖已编码规则;归属不明的旧资产必须人工整理,不能把“具备迁移能力”理解为任意旧项目自动升级。
|
|
59
|
+
|
|
60
|
+
### 4. `sync` 后 fresh verification 与回滚:已修复
|
|
61
|
+
|
|
62
|
+
`verifyGeneratedTemplate` 依次运行 `scripts/sync-skills --check`、`scripts/update-skill-lock --check`、`scripts/verify-template --check`。[src/cli.js](https://github.com/iloveZzz/create-yss-spec/blob/01fbcb2c927a0ef7912a6656960f09413f8eaecb/src/cli.js#L1083-L1107)
|
|
63
|
+
|
|
64
|
+
`sync` 在受管文件和迁移变更写入后、metadata 写入前执行该验证;验证或写入失败会执行事务 rollback,并保留临时备份路径。[src/cli.js](https://github.com/iloveZzz/create-yss-spec/blob/01fbcb2c927a0ef7912a6656960f09413f8eaecb/src/cli.js#L1622-L1686)。本仓库跨仓库合同也明确要求这三项门禁和固定 commit 集成测试。[implementation-repo-integration.md](../process/implementation-repo-integration.md#fresh-verification-与-checkpoint)
|
|
65
|
+
|
|
66
|
+
判定:2026-08-10 “sync 只做 hash 同步、结束后不 fresh verify”的缺口已修复。
|
|
67
|
+
|
|
68
|
+
## 三、Fresh verification 结果与限制
|
|
69
|
+
|
|
70
|
+
### 已实际执行
|
|
71
|
+
|
|
72
|
+
在临时 clone 的 CLI `01fbcb2...` 上执行默认固定模板 ref:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
cd /tmp/yss-cli-refresh.uSVd7K/create-yss-spec
|
|
76
|
+
npm test
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
结果:`tests 28`、`pass 28`、`fail 0`、`duration_ms 299693.04775`。pretest 明确输出从 `yss-spec-project-template#41c68b5...` 同步模板快照。28 项覆盖 init、ASCII locale、身份 fail closed、`.qoder`、sync 更新/补回/跳过本地修改、attach、迁移冲突、备份、未受管文件保护、符号链接边界和快照 hash;测试列表可从官方 [`init-cli.test.js`](https://github.com/iloveZzz/create-yss-spec/blob/01fbcb2c927a0ef7912a6656960f09413f8eaecb/tests/init-cli.test.js) 与 [`sync-template.test.js`](https://github.com/iloveZzz/create-yss-spec/blob/01fbcb2c927a0ef7912a6656960f09413f8eaecb/tests/sync-template.test.js) 复核。
|
|
80
|
+
|
|
81
|
+
还执行了:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
npm view create-yss-spec dist-tags versions time --json
|
|
85
|
+
npm view create-yss-spec@2.1.3 gitHead dist.tarball dist.shasum dist.integrity --json
|
|
86
|
+
npm pack create-yss-spec@2.1.3 --pack-destination /tmp/yss-cli-refresh.uSVd7K
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 未完成
|
|
90
|
+
|
|
91
|
+
未完成 `YSS_SPEC_TEMPLATE_REF=5859e1e... npm test`。第一次调用因命令工作目录误在 `/tmp`,npm 报 `ENOENT /private/tmp/package.json`,这不是 CLI 或模板测试失败;改正工作目录后的第二次调用按主控要求停止,以优先交付研究记录。因此当前模板 `main` 与 CLI `main` 的完整集成兼容性是 **未验证**,不能从默认固定快照 28/28 外推。
|
|
92
|
+
|
|
93
|
+
本轮也未执行 `npm pack --dry-run`(已直接下载并解包 registry 的真实 `2.1.3` tarball),未在解包后的 npm 包上另做一轮 init/attach/sync;这些仍属于发布前建议补齐的跨仓库验证,而非本记录已证明事项。
|
|
94
|
+
|
|
95
|
+
## 四、`yss-spec-dev-skills` 公开生态
|
|
96
|
+
|
|
97
|
+
### 当前默认分支与清单差异
|
|
98
|
+
|
|
99
|
+
官方仓库默认分支是 `main`,当前 commit 为 `e669478e6fd6d78617fe01bc0d92279e23f81d70`(`docs(install): 修正 Agent 自动检测安装说明`)。[GitHub 仓库 API](https://api.github.com/repos/iloveZzz/yss-spec-dev-skills)、[commit](https://github.com/iloveZzz/yss-spec-dev-skills/commit/e669478e6fd6d78617fe01bc0d92279e23f81d70)
|
|
100
|
+
|
|
101
|
+
对该 commit 的 `.yss-export-manifest.json` 与实际 `skills/*/SKILL.md` 统计均为 46 项;本地 `yss-public-skills.json` 为 44 项。集合比较结果:
|
|
102
|
+
|
|
103
|
+
- 本地 44 项全部存在于远端;
|
|
104
|
+
- 远端额外存在 `yss-domain-modeling`、`yss-openapi`;
|
|
105
|
+
- 目录 `yss-api-integration` 的 frontmatter 名为 `api-integration`,目录 `yss-microapp-commit` 的 frontmatter 名为 `microapp-commit`,因此 CLI `--list` 展示的是兼容名称,不是目录名。
|
|
106
|
+
|
|
107
|
+
一手清单见 [远端导出 manifest](https://github.com/iloveZzz/yss-spec-dev-skills/blob/e669478e6fd6d78617fe01bc0d92279e23f81d70/.yss-export-manifest.json)、[skills.sh 分组](https://github.com/iloveZzz/yss-spec-dev-skills/blob/e669478e6fd6d78617fe01bc0d92279e23f81d70/skills.sh.json) 与本地 [`yss-public-skills.json`](../../yss-public-skills.json)。本地导出测试把期望数固定为 44,并显式禁止再导出 `yss-openapi`。[test-export-yss-skills.rb](../../scripts/test-export-yss-skills.rb#L11-L47)
|
|
108
|
+
|
|
109
|
+
判定(事实):远端是本地 44 项的超集,不是精确对齐。判定(推断):公开发布投影至少落后于 2026-08-16 的本地 YAML-first OpenAPI 治理变化;`yss-domain-modeling` 是否应退休或重新纳入 44 项属于维护决策,不能仅凭差异自动删除。
|
|
110
|
+
|
|
111
|
+
### 可复核安装验证
|
|
112
|
+
|
|
113
|
+
在空临时目录使用 npm `skills@1.5.22` 实测:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
npx --yes skills@latest add iloveZzz/yss-spec-dev-skills --list
|
|
117
|
+
npx --yes skills@latest add iloveZzz/yss-spec-dev-skills \
|
|
118
|
+
--skill yss-validation --agent codex --yes
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
两条命令均 exit `0`。`--list` 输出 `Found 46 skills`;指定安装输出 `Installed 1 skill`,生成 `./.agents/skills/yss-validation/{SKILL.md,agents/openai.yaml,references/source-index.md}` 与 `skills-lock.json`。安装命令与官方 README 一致。[README](https://github.com/iloveZzz/yss-spec-dev-skills/blob/e669478e6fd6d78617fe01bc0d92279e23f81d70/README.md#L7-L31)
|
|
122
|
+
|
|
123
|
+
限制:生成的 `skills-lock.json` 记录 GitHub source、skillPath 与 computedHash,但不记录 `e669478...` commit;仓库也未发现 tag / GitHub Release。因而安装当前可复核、内容 hash 可记录,但默认分支安装不是 commit-pinned、跨时间不可完全复现。这是公开技能发布链仍需增强的点。
|
|
124
|
+
|
|
125
|
+
## 五、当前能力与优化建议
|
|
126
|
+
|
|
127
|
+
| 能力 | 当前状态 | 建议 |
|
|
128
|
+
|---|---|---|
|
|
129
|
+
| 可复现 CLI 发布 | 已有固定模板 commit、snapshot hash、npm integrity | 保持 commit-pinned;增加模板 tag / release note 作为人类可读锚点 |
|
|
130
|
+
| 初始化与六投影 | `.qoder` 已随六个共享投影进入真实 tarball | 发布前继续对真实 tarball 做六根 tree/hash 检查 |
|
|
131
|
+
| 已有项目接管 | `attach` 支持 dry-run、显式 apply、冲突阻断、备份与回滚 | 补真实历史仓库 fixture;不要扩大为猜测式迁移 |
|
|
132
|
+
| 持续同步 | managed baseline、局部更新、迁移、三门禁、失败回滚已具备 | 增加当前模板 `main` 固定 commit 的持续跨仓库 CI,避免只测发布内置旧快照 |
|
|
133
|
+
| 发布门禁 | 默认固定快照 fresh 测试 28/28 | 按跨仓库合同补 `npm pack --dry-run` 与解包后 init/attach/sync;记录两个仓库 commit 和独立审查 |
|
|
134
|
+
| 公开技能分发 | `skills` CLI 能发现 46 项并成功安装 | 先用当前 44 项重新导出并 PR;明确处置额外两项;发布后再做 `--list` / 安装 smoke test |
|
|
135
|
+
| 公开技能版本化 | 当前跟随 GitHub `main`,安装 lock 无 commit | 发布 tag 或 commit-pinned 安装指引;让 lock/发布 manifest 能追溯 export source commit |
|
|
136
|
+
|
|
137
|
+
## 六、相对 2026-08-10 的最终差距表
|
|
138
|
+
|
|
139
|
+
| 2026-08-10 缺口 | 2026-08-16 判定 |
|
|
140
|
+
|---|---|
|
|
141
|
+
| `.qoder` 被排除、init 失败 | **已修复并由 tarball + 28/28 测试验证** |
|
|
142
|
+
| npm `2.0.0` 过旧 | **已修复到 `2.1.3`**;但仍需对模板当前 `main` 重新集成验证后再发新版 |
|
|
143
|
+
| 模板引用浮动 `main` | **已修复为默认固定 commit**;没有 tag / Release 证据 |
|
|
144
|
+
| README 声称迁移但源码未实现 | **已修复**;已知迁移、conflict / unsafe 和回滚有源码与测试 |
|
|
145
|
+
| `sync` 后不重新验证 | **已修复**;三门禁在 metadata 前执行,失败事务回滚 |
|
|
146
|
+
| 发布包与当前模板同步 | **仍未完成当前性证明**;`2.1.3` 固定 `41c68b5...`,当前模板为 `5859e1e...`,本轮未跑完后者集成测试 |
|
|
147
|
+
| 公开技能清单一致性 | **新增/仍在缺口**;远端 46,本地允许 44,需重新导出发布 |
|
|
148
|
+
| 公开技能可复现安装 | **部分具备**;实际安装成功,但无 tag 且安装 lock 不记 commit |
|
|
149
|
+
|
|
150
|
+
## 实际命令摘要
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
git ls-remote https://github.com/iloveZzz/create-yss-spec.git refs/heads/main
|
|
154
|
+
git ls-remote https://github.com/iloveZzz/yss-spec-project-template.git refs/heads/main
|
|
155
|
+
git ls-remote https://github.com/iloveZzz/yss-spec-dev-skills.git refs/heads/main
|
|
156
|
+
npm view create-yss-spec dist-tags versions time --json
|
|
157
|
+
npm view create-yss-spec@2.1.3 gitHead dist.tarball dist.shasum dist.integrity --json
|
|
158
|
+
npm pack create-yss-spec@2.1.3 --pack-destination /tmp/yss-cli-refresh.uSVd7K
|
|
159
|
+
cd /tmp/yss-cli-refresh.uSVd7K/create-yss-spec && npm test
|
|
160
|
+
npx --yes skills@latest add iloveZzz/yss-spec-dev-skills --list
|
|
161
|
+
npx --yes skills@latest add iloveZzz/yss-spec-dev-skills --skill yss-validation --agent codex --yes
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
本记录是研究证据,不是模板、CLI 或公开技能仓库的发布批准,也不替代独立审查。
|
package/template/docs/reviews/security-permission-lifecycle-simplification-red-green-2026-08-16.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: template-skill-validation
|
|
3
|
+
status: complete
|
|
4
|
+
date: 2026-08-16
|
|
5
|
+
scope: yss-product-lifecycle / yss-router / OpenAPI lifecycle simplification
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 安全 / 权限生命周期简化 RED / GREEN / REFACTOR 记录
|
|
9
|
+
|
|
10
|
+
## RED:旧规则的过度治理证据
|
|
11
|
+
|
|
12
|
+
修改前的只读压力检查表明,机器契约会让普通 CRUD/API 填写结构化安全 / 权限资料、过时的继承资料、触发命中和派生影响旗标;缺少或过期的资料会阻断推进。
|
|
13
|
+
|
|
14
|
+
SQL / DDL / 迁移和普通下载接口也会仅因技术载体自动升级到专属流程。明确改变认证、授权或租户隔离的需求,除了实际的 Spec、API、数据和架构影响外,还会引入专属传播和回退目的地。
|
|
15
|
+
|
|
16
|
+
基线脚本 `scripts/verify-lifecycle-scenarios` 与 `scripts/verify-yss-router-scenarios` 在旧契约下通过,证明这些行为不仅存在于文档,也被自动验证锁定。
|
|
17
|
+
|
|
18
|
+
## GREEN:简化后的压力场景
|
|
19
|
+
|
|
20
|
+
- 普通 CRUD/API 可在不提供任何额外安全 / 权限输入、平台资料或不适用记录的情况下,通过 Router 的普通 UI/API/Backend/Data 影响分诊。
|
|
21
|
+
- SQL / DDL / 迁移仅走既有数据模型和迁移规则;上传下载仅按真实 API、UI 或数据影响处理,不因关键词自动升级。
|
|
22
|
+
- 显式改变认证、授权、租户隔离、敏感数据或合规行为时,按实际 UI、API、Backend、Data 和 high-risk 影响进入普通 Spec、架构、错误语义、验收标准和测试 seam。
|
|
23
|
+
- 实际调用当前用户、审计或加密组件时,Router 仍选择对应 YSS skill;权限业务行为仍使用 `behavior-tdd`,受控生成仍禁止机械生成此类业务逻辑。
|
|
24
|
+
|
|
25
|
+
本轮 fresh verification 结果:
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
scripts/sync-skills --check -> skill projections are synchronized
|
|
29
|
+
scripts/update-skill-lock --check -> skills-lock.json matches distributed skills
|
|
30
|
+
scripts/verify-lifecycle-scenarios -> 六类生命周期压力场景验证通过;生命周期编排器压力场景验证通过
|
|
31
|
+
scripts/verify-yss-router-scenarios -> YSS Router stage 7 scenarios passed
|
|
32
|
+
scripts/verify-template -> 模板发布校验通过
|
|
33
|
+
git diff --check -> passed
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
独立只读审查先识别出用户指南、切片 Ticket、审查报告、生命周期说明、技术设计与 OpenAPI Freeze 中的旧专项语句;修订后 Standards 与 Spec 两个审查轴均复核通过,无剩余 P0/P1/P2 finding。
|
|
37
|
+
|
|
38
|
+
## REFACTOR:收敛后的长期规则
|
|
39
|
+
|
|
40
|
+
- 不再主动推导或登记安全 / 权限专项影响;没有独立的姿态、平台资料、触发矩阵、派生旗标、专属传播或回退目的地。
|
|
41
|
+
- 实现中发现未冻结的新事实时,统一用既有 `new_impacts` 重新分诊。
|
|
42
|
+
- 保留通用 `seam-deferred` 的风险、责任人、后续 Ticket、验证计划和目标版本 / 发布日期要求;不再存在专项不可延期清单。
|
|
43
|
+
- 保留真实组件选择、普通架构审查、路径边界、证据和验证要求,但不新增与本次简化无关的流程条件。
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 模板发布审查修复 RED / GREEN 证据
|
|
2
|
+
|
|
3
|
+
## 范围
|
|
4
|
+
|
|
5
|
+
- 仓库身份:`template-source`。
|
|
6
|
+
- 触发:全部候选变更的独立双轴发布审查。
|
|
7
|
+
- 目标:消除已明确安全/权限行为缺少普通架构承载、生命周期场景未校验稳定 ID,以及 ADR 把后续未实施能力表述为已生效能力的问题。
|
|
8
|
+
|
|
9
|
+
## RED
|
|
10
|
+
|
|
11
|
+
先新增 `scripts/verify-governance-release`,在不修改权威资产时得到预期失败:
|
|
12
|
+
|
|
13
|
+
- 两份架构模板均缺少“已明确的认证、授权、租户隔离、敏感数据或合规行为”的条件性承载。
|
|
14
|
+
- ADR-0003 / 0006 把索引、依赖图和 fixture 的完整生成写成已交付,ADR-0005 / 0007 把生态发布清单和技能路由注册表写成已生效,但相应资产、schema、消费者和校验器不存在。
|
|
15
|
+
- `verify-lifecycle-scenarios` 使用人类可读 route key,却没有核验它们能映射到 `lifecycle-registry.yaml` 的稳定 ID。
|
|
16
|
+
|
|
17
|
+
## GREEN
|
|
18
|
+
|
|
19
|
+
- 系统概要设计和技术方案模板恢复条件性架构承载:只有明确改变认证、授权、租户隔离、敏感数据或合规行为时才填写普通架构、契约、验证与回滚约束;未触发时不新增独立门禁或登记。
|
|
20
|
+
- ADR-0003 / 0006 明确为 Phase 1 部分实施,ADR-0005 / 0007 明确为 `proposed`;未实现的生态清单、技能注册表、索引、依赖图与 fixture 不再被描述为当前模板已交付能力。
|
|
21
|
+
- `verify-lifecycle-scenarios` 读取 `lifecycle-registry.yaml`,并把每个当前 route key 映射、校验到稳定 ID,防止注册表删除或改名时压力场景静默漂移。
|
|
22
|
+
- `verify-governance-release` 已加入 `scripts/verify-template`。
|
|
23
|
+
|
|
24
|
+
## 验证
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
scripts/verify-governance-release PASS
|
|
28
|
+
scripts/verify-lifecycle-scenarios PASS
|
|
29
|
+
scripts/verify-template PASS(记录于本节最终复审文字写入前的冻结候选)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
后续完整生态发布清单或技能路由注册表必须从新的 RED 场景开始,且同时交付 source、schema、消费者、`--check` 和跨仓验证;不得仅更新 ADR 状态。
|
|
33
|
+
|
|
34
|
+
## 独立复审
|
|
35
|
+
|
|
36
|
+
两位非实现者基于同一 `yss-worktree-candidate-v1` 不可变快照复审:
|
|
37
|
+
|
|
38
|
+
- Standards:条件性架构承载、稳定 ID 映射和 `candidate-manifest.yaml` 均通过。
|
|
39
|
+
- Spec / Requirements:ADR-0003 / 0006 的 Phase 1 边界及 ADR-0005 / 0007 的 `proposed` 状态准确,未实施能力不再被当作本次发布交付。
|
|
40
|
+
|
|
41
|
+
复审时 `drift`、`violation` 和 `new_impacts` 均为空;本节写入后必须对新的最终候选重新执行 fresh verification 并复核候选摘要,结果由本轮 Git checkpoint 记录,避免把验证结论自指为文档写入后的同一快照。
|
|
@@ -45,13 +45,13 @@ owner: ai
|
|
|
45
45
|
| 后端工程工具链:构建、测试、运行、OpenAPI 生成、CI 和 Release 命令必须使用项目根目录 `./mvnw ...`;裸 `mvn ...` 必须有受控例外记录 | `yss-ddd-scaffold-generator` / `yss-backend-scaffold-parent` / implementation routing | | `implemented` / `seam-deferred` / `drift` / `violation` / `not-applicable` | | 无例外记录时改为 `./mvnw ...`,否则不得进入完成 / 可合并结论 |
|
|
46
46
|
| 工程项目路径:每个 Harness 内项目必须有具体项目段,禁止直接写入容器根或单数 `app/...` | `docs/process/implementation-repo-integration.md` / implementation path validator | | `implemented` / `seam-deferred` / `drift` / `violation` / `not-applicable` | | 路径违规时停止 build,并回到实现路由 |
|
|
47
47
|
| 文档语言:持久化生命周期文档、实施记录、审查报告、发布说明和 Git checkpoint 正文必须使用中文,英文 skill / 模板不得原样落地 | `AGENTS.md` / `yss-product-lifecycle` | | `implemented` / `seam-deferred` / `drift` / `violation` / `not-applicable` | | 仅保留必要英文技术标识、命令和 metadata |
|
|
48
|
-
|
|
|
48
|
+
| 高风险变更:按已批准的普通影响面结论记录验证证据、责任人和回滚约束 | `AGENTS.md` / Spec / 架构记录 | | `implemented` / `seam-deferred` / `drift` / `violation` / `not-applicable` | | 缺验证证据或责任人时不得发布或合并 |
|
|
49
49
|
| | | | `implemented` / `seam-deferred` / `drift` / `violation` / `not-applicable` | | |
|
|
50
50
|
|
|
51
51
|
状态说明:
|
|
52
52
|
|
|
53
53
|
- `implemented`:已有代码、测试或文档证据证明满足约束。
|
|
54
|
-
- `seam-deferred`:允许临时 seam
|
|
54
|
+
- `seam-deferred`:允许临时 seam,但必须说明风险、补齐切片、责任人、验证计划和目标版本 / 发布日期;延期项不得无限期挂起。
|
|
55
55
|
- `drift`:实现与架构意图不一致,必须先做 Architecture Re-check。
|
|
56
56
|
- `violation`:违反架构约束或缺少风险 / 回滚证据,停止继续 build,回到设计审查或架构修正。
|
|
57
57
|
- `not-applicable`:当前切片不触碰该约束,并说明原因。
|
|
@@ -113,8 +113,7 @@ rg -n '(^|[[:space:]])mvn[[:space:]]' <backend-repo-or-doc-paths>
|
|
|
113
113
|
| 风险事项 | 是否涉及 | 责任人 / 结论 | 证据 | 阻断结论 |
|
|
114
114
|
|---|---|---|---|---|
|
|
115
115
|
| SQL / DDL | | | | |
|
|
116
|
-
|
|
|
117
|
-
| 文件上传下载 / 临时 URL | | | | |
|
|
116
|
+
| 其他已明确风险 | | | | |
|
|
118
117
|
|
|
119
118
|
## 5. 结论
|
|
120
119
|
|
|
@@ -71,8 +71,6 @@ Harness 内项目路径约束:`apps/backend/`、`apps/frontend/` 只能作为
|
|
|
71
71
|
| 人工确认项 | 是否涉及 | 审查人 / 角色 | 结论 | 补齐落点 |
|
|
72
72
|
|---|---|---|---|---|
|
|
73
73
|
| DDL / SQL / 数据库迁移 | 是 / 否 | | 通过 / 草案 / 阻断 / 不适用 | |
|
|
74
|
-
| 权限接入 / 认证 / 授权 | 是 / 否 | | 通过 / 草案 / 阻断 / 不适用 | |
|
|
75
|
-
| 审计日志 | 是 / 否 | | 通过 / 草案 / 阻断 / 不适用 | |
|
|
76
74
|
| 其他风险 / 回滚约束 | 是 / 否 | | 通过 / 草案 / 阻断 / 不适用 | |
|
|
77
75
|
|
|
78
76
|
## 6. Harness 回写
|
|
@@ -17,7 +17,7 @@ owner: ai
|
|
|
17
17
|
|------|-------------|------|------|
|
|
18
18
|
| 垂直切片 Ticket | | | |
|
|
19
19
|
| OpenAPI Freeze / 无 API 影响记录 | | | |
|
|
20
|
-
| OpenSpec-style Spec Delta(条件必需) | | | 仅 API
|
|
20
|
+
| OpenSpec-style Spec Delta(条件必需) | | | 仅 API、状态机、数据模型、跨端、新模块或高风险变更需要 |
|
|
21
21
|
| Design Review | | | |
|
|
22
22
|
| 实现仓库 / 实现位置 | | | |
|
|
23
23
|
| 前后端工程存在性判定 | | | 记录 frontend / backend 是否已存在且可复用 |
|
|
@@ -94,7 +94,7 @@ owner: ai
|
|
|
94
94
|
| expected_evidence_files | |
|
|
95
95
|
| verification_commands | |
|
|
96
96
|
| human_review_points | |
|
|
97
|
-
| full_reroute_triggers | 新 API/schema
|
|
97
|
+
| full_reroute_triggers | 新 API/schema、状态机、数据模型、写目录、仓库、skill、风险、seam、交付顺序或其他未冻结行为等变化 |
|
|
98
98
|
|
|
99
99
|
| 不适用 skill | 原因 |
|
|
100
100
|
|---|---|
|
|
@@ -211,8 +211,7 @@ owner: ai
|
|
|
211
211
|
| 人工确认项 | 是否涉及 | 结论 | 证据 / 链接 | 补齐落点 |
|
|
212
212
|
|---|---|---|---|---|
|
|
213
213
|
| DDL / SQL / 数据库迁移 | 是 / 否 | 通过 / 草案 / 阻断 / 不适用 | | |
|
|
214
|
-
|
|
|
215
|
-
| 审计日志 | 是 / 否 | 通过 / 草案 / 阻断 / 不适用 | | |
|
|
214
|
+
| 其他已明确的风险 / 人工确认 | 是 / 否 | 通过 / 草案 / 阻断 / 不适用 | 仅登记上游已经明确的事项 | |
|
|
216
215
|
|
|
217
216
|
### 4.3 后端脚手架工作单元
|
|
218
217
|
|
|
@@ -223,7 +222,7 @@ owner: ai
|
|
|
223
222
|
| 前置 | `prototype_confirmation`、工程基线、实现仓库和脚手架目标已确认;Router 脚手架合同 draft 已经生命周期批准并持久化为结构化 JSON,生成器通过 `--contract-file` 消费 |
|
|
224
223
|
| 生成器 | `yss-ddd-scaffold-generator` |
|
|
225
224
|
| 模式 | `controlled-generation` |
|
|
226
|
-
| 允许生成 | Domain / Application / Infrastructure / Adapter / Bootstrap 目录骨架、POM、配置、Wrapper
|
|
225
|
+
| 允许生成 | Domain / Application / Infrastructure / Adapter / Bootstrap 目录骨架、POM、配置、Wrapper 和非业务机械模板 |
|
|
227
226
|
| 禁止生成 | 业务规则、状态机、权限、事务、复杂查询、错误映射、业务字段和用户可见行为 |
|
|
228
227
|
| 生成选项 | 关闭 `--with-example`;非空目录 `--force` 默认阻断,覆盖范围、备份、回滚点和批准引用齐全后才能单独审查 |
|
|
229
228
|
| 验证 | 受控验证器实际执行项目根目录 `./mvnw validate`、`./mvnw test`、`./mvnw package`,逐条记录 `exit_code`、`duration_ms`、stdout/stderr 引用和执行时间;打印命令不算证据 |
|
|
@@ -306,7 +305,8 @@ owner: ai
|
|
|
306
305
|
- [ ] 受影响外部实现仓库已登记,并绑定分支、MR / PR、CI 和验证命令。
|
|
307
306
|
- [ ] 受影响 frontend / backend 工程存在性已判定;0-1 缺失工程已登记 `scaffold_status=required`、确认外部脚手架目标并路由对应脚手架 skill。
|
|
308
307
|
- [ ] 原型确认后已满足 `backend_scaffold_policy_satisfied`;脚手架只生成工程骨架,所有后续生成代码均经批准合同和 YSS skill 路由。
|
|
309
|
-
- [ ] DDL / SQL /
|
|
308
|
+
- [ ] DDL / SQL / 数据库迁移及其他上游明确的人工确认结论已记录。
|
|
309
|
+
- [ ] `seam-deferred` 若存在,已填写风险、责任人、后续 Ticket、验证计划和目标版本 / 发布日期。
|
|
310
310
|
- [ ] 若使用 subagent,已记录任务包、写范围、独立 review、verification 命令和主控采纳结论。
|
|
311
311
|
- [ ] 每个切片包含测试命令、验证方式和回滚点。
|
|
312
312
|
- [ ] 每个工作单元均绑定唯一 TDD 模式,且 Execution Result 引用合同版本并包含实际验证结果和时间。
|
|
@@ -63,7 +63,7 @@ Approved / Changes requested / Blocked
|
|
|
63
63
|
| `yss-web-controller` / `yss-dto` 已按影响面落实,CMD / Query / VO / Result 按既有 DTO 体系定义或复用,Controller 不用内部类或非约定包临时承载主要 DTO / VO、不手工分页主要业务集合、不穿透 Repository | pass / violation / not-applicable | |
|
|
64
64
|
| `mapstruct` 已按影响面落实,PO / Domain Model / DTO / VO / CMD / Query 转换使用 MapStruct Convertor / Mapper,未使用 `BeanUtils.copyProperties`、反射拷贝或重复手写字段赋值;例外已记录测试和补齐落点 | pass / violation / not-applicable | |
|
|
65
65
|
| `lombok` 已按影响面落实,POJO 样板代码使用 Lombok,未成片手写 getter/setter、constructor、builder、logger;实体 / POJO 未触发 `@Data` 等反模式或已说明例外 | pass / violation / not-applicable | |
|
|
66
|
-
| `alibaba-java-code-style` 已纳入审查,命名、异常、日志、ORM/MyBatis、Maven、MapStruct / Lombok
|
|
66
|
+
| `alibaba-java-code-style` 已纳入审查,命名、异常、日志、ORM/MyBatis、Maven、MapStruct / Lombok 注解处理器配置无 blocker | pass / violation / not-applicable | |
|
|
67
67
|
| 后端构建 / 测试 / OpenAPI / CI / Release 命令使用项目根目录 `./mvnw ...`;裸 `mvn ...` 已改正或有受控例外记录 | pass / violation / not-applicable | |
|
|
68
68
|
| 持久化文档正文、章节标题、审查结论和实施说明使用中文;英文模板内容未原样落地 | pass / violation / not-applicable | |
|
|
69
69
|
| `Build Architecture Checklist` 已回勾,延期项、漂移项、违反项有明确处理结论 | pass / violation / not-applicable | |
|
|
@@ -93,6 +93,7 @@ rg -n "class (SingleResult|MultiResult|PageResult|Result)<|public static class .
|
|
|
93
93
|
| Agent 将英文 skill / 模板的标题和说明原样输出为项目持久化文档 | 应改为中文正文和中文章节标题,否则标记为 `violation` | |
|
|
94
94
|
| Agent 修改合同允许路径之外的文件,或缺少预期证据文件 | 应标记为 `violation` 并阻断 build | |
|
|
95
95
|
| Agent 把状态机、权限、事务或错误映射放入 `controlled-generation` | 应拆分为 `behavior-tdd` 工作单元并触发完整重路由 | |
|
|
96
|
+
| Agent 使用 `seam-deferred` 却缺少风险、责任人、后续 Ticket、验证计划或目标版本 / 发布日期 | 应标记为 `violation` 并阻断 | |
|
|
96
97
|
| Agent 返回非空 `new_impacts` 后继续编码或补写旧合同 | 应暂停相关工作单元,将合同标记 `stale`,回到 Router 或更早生命周期阶段 | |
|
|
97
98
|
| Agent 只列验证命令但没有实际结果和执行时间 | 不构成 fresh verification,不得给出 Approved / 可合并结论 | |
|
|
98
99
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# <功能名称> Spec Delta
|
|
2
2
|
|
|
3
|
-
> 适用场景:修改既有冻结 Spec 基线时,API
|
|
3
|
+
> 适用场景:修改既有冻结 Spec 基线时,API、状态机、数据模型、跨端协作或其他高风险行为需要在 Spec、OpenAPI Draft、Design Review 和垂直切片之间明确差异。全新产品或全新模块不使用本模板。明确改变认证或授权行为时,把差异作为普通行为写入本 Delta,不新增单独 Delta。
|
|
4
4
|
> 本模板只借鉴 OpenSpec 的行为差异表达方式,不引入 OpenSpec CLI、旧式变更目录、变更状态文件或额外状态机。
|
|
5
5
|
|
|
6
6
|
## 1. 变更摘要
|
|
@@ -63,7 +63,7 @@ Status: ready-for-human
|
|
|
63
63
|
|---|---|---|---|---|---|---|---|---|---|
|
|
64
64
|
| | | | | behavior-tdd / controlled-generation | | | | | pending / running / blocked / completed / stale |
|
|
65
65
|
|
|
66
|
-
`controlled-generation` 仅允许机械脚手架、样板、冻结客户端或配置,并记录 exception reason、生成器输入和生成后行为测试;业务规则、状态机、事务、权限、错误映射、复杂查询和用户可见交互必须使用 `behavior-tdd
|
|
66
|
+
`controlled-generation` 仅允许机械脚手架、样板、冻结客户端或配置,并记录 exception reason、生成器输入和生成后行为测试;业务规则、状态机、事务、权限、错误映射、复杂查询和用户可见交互必须使用 `behavior-tdd`。只有需求明确包含权限业务行为时才把它写入工作单元,不另设安全 / 权限姿态。
|
|
67
67
|
|
|
68
68
|
## YSS 技能与后端实现合同
|
|
69
69
|
|
|
@@ -98,7 +98,7 @@ Status: ready-for-human
|
|
|
98
98
|
| 字段 | 内容 |
|
|
99
99
|
|---|---|
|
|
100
100
|
| reroute_status | current / incremental-review / full-reroute-required / lifecycle-return / stale |
|
|
101
|
-
| trigger | 新 API/schema /
|
|
101
|
+
| trigger | 新 API/schema / 状态机 / 数据模型 / 写路径 / 仓库 / skill / seam / 风险 / 交付顺序 / other |
|
|
102
102
|
| affected_work_units | |
|
|
103
103
|
| new_impacts | |
|
|
104
104
|
| stale_contract_version | |
|
|
@@ -44,8 +44,8 @@ docs/implementation/
|
|
|
44
44
|
| `competitive-intelligence` | 竞品、替代方案、定价、定位、用户口碑和市场事实研究 | 进入 Discovery / Spec 前需要外部事实支撑时 |
|
|
45
45
|
| Matt Engineering Skills | 澄清、Spec、Ticket、实现、TDD、诊断、审查、架构治理 | 大部分通用工程流程 |
|
|
46
46
|
| YSS skills | DDD、UI、OpenAPI、Repository、Controller、DTO、组件规范 | 进入具体前后端实现或专项审查时 |
|
|
47
|
-
| OpenAPI 3.1 | 前后端 API 契约 | 任何接口路径、schema
|
|
48
|
-
| OpenSpec-style Spec Delta | 行为差异、验收场景和测试映射 | API
|
|
47
|
+
| OpenAPI 3.1 | 前后端 API 契约 | 任何接口路径、schema、错误、分页、并发,或需求明确的认证 / 授权语义变化时 |
|
|
48
|
+
| OpenSpec-style Spec Delta | 行为差异、验收场景和测试映射 | API、状态机、数据模型、跨端、新模块或高风险行为变化时;明确的认证 / 授权行为按其实际影响记录 |
|
|
49
49
|
| Ticket tracker | 状态同步和切片追踪 | 人工暂停、handoff、进入实现、合并、发布,以及验证失败或阻塞更新时 |
|
|
50
50
|
|
|
51
51
|
一句话:
|
|
@@ -104,10 +104,10 @@ docs/implementation/
|
|
|
104
104
|
|
|
105
105
|
## 4. 生命周期主流程
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
日常按主阶段推进。条件门禁只用于裁决命中的影响面;产物、工作单元和证据不是门禁的同义词,不要求每个需求逐项跑完。阶段、产物、模板和必需 / 条件必需规则的权威索引见:
|
|
108
108
|
|
|
109
109
|
```text
|
|
110
|
-
docs/process/lifecycle-
|
|
110
|
+
docs/process/lifecycle-registry.yaml
|
|
111
111
|
```
|
|
112
112
|
|
|
113
113
|
推荐主线:
|
|
@@ -129,7 +129,7 @@ docs/process/lifecycle-artifact-map.md
|
|
|
129
129
|
- 已有行业、竞品或用户材料:先用 `competitive-intelligence` 做 Discovery 事实整理,再生成 Spec。
|
|
130
130
|
- 明确 Bug 或小调整:不走完整机会探索环,直接用 `diagnosing-bugs` 或最小改动加验证。
|
|
131
131
|
- 已有功能的小需求变更:先做影响面评估,选择最近可信阶段,只更新受影响资产和下游门禁。
|
|
132
|
-
- 新模块、API
|
|
132
|
+
- 新模块、API 或跨端改动:必须按生命周期注册表的主阶段推进;有 UI 时必须经过产品设计、原型评审和需求冻结;有 API 时必须完成 API 影响分析 / 契约草案、必要的 Spec Delta、工程基线、系统 / 数据架构、Design Review、OpenAPI Freeze,再进入 `to-tickets`、垂直切片和 TDD。
|
|
133
133
|
|
|
134
134
|
## 5. `yss-product-lifecycle` 使用入口
|
|
135
135
|
|
|
@@ -178,7 +178,7 @@ docs/process/lifecycle-artifact-map.md
|
|
|
178
178
|
```text
|
|
179
179
|
基于 Spec 和产品设计,生成 OpenAPI 3.1 Draft。
|
|
180
180
|
Draft 仅用于评审,不得作为实现或生成客户端的稳定契约。
|
|
181
|
-
请检查 YSS response wrappers
|
|
181
|
+
请检查 YSS response wrappers、错误结构、分页、并发和契约测试 seam。只有 Spec 明确改变认证或授权行为时,才把对应 `401` / `403`、资源过滤和错误语义作为普通 API 行为审查。
|
|
182
182
|
如涉及 API、权限、状态机、数据模型、跨端、新模块或高风险行为变化,请同步生成 OpenSpec-style Spec Delta,记录 ADDED / MODIFIED / REMOVED、验收场景和测试映射。
|
|
183
183
|
```
|
|
184
184
|
|
|
@@ -175,7 +175,7 @@ skills 是让 AI 按规程工作的“操作手册”,不是关键词装饰。
|
|
|
175
175
|
- 因为是 YSS 项目就一次性加载所有 YSS skills。
|
|
176
176
|
- 把 `需求澄清` 用来重复机会探索,而不是在正式变更中做技术方案。
|
|
177
177
|
- 有 UI 的功能从 Spec 初稿直接跳 OpenAPI,跳过页面、原型、状态矩阵和 `prototype-review`。
|
|
178
|
-
- 在 OpenAPI Freeze
|
|
178
|
+
- 在 OpenAPI Freeze 前将 Draft YAML 或手工 JSON 用作生产客户端输入。
|
|
179
179
|
|
|
180
180
|
### 1.5.4 如何使用 agents
|
|
181
181
|
|
|
@@ -804,7 +804,7 @@ TDD 顺序示例:
|
|
|
804
804
|
| 持久化 | `yss-repository`、需要分页/批量/数据源时加 `yss-mybatis` |
|
|
805
805
|
| Web 接口 | `yss-web-controller`、`yss-dto` |
|
|
806
806
|
| 前端页面 | `yss-ui`、`yss-page-module-development`、`api-integration` |
|
|
807
|
-
| OpenAPI client 刷新 | `yss-openapi
|
|
807
|
+
| OpenAPI client 刷新 | `yss-openapi-governance` 从冻结 YAML 派生 JSON,随后 `api-integration` 运行 Orval;只在 Freeze 后或按实现契约刷新时使用 |
|
|
808
808
|
|
|
809
809
|
阶段门禁:
|
|
810
810
|
|
|
@@ -1071,7 +1071,7 @@ docs/user-guide/
|
|
|
1071
1071
|
使用 yss-router。
|
|
1072
1072
|
输入资产:<Spec 路径>、<交互设计路径>、<OpenAPI Freeze 路径或无 API 影响记录>、<架构设计路径>、<垂直切片路径>。
|
|
1073
1073
|
目标:选择最小 YSS 技能集。
|
|
1074
|
-
请说明每个候选技能需要或不需要的理由,尤其是 yss-domain、yss-repository、yss-mybatis、yss-web-controller、yss-ui、api-integration
|
|
1074
|
+
请说明每个候选技能需要或不需要的理由,尤其是 yss-domain、yss-repository、yss-mybatis、yss-web-controller、yss-ui、yss-openapi-governance、api-integration。
|
|
1075
1075
|
边界:不要实现代码,只输出技能路由、实施顺序、测试 seam 和验证建议。
|
|
1076
1076
|
```
|
|
1077
1077
|
|
|
@@ -114,4 +114,4 @@ YSS_SPEC_TEMPLATE_REF=<pinned-commit> npm test
|
|
|
114
114
|
YSS_SPEC_TEMPLATE_REF=<pinned-commit> npm pack --dry-run
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
-
发布顺序为:模板修复与验证 → CLI 绑定 commit 并完成跨仓库测试 → 独立审查 → 发布 CLI `2.1.
|
|
117
|
+
发布顺序为:模板修复与验证 → CLI 绑定 commit 并完成跨仓库测试 → 独立审查 → 发布 CLI `2.1.4`。任一仓库未通过共同验证时,不声明整体可发布。
|
|
@@ -258,7 +258,7 @@ Competitive Matrix
|
|
|
258
258
|
|
|
259
259
|
| 场景 | 主技能 | 常见补充 |
|
|
260
260
|
|---|---|---|
|
|
261
|
-
| 新建完整 Vue 业务页面 | `yss-ui` | `yss-page-module-development`、`api-integration
|
|
261
|
+
| 新建完整 Vue 业务页面 | `yss-ui` | `yss-page-module-development`、`yss-openapi-governance`、`api-integration` |
|
|
262
262
|
| YTable / YTree / YssFormily 页面 | `yss-ui` | `yss-use-table-height`、`yss-use-tree-height`、`yss-formily` |
|
|
263
263
|
| 从零创建后端服务 | `yss-ddd-scaffold-generator` | 后续接 `yss-domain`、`yss-repository`、`yss-web-controller` |
|
|
264
264
|
| 领域建模和状态规则 | `yss-domain` | `yss-backend-scaffold-domain` |
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require "optparse"
|
|
5
|
+
require_relative "lifecycle-registry"
|
|
6
|
+
|
|
7
|
+
options = { check: false, write: false, registry: LifecycleRegistry::DEFAULT_REGISTRY }
|
|
8
|
+
OptionParser.new do |parser|
|
|
9
|
+
parser.on("--check", "仅校验派生文档是否与注册表一致") { options[:check] = true }
|
|
10
|
+
parser.on("--write", "写入派生文档的受管结构区") { options[:write] = true }
|
|
11
|
+
parser.on("--registry PATH", "使用指定注册表") { |path| options[:registry] = Pathname.new(path) }
|
|
12
|
+
end.parse!
|
|
13
|
+
|
|
14
|
+
abort("--check 与 --write 不能同时使用") if options[:check] && options[:write]
|
|
15
|
+
|
|
16
|
+
registry = LifecycleRegistry.validate!(LifecycleRegistry.load_registry(options[:registry]))
|
|
17
|
+
targets = [
|
|
18
|
+
[LifecycleRegistry::ROOT.join("docs/process/lifecycle-artifact-map.md"), "<!-- lifecycle-registry:structure:start -->", "<!-- lifecycle-registry:structure:end -->", LifecycleRegistry.render_lifecycle_structure(registry)],
|
|
19
|
+
[LifecycleRegistry::ROOT.join("docs/process/harness-work-unit-map.md"), "<!-- lifecycle-registry:work-units:start -->", "<!-- lifecycle-registry:work-units:end -->", LifecycleRegistry.render_work_units(registry)]
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
targets.each do |path, start_marker, end_marker, rendered|
|
|
23
|
+
LifecycleRegistry.replace_region!(path, start_marker, end_marker, rendered, check: options[:check])
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
puts(options[:check] ? "生命周期派生产物与注册表一致" : "生命周期派生产物已更新")
|