create-yss-spec 3.2.0 → 3.3.1
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 +2 -2
- package/package.json +3 -2
- package/src/command-runner.mjs +107 -0
- package/src/self-update.js +7 -4
- package/src/template/instance-runtime.js +1 -1
- package/template/.agents/skills/.strategic-design-skills-manifest.json +2 -2
- package/template/.agents/skills/code-review/SKILL.md +4 -0
- package/template/.agents/skills/code-review/agents/openai.yaml +1 -1
- package/template/.agents/skills/code-review/references/yss-review-standards.md +9 -2
- package/template/.agents/skills/competitive-intelligence/SKILL.md +4 -4
- package/template/.agents/skills/domain-modeling/CONTEXT-FORMAT.md +1 -1
- package/template/.agents/skills/grill-with-docs/SKILL.md +1 -1
- package/template/.agents/skills/setup-matt-pocock-skills/issue-tracker-local.md +1 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +8 -8
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
- package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +121 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +40 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +55 -0
- package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
- package/template/.agents/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
- package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
- package/template/.agents/skills/yss-mybatis/SKILL.md +34 -58
- package/template/.agents/skills/yss-mybatis/agents/openai.yaml +2 -2
- package/template/.agents/skills/yss-mybatis/references/source-index.md +88 -68
- package/template/.agents/skills/yss-product-lifecycle/SKILL.md +50 -42
- package/template/.agents/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
- package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +3 -3
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +124 -16
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +16 -2
- package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +5 -2
- package/template/.agents/skills/yss-repository/SKILL.md +28 -70
- package/template/.agents/skills/yss-repository/agents/openai.yaml +2 -2
- package/template/.agents/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
- package/template/.agents/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
- package/template/.agents/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
- package/template/.agents/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
- package/template/.agents/skills/yss-research/SKILL.md +1 -1
- package/template/.agents/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
- package/template/.agents/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
- package/template/.agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
- package/template/.agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
- package/template/.agents/skills/yss-stage-decision/SKILL.md +5 -3
- package/template/.agents/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
- package/template/.claude/skills/code-review/SKILL.md +4 -0
- package/template/.claude/skills/code-review/agents/openai.yaml +1 -1
- package/template/.claude/skills/code-review/references/yss-review-standards.md +9 -2
- package/template/.claude/skills/competitive-intelligence/SKILL.md +4 -4
- package/template/.claude/skills/domain-modeling/CONTEXT-FORMAT.md +1 -1
- package/template/.claude/skills/grill-with-docs/SKILL.md +1 -1
- package/template/.claude/skills/setup-matt-pocock-skills/issue-tracker-local.md +1 -1
- package/template/.claude/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
- package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
- package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +8 -8
- package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
- package/template/.claude/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
- package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
- package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +121 -0
- package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +40 -0
- package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +55 -0
- package/template/.claude/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
- package/template/.claude/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
- package/template/.claude/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
- package/template/.claude/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
- package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
- package/template/.claude/skills/yss-mybatis/SKILL.md +34 -58
- package/template/.claude/skills/yss-mybatis/agents/openai.yaml +2 -2
- package/template/.claude/skills/yss-mybatis/references/source-index.md +88 -68
- package/template/.claude/skills/yss-product-lifecycle/SKILL.md +50 -42
- package/template/.claude/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
- package/template/.claude/skills/yss-product-lifecycle/references/matt-yss-adapter.md +3 -3
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +124 -16
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +16 -2
- package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +5 -2
- package/template/.claude/skills/yss-repository/SKILL.md +28 -70
- package/template/.claude/skills/yss-repository/agents/openai.yaml +2 -2
- package/template/.claude/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
- package/template/.claude/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
- package/template/.claude/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
- package/template/.claude/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
- package/template/.claude/skills/yss-research/SKILL.md +1 -1
- package/template/.claude/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
- package/template/.claude/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
- package/template/.claude/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
- package/template/.claude/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
- package/template/.claude/skills/yss-stage-decision/SKILL.md +5 -3
- package/template/.claude/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
- package/template/.codex/skills/code-review/SKILL.md +4 -0
- package/template/.codex/skills/code-review/agents/openai.yaml +1 -1
- package/template/.codex/skills/code-review/references/yss-review-standards.md +9 -2
- package/template/.codex/skills/competitive-intelligence/SKILL.md +4 -4
- package/template/.codex/skills/domain-modeling/CONTEXT-FORMAT.md +1 -1
- package/template/.codex/skills/grill-with-docs/SKILL.md +1 -1
- package/template/.codex/skills/setup-matt-pocock-skills/issue-tracker-local.md +1 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +8 -8
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
- package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +121 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +40 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +55 -0
- package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
- package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
- package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
- package/template/.codex/skills/yss-mybatis/SKILL.md +34 -58
- package/template/.codex/skills/yss-mybatis/agents/openai.yaml +2 -2
- package/template/.codex/skills/yss-mybatis/references/source-index.md +88 -68
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +50 -42
- package/template/.codex/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
- package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +3 -3
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +124 -16
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +16 -2
- package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +5 -2
- package/template/.codex/skills/yss-repository/SKILL.md +28 -70
- package/template/.codex/skills/yss-repository/agents/openai.yaml +2 -2
- package/template/.codex/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
- package/template/.codex/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
- package/template/.codex/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
- package/template/.codex/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
- package/template/.codex/skills/yss-research/SKILL.md +1 -1
- package/template/.codex/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
- package/template/.codex/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
- package/template/.codex/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
- package/template/.codex/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
- package/template/.codex/skills/yss-stage-decision/SKILL.md +5 -3
- package/template/.codex/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
- package/template/.cursor/skills/code-review/SKILL.md +4 -0
- package/template/.cursor/skills/code-review/agents/openai.yaml +1 -1
- package/template/.cursor/skills/code-review/references/yss-review-standards.md +9 -2
- package/template/.cursor/skills/competitive-intelligence/SKILL.md +4 -4
- package/template/.cursor/skills/domain-modeling/CONTEXT-FORMAT.md +1 -1
- package/template/.cursor/skills/grill-with-docs/SKILL.md +1 -1
- package/template/.cursor/skills/setup-matt-pocock-skills/issue-tracker-local.md +1 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +8 -8
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
- package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +121 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +40 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +55 -0
- package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
- package/template/.cursor/skills/yss-mybatis/SKILL.md +34 -58
- package/template/.cursor/skills/yss-mybatis/agents/openai.yaml +2 -2
- package/template/.cursor/skills/yss-mybatis/references/source-index.md +88 -68
- package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +50 -42
- package/template/.cursor/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
- package/template/.cursor/skills/yss-product-lifecycle/references/matt-yss-adapter.md +3 -3
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +124 -16
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +16 -2
- package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +5 -2
- package/template/.cursor/skills/yss-repository/SKILL.md +28 -70
- package/template/.cursor/skills/yss-repository/agents/openai.yaml +2 -2
- package/template/.cursor/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
- package/template/.cursor/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
- package/template/.cursor/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
- package/template/.cursor/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
- package/template/.cursor/skills/yss-research/SKILL.md +1 -1
- package/template/.cursor/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
- package/template/.cursor/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
- package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
- package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
- package/template/.cursor/skills/yss-stage-decision/SKILL.md +5 -3
- package/template/.cursor/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
- package/template/.pi/skills/code-review/SKILL.md +4 -0
- package/template/.pi/skills/code-review/agents/openai.yaml +1 -1
- package/template/.pi/skills/code-review/references/yss-review-standards.md +9 -2
- package/template/.pi/skills/competitive-intelligence/SKILL.md +4 -4
- package/template/.pi/skills/domain-modeling/CONTEXT-FORMAT.md +1 -1
- package/template/.pi/skills/grill-with-docs/SKILL.md +1 -1
- package/template/.pi/skills/setup-matt-pocock-skills/issue-tracker-local.md +1 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +8 -8
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
- package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +121 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +40 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +55 -0
- package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
- package/template/.pi/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
- package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
- package/template/.pi/skills/yss-mybatis/SKILL.md +34 -58
- package/template/.pi/skills/yss-mybatis/agents/openai.yaml +2 -2
- package/template/.pi/skills/yss-mybatis/references/source-index.md +88 -68
- package/template/.pi/skills/yss-product-lifecycle/SKILL.md +50 -42
- package/template/.pi/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
- package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +3 -3
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +124 -16
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +16 -2
- package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +5 -2
- package/template/.pi/skills/yss-repository/SKILL.md +28 -70
- package/template/.pi/skills/yss-repository/agents/openai.yaml +2 -2
- package/template/.pi/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
- package/template/.pi/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
- package/template/.pi/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
- package/template/.pi/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
- package/template/.pi/skills/yss-research/SKILL.md +1 -1
- package/template/.pi/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
- package/template/.pi/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
- package/template/.pi/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
- package/template/.pi/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
- package/template/.pi/skills/yss-stage-decision/SKILL.md +5 -3
- package/template/.pi/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
- package/template/.qoder/skills/code-review/SKILL.md +4 -0
- package/template/.qoder/skills/code-review/agents/openai.yaml +1 -1
- package/template/.qoder/skills/code-review/references/yss-review-standards.md +9 -2
- package/template/.qoder/skills/competitive-intelligence/SKILL.md +4 -4
- package/template/.qoder/skills/domain-modeling/CONTEXT-FORMAT.md +1 -1
- package/template/.qoder/skills/grill-with-docs/SKILL.md +1 -1
- package/template/.qoder/skills/setup-matt-pocock-skills/issue-tracker-local.md +1 -1
- package/template/.qoder/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
- package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
- package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +8 -8
- package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
- package/template/.qoder/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
- package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
- package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +121 -0
- package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +40 -0
- package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +55 -0
- package/template/.qoder/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
- package/template/.qoder/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
- package/template/.qoder/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
- package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
- package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
- package/template/.qoder/skills/yss-mybatis/SKILL.md +34 -58
- package/template/.qoder/skills/yss-mybatis/agents/openai.yaml +2 -2
- package/template/.qoder/skills/yss-mybatis/references/source-index.md +88 -68
- package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +50 -42
- package/template/.qoder/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
- package/template/.qoder/skills/yss-product-lifecycle/references/matt-yss-adapter.md +3 -3
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +124 -16
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +16 -2
- package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +5 -2
- package/template/.qoder/skills/yss-repository/SKILL.md +28 -70
- package/template/.qoder/skills/yss-repository/agents/openai.yaml +2 -2
- package/template/.qoder/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
- package/template/.qoder/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
- package/template/.qoder/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
- package/template/.qoder/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
- package/template/.qoder/skills/yss-research/SKILL.md +1 -1
- package/template/.qoder/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
- package/template/.qoder/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
- package/template/.qoder/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
- package/template/.qoder/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
- package/template/.qoder/skills/yss-stage-decision/SKILL.md +5 -3
- package/template/.qoder/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
- package/template/.trae/skills/code-review/SKILL.md +4 -0
- package/template/.trae/skills/code-review/agents/openai.yaml +1 -1
- package/template/.trae/skills/code-review/references/yss-review-standards.md +9 -2
- package/template/.trae/skills/competitive-intelligence/SKILL.md +4 -4
- package/template/.trae/skills/domain-modeling/CONTEXT-FORMAT.md +1 -1
- package/template/.trae/skills/grill-with-docs/SKILL.md +1 -1
- package/template/.trae/skills/setup-matt-pocock-skills/issue-tracker-local.md +1 -1
- package/template/.trae/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
- package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
- package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +8 -8
- package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
- package/template/.trae/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
- package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
- package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +121 -0
- package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +40 -0
- package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +55 -0
- package/template/.trae/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
- package/template/.trae/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
- package/template/.trae/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
- package/template/.trae/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
- package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
- package/template/.trae/skills/yss-mybatis/SKILL.md +34 -58
- package/template/.trae/skills/yss-mybatis/agents/openai.yaml +2 -2
- package/template/.trae/skills/yss-mybatis/references/source-index.md +88 -68
- package/template/.trae/skills/yss-product-lifecycle/SKILL.md +50 -42
- package/template/.trae/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
- package/template/.trae/skills/yss-product-lifecycle/references/matt-yss-adapter.md +3 -3
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +124 -16
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +16 -2
- package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +5 -2
- package/template/.trae/skills/yss-repository/SKILL.md +28 -70
- package/template/.trae/skills/yss-repository/agents/openai.yaml +2 -2
- package/template/.trae/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
- package/template/.trae/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
- package/template/.trae/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
- package/template/.trae/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
- package/template/.trae/skills/yss-research/SKILL.md +1 -1
- package/template/.trae/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
- package/template/.trae/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
- package/template/.trae/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
- package/template/.trae/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
- package/template/.trae/skills/yss-stage-decision/SKILL.md +5 -3
- package/template/.trae/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
- package/template/AGENTS.md +2 -2
- package/template/CONTEXT.md +3 -2
- package/template/README.md +3 -3
- package/template/docs/agents/digital-human-roles.md +1 -1
- package/template/docs/agents/digital-human-roles.yaml +13 -11
- package/template/docs/agents/issue-tracker.md +1 -1
- package/template/docs/agents/strategic-design-skills-integration.md +2 -0
- package/template/docs/agents/yss-skill-registry.yaml +5 -0
- package/template/docs/architecture/README.md +1 -1
- package/template/docs/architecture/templates/business-architecture-template.md +1 -1
- package/template/docs/architecture/templates/functional-architecture-template.md +1 -1
- package/template/docs/design/README.md +1 -1
- package/template/docs/design/templates/interaction-spec-template.md +1 -1
- package/template/docs/design/templates/product-overview-design-template.md +1 -1
- package/template/docs/{discovery → plan}/IDEATION.md +5 -5
- package/template/docs/plan/README.md +9 -0
- package/template/docs/plan/entry-review.md +23 -0
- package/template/docs/plan/templates/plan-template.md +58 -0
- package/template/docs/process/harness-process-tailoring.md +1 -1
- package/template/docs/process/lifecycle-artifact-map.md +10 -6
- package/template/docs/process/lifecycle-registry-baseline.json +10 -1
- package/template/docs/process/lifecycle-registry.yaml +48 -20
- package/template/docs/process/plan-migration.md +13 -0
- package/template/docs/process/schemas/digital-human-task-package.schema.json +2 -0
- package/template/docs/process/schemas/implementation-repository-preparation-result.schema.json +38 -0
- package/template/docs/process/schemas/lifecycle-checkpoint.schema.json +3 -0
- package/template/docs/process/schemas/lifecycle-registry.schema.json +1 -1
- package/template/docs/process/schemas/project-scaffold-contract.schema.json +113 -0
- package/template/docs/process/template-engineering-overview.md +2 -2
- package/template/docs/process/template-verification-profiles.yaml +25 -0
- package/template/docs/process/templates/context-reconciliation-template.yaml +2 -2
- package/template/docs/process/templates/lifecycle-checkpoint-template.yaml +1 -1
- package/template/docs/requirements/README.md +2 -2
- package/template/docs/templates/implementation-repo-registry-template.md +8 -0
- package/template/docs/templates/local-parent-ticket-template.md +1 -1
- package/template/docs/templates/review-report-template.md +7 -3
- package/template/docs/templates/subagent-task-package-template.md +1 -1
- package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +1 -1
- package/template/scripts/cache-template-commit +2 -2
- package/template/scripts/fixtures/strategic-handoff/source-roles.json +7 -7
- package/template/scripts/fixtures/user-decision/plan-fixture.mjs +30 -0
- package/template/scripts/lib/backend-delivery.mjs +5 -2
- package/template/scripts/lib/command-runner.mjs +107 -0
- package/template/scripts/lib/context-reconciliation.mjs +34 -0
- package/template/scripts/lib/json-schema.mjs +42 -13
- package/template/scripts/lib/lifecycle-context-query.mjs +141 -0
- package/template/scripts/lib/lifecycle-transition.mjs +118 -6
- package/template/scripts/lib/plan-spec-entry.mjs +87 -0
- package/template/scripts/lib/scenario-checks.mjs +44 -38
- package/template/scripts/lib/skill-registry.mjs +9 -0
- package/template/scripts/lib/skill-supply-chain.mjs +18 -2
- package/template/scripts/lib/strategic-handoff-io.mjs +5 -4
- package/template/scripts/lib/strategic-handoff.mjs +10 -9
- package/template/scripts/lib/task-package.mjs +2 -0
- package/template/scripts/lib/template-commit-cache.mjs +7 -5
- package/template/scripts/query-lifecycle-context +25 -0
- package/template/scripts/run-template-verification +9 -3
- package/template/scripts/sync-strategic-handoff-tools +9 -0
- package/template/scripts/verify-business-language-scenarios +0 -7
- package/template/scripts/verify-context-reconciliation +2 -48
- package/template/scripts/verify-context-reconciliation-scenarios +1 -1
- package/template/scripts/verify-frontend-scaffold-generator-scenarios +2 -0
- package/template/scripts/verify-lifecycle-checkpoint +2 -0
- package/template/scripts/verify-lifecycle-context-query-scenarios +88 -0
- package/template/scripts/verify-lifecycle-transition-scenarios +44 -4
- package/template/scripts/verify-plan-spec-entry +11 -0
- package/template/scripts/verify-plan-spec-entry-scenarios +79 -0
- package/template/scripts/verify-script-performance-scenarios +56 -0
- package/template/scripts/verify-subagent-task-package-scenarios +9 -8
- package/template/scripts/verify-template-cache-scenarios +11 -1
- package/template/scripts/verify-user-decision-scenarios +4 -4
- package/template/skills-lock.json +23 -23
- package/template.manifest.json +2 -1
- package/template.snapshot.json +5 -5
- package/template/.agents/skills/yss-mybatis/assets/BaseRepository.java +0 -112
- package/template/.agents/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
- package/template/.agents/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
- package/template/.agents/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
- package/template/.agents/skills/yss-mybatis/references/README.md +0 -57
- package/template/.agents/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
- package/template/.claude/skills/yss-mybatis/assets/BaseRepository.java +0 -112
- package/template/.claude/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
- package/template/.claude/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
- package/template/.claude/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
- package/template/.claude/skills/yss-mybatis/references/README.md +0 -57
- package/template/.claude/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
- package/template/.codex/skills/yss-mybatis/assets/BaseRepository.java +0 -112
- package/template/.codex/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
- package/template/.codex/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
- package/template/.codex/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
- package/template/.codex/skills/yss-mybatis/references/README.md +0 -57
- package/template/.codex/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
- package/template/.cursor/skills/yss-mybatis/assets/BaseRepository.java +0 -112
- package/template/.cursor/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
- package/template/.cursor/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
- package/template/.cursor/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
- package/template/.cursor/skills/yss-mybatis/references/README.md +0 -57
- package/template/.cursor/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
- package/template/.pi/skills/yss-mybatis/assets/BaseRepository.java +0 -112
- package/template/.pi/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
- package/template/.pi/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
- package/template/.pi/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
- package/template/.pi/skills/yss-mybatis/references/README.md +0 -57
- package/template/.pi/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
- package/template/.qoder/skills/yss-mybatis/assets/BaseRepository.java +0 -112
- package/template/.qoder/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
- package/template/.qoder/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
- package/template/.qoder/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
- package/template/.qoder/skills/yss-mybatis/references/README.md +0 -57
- package/template/.qoder/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
- package/template/.trae/skills/yss-mybatis/assets/BaseRepository.java +0 -112
- package/template/.trae/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
- package/template/.trae/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
- package/template/.trae/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
- package/template/.trae/skills/yss-mybatis/references/README.md +0 -57
- package/template/.trae/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
- package/template/docs/discovery/README.md +0 -87
- package/template/docs/discovery/reports/.gitkeep +0 -0
- package/template/docs/discovery/reports/agent-governance-options.md +0 -71
- package/template/docs/discovery/reports/competitor-deep-dive/.gitkeep +0 -0
- package/template/docs/discovery/templates/discovery-template.md +0 -94
- /package/template/docs/{discovery → plan}/templates/competitive-analysis-template.md +0 -0
- /package/template/docs/{discovery → plan}/templates/competitive-matrix-template.md +0 -0
- /package/template/docs/{discovery → plan}/templates/market-analysis-template.md +0 -0
- /package/template/docs/{discovery → plan}/templates/user-pain-points-template.md +0 -0
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
"additionalProperties": false,
|
|
7
7
|
"required": ["schema_version", "task_id", "work_unit_id", "actor_id", "role_id", "runtime_id", "execution_state", "workflow_status", "skill_source", "contract", "inputs", "objective", "allowed_write_paths", "forbidden_actions", "expected_outputs", "expected_evidence_files", "verification_commands", "verification_results", "downstream_consumers", "convergence"],
|
|
8
8
|
"properties": {
|
|
9
|
+
"plan_review_ref": { "type": "string", "minLength": 1 },
|
|
10
|
+
"plan_user_decision_ref": { "type": "string", "minLength": 1 },
|
|
9
11
|
"schema_version": { "const": 1 },
|
|
10
12
|
"frontend_delivery": {
|
|
11
13
|
"type": "object", "additionalProperties": false, "required": ["acceptance_ref"],
|
package/template/docs/process/schemas/implementation-repository-preparation-result.schema.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://yss.example/schemas/implementation-repository-preparation-result.schema.json",
|
|
4
|
+
"title": "Implementation Repository Preparation Result",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schema_version", "kind", "result", "current_version", "projects", "evidence_refs"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema_version": { "const": 1 },
|
|
10
|
+
"kind": { "const": "implementation-repository-preparation-result" },
|
|
11
|
+
"result": { "const": "completed" },
|
|
12
|
+
"current_version": { "const": true },
|
|
13
|
+
"projects": {
|
|
14
|
+
"type": "array",
|
|
15
|
+
"minItems": 2,
|
|
16
|
+
"items": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"required": ["project_id", "delivery_role", "status"],
|
|
19
|
+
"properties": {
|
|
20
|
+
"project_id": { "type": "string", "minLength": 1 },
|
|
21
|
+
"delivery_role": { "enum": ["backend", "frontend"] },
|
|
22
|
+
"status": { "enum": ["existing-and-onboarded", "initialized-and-verified", "not-applicable"] },
|
|
23
|
+
"reason": { "type": "string" },
|
|
24
|
+
"repository_ref": { "type": "string" },
|
|
25
|
+
"project_root": { "type": "string" },
|
|
26
|
+
"repository_scope": { "enum": ["external-repository", "harness-apps", "git-submodule"] },
|
|
27
|
+
"onboarding_result": { "type": "object" },
|
|
28
|
+
"scaffold_contract": { "type": "object" },
|
|
29
|
+
"scaffold_manifest_ref": { "type": "string" },
|
|
30
|
+
"scaffold_verification": { "type": "object" },
|
|
31
|
+
"template_available": { "type": "boolean" },
|
|
32
|
+
"architecture_family": { "type": "string" }
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"evidence_refs": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } }
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
"additionalProperties": false,
|
|
7
7
|
"required": ["schema_version", "repository_mode", "mode", "status", "stage", "artifacts", "gates", "context_reconciliation", "next_work_unit", "ticket_sync", "verification", "human_review", "git_checkpoint", "blockers", "rollback"],
|
|
8
8
|
"properties": {
|
|
9
|
+
"plan_review_ref": { "type": "string", "minLength": 1 },
|
|
10
|
+
"plan_user_decision_ref": { "type": "string", "minLength": 1 },
|
|
11
|
+
"feature_id": { "type": "string", "minLength": 1 },
|
|
9
12
|
"schema_version": { "const": 1 },
|
|
10
13
|
"repository_mode": { "enum": ["template-source", "project-instance"] },
|
|
11
14
|
"mode": { "enum": ["route", "orchestrate", "resume", "audit"] },
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"$defs": {
|
|
29
29
|
"id": { "type": "string", "pattern": "^(stage|gate|artifact|work-unit|evidence)\\.[a-z0-9][a-z0-9-]*$" },
|
|
30
|
-
"stages": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": ["id", "name", "goal", "exit_criteria"], "properties": { "id": { "$ref": "#/$defs/id" }, "name": { "type": "string", "minLength": 1 }, "goal": { "type": "string", "minLength": 1 }, "exit_criteria": { "type": "string", "minLength": 1 }, "public_name": { "type": "string", "minLength": 1 }, "public_goal": { "type": "string", "minLength": 1 }, "public_exit_criteria": { "type": "string", "minLength": 1 } } } },
|
|
30
|
+
"stages": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": ["id", "name", "goal", "exit_criteria"], "properties": { "spec_entry": {"type":"object","required":["required_checks","gate_impacts"],"additionalProperties":false,"properties":{"required_checks":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","minLength":1}},"gate_impacts":{"type":"object","minProperties":1,"additionalProperties":{"type":"string","minLength":1}}}}, "id": { "$ref": "#/$defs/id" }, "name": { "type": "string", "minLength": 1 }, "goal": { "type": "string", "minLength": 1 }, "exit_criteria": { "type": "string", "minLength": 1 }, "public_name": { "type": "string", "minLength": 1 }, "public_goal": { "type": "string", "minLength": 1 }, "public_exit_criteria": { "type": "string", "minLength": 1 } } } },
|
|
31
31
|
"objects": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["id", "name", "stage", "trigger"], "properties": { "id": { "$ref": "#/$defs/id" }, "name": { "type": "string", "minLength": 1 }, "stage": { "type": "string", "pattern": "^stage\\." }, "trigger": { "type": "string", "minLength": 1 }, "public_name": { "type": "string", "minLength": 1 }, "public_trigger": { "type": "string", "minLength": 1 }, "evidence": { "type": "array", "minItems": 1, "items": { "type": "string", "pattern": "^evidence\\." } }, "requires_gates": { "type": "array", "uniqueItems": true, "items": { "type": "string", "pattern": "^gate\\." } } } } },
|
|
32
32
|
"workUnits": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["id", "name", "scope", "input", "output", "completion"], "properties": { "id": { "$ref": "#/$defs/id" }, "name": { "type": "string", "minLength": 1 }, "scope": { "enum": ["template-source", "project-instance"] }, "input": { "type": "string", "minLength": 1 }, "output": { "type": "string", "minLength": 1 }, "completion": { "type": "string", "minLength": 1 }, "public_name": { "type": "string", "minLength": 1 }, "public_input": { "type": "string", "minLength": 1 }, "public_output": { "type": "string", "minLength": 1 }, "public_completion": { "type": "string", "minLength": 1 } } } },
|
|
33
33
|
"evidence": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["id", "name", "description"], "properties": { "id": { "$ref": "#/$defs/id" }, "name": { "type": "string", "minLength": 1 }, "description": { "type": "string", "minLength": 1 }, "public_name": { "type": "string", "minLength": 1 }, "public_description": { "type": "string", "minLength": 1 } } } }
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://yss.example/schemas/project-scaffold-contract.schema.json",
|
|
4
|
+
"title": "YSS Project Scaffold Contract v4",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schema_version", "kind", "contract_id", "contract_version", "status", "persisted_ref", "current_version", "delivery_role", "scaffold_kind", "generator_skill", "implementation_repository", "target_output_dir", "repository_scope", "init_git", "allowed_write_paths", "expected_evidence_files", "verification_commands", "approval", "generation_policy"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema_version": { "const": 4 },
|
|
10
|
+
"kind": { "const": "project-scaffold-contract" },
|
|
11
|
+
"contract_id": { "type": "string", "minLength": 1 },
|
|
12
|
+
"contract_version": { "oneOf": [{ "type": "string", "minLength": 1 }, { "type": "integer", "minimum": 1 }] },
|
|
13
|
+
"scaffold_request_id": { "type": "string", "minLength": 1 },
|
|
14
|
+
"compiler_draft_ref": { "type": "string", "minLength": 1 },
|
|
15
|
+
"lifecycle_approval_ref": { "type": "string", "minLength": 1 },
|
|
16
|
+
"status": { "const": "approved" },
|
|
17
|
+
"persisted_ref": { "type": "string", "minLength": 1 },
|
|
18
|
+
"current_version": { "const": true },
|
|
19
|
+
"delivery_role": { "enum": ["backend", "frontend"] },
|
|
20
|
+
"scaffold_kind": { "enum": ["backend-ddd", "backend-layered-mvc", "frontend-yss-vue3"] },
|
|
21
|
+
"generator_skill": { "enum": ["yss-ddd-scaffold-generator", "yss-layered-mvc-scaffold-generator", "yss-frontend-scaffold-generator"] },
|
|
22
|
+
"implementation_repository": { "type": "string", "minLength": 1 },
|
|
23
|
+
"backend_repository": { "type": "string", "minLength": 1 },
|
|
24
|
+
"scaffold_status": { "const": "required" },
|
|
25
|
+
"target_output_dir": { "type": "string", "minLength": 1 },
|
|
26
|
+
"repository_scope": { "enum": ["external-repository", "harness-apps", "git-submodule"] },
|
|
27
|
+
"init_git": { "type": "boolean" },
|
|
28
|
+
"project_name": { "type": "string", "minLength": 1 },
|
|
29
|
+
"base_package": { "type": "string", "minLength": 1 },
|
|
30
|
+
"architecture_family": { "enum": ["domain-driven", "layered-mvc"] },
|
|
31
|
+
"architecture_profile": { "type": "string", "minLength": 1 },
|
|
32
|
+
"decision_ref": { "type": "string", "minLength": 1 },
|
|
33
|
+
"decision_id": { "type": "string", "minLength": 1 },
|
|
34
|
+
"decision_digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
|
|
35
|
+
"maven_coordinates": { "type": "object" },
|
|
36
|
+
"profiles": { "type": "object" },
|
|
37
|
+
"module_profile": { "type": "object" },
|
|
38
|
+
"frontend": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"additionalProperties": false,
|
|
41
|
+
"required": ["app_name", "microapp_name", "base_route", "package_manager", "template", "openapi_impact"],
|
|
42
|
+
"properties": {
|
|
43
|
+
"app_name": { "type": "string", "minLength": 1 },
|
|
44
|
+
"microapp_name": { "type": "string", "minLength": 1 },
|
|
45
|
+
"base_route": { "type": "string", "pattern": "^/" },
|
|
46
|
+
"package_manager": { "const": "pnpm" },
|
|
47
|
+
"template": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"additionalProperties": false,
|
|
50
|
+
"required": ["repository", "commit"],
|
|
51
|
+
"properties": {
|
|
52
|
+
"repository": { "type": "string", "minLength": 1 },
|
|
53
|
+
"commit": { "type": "string", "pattern": "^[a-f0-9]{40}$" }
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"openapi_impact": { "enum": ["frozen", "not-applicable"] },
|
|
57
|
+
"openapi_json_ref": { "type": "string", "minLength": 1 },
|
|
58
|
+
"openapi_json_digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
|
|
59
|
+
"openapi_not_applicable_reason": { "type": "string", "minLength": 1 },
|
|
60
|
+
"replacements": { "type": "object", "additionalProperties": { "type": "string" } }
|
|
61
|
+
},
|
|
62
|
+
"allOf": [
|
|
63
|
+
{ "if": { "properties": { "openapi_impact": { "const": "frozen" } } }, "then": { "required": ["openapi_json_ref", "openapi_json_digest"] } },
|
|
64
|
+
{ "if": { "properties": { "openapi_impact": { "const": "not-applicable" } } }, "then": { "required": ["openapi_not_applicable_reason"] } }
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
"allowed_write_paths": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
|
|
68
|
+
"expected_evidence_files": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
|
|
69
|
+
"verification_commands": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
|
|
70
|
+
"approval": {
|
|
71
|
+
"type": "object",
|
|
72
|
+
"additionalProperties": false,
|
|
73
|
+
"required": ["approval_ref", "approver"],
|
|
74
|
+
"properties": { "approval_ref": { "type": "string", "minLength": 1 }, "approver": { "type": "string", "minLength": 1 }, "persisted_ref": { "type": "string", "minLength": 1 }, "current_version": { "oneOf": [{ "type": "boolean" }, { "type": "integer" }, { "type": "string" }] } }
|
|
75
|
+
},
|
|
76
|
+
"generation_policy": {
|
|
77
|
+
"type": "object",
|
|
78
|
+
"additionalProperties": false,
|
|
79
|
+
"required": ["mode", "existing_target", "old_project_migration", "template_upgrade"],
|
|
80
|
+
"properties": {
|
|
81
|
+
"mode": { "const": "initialize-only" },
|
|
82
|
+
"existing_target": { "const": "unsupported" },
|
|
83
|
+
"old_project_migration": { "const": "unsupported" },
|
|
84
|
+
"template_upgrade": { "const": "unsupported" }
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"work_unit": {
|
|
88
|
+
"type": "object",
|
|
89
|
+
"required": ["id", "behavior", "primary_skill", "supporting_skills", "tdd_mode", "allowed_write_paths", "expected_evidence", "verification_commands", "controlled_generation"],
|
|
90
|
+
"properties": {
|
|
91
|
+
"id": { "type": "string" },
|
|
92
|
+
"behavior": { "enum": ["project-scaffold", "scaffold"] },
|
|
93
|
+
"primary_skill": { "type": "string" },
|
|
94
|
+
"supporting_skills": { "type": "array", "items": { "type": "string" } },
|
|
95
|
+
"tdd_mode": { "const": "controlled-generation" },
|
|
96
|
+
"allowed_write_paths": { "type": "array", "minItems": 1, "items": { "type": "string" } },
|
|
97
|
+
"expected_evidence": { "type": "array", "minItems": 1, "items": { "type": "string" } },
|
|
98
|
+
"verification_commands": { "type": "array", "minItems": 1, "items": { "type": "string" } },
|
|
99
|
+
"controlled_generation": { "const": true }
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"allOf": [
|
|
104
|
+
{
|
|
105
|
+
"if": { "properties": { "delivery_role": { "const": "frontend" } } },
|
|
106
|
+
"then": { "required": ["frontend"], "properties": { "generator_skill": { "const": "yss-frontend-scaffold-generator" }, "scaffold_kind": { "const": "frontend-yss-vue3" } } }
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"if": { "properties": { "delivery_role": { "const": "backend" } } },
|
|
110
|
+
"then": { "required": ["scaffold_request_id", "compiler_draft_ref", "lifecycle_approval_ref", "backend_repository", "scaffold_status", "project_name", "base_package", "architecture_family", "decision_ref", "decision_id", "decision_digest", "maven_coordinates", "profiles", "module_profile", "work_unit"] }
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
}
|
|
@@ -22,7 +22,7 @@ YSS 模板工程是一套可版本化的研发治理系统。它用仓库身份
|
|
|
22
22
|
| 身份 | 用途 | 允许的主要工作 | 边界 |
|
|
23
23
|
|---|---|---|---|
|
|
24
24
|
| `template-source` | 维护通用模板与治理规则 | 更新单一事实来源、同步技能投影、构建 CLI 快照、验证与审查 | 不生成具体产品的 Spec、原型、OpenAPI 或垂直切片 Ticket |
|
|
25
|
-
| `project-instance` | 承载具体产品或模块的研发管理资产 | 执行
|
|
25
|
+
| `project-instance` | 承载具体产品或模块的研发管理资产 | 执行 Plan、Spec、设计、工程契约、Ticket、实现、验证和发布流程 | 不反向成为通用模板的权威来源 |
|
|
26
26
|
|
|
27
27
|
身份只由 `yss-project.yaml` 声明。目录结构、Git remote 和占位符都不能替代该清单。
|
|
28
28
|
|
|
@@ -32,7 +32,7 @@ YSS 模板工程是一套可版本化的研发治理系统。它用仓库身份
|
|
|
32
32
|
|
|
33
33
|
| 产品线 | 模板源 | 实例化 CLI | 生命周期边界 |
|
|
34
34
|
|---|---|---|---|
|
|
35
|
-
| 全产品生命周期 | `yss-spec-project-template` | `create-yss-spec` | 从
|
|
35
|
+
| 全产品生命周期 | `yss-spec-project-template` | `create-yss-spec` | 从 Plan 到发布与复盘 |
|
|
36
36
|
| DDD 战略设计交接 | `yss-harness-design-agent` | `create-yss-harness-design` | 从机会、需求和战略设计到 Strategic Design Handoff |
|
|
37
37
|
| 开发落地 | `yss-harness-dev-agent` | `create-yss-harness-dev` | 从已批准 Spec 或战略设计交接包到 Tactical Design、Slice Contract、实现与验证 |
|
|
38
38
|
|
|
@@ -57,6 +57,9 @@ required_files:
|
|
|
57
57
|
- .agents/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md
|
|
58
58
|
- .agents/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs
|
|
59
59
|
- .agents/skills/yss-skill-source-index-refresh/SKILL.md
|
|
60
|
+
- .agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs
|
|
61
|
+
- .agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs
|
|
62
|
+
- .agents/skills/yss-repository/tests/profile-routing.test.mjs
|
|
60
63
|
- docs/agents/yss-ui-skills-integration.md
|
|
61
64
|
- docs/agents/strategic-design-skills-integration.md
|
|
62
65
|
- docs/user-guide/yss-ui-mcp.md
|
|
@@ -72,6 +75,8 @@ required_files:
|
|
|
72
75
|
- docs/process/schemas/strategic-design-handoff.schema.json
|
|
73
76
|
- docs/process/schemas/frontend-implementation-evidence.schema.json
|
|
74
77
|
- docs/process/schemas/scaffold-architecture-decisions.schema.json
|
|
78
|
+
- docs/process/schemas/project-scaffold-contract.schema.json
|
|
79
|
+
- docs/process/schemas/implementation-repository-preparation-result.schema.json
|
|
75
80
|
- docs/design/schemas/visual-baseline.schema.json
|
|
76
81
|
- docs/process/schemas/subagent-task-package.schema.json
|
|
77
82
|
- docs/process/templates/lifecycle-checkpoint-template.yaml
|
|
@@ -117,6 +122,9 @@ required_files:
|
|
|
117
122
|
- scripts/verify-template-candidate
|
|
118
123
|
- scripts/verify-template
|
|
119
124
|
- scripts/verify-business-language-scenarios
|
|
125
|
+
- scripts/query-lifecycle-context
|
|
126
|
+
- scripts/lib/lifecycle-context-query.mjs
|
|
127
|
+
- scripts/verify-lifecycle-context-query-scenarios
|
|
120
128
|
- scripts/verify-frontend-implementation-evidence-scenarios
|
|
121
129
|
- scripts/prepare-maintenance-review
|
|
122
130
|
- scripts/evaluate-maintenance-review-round
|
|
@@ -131,6 +139,9 @@ syntax_files:
|
|
|
131
139
|
- scripts/update-skill-lock
|
|
132
140
|
- scripts/verify-upstream-skill-source
|
|
133
141
|
- scripts/lib/skill-supply-chain.mjs
|
|
142
|
+
- .agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs
|
|
143
|
+
- .agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs
|
|
144
|
+
- .agents/skills/yss-repository/tests/profile-routing.test.mjs
|
|
134
145
|
- scripts/generate-lifecycle-artifacts
|
|
135
146
|
- scripts/verify-lifecycle-registry
|
|
136
147
|
- scripts/verify-lifecycle-checkpoint
|
|
@@ -138,6 +149,9 @@ syntax_files:
|
|
|
138
149
|
- scripts/verify-context-contract
|
|
139
150
|
- scripts/verify-context-contract-scenarios
|
|
140
151
|
- scripts/verify-business-language-scenarios
|
|
152
|
+
- scripts/query-lifecycle-context
|
|
153
|
+
- scripts/lib/lifecycle-context-query.mjs
|
|
154
|
+
- scripts/verify-lifecycle-context-query-scenarios
|
|
141
155
|
- scripts/verify-context-reconciliation
|
|
142
156
|
- scripts/verify-context-reconciliation-scenarios
|
|
143
157
|
- scripts/verify-grill-with-docs-context-scenarios
|
|
@@ -172,6 +186,10 @@ syntax_files:
|
|
|
172
186
|
- scripts/lib/lifecycle-transition.mjs
|
|
173
187
|
- scripts/verify-lifecycle-scenarios
|
|
174
188
|
- scripts/verify-lifecycle-transition-scenarios
|
|
189
|
+
- scripts/verify-frontend-scaffold-generator-scenarios
|
|
190
|
+
- .agents/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs
|
|
191
|
+
- .agents/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs
|
|
192
|
+
- .agents/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs
|
|
175
193
|
- scripts/verify-matt-yss-integration-scenarios
|
|
176
194
|
- scripts/verify-prototype-backend-scaffold-scenarios
|
|
177
195
|
- scripts/verify-yss-implementation-contract-compiler-scenarios
|
|
@@ -269,6 +287,8 @@ groups:
|
|
|
269
287
|
- { run: "scripts/verify-skill-governance" }
|
|
270
288
|
- { run: "scripts/verify-upstream-skill-source --source=iloveZzz/yss-harness-design-agent --source-root=submodules/yss-harness-design-agent", when: template-source }
|
|
271
289
|
- { run: "node .agents/skills/yss-antdv-next-design/tests/run-scenarios.mjs" }
|
|
290
|
+
- { run: "node --test .agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs" }
|
|
291
|
+
- { run: "node --test .agents/skills/yss-repository/tests/profile-routing.test.mjs" }
|
|
272
292
|
tactical-design:
|
|
273
293
|
commands:
|
|
274
294
|
- { run: "node .agents/skills/yss-technical-design/scripts/generate-schema.mjs --check" }
|
|
@@ -298,9 +318,11 @@ groups:
|
|
|
298
318
|
- { run: "scripts/verify-context-contract-scenarios" }
|
|
299
319
|
- { run: "node scripts/verify-business-language-scenarios" }
|
|
300
320
|
- { run: "scripts/verify-context-reconciliation-scenarios" }
|
|
321
|
+
- { run: "node scripts/verify-script-performance-scenarios" }
|
|
301
322
|
- { run: "scripts/verify-grill-with-docs-context-scenarios" }
|
|
302
323
|
- { run: "scripts/verify-strategic-context-import-scenarios" }
|
|
303
324
|
- { run: "scripts/verify-lifecycle-registry" }
|
|
325
|
+
- { run: "scripts/verify-lifecycle-context-query-scenarios" }
|
|
304
326
|
- { run: "scripts/verify-lifecycle-checkpoint docs/process/templates/lifecycle-checkpoint-template.yaml" }
|
|
305
327
|
- { run: "scripts/verify-frontend-implementation-evidence --allow-template docs/process/templates/frontend-implementation-plan-template.yaml" }
|
|
306
328
|
- { run: "scripts/verify-frontend-implementation-evidence --allow-template docs/process/templates/frontend-implementation-verification-template.yaml" }
|
|
@@ -309,6 +331,8 @@ groups:
|
|
|
309
331
|
- { run: "scripts/verify-scaffold-architecture-decision-scenarios" }
|
|
310
332
|
- { run: "scripts/verify-lifecycle-scenarios" }
|
|
311
333
|
- { run: "scripts/verify-lifecycle-transition-scenarios" }
|
|
334
|
+
- { run: "node scripts/verify-plan-spec-entry-scenarios" }
|
|
335
|
+
- { run: "scripts/verify-frontend-scaffold-generator-scenarios" }
|
|
312
336
|
maintenance:
|
|
313
337
|
commands:
|
|
314
338
|
- { run: "scripts/verify-maintenance-checkpoint .template-source/evidence/maintenance/yss-tactical-design-l3-checkpoint-2026-08-27.yaml", when: template-source }
|
|
@@ -321,6 +345,7 @@ groups:
|
|
|
321
345
|
- { run: "scripts/verify-scaffold-generator-scenarios" }
|
|
322
346
|
- { run: "node --test .agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs" }
|
|
323
347
|
- { run: "node --test .agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs" }
|
|
348
|
+
- { run: "scripts/verify-frontend-scaffold-generator-scenarios" }
|
|
324
349
|
- { run: "scripts/verify-prototype-backend-scaffold-scenarios" }
|
|
325
350
|
- { run: "scripts/verify-matt-yss-integration-scenarios" }
|
|
326
351
|
- { run: "scripts/verify-yss-implementation-contract-compiler-scenarios" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 需求定义 (Requirements) — 从想法到可执行定义
|
|
2
2
|
|
|
3
|
-
> **Phase: Requirements | 输入:
|
|
3
|
+
> **Phase: Requirements | 输入: Plan | 输出: Spec + Stories + 验收条件**
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -79,7 +79,7 @@ delegate_task(
|
|
|
79
79
|
## AI-Human Loop
|
|
80
80
|
|
|
81
81
|
```
|
|
82
|
-
|
|
82
|
+
Plan报告 → AI生成Spec → PM审核
|
|
83
83
|
→ AI补充边界 → PM确认 → AI拆解Stories
|
|
84
84
|
→ 团队估算 → AI标注风险 → TechLead确认 → 进入Architecture
|
|
85
85
|
```
|
|
@@ -28,11 +28,17 @@ owner: ai
|
|
|
28
28
|
| superproject_git_url | 父仓远端;必须与 `git_url` 不同 |
|
|
29
29
|
| checkout_state | attached-branch / detached-head / uninitialized / empty-gitlink / 不适用 |
|
|
30
30
|
| scaffold_status | existing / required / initialized |
|
|
31
|
+
| preparation_status | existing-and-onboarded / initialized-and-verified / not-applicable |
|
|
32
|
+
| preparation_result_ref | `artifact.implementation-repository-preparation-result` 的当前引用 |
|
|
33
|
+
| project_scaffold_contract_ref | 新建工程必填;统一 schema v4,历史已批准后端 v3 只读兼容 |
|
|
34
|
+
| scaffold_manifest_ref | 新建工程必填 |
|
|
35
|
+
| scaffold_verification_ref | 新建工程必填,且 status=passed |
|
|
31
36
|
| scaffold_architecture | `domain-driven` / `layered-mvc` / 不适用;required 时必须由用户确认 |
|
|
32
37
|
| scaffold_decision_ref | `scaffold-architecture-decisions.yaml` 的 decision_id + digest |
|
|
33
38
|
| scaffold_skill | `yss-ddd-scaffold-generator` / `yss-layered-mvc-scaffold-generator` / `yss-frontend-scaffold-generator` / none |
|
|
34
39
|
| scaffold_target_confirmed | 是 / 否 / 不适用 |
|
|
35
40
|
| target_git_url_or_output_dir | |
|
|
41
|
+
| init_git | true / false;必须来自真实用户确认 |
|
|
36
42
|
| owner | |
|
|
37
43
|
| ci_system | GitLab CI / GitHub Actions / Jenkins / other / none |
|
|
38
44
|
| issue_tracker | GitLab / GitHub / other |
|
|
@@ -85,4 +91,6 @@ Harness 内项目路径约束:`apps/backend/`、`apps/frontend/` 只能作为
|
|
|
85
91
|
- 关联 Harness change:
|
|
86
92
|
- 关联垂直切片:
|
|
87
93
|
- 关联阶段 checkpoint:
|
|
94
|
+
- 实现仓库准备聚合结果:
|
|
95
|
+
- `gate.implementation-repositories-ready`:approved / blocked
|
|
88
96
|
- fresh verification 命令:
|
|
@@ -37,7 +37,7 @@ Status: ready-for-human
|
|
|
37
37
|
|
|
38
38
|
## 资产与证据
|
|
39
39
|
|
|
40
|
-
-
|
|
40
|
+
- Plan:`docs/.scratch/<feature>/plan/`
|
|
41
41
|
- Spec Delta:`docs/.scratch/<feature>/spec-delta/`
|
|
42
42
|
- Design:`docs/.scratch/<feature>/design/`
|
|
43
43
|
- API:`docs/.scratch/<feature>/api/`
|
|
@@ -59,7 +59,8 @@ Approved / Changes requested / Blocked
|
|
|
59
59
|
| 已存在 `Backend Slice Implementation Contract`,且 required skills / allowed paths / forbidden patterns / evidence / seam / verification 完整 | pass / violation / not-applicable | |
|
|
60
60
|
| `yss-domain` 已按影响面落实,Domain 不依赖 Adapter、Infrastructure、Mapper、Controller 或 Web DTO | pass / violation / not-applicable | |
|
|
61
61
|
| `yss-application` 已按影响面落实,Application 只做用例编排、事务边界和跨聚合协调 | pass / violation / not-applicable | |
|
|
62
|
-
| `yss-repository`
|
|
62
|
+
| `yss-repository` 已按影响面落实;所选 Profile、层边界、PO / Repository / Convertor / GatewayImpl 或 MVC repository 结构、事务归属均有文件和测试证据 | pass / seam-deferred / violation / not-applicable | |
|
|
63
|
+
| `yss-mybatis` 已按影响面落实;基类、Mapper/XML 扫描、分页责任、批量 SQL、条件开关和数据源能力与当前组件索引一致;精确结论已核验 component tree / clean 状态 | pass / seam-deferred / violation / missing_evidence / not-applicable | |
|
|
63
64
|
| `yss-web-controller` / `yss-dto` 已按影响面落实,CMD / Query / VO / Result 按既有 DTO 体系定义或复用,Controller 不用内部类或非约定包临时承载主要 DTO / VO、不手工分页主要业务集合、不穿透 Repository | pass / violation / not-applicable | |
|
|
64
65
|
| `mapstruct` 已按影响面落实,PO / Domain Model / DTO / VO / CMD / Query 转换使用 MapStruct Convertor / Mapper,未使用 `BeanUtils.copyProperties`、反射拷贝或重复手写字段赋值;例外已记录测试和补齐落点 | pass / violation / not-applicable | |
|
|
65
66
|
| `lombok` 已按影响面落实,POJO 样板代码使用 Lombok,未成片手写 getter/setter、constructor、builder、logger;实体 / POJO 未触发 `@Data` 等反模式或已说明例外 | pass / violation / not-applicable | |
|
|
@@ -72,10 +73,11 @@ Approved / Changes requested / Blocked
|
|
|
72
73
|
### 后端 smoke check
|
|
73
74
|
|
|
74
75
|
```bash
|
|
75
|
-
|
|
76
|
+
# <review-root...> 必须由本体项目、实现仓登记、Slice project_roots 与 allowed_write_paths 解析。
|
|
77
|
+
rg -n "class (SingleResult|MultiResult|PageResult|Result)<|public static class .*(Command|Cmd|Query|VO)|subList\\(|InMemory.*Gateway|implements .*Gateway|extends Base(Plus)?Repository|@TableName|@MapperScan|Mappers\\.getMapper|PageQuery|insertBatchSomeColumn|yss\\.mybatis" <review-root...>
|
|
76
78
|
```
|
|
77
79
|
|
|
78
|
-
|
|
80
|
+
命中说明:DTO/Result 或 MyBatis 基类、`PageQuery`、批量/扫描配置命中不等于失败;需要按当前合同、Repository Profile 和 MyBatis source index 说明其来源、分页责任与配置是否匹配。
|
|
79
81
|
|
|
80
82
|
| 命中 | 解释 | 结论 |
|
|
81
83
|
|---|---|---|
|
|
@@ -119,6 +121,8 @@ rg -n "from 'ant-design-vue'|<(Table|Tree|Form)[ >]|YFormily|YssFormily|YTable|Y
|
|
|
119
121
|
| Agent 尝试用 `BeanUtils.copyProperties`、反射拷贝或大段手写字段赋值完成 POJO 转换 | 应被标记为 `violation`,回到 `mapstruct` 补 Convertor / Mapper,或补受控例外、测试和 review 证据 | |
|
|
120
122
|
| Agent 尝试成片手写 getter/setter、constructor、builder 或 logger | 应被标记为 `violation`,回到 `lombok` 补注解,或补受控例外、测试和 review 证据 | |
|
|
121
123
|
| Agent 尝试用 `InMemory*Gateway` 完成正式持久化 | 只能 `seam-deferred`,必须有补齐切片和风险说明 | |
|
|
124
|
+
| Agent 未核验 Profile/source index 就选择 `BaseRepository` / `BasePlusRepository`,或把两套分页责任混在同一查询 seam | 应按 `yss-repository` / `yss-mybatis` 标记 `violation` 或 `missing_evidence` | |
|
|
125
|
+
| Agent 把多数据源实例集合误当成线程上下文动态路由,或在事务进入后才尝试切换 | 应标记 `violation`;先核验组件能力,再由批准的上层适配承担路由 | |
|
|
122
126
|
| Agent 只写“符合 YSS”但没有 skill / 文件 / 测试证据 | 应被标记为 `violation` | |
|
|
123
127
|
| Agent 在后端验证、CI、README 或发布说明中写裸 `mvn ...` | 应改为项目根目录 `./mvnw ...`,否则标记为 `violation` | |
|
|
124
128
|
| Agent 将英文 skill / 模板的标题和说明原样输出为项目持久化文档 | 应改为中文正文和中文章节标题,否则标记为 `violation` | |
|
|
@@ -67,7 +67,7 @@ init 只创建不存在或空目录;attach / sync 默认只预览,写入要
|
|
|
67
67
|
|
|
68
68
|
## 按路线推进
|
|
69
69
|
|
|
70
|
-
综合模板按本仓生命周期从分诊、
|
|
70
|
+
综合模板按本仓生命周期从分诊、Plan、Spec/功能架构、产品设计、工程契约、Ticket、切片推进到验证与发布。战略模板在业务交接停止;通用研发从批准上游接入;专职两端按交付合同接力。
|
|
71
71
|
|
|
72
72
|
每一步都让 Agent 说明:消费了哪些当前输入、准备了什么、缺谁确认、怎样检查结果。具体阶段和门禁从本仓注册表读取,不把别的模板阶段编号复制进本仓。
|
|
73
73
|
|
|
@@ -3,9 +3,9 @@ import { parseArgs } from "node:util";
|
|
|
3
3
|
import { acquireTemplateCommit } from "./lib/template-commit-cache.mjs";
|
|
4
4
|
|
|
5
5
|
try {
|
|
6
|
-
const { values } = parseArgs({ options: { repository: { type: "string" }, commit: { type: "string" }, "cache-root": { type: "string" } }, strict: true });
|
|
6
|
+
const { values } = parseArgs({ options: { repository: { type: "string" }, commit: { type: "string" }, "cache-root": { type: "string" }, "timeout-ms": { type: "string" } }, strict: true });
|
|
7
7
|
if (!values.repository || !values.commit) throw new TypeError("用法: scripts/cache-template-commit --repository <remote-url> --commit <40位commit> [--cache-root <path>]");
|
|
8
|
-
const result = acquireTemplateCommit({ repository: values.repository, commit: values.commit, cacheRoot: values["cache-root"] });
|
|
8
|
+
const result = acquireTemplateCommit({ repository: values.repository, commit: values.commit, cacheRoot: values["cache-root"], timeoutMs: Number(values["timeout-ms"] || 0) });
|
|
9
9
|
process.stdout.write(`${JSON.stringify(result)}\n`);
|
|
10
10
|
} catch (error) {
|
|
11
11
|
process.stderr.write(`模板 commit 缓存失败: ${error.message}\n`);
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
],
|
|
74
74
|
"stages": [
|
|
75
75
|
"stage.entry-triage",
|
|
76
|
-
"stage.
|
|
76
|
+
"stage.plan",
|
|
77
77
|
"stage.spec-architecture",
|
|
78
78
|
"stage.product-design",
|
|
79
79
|
"stage.system-data-engineering",
|
|
@@ -103,11 +103,11 @@
|
|
|
103
103
|
"contract_version": 1,
|
|
104
104
|
"title": "YSS 需求经理",
|
|
105
105
|
"stages": [
|
|
106
|
-
"stage.
|
|
106
|
+
"stage.plan",
|
|
107
107
|
"stage.spec-architecture"
|
|
108
108
|
],
|
|
109
109
|
"draft_artifact_ids": [
|
|
110
|
-
"artifact.
|
|
110
|
+
"artifact.plan-record",
|
|
111
111
|
"artifact.spec"
|
|
112
112
|
],
|
|
113
113
|
"core_skills": [
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"contract_version": 1,
|
|
138
138
|
"title": "YSS 产品经理",
|
|
139
139
|
"stages": [
|
|
140
|
-
"stage.
|
|
140
|
+
"stage.plan",
|
|
141
141
|
"stage.spec-architecture",
|
|
142
142
|
"stage.product-design",
|
|
143
143
|
"stage.verification-release-retrospective"
|
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
"title": "YSS 项目经理",
|
|
178
178
|
"stages": [
|
|
179
179
|
"stage.entry-triage",
|
|
180
|
-
"stage.
|
|
180
|
+
"stage.plan",
|
|
181
181
|
"stage.spec-architecture",
|
|
182
182
|
"stage.product-design",
|
|
183
183
|
"stage.system-data-engineering",
|
|
@@ -346,9 +346,9 @@
|
|
|
346
346
|
],
|
|
347
347
|
"stage_groups": [
|
|
348
348
|
{
|
|
349
|
-
"id": "group.
|
|
349
|
+
"id": "group.plan",
|
|
350
350
|
"name": "Discovery",
|
|
351
|
-
"stage": "stage.
|
|
351
|
+
"stage": "stage.plan",
|
|
352
352
|
"members": [
|
|
353
353
|
"role.lifecycle-orchestrator",
|
|
354
354
|
"role.requirements-manager",
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Synthetic test evidence only; never import to produce real project approval.
|
|
2
|
+
import { mkdirSync, writeFileSync, readFileSync } from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { ROOT } from '../../lib/lifecycle-registry.mjs';
|
|
5
|
+
import { parseContextContract, resolveContextTermRefs } from '../../lib/context-contract.mjs';
|
|
6
|
+
import { decisionDigest } from '../../lib/user-decision.mjs';
|
|
7
|
+
import { planEntryPolicy } from '../../lib/plan-spec-entry.mjs';
|
|
8
|
+
import { buildDecisionFixture } from './build-fixture.mjs';
|
|
9
|
+
|
|
10
|
+
export function buildPlanFixture(root) {
|
|
11
|
+
mkdirSync(path.join(root, 'docs/process'), { recursive: true });
|
|
12
|
+
const write = (ref, value) => writeFileSync(path.resolve(root, ref), typeof value === 'string' ? value : JSON.stringify(value, null, 2));
|
|
13
|
+
write('yss-project.yaml', 'schema_version: 1\nrepository_mode: project-instance\n');
|
|
14
|
+
for (const ref of ['CONTEXT.md', 'docs/process/lifecycle-registry.yaml']) write(ref, readFileSync(path.join(ROOT, ref), 'utf8'));
|
|
15
|
+
write('plan.md', '测试规划:小范围修订,不改变业务边界或关键规则。\n');
|
|
16
|
+
const c = parseContextContract({ root });
|
|
17
|
+
write('reconciliation.json', { schema_version: 1, repository_mode: 'project-instance', stage: 'stage.plan', work_unit: 'work-unit.plan-requirements', status: 'reconciled', context_snapshot: { context_ref: c.context_ref, context_schema_version: c.context_schema_version, document_digest: c.document_digest, referenced_terms_digest: resolveContextTermRefs(c, []).referenced_terms_digest, term_refs: [] }, changes: { added: [], updated: [], deprecated: [] }, unresolved_terms: [], evidence_refs: ['CONTEXT.md'] });
|
|
18
|
+
const policy = planEntryPolicy({ root });
|
|
19
|
+
const review = { schema_version: 1, kind: 'plan-entry-review', feature_id: 'feature.demo', plan_ref: 'plan.md', context_reconciliation_ref: 'reconciliation.json', basis: ['plan.md', 'CONTEXT.md', 'docs/process/lifecycle-registry.yaml', 'reconciliation.json'].map(ref => ({ ref, digest: decisionDigest(readFileSync(path.join(root, ref))) })), checks: Object.fromEntries(policy.required_checks.map(id => [id, { status: 'passed', evidence_refs: ['plan.md'] }])), open_items: [], impacts: { domain_strategy: false, stage_decision: false }, gates: Object.fromEntries(Object.keys(policy.gate_impacts).map(id => [id, { status: 'not-applicable', reason: '本次仅修订已确认范围内的细节,不改变边界、规则或阶段合同', evidence_refs: ['plan.md'] }])) };
|
|
20
|
+
const reviewRef = path.join(root, 'review.json');
|
|
21
|
+
const save = () => write(reviewRef, review);
|
|
22
|
+
save();
|
|
23
|
+
const approval = buildDecisionFixture(path.join(root, 'approval'), { boundary: 'plan-conclusion', subjectRef: reviewRef });
|
|
24
|
+
const reapprove = () => {
|
|
25
|
+
save();
|
|
26
|
+
approval.record.request.items[0].subject.digest = decisionDigest(readFileSync(reviewRef));
|
|
27
|
+
approval.present(); approval.record.responses = []; approval.respond(); approval.save();
|
|
28
|
+
};
|
|
29
|
+
return { root, review, save, write, approval, reapprove, state: { feature_id: review.feature_id, plan_review_ref: reviewRef, plan_user_decision_ref: approval.ref, user_decisions: [approval.requirement] } };
|
|
30
|
+
}
|
|
@@ -81,10 +81,13 @@ function validManifest(manifest,root) {
|
|
|
81
81
|
ensure(manifest.files.reduce((total,file)=>total+file.size_bytes,0)<=512*1024*1024,'后端包大小超限');
|
|
82
82
|
const originals=manifest.files.filter(x=>x.original_ref).map(x=>x.original_ref);
|
|
83
83
|
ensure(new Set(originals.map(x=>x.toLowerCase())).size===originals.length,'后端包源路径重复');
|
|
84
|
+
const captured = new Map();
|
|
84
85
|
for(const file of manifest.files) {
|
|
85
86
|
const bytes=readFileSync(safe(root,file.path));
|
|
86
87
|
ensure(bytes.length===file.size_bytes&&hash(bytes)===file.sha256,`后端包文件摘要不一致: ${file.path}`);
|
|
88
|
+
captured.set(file.path, bytes);
|
|
87
89
|
}
|
|
90
|
+
return captured;
|
|
88
91
|
}
|
|
89
92
|
|
|
90
93
|
export async function openBackendDelivery(input, action) {
|
|
@@ -93,9 +96,9 @@ export async function openBackendDelivery(input, action) {
|
|
|
93
96
|
ensure(existsSync(input)&&!lstatSync(input).isSymbolicLink(),'后端交付包不存在或是 symlink');
|
|
94
97
|
let root=path.resolve(input);
|
|
95
98
|
if(lstatSync(root).isFile()) { root=path.join(temporary,'unpacked');mkdirSync(root);archive('unpack',path.resolve(input),root); }
|
|
96
|
-
const manifest=read(safe(root,'manifest.json'));validManifest(manifest,root);
|
|
99
|
+
const manifest=read(safe(root,'manifest.json'));const captured=validManifest(manifest,root);
|
|
97
100
|
const source=path.join(temporary,'source');mkdirSync(source);
|
|
98
|
-
for(const file of manifest.files)if(file.original_ref)write(source,file.original_ref,
|
|
101
|
+
for(const file of manifest.files)if(file.original_ref)write(source,file.original_ref,captured.get(file.path));
|
|
99
102
|
const inspected=await inspectBackendDelivery(source,manifest.delivery_ref);
|
|
100
103
|
ensure(manifest.delivery_id===inspected.delivery.delivery_id&&manifest.version===inspected.delivery.version,'后端包身份不一致');
|
|
101
104
|
return await action({root,source,manifest,...inspected});
|