create-yss-spec 2.2.2 → 2.2.4
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 +17 -1
- package/package.json +1 -1
- package/src/cli.js +15 -1
- package/src/self-update.js +277 -0
- package/template/.agents/skills/yss-domain/SKILL.md +5 -4
- package/template/.agents/skills/yss-product-lifecycle/SKILL.md +9 -9
- package/template/.agents/skills/yss-product-lifecycle/references/artifact-dependencies.md +4 -0
- 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 +139 -4
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +8 -5
- package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +9 -4
- package/template/.agents/skills/yss-router/SKILL.md +5 -3
- package/template/.agents/skills/yss-router/references/router-contract.yaml +18 -3
- package/template/.agents/skills/yss-router/references/slice-implementation-contract.md +59 -1
- package/template/.agents/skills/yss-stage-decision/SKILL.md +50 -0
- package/template/.agents/skills/yss-stage-decision/references/domain-strategy-contract.md +26 -0
- package/template/.agents/skills/yss-stage-decision/references/domain-strategy.schema.json +128 -0
- package/template/.agents/skills/yss-stage-decision/references/stage-decision-package-contract.md +19 -0
- package/template/.agents/skills/yss-stage-decision/references/stage-decision-package.schema.json +86 -0
- package/template/.agents/skills/yss-stage-decision/references/validation-rules.md +18 -0
- package/template/.agents/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +169 -0
- package/template/.agents/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +100 -0
- package/template/.agents/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +15 -0
- package/template/.agents/skills/yss-stage-decision/tests/fixtures/invalid-direction.yaml +58 -0
- package/template/.agents/skills/yss-stage-decision/tests/fixtures/invalid-stage-decision-blocker.yaml +44 -0
- package/template/.agents/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +15 -0
- package/template/.agents/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +49 -0
- package/template/.agents/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +108 -0
- package/template/.agents/skills/yss-stage-decision/tests/run-scenarios.mjs +68 -0
- package/template/.agents/skills/yss-tactical-design/SKILL.md +33 -0
- package/template/.agents/skills/yss-tactical-design/agents/openai.yaml +4 -0
- package/template/.agents/skills/yss-tactical-design/references/output-template.md +28 -0
- package/template/.agents/skills/yss-tactical-design/references/tactical-design-contract.md +41 -0
- package/template/.agents/skills/yss-tactical-design/references/tactical-design.schema.json +31 -0
- package/template/.agents/skills/yss-tactical-design/references/validation-rules.md +13 -0
- package/template/.agents/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +213 -0
- package/template/.agents/skills/yss-tactical-design/tests/fixtures/invalid-api-leaks-aggregate.yaml +21 -0
- package/template/.agents/skills/yss-tactical-design/tests/fixtures/invalid-missing-consistency-policy.yaml +21 -0
- package/template/.agents/skills/yss-tactical-design/tests/fixtures/invalid-missing-invariant.yaml +21 -0
- package/template/.agents/skills/yss-tactical-design/tests/fixtures/invalid-stale-upstream-ref.yaml +21 -0
- package/template/.agents/skills/yss-tactical-design/tests/fixtures/invalid-strategic-as-tactical.yaml +21 -0
- package/template/.agents/skills/yss-tactical-design/tests/fixtures/valid-tactical-design.yaml +80 -0
- package/template/.agents/skills/yss-tactical-design/tests/run-scenarios.mjs +47 -0
- package/template/.claude/skills/yss-domain/SKILL.md +5 -4
- package/template/.claude/skills/yss-product-lifecycle/SKILL.md +9 -9
- package/template/.claude/skills/yss-product-lifecycle/references/artifact-dependencies.md +4 -0
- 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 +139 -4
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +8 -5
- package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +9 -4
- package/template/.claude/skills/yss-router/SKILL.md +5 -3
- package/template/.claude/skills/yss-router/references/router-contract.yaml +18 -3
- package/template/.claude/skills/yss-router/references/slice-implementation-contract.md +59 -1
- package/template/.claude/skills/yss-stage-decision/SKILL.md +50 -0
- package/template/.claude/skills/yss-stage-decision/references/domain-strategy-contract.md +26 -0
- package/template/.claude/skills/yss-stage-decision/references/domain-strategy.schema.json +128 -0
- package/template/.claude/skills/yss-stage-decision/references/stage-decision-package-contract.md +19 -0
- package/template/.claude/skills/yss-stage-decision/references/stage-decision-package.schema.json +86 -0
- package/template/.claude/skills/yss-stage-decision/references/validation-rules.md +18 -0
- package/template/.claude/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +169 -0
- package/template/.claude/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +100 -0
- package/template/.claude/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +15 -0
- package/template/.claude/skills/yss-stage-decision/tests/fixtures/invalid-direction.yaml +58 -0
- package/template/.claude/skills/yss-stage-decision/tests/fixtures/invalid-stage-decision-blocker.yaml +44 -0
- package/template/.claude/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +15 -0
- package/template/.claude/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +49 -0
- package/template/.claude/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +108 -0
- package/template/.claude/skills/yss-stage-decision/tests/run-scenarios.mjs +68 -0
- package/template/.claude/skills/yss-tactical-design/SKILL.md +33 -0
- package/template/.claude/skills/yss-tactical-design/agents/openai.yaml +4 -0
- package/template/.claude/skills/yss-tactical-design/references/output-template.md +28 -0
- package/template/.claude/skills/yss-tactical-design/references/tactical-design-contract.md +41 -0
- package/template/.claude/skills/yss-tactical-design/references/tactical-design.schema.json +31 -0
- package/template/.claude/skills/yss-tactical-design/references/validation-rules.md +13 -0
- package/template/.claude/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +213 -0
- package/template/.claude/skills/yss-tactical-design/tests/fixtures/invalid-api-leaks-aggregate.yaml +21 -0
- package/template/.claude/skills/yss-tactical-design/tests/fixtures/invalid-missing-consistency-policy.yaml +21 -0
- package/template/.claude/skills/yss-tactical-design/tests/fixtures/invalid-missing-invariant.yaml +21 -0
- package/template/.claude/skills/yss-tactical-design/tests/fixtures/invalid-stale-upstream-ref.yaml +21 -0
- package/template/.claude/skills/yss-tactical-design/tests/fixtures/invalid-strategic-as-tactical.yaml +21 -0
- package/template/.claude/skills/yss-tactical-design/tests/fixtures/valid-tactical-design.yaml +80 -0
- package/template/.claude/skills/yss-tactical-design/tests/run-scenarios.mjs +47 -0
- package/template/.codex/skills/yss-domain/SKILL.md +5 -4
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +9 -9
- package/template/.codex/skills/yss-product-lifecycle/references/artifact-dependencies.md +4 -0
- 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 +139 -4
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +8 -5
- package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +9 -4
- package/template/.codex/skills/yss-router/SKILL.md +5 -3
- package/template/.codex/skills/yss-router/references/router-contract.yaml +18 -3
- package/template/.codex/skills/yss-router/references/slice-implementation-contract.md +59 -1
- package/template/.codex/skills/yss-stage-decision/SKILL.md +50 -0
- package/template/.codex/skills/yss-stage-decision/references/domain-strategy-contract.md +26 -0
- package/template/.codex/skills/yss-stage-decision/references/domain-strategy.schema.json +128 -0
- package/template/.codex/skills/yss-stage-decision/references/stage-decision-package-contract.md +19 -0
- package/template/.codex/skills/yss-stage-decision/references/stage-decision-package.schema.json +86 -0
- package/template/.codex/skills/yss-stage-decision/references/validation-rules.md +18 -0
- package/template/.codex/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +169 -0
- package/template/.codex/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +100 -0
- package/template/.codex/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +15 -0
- package/template/.codex/skills/yss-stage-decision/tests/fixtures/invalid-direction.yaml +58 -0
- package/template/.codex/skills/yss-stage-decision/tests/fixtures/invalid-stage-decision-blocker.yaml +44 -0
- package/template/.codex/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +15 -0
- package/template/.codex/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +49 -0
- package/template/.codex/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +108 -0
- package/template/.codex/skills/yss-stage-decision/tests/run-scenarios.mjs +68 -0
- package/template/.codex/skills/yss-tactical-design/SKILL.md +33 -0
- package/template/.codex/skills/yss-tactical-design/agents/openai.yaml +4 -0
- package/template/.codex/skills/yss-tactical-design/references/output-template.md +28 -0
- package/template/.codex/skills/yss-tactical-design/references/tactical-design-contract.md +41 -0
- package/template/.codex/skills/yss-tactical-design/references/tactical-design.schema.json +31 -0
- package/template/.codex/skills/yss-tactical-design/references/validation-rules.md +13 -0
- package/template/.codex/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +213 -0
- package/template/.codex/skills/yss-tactical-design/tests/fixtures/invalid-api-leaks-aggregate.yaml +21 -0
- package/template/.codex/skills/yss-tactical-design/tests/fixtures/invalid-missing-consistency-policy.yaml +21 -0
- package/template/.codex/skills/yss-tactical-design/tests/fixtures/invalid-missing-invariant.yaml +21 -0
- package/template/.codex/skills/yss-tactical-design/tests/fixtures/invalid-stale-upstream-ref.yaml +21 -0
- package/template/.codex/skills/yss-tactical-design/tests/fixtures/invalid-strategic-as-tactical.yaml +21 -0
- package/template/.codex/skills/yss-tactical-design/tests/fixtures/valid-tactical-design.yaml +80 -0
- package/template/.codex/skills/yss-tactical-design/tests/run-scenarios.mjs +47 -0
- package/template/.cursor/skills/yss-domain/SKILL.md +5 -4
- package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +9 -9
- package/template/.cursor/skills/yss-product-lifecycle/references/artifact-dependencies.md +4 -0
- 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 +139 -4
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +8 -5
- package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +9 -4
- package/template/.cursor/skills/yss-router/SKILL.md +5 -3
- package/template/.cursor/skills/yss-router/references/router-contract.yaml +18 -3
- package/template/.cursor/skills/yss-router/references/slice-implementation-contract.md +59 -1
- package/template/.cursor/skills/yss-stage-decision/SKILL.md +50 -0
- package/template/.cursor/skills/yss-stage-decision/references/domain-strategy-contract.md +26 -0
- package/template/.cursor/skills/yss-stage-decision/references/domain-strategy.schema.json +128 -0
- package/template/.cursor/skills/yss-stage-decision/references/stage-decision-package-contract.md +19 -0
- package/template/.cursor/skills/yss-stage-decision/references/stage-decision-package.schema.json +86 -0
- package/template/.cursor/skills/yss-stage-decision/references/validation-rules.md +18 -0
- package/template/.cursor/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +169 -0
- package/template/.cursor/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +100 -0
- package/template/.cursor/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +15 -0
- package/template/.cursor/skills/yss-stage-decision/tests/fixtures/invalid-direction.yaml +58 -0
- package/template/.cursor/skills/yss-stage-decision/tests/fixtures/invalid-stage-decision-blocker.yaml +44 -0
- package/template/.cursor/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +15 -0
- package/template/.cursor/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +49 -0
- package/template/.cursor/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +108 -0
- package/template/.cursor/skills/yss-stage-decision/tests/run-scenarios.mjs +68 -0
- package/template/.cursor/skills/yss-tactical-design/SKILL.md +33 -0
- package/template/.cursor/skills/yss-tactical-design/agents/openai.yaml +4 -0
- package/template/.cursor/skills/yss-tactical-design/references/output-template.md +28 -0
- package/template/.cursor/skills/yss-tactical-design/references/tactical-design-contract.md +41 -0
- package/template/.cursor/skills/yss-tactical-design/references/tactical-design.schema.json +31 -0
- package/template/.cursor/skills/yss-tactical-design/references/validation-rules.md +13 -0
- package/template/.cursor/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +213 -0
- package/template/.cursor/skills/yss-tactical-design/tests/fixtures/invalid-api-leaks-aggregate.yaml +21 -0
- package/template/.cursor/skills/yss-tactical-design/tests/fixtures/invalid-missing-consistency-policy.yaml +21 -0
- package/template/.cursor/skills/yss-tactical-design/tests/fixtures/invalid-missing-invariant.yaml +21 -0
- package/template/.cursor/skills/yss-tactical-design/tests/fixtures/invalid-stale-upstream-ref.yaml +21 -0
- package/template/.cursor/skills/yss-tactical-design/tests/fixtures/invalid-strategic-as-tactical.yaml +21 -0
- package/template/.cursor/skills/yss-tactical-design/tests/fixtures/valid-tactical-design.yaml +80 -0
- package/template/.cursor/skills/yss-tactical-design/tests/run-scenarios.mjs +47 -0
- package/template/.hermes/skills/yss-domain/SKILL.md +5 -4
- package/template/.hermes/skills/yss-product-lifecycle/SKILL.md +9 -9
- package/template/.hermes/skills/yss-product-lifecycle/references/artifact-dependencies.md +4 -0
- package/template/.hermes/skills/yss-product-lifecycle/references/matt-yss-adapter.md +3 -3
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration-contract.yaml +139 -4
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration.md +8 -5
- package/template/.hermes/skills/yss-product-lifecycle/references/state-model.md +9 -4
- package/template/.hermes/skills/yss-router/SKILL.md +5 -3
- package/template/.hermes/skills/yss-router/references/router-contract.yaml +18 -3
- package/template/.hermes/skills/yss-router/references/slice-implementation-contract.md +59 -1
- package/template/.hermes/skills/yss-stage-decision/SKILL.md +50 -0
- package/template/.hermes/skills/yss-stage-decision/references/domain-strategy-contract.md +26 -0
- package/template/.hermes/skills/yss-stage-decision/references/domain-strategy.schema.json +128 -0
- package/template/.hermes/skills/yss-stage-decision/references/stage-decision-package-contract.md +19 -0
- package/template/.hermes/skills/yss-stage-decision/references/stage-decision-package.schema.json +86 -0
- package/template/.hermes/skills/yss-stage-decision/references/validation-rules.md +18 -0
- package/template/.hermes/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +169 -0
- package/template/.hermes/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +100 -0
- package/template/.hermes/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +15 -0
- package/template/.hermes/skills/yss-stage-decision/tests/fixtures/invalid-direction.yaml +58 -0
- package/template/.hermes/skills/yss-stage-decision/tests/fixtures/invalid-stage-decision-blocker.yaml +44 -0
- package/template/.hermes/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +15 -0
- package/template/.hermes/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +49 -0
- package/template/.hermes/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +108 -0
- package/template/.hermes/skills/yss-stage-decision/tests/run-scenarios.mjs +68 -0
- package/template/.hermes/skills/yss-tactical-design/SKILL.md +33 -0
- package/template/.hermes/skills/yss-tactical-design/agents/openai.yaml +4 -0
- package/template/.hermes/skills/yss-tactical-design/references/output-template.md +28 -0
- package/template/.hermes/skills/yss-tactical-design/references/tactical-design-contract.md +41 -0
- package/template/.hermes/skills/yss-tactical-design/references/tactical-design.schema.json +31 -0
- package/template/.hermes/skills/yss-tactical-design/references/validation-rules.md +13 -0
- package/template/.hermes/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +213 -0
- package/template/.hermes/skills/yss-tactical-design/tests/fixtures/invalid-api-leaks-aggregate.yaml +21 -0
- package/template/.hermes/skills/yss-tactical-design/tests/fixtures/invalid-missing-consistency-policy.yaml +21 -0
- package/template/.hermes/skills/yss-tactical-design/tests/fixtures/invalid-missing-invariant.yaml +21 -0
- package/template/.hermes/skills/yss-tactical-design/tests/fixtures/invalid-stale-upstream-ref.yaml +21 -0
- package/template/.hermes/skills/yss-tactical-design/tests/fixtures/invalid-strategic-as-tactical.yaml +21 -0
- package/template/.hermes/skills/yss-tactical-design/tests/fixtures/valid-tactical-design.yaml +80 -0
- package/template/.hermes/skills/yss-tactical-design/tests/run-scenarios.mjs +47 -0
- package/template/.pi/skills/yss-domain/SKILL.md +5 -4
- package/template/.pi/skills/yss-product-lifecycle/SKILL.md +9 -9
- package/template/.pi/skills/yss-product-lifecycle/references/artifact-dependencies.md +4 -0
- 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 +139 -4
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +8 -5
- package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +9 -4
- package/template/.pi/skills/yss-router/SKILL.md +5 -3
- package/template/.pi/skills/yss-router/references/router-contract.yaml +18 -3
- package/template/.pi/skills/yss-router/references/slice-implementation-contract.md +59 -1
- package/template/.pi/skills/yss-stage-decision/SKILL.md +50 -0
- package/template/.pi/skills/yss-stage-decision/references/domain-strategy-contract.md +26 -0
- package/template/.pi/skills/yss-stage-decision/references/domain-strategy.schema.json +128 -0
- package/template/.pi/skills/yss-stage-decision/references/stage-decision-package-contract.md +19 -0
- package/template/.pi/skills/yss-stage-decision/references/stage-decision-package.schema.json +86 -0
- package/template/.pi/skills/yss-stage-decision/references/validation-rules.md +18 -0
- package/template/.pi/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +169 -0
- package/template/.pi/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +100 -0
- package/template/.pi/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +15 -0
- package/template/.pi/skills/yss-stage-decision/tests/fixtures/invalid-direction.yaml +58 -0
- package/template/.pi/skills/yss-stage-decision/tests/fixtures/invalid-stage-decision-blocker.yaml +44 -0
- package/template/.pi/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +15 -0
- package/template/.pi/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +49 -0
- package/template/.pi/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +108 -0
- package/template/.pi/skills/yss-stage-decision/tests/run-scenarios.mjs +68 -0
- package/template/.pi/skills/yss-tactical-design/SKILL.md +33 -0
- package/template/.pi/skills/yss-tactical-design/agents/openai.yaml +4 -0
- package/template/.pi/skills/yss-tactical-design/references/output-template.md +28 -0
- package/template/.pi/skills/yss-tactical-design/references/tactical-design-contract.md +41 -0
- package/template/.pi/skills/yss-tactical-design/references/tactical-design.schema.json +31 -0
- package/template/.pi/skills/yss-tactical-design/references/validation-rules.md +13 -0
- package/template/.pi/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +213 -0
- package/template/.pi/skills/yss-tactical-design/tests/fixtures/invalid-api-leaks-aggregate.yaml +21 -0
- package/template/.pi/skills/yss-tactical-design/tests/fixtures/invalid-missing-consistency-policy.yaml +21 -0
- package/template/.pi/skills/yss-tactical-design/tests/fixtures/invalid-missing-invariant.yaml +21 -0
- package/template/.pi/skills/yss-tactical-design/tests/fixtures/invalid-stale-upstream-ref.yaml +21 -0
- package/template/.pi/skills/yss-tactical-design/tests/fixtures/invalid-strategic-as-tactical.yaml +21 -0
- package/template/.pi/skills/yss-tactical-design/tests/fixtures/valid-tactical-design.yaml +80 -0
- package/template/.pi/skills/yss-tactical-design/tests/run-scenarios.mjs +47 -0
- package/template/.qoder/skills/yss-domain/SKILL.md +5 -4
- package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +9 -9
- package/template/.qoder/skills/yss-product-lifecycle/references/artifact-dependencies.md +4 -0
- 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 +139 -4
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +8 -5
- package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +9 -4
- package/template/.qoder/skills/yss-router/SKILL.md +5 -3
- package/template/.qoder/skills/yss-router/references/router-contract.yaml +18 -3
- package/template/.qoder/skills/yss-router/references/slice-implementation-contract.md +59 -1
- package/template/.qoder/skills/yss-stage-decision/SKILL.md +50 -0
- package/template/.qoder/skills/yss-stage-decision/references/domain-strategy-contract.md +26 -0
- package/template/.qoder/skills/yss-stage-decision/references/domain-strategy.schema.json +128 -0
- package/template/.qoder/skills/yss-stage-decision/references/stage-decision-package-contract.md +19 -0
- package/template/.qoder/skills/yss-stage-decision/references/stage-decision-package.schema.json +86 -0
- package/template/.qoder/skills/yss-stage-decision/references/validation-rules.md +18 -0
- package/template/.qoder/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +169 -0
- package/template/.qoder/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +100 -0
- package/template/.qoder/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +15 -0
- package/template/.qoder/skills/yss-stage-decision/tests/fixtures/invalid-direction.yaml +58 -0
- package/template/.qoder/skills/yss-stage-decision/tests/fixtures/invalid-stage-decision-blocker.yaml +44 -0
- package/template/.qoder/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +15 -0
- package/template/.qoder/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +49 -0
- package/template/.qoder/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +108 -0
- package/template/.qoder/skills/yss-stage-decision/tests/run-scenarios.mjs +68 -0
- package/template/.qoder/skills/yss-tactical-design/SKILL.md +33 -0
- package/template/.qoder/skills/yss-tactical-design/agents/openai.yaml +4 -0
- package/template/.qoder/skills/yss-tactical-design/references/output-template.md +28 -0
- package/template/.qoder/skills/yss-tactical-design/references/tactical-design-contract.md +41 -0
- package/template/.qoder/skills/yss-tactical-design/references/tactical-design.schema.json +31 -0
- package/template/.qoder/skills/yss-tactical-design/references/validation-rules.md +13 -0
- package/template/.qoder/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +213 -0
- package/template/.qoder/skills/yss-tactical-design/tests/fixtures/invalid-api-leaks-aggregate.yaml +21 -0
- package/template/.qoder/skills/yss-tactical-design/tests/fixtures/invalid-missing-consistency-policy.yaml +21 -0
- package/template/.qoder/skills/yss-tactical-design/tests/fixtures/invalid-missing-invariant.yaml +21 -0
- package/template/.qoder/skills/yss-tactical-design/tests/fixtures/invalid-stale-upstream-ref.yaml +21 -0
- package/template/.qoder/skills/yss-tactical-design/tests/fixtures/invalid-strategic-as-tactical.yaml +21 -0
- package/template/.qoder/skills/yss-tactical-design/tests/fixtures/valid-tactical-design.yaml +80 -0
- package/template/.qoder/skills/yss-tactical-design/tests/run-scenarios.mjs +47 -0
- package/template/.trae/skills/yss-domain/SKILL.md +5 -4
- package/template/.trae/skills/yss-product-lifecycle/SKILL.md +9 -9
- package/template/.trae/skills/yss-product-lifecycle/references/artifact-dependencies.md +4 -0
- 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 +139 -4
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +8 -5
- package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +9 -4
- package/template/.trae/skills/yss-router/SKILL.md +5 -3
- package/template/.trae/skills/yss-router/references/router-contract.yaml +18 -3
- package/template/.trae/skills/yss-router/references/slice-implementation-contract.md +59 -1
- package/template/.trae/skills/yss-stage-decision/SKILL.md +50 -0
- package/template/.trae/skills/yss-stage-decision/references/domain-strategy-contract.md +26 -0
- package/template/.trae/skills/yss-stage-decision/references/domain-strategy.schema.json +128 -0
- package/template/.trae/skills/yss-stage-decision/references/stage-decision-package-contract.md +19 -0
- package/template/.trae/skills/yss-stage-decision/references/stage-decision-package.schema.json +86 -0
- package/template/.trae/skills/yss-stage-decision/references/validation-rules.md +18 -0
- package/template/.trae/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +169 -0
- package/template/.trae/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +100 -0
- package/template/.trae/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +15 -0
- package/template/.trae/skills/yss-stage-decision/tests/fixtures/invalid-direction.yaml +58 -0
- package/template/.trae/skills/yss-stage-decision/tests/fixtures/invalid-stage-decision-blocker.yaml +44 -0
- package/template/.trae/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +15 -0
- package/template/.trae/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +49 -0
- package/template/.trae/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +108 -0
- package/template/.trae/skills/yss-stage-decision/tests/run-scenarios.mjs +68 -0
- package/template/.trae/skills/yss-tactical-design/SKILL.md +33 -0
- package/template/.trae/skills/yss-tactical-design/agents/openai.yaml +4 -0
- package/template/.trae/skills/yss-tactical-design/references/output-template.md +28 -0
- package/template/.trae/skills/yss-tactical-design/references/tactical-design-contract.md +41 -0
- package/template/.trae/skills/yss-tactical-design/references/tactical-design.schema.json +31 -0
- package/template/.trae/skills/yss-tactical-design/references/validation-rules.md +13 -0
- package/template/.trae/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +213 -0
- package/template/.trae/skills/yss-tactical-design/tests/fixtures/invalid-api-leaks-aggregate.yaml +21 -0
- package/template/.trae/skills/yss-tactical-design/tests/fixtures/invalid-missing-consistency-policy.yaml +21 -0
- package/template/.trae/skills/yss-tactical-design/tests/fixtures/invalid-missing-invariant.yaml +21 -0
- package/template/.trae/skills/yss-tactical-design/tests/fixtures/invalid-stale-upstream-ref.yaml +21 -0
- package/template/.trae/skills/yss-tactical-design/tests/fixtures/invalid-strategic-as-tactical.yaml +21 -0
- package/template/.trae/skills/yss-tactical-design/tests/fixtures/valid-tactical-design.yaml +80 -0
- package/template/.trae/skills/yss-tactical-design/tests/run-scenarios.mjs +47 -0
- package/template/AGENTS.md +8 -4
- package/template/CONTEXT.md +14 -2
- package/template/docs/agents/digital-human-roles.md +83 -0
- package/template/docs/agents/digital-human-roles.yaml +259 -0
- package/template/docs/agents/triage-labels.md +5 -5
- package/template/docs/agents/yss-skill-registry.yaml +12 -0
- package/template/docs/architecture/templates/system-overview-design-template.md +1 -0
- package/template/docs/process/lifecycle-artifact-map.md +8 -0
- package/template/docs/process/lifecycle-registry-baseline.json +11 -1
- package/template/docs/process/lifecycle-registry.yaml +46 -2
- package/template/docs/process/schemas/digital-human-task-package.schema.json +107 -0
- package/template/docs/process/schemas/lifecycle-checkpoint.schema.json +2 -1
- package/template/docs/process/schemas/subagent-task-package.schema.json +6 -0
- package/template/docs/process/subagent-collaboration.md +5 -3
- package/template/docs/process/templates/stage-checkpoint-template.md +3 -1
- package/template/docs/templates/approval-record-template.yaml +14 -0
- package/template/docs/templates/digital-human-runtime-profile-template.md +38 -0
- package/template/docs/templates/grok-bot-profile-template.md +24 -0
- package/template/docs/templates/implementation-routing-template.md +3 -3
- package/template/docs/templates/local-parent-ticket-template.md +8 -0
- package/template/docs/templates/subagent-task-package-template.md +43 -1
- package/template/docs/templates/vertical-slice-ticket-template.md +7 -0
- 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 +2 -0
- package/template/scripts/lib/approval-record.mjs +123 -0
- package/template/scripts/lib/digital-human-roles.mjs +398 -0
- package/template/scripts/lib/lifecycle-transition.mjs +259 -0
- package/template/scripts/lib/scenario-checks.mjs +96 -2
- package/template/scripts/lib/task-package.mjs +214 -0
- package/template/scripts/verify-approval-record +13 -0
- package/template/scripts/verify-digital-human-roles +10 -0
- package/template/scripts/verify-digital-human-roles-scenarios +147 -0
- package/template/scripts/verify-digital-human-task-package +14 -0
- package/template/scripts/verify-digital-human-task-package-scenarios +8 -0
- package/template/scripts/verify-lifecycle-checkpoint +2 -0
- package/template/scripts/verify-lifecycle-transition-scenarios +105 -0
- package/template/scripts/verify-subagent-task-package +8 -0
- package/template/scripts/verify-subagent-task-package-scenarios +196 -0
- package/template/scripts/verify-template +16 -2
- package/template/skills-lock.json +35 -3
- package/template.snapshot.json +4 -4
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
schema_version: 1
|
|
2
|
+
registry_id: yss.digital-human-roles
|
|
3
|
+
status: active
|
|
4
|
+
description: >-
|
|
5
|
+
数字人角色、主控、阶段协作组、技能启用/禁止与生命周期会签的单一事实源。
|
|
6
|
+
角色配置与运行时无关;Claude / Cursor / Codex / Grok 等只通过 runtimes 绑定。
|
|
7
|
+
Ticket 五态不是数字人角色。
|
|
8
|
+
canonical_path: docs/agents/digital-human-roles.yaml
|
|
9
|
+
runtime_policy:
|
|
10
|
+
overlay_on_lifecycle: true
|
|
11
|
+
consumed_by_lifecycle: true
|
|
12
|
+
git_is_ssot: true
|
|
13
|
+
default_invocation: orchestrator
|
|
14
|
+
dispatch: orchestrator-one-to-one
|
|
15
|
+
per_feature_instances: forbidden
|
|
16
|
+
project_instance_instantiation: duplicate-and-bind-repo-path
|
|
17
|
+
template_instantiation: publish-singleton-profiles
|
|
18
|
+
biological_veto: true
|
|
19
|
+
implementer_must_differ: true
|
|
20
|
+
write_isolation: task-package-policy
|
|
21
|
+
dual_hat_split_when: [cross-repo-load, responsibility-conflict]
|
|
22
|
+
|
|
23
|
+
runtimes:
|
|
24
|
+
- id: runtime.generic
|
|
25
|
+
kind: generic
|
|
26
|
+
instance_kind: agent-session
|
|
27
|
+
skill_root: null
|
|
28
|
+
covers_skill_registry_roots: false
|
|
29
|
+
collaboration: task-package-and-handoff
|
|
30
|
+
max_collaboration_group_size: null
|
|
31
|
+
overflow: not-applicable
|
|
32
|
+
shared_workspace_is_not_security_boundary: false
|
|
33
|
+
side_effect_approval: biological-human
|
|
34
|
+
notes: 任何能加载 core_skills 并接受任务包的 Agent 会话。
|
|
35
|
+
- id: runtime.skill-projection
|
|
36
|
+
kind: projected-agent-root
|
|
37
|
+
instance_kind: agent-session-or-subagent
|
|
38
|
+
skill_root: from-skill-registry
|
|
39
|
+
covers_skill_registry_roots: true
|
|
40
|
+
collaboration: subagent-task-package
|
|
41
|
+
max_collaboration_group_size: null
|
|
42
|
+
overflow: not-applicable
|
|
43
|
+
shared_workspace_is_not_security_boundary: false
|
|
44
|
+
side_effect_approval: biological-human
|
|
45
|
+
notes: >-
|
|
46
|
+
覆盖 docs/agents/yss-skill-registry.yaml 的 agent_runtime_roots
|
|
47
|
+
(claude / codex / cursor / hermes / pi / qoder / trae)。
|
|
48
|
+
技能仍从 .agents/skills 投影,不按职称再维护一份。
|
|
49
|
+
- id: runtime.grok
|
|
50
|
+
kind: grok-bot
|
|
51
|
+
instance_kind: durable-bot
|
|
52
|
+
skill_root: null
|
|
53
|
+
covers_skill_registry_roots: false
|
|
54
|
+
collaboration: group-chat-or-async-dm
|
|
55
|
+
max_collaboration_group_size: 6
|
|
56
|
+
min_collaboration_group_size: 2
|
|
57
|
+
overflow: one-to-one-handoff
|
|
58
|
+
shared_workspace_is_not_security_boundary: true
|
|
59
|
+
side_effect_approval: biological-human
|
|
60
|
+
notes: >-
|
|
61
|
+
Grok Bot 适配。群聊 2–6 人;超出则改 1:1 交接,不改逻辑阶段协作组。
|
|
62
|
+
全部 Bot 共享云计算机,写范围只靠任务包。不新增 agent_runtime_roots.grok。
|
|
63
|
+
|
|
64
|
+
orchestrator:
|
|
65
|
+
id: role.lifecycle-orchestrator
|
|
66
|
+
name: 主控数字人
|
|
67
|
+
kind: orchestrator
|
|
68
|
+
title: YSS 生命周期主控
|
|
69
|
+
default_dual_hat: [role.project-manager]
|
|
70
|
+
stages: [stage.entry-triage, stage.discovery, stage.spec-architecture, stage.product-design, stage.system-data-engineering, stage.ticket-formalization, stage.vertical-slice-implementation, stage.verification-release-retrospective]
|
|
71
|
+
core_skills: [yss-product-lifecycle, yss-router]
|
|
72
|
+
forbidden_skills: [yss-domain, yss-ui, yss-page-module-development, yss-web-controller, yss-repository, implement]
|
|
73
|
+
description: >-
|
|
74
|
+
Own YSS lifecycle routing. Read yss-project.yaml and CONTEXT.md first.
|
|
75
|
+
Select the next unblocked work unit, compile a task package, and assign
|
|
76
|
+
one owner per stage. Do not implement business code. Do not approve Slice
|
|
77
|
+
contracts into ready-for-agent without the full formula. Do not announce
|
|
78
|
+
releasable. Default dual-hat: project manager until a separate instance
|
|
79
|
+
is required. Authoritative artifacts live in git.
|
|
80
|
+
|
|
81
|
+
roles:
|
|
82
|
+
- id: role.requirements-manager
|
|
83
|
+
name: 需求经理
|
|
84
|
+
kind: digital-human
|
|
85
|
+
title: YSS 需求经理
|
|
86
|
+
stages: [stage.discovery, stage.spec-architecture]
|
|
87
|
+
draft_artifact_ids: [artifact.discovery-record, artifact.spec]
|
|
88
|
+
core_skills: [grilling, domain-modeling, research, competitive-intelligence, grill-with-docs]
|
|
89
|
+
forbidden_skills: [yss-ui, yss-domain, yss-web-controller, yss-repository, yss-ddd-scaffold-generator, yss-frontend-scaffold-generator, implement, tdd]
|
|
90
|
+
description: >-
|
|
91
|
+
Own Discovery language, users, MVP, non-goals, success criteria, test
|
|
92
|
+
seams, and Spec prose. Propose CONTEXT.md glossary entries. Do not freeze
|
|
93
|
+
visual prototypes, OpenAPI, or code. Do not guess unconfirmed business
|
|
94
|
+
rules. Hand off to the orchestrator when the frontier is empty.
|
|
95
|
+
|
|
96
|
+
- id: role.product-manager
|
|
97
|
+
name: 产品经理
|
|
98
|
+
kind: digital-human
|
|
99
|
+
title: YSS 产品经理
|
|
100
|
+
stages: [stage.discovery, stage.spec-architecture, stage.product-design, stage.verification-release-retrospective]
|
|
101
|
+
draft_artifact_ids: [artifact.product-overview, artifact.functional-architecture, artifact.interaction-spec, artifact.state-matrix, artifact.prototype-confirmation]
|
|
102
|
+
core_skills: [yss-design-system, yss-prototype-stage, prototype-review, yss-antd-design]
|
|
103
|
+
forbidden_skills: [yss-ui, yss-domain, yss-repository, yss-web-controller, yss-ddd-scaffold-generator, implement, tdd]
|
|
104
|
+
description: >-
|
|
105
|
+
Own priority, product-design impact, interaction, state matrix, and
|
|
106
|
+
prototype confirmation recommendation. May reject Spec scope. Do not write
|
|
107
|
+
production code or freeze OpenAPI alone. Frontend implementation uses the
|
|
108
|
+
frontend-engineer role and yss-ui, not yss-antd-design.
|
|
109
|
+
|
|
110
|
+
- id: role.business
|
|
111
|
+
name: 商务
|
|
112
|
+
kind: digital-human
|
|
113
|
+
title: YSS 商务
|
|
114
|
+
stages: [stage.discovery, stage.verification-release-retrospective]
|
|
115
|
+
draft_artifact_ids: [artifact.discovery-record]
|
|
116
|
+
core_skills: [competitive-intelligence, research]
|
|
117
|
+
forbidden_skills: [yss-ui, yss-domain, yss-web-controller, yss-openapi-governance, to-spec, to-tickets, implement, tdd, yss-router]
|
|
118
|
+
description: >-
|
|
119
|
+
Own commercial constraints, delivery promises, and business non-goals in
|
|
120
|
+
Discovery and release windows. Do not finalize Spec, API, tickets, or
|
|
121
|
+
code. External quotes and contracts stay behind runtime side-effect
|
|
122
|
+
approval by a biological human.
|
|
123
|
+
|
|
124
|
+
- id: role.project-manager
|
|
125
|
+
name: 项目经理
|
|
126
|
+
kind: digital-human
|
|
127
|
+
title: YSS 项目经理
|
|
128
|
+
stages: [stage.entry-triage, stage.discovery, stage.spec-architecture, stage.product-design, stage.system-data-engineering, stage.ticket-formalization, stage.vertical-slice-implementation, stage.verification-release-retrospective]
|
|
129
|
+
draft_artifact_ids: [artifact.parent-ticket, artifact.vertical-slice-ticket]
|
|
130
|
+
core_skills: [yss-product-lifecycle, handoff, implementation-repo-onboarding, cross-repo-implementation-routing]
|
|
131
|
+
forbidden_skills: [yss-domain, yss-ui, implement, tdd, yss-web-controller]
|
|
132
|
+
description: >-
|
|
133
|
+
Own parent Ticket hygiene, checkpoints, handoff, risk, and implementation
|
|
134
|
+
repo registry. Do not set ready-for-agent; the orchestrator recomputes
|
|
135
|
+
that formula. Do not approve Spec or OpenAPI Freeze. Do not write business
|
|
136
|
+
code or serve as independent Reviewer. Default dual-hat on the
|
|
137
|
+
orchestrator instance until dual_hat_split_when
|
|
138
|
+
(cross-repo-load or responsibility-conflict) requires a separate instance.
|
|
139
|
+
|
|
140
|
+
- id: role.frontend-engineer
|
|
141
|
+
name: 前端工程师
|
|
142
|
+
kind: digital-human
|
|
143
|
+
title: YSS 前端工程师
|
|
144
|
+
stages: [stage.product-design, stage.system-data-engineering, stage.ticket-formalization, stage.vertical-slice-implementation, stage.verification-release-retrospective]
|
|
145
|
+
draft_artifact_ids: [artifact.frontend-implementation-plan]
|
|
146
|
+
core_skills: [yss-ui, yss-page-module-development, yss-components, yss-formily, formily-foundation, formily-linkage-effects, formily-mode-slot-detail, formily-step-flow, ytable-usage, ytree-usage, yedit-table-usage, yss-api-integration, yss-hook, theme-token-usage, page-skeleton, page-list-module, page-form-module, component-selection-imports, vue3-best-practices, tdd]
|
|
147
|
+
forbidden_skills: [yss-domain, yss-application, yss-repository, yss-mybatis, yss-web-controller, yss-ddd-scaffold-generator, java-backend-commit]
|
|
148
|
+
description: >-
|
|
149
|
+
Own Vue page modules, frontend tests, and frontend_implementation_plan.
|
|
150
|
+
Review OpenAPI Draft for client fit and prototype feasibility. Write only
|
|
151
|
+
contract-allowed frontend paths. Verify with pnpm. Do not freeze API, own
|
|
152
|
+
backend domain, or countersign your own merge.
|
|
153
|
+
|
|
154
|
+
- id: role.backend-engineer
|
|
155
|
+
name: 后端工程师
|
|
156
|
+
kind: digital-human
|
|
157
|
+
title: YSS 后端工程师
|
|
158
|
+
stages: [stage.system-data-engineering, stage.ticket-formalization, stage.vertical-slice-implementation, stage.verification-release-retrospective]
|
|
159
|
+
draft_artifact_ids: [artifact.openapi-draft, artifact.data-architecture]
|
|
160
|
+
core_skills: [yss-router, yss-tactical-design, yss-domain, yss-application, yss-repository, yss-mybatis, yss-web-controller, yss-dto, yss-exception, yss-validation, tdd, yss-ddd-scaffold-generator]
|
|
161
|
+
forbidden_skills: [yss-ui, yss-page-module-development, yss-formily, yss-frontend-scaffold-generator, yss-antd-design, page-list-module, page-form-module]
|
|
162
|
+
description: >-
|
|
163
|
+
Own OpenAPI Draft, data-architecture contributions, and backend tests.
|
|
164
|
+
Write only contract-allowed backend paths. Verify with ./mvnw. Do not
|
|
165
|
+
Freeze OpenAPI, treat UI copy as requirements, or countersign your own
|
|
166
|
+
implementation.
|
|
167
|
+
|
|
168
|
+
- id: role.test-engineer
|
|
169
|
+
name: 测试工程师
|
|
170
|
+
kind: digital-human
|
|
171
|
+
title: YSS 测试工程师
|
|
172
|
+
stages: [stage.spec-architecture, stage.vertical-slice-implementation, stage.verification-release-retrospective]
|
|
173
|
+
draft_artifact_ids: [artifact.frontend-implementation-verification]
|
|
174
|
+
owned_evidence_ids: [evidence.fresh-verification, evidence.frontend-implementation-verification]
|
|
175
|
+
core_skills: [tdd, diagnosing-bugs, code-review]
|
|
176
|
+
forbidden_skills: [yss-ddd-scaffold-generator, yss-frontend-scaffold-generator, implement, to-spec]
|
|
177
|
+
description: >-
|
|
178
|
+
Own test code, defect records, fresh verification, and frontend
|
|
179
|
+
implementation verification evidence. Review every implementation slice.
|
|
180
|
+
Recommend release readiness; do not close gate.release-ready. Do not
|
|
181
|
+
change product scope or write feature implementation. Must be a different
|
|
182
|
+
instance from the implementer.
|
|
183
|
+
|
|
184
|
+
stage_groups:
|
|
185
|
+
- id: group.discovery
|
|
186
|
+
name: Discovery
|
|
187
|
+
stage: stage.discovery
|
|
188
|
+
members: [role.lifecycle-orchestrator, role.requirements-manager, role.product-manager, role.business]
|
|
189
|
+
- id: group.spec
|
|
190
|
+
name: Spec
|
|
191
|
+
stage: stage.spec-architecture
|
|
192
|
+
members: [role.lifecycle-orchestrator, role.requirements-manager, role.product-manager, role.test-engineer]
|
|
193
|
+
- id: group.product-design
|
|
194
|
+
name: 产品设计
|
|
195
|
+
stage: stage.product-design
|
|
196
|
+
members: [role.lifecycle-orchestrator, role.product-manager, role.requirements-manager, role.frontend-engineer]
|
|
197
|
+
- id: group.contract
|
|
198
|
+
name: 契约
|
|
199
|
+
stage: stage.system-data-engineering
|
|
200
|
+
members: [role.lifecycle-orchestrator, role.backend-engineer, role.frontend-engineer, role.test-engineer, role.product-manager]
|
|
201
|
+
- id: group.tickets
|
|
202
|
+
name: Ticket 正式化
|
|
203
|
+
stage: stage.ticket-formalization
|
|
204
|
+
members: [role.lifecycle-orchestrator, role.project-manager, role.frontend-engineer, role.backend-engineer, role.test-engineer]
|
|
205
|
+
- id: group.implementation
|
|
206
|
+
name: 实现
|
|
207
|
+
stage: stage.vertical-slice-implementation
|
|
208
|
+
members: [role.lifecycle-orchestrator, role.frontend-engineer, role.backend-engineer, role.test-engineer]
|
|
209
|
+
- id: group.release
|
|
210
|
+
name: 发布
|
|
211
|
+
stage: stage.verification-release-retrospective
|
|
212
|
+
members: [role.lifecycle-orchestrator, role.project-manager, role.test-engineer, role.product-manager, role.business]
|
|
213
|
+
|
|
214
|
+
gate_policy:
|
|
215
|
+
default_if_unlisted: biological-human
|
|
216
|
+
unlisted_kept_biological:
|
|
217
|
+
- gate.design-reviewed
|
|
218
|
+
- gate.architecture-reviewed
|
|
219
|
+
evidence_only:
|
|
220
|
+
- gate.repository-identity-valid
|
|
221
|
+
- gate.prototype-verified
|
|
222
|
+
orchestrator:
|
|
223
|
+
- gate.slice-contract-approved
|
|
224
|
+
- gate.slice-ready-for-agent
|
|
225
|
+
digital_human_review:
|
|
226
|
+
- gate: gate.prototype-reviewed
|
|
227
|
+
drafter: role.product-manager
|
|
228
|
+
countersigners: [role.frontend-engineer]
|
|
229
|
+
- gate: gate.openapi-draft-reviewed
|
|
230
|
+
drafter: role.backend-engineer
|
|
231
|
+
countersigners: [role.frontend-engineer]
|
|
232
|
+
- gate: gate.engineering-baseline-accepted
|
|
233
|
+
countersigners: [role.test-engineer]
|
|
234
|
+
- gate: gate.frontend-implementation-verified
|
|
235
|
+
drafter: role.frontend-engineer
|
|
236
|
+
countersigners: [role.test-engineer]
|
|
237
|
+
digital_human_review_work_units:
|
|
238
|
+
- work_unit: work-unit.code-review
|
|
239
|
+
countersigners: [role.test-engineer]
|
|
240
|
+
implementer_must_differ: true
|
|
241
|
+
dual_digital_human:
|
|
242
|
+
- gate: gate.spec-baseline-approved
|
|
243
|
+
drafter: role.requirements-manager
|
|
244
|
+
countersigners: [role.product-manager]
|
|
245
|
+
- gate: gate.domain-strategy-approved
|
|
246
|
+
drafter: role.requirements-manager
|
|
247
|
+
countersigners: [role.product-manager]
|
|
248
|
+
- gate: gate.stage-decision-package-approved
|
|
249
|
+
drafter: role.requirements-manager
|
|
250
|
+
countersigners: [role.product-manager]
|
|
251
|
+
- gate: gate.openapi-frozen
|
|
252
|
+
drafter: role.backend-engineer
|
|
253
|
+
countersigners: [role.product-manager, role.test-engineer]
|
|
254
|
+
product_digital_human_with_biological_veto:
|
|
255
|
+
- gate.user-confirmation
|
|
256
|
+
biological_human:
|
|
257
|
+
- gate.release-ready
|
|
258
|
+
runtime_side_effect_approval: biological-human
|
|
259
|
+
commercial_contract: biological-human
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# Triage 标签
|
|
2
2
|
|
|
3
|
-
本文定义 Agent
|
|
3
|
+
本文定义 Agent 分诊时使用的五种 **Ticket 状态**,以及它们在当前 Ticket tracker 中对应的标签。不要把它们叫做数字人角色。
|
|
4
4
|
|
|
5
|
-
|
|
|
5
|
+
| Ticket 状态 | Tracker 标签 | 含义 |
|
|
6
6
|
| --- | --- | --- |
|
|
7
7
|
| `needs-triage` | `needs-triage` | 等待维护者评估 Ticket |
|
|
8
8
|
| `needs-info` | `needs-info` | 等待报告者补充信息 |
|
|
9
9
|
| `ready-for-agent` | `ready-for-agent` | 必要门禁已通过、阻塞边已清除,可由 Agent 直接实现的垂直切片 Ticket |
|
|
10
|
-
| `ready-for-human` | `ready-for-human` | Spec
|
|
10
|
+
| `ready-for-human` | `ready-for-human` | Spec、设计、契约草案或其他资产需要会签(指定数字人或生物人)或特权访问 |
|
|
11
11
|
| `wontfix` | `wontfix` | 不会处理 |
|
|
12
12
|
|
|
13
|
-
当 skill
|
|
13
|
+
当 skill 提及某个 Ticket 状态时,使用表中对应的 Tracker 标签。会签人由 `docs/agents/digital-human-roles.yaml` 指定,不由本表指定。
|
|
14
14
|
|
|
15
|
-
Local Markdown 主 tracker 不调用远程标签:在 Ticket 文件顶部使用同名 `Status:`
|
|
15
|
+
Local Markdown 主 tracker 不调用远程标签:在 Ticket 文件顶部使用同名 `Status:` 值记录 Ticket 状态。Wayfinder 的 `claimed` / `resolved` 仅是临时工作状态,不属于本表五态;进入交付 Ticket 前必须转换为标准 `Status:`。
|
|
@@ -336,6 +336,12 @@ skills:
|
|
|
336
336
|
instance_default_discoverable: false
|
|
337
337
|
aliases: []
|
|
338
338
|
impacts: [backend]
|
|
339
|
+
- id: yss-tactical-design
|
|
340
|
+
layer: specialist
|
|
341
|
+
maturity: draft
|
|
342
|
+
instance_default_discoverable: false
|
|
343
|
+
aliases: []
|
|
344
|
+
impacts: [backend, lifecycle]
|
|
339
345
|
- id: yss-dto
|
|
340
346
|
layer: specialist
|
|
341
347
|
maturity: supported
|
|
@@ -438,6 +444,12 @@ skills:
|
|
|
438
444
|
instance_default_discoverable: true
|
|
439
445
|
aliases: []
|
|
440
446
|
impacts: [lifecycle, backend, frontend]
|
|
447
|
+
- id: yss-stage-decision
|
|
448
|
+
layer: core
|
|
449
|
+
maturity: draft
|
|
450
|
+
instance_default_discoverable: true
|
|
451
|
+
aliases: []
|
|
452
|
+
impacts: [discovery, lifecycle]
|
|
441
453
|
- id: yss-security-algorithm
|
|
442
454
|
layer: specialist
|
|
443
455
|
maturity: supported
|
|
@@ -67,6 +67,7 @@ owner: ai
|
|
|
67
67
|
## 8. Tactical DDD Check(轻量)
|
|
68
68
|
|
|
69
69
|
> 本节嵌入系统概要设计 / 数据架构,不新增独立阶段。只有当聚合边界、状态机、一致性或持久化映射复杂到无法在本节说明时,才升级为 `docs/.scratch/<feature>/architecture/<feature>-tactical-design.md`。
|
|
70
|
+
> 战术设计优先引用结构化 `tactical-design` contract(含 `version`、`digest` 和 `evidence.tactical-design-review`);独立文档只承载复杂场景的展开,不成为第二套事实源。
|
|
70
71
|
|
|
71
72
|
| 限界上下文 | 聚合根 | 业务不变量 | Entity / Value Object | 一致性边界 | Gateway / Repository | 主要测试 seam |
|
|
72
73
|
|------------|--------|------------|-----------------------|------------|----------------------|----------------|
|
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
| 稳定 ID | 门禁 | 所属阶段 | 触发条件 | 前置门禁 | 必须留下的证据 |
|
|
28
28
|
|---|---|---|---|---|---|
|
|
29
29
|
| `gate.repository-identity-valid` | 仓库身份校验 | `stage.entry-triage` | 每次进入流程。 | 无 | `evidence.repository-identity-check` |
|
|
30
|
+
| `gate.domain-strategy-approved` | DDD 战略设计批准 | `stage.discovery` | 存在 DDD 战略设计影响或需要确定领域边界、统一语言和核心规则。 | 无 | `evidence.domain-strategy-review`、`evidence.approval-record` |
|
|
31
|
+
| `gate.stage-decision-package-approved` | 阶段决策包批准 | `stage.discovery` | Discovery 到 Spec 入口需要稳定的阶段决策合同。 | `gate.domain-strategy-approved` | `evidence.stage-decision-package`、`evidence.approval-record` |
|
|
30
32
|
| `gate.spec-baseline-approved` | Spec 基线批准 | `stage.spec-architecture` | 新功能、行为变化或范围扩大进入 Spec 基线。 | 无 | `evidence.approval-record` |
|
|
31
33
|
| `gate.prototype-reviewed` | 原型评审 | `stage.product-design` | 命中产品设计影响,且低保真页面、流程、状态或 API 反推需要独立评审。 | 无 | `evidence.prototype-review-result` |
|
|
32
34
|
| `gate.prototype-verified` | 高保真原型验证 | `stage.product-design` | 需要高保真 HTML 原型进行视觉与交互校准。 | 无 | `evidence.antd-cli-validation`、`evidence.browser-prototype-verification` |
|
|
@@ -46,6 +48,8 @@
|
|
|
46
48
|
| 稳定 ID | 产物 | 所属阶段 | 触发条件 |
|
|
47
49
|
|---|---|---|---|
|
|
48
50
|
| `artifact.impact-assessment` | 影响面分析 | `stage.entry-triage` | 每次变更。 |
|
|
51
|
+
| `artifact.domain-strategy` | DDD 战略设计 | `stage.discovery` | 新产品/模块、跨上下文功能、统一语言冲突、服务边界或核心规则变化。 |
|
|
52
|
+
| `artifact.stage-decision-package` | 阶段决策包 | `stage.discovery` | Discovery 到 Spec 入口需要结构化上游决策。 |
|
|
49
53
|
| `artifact.discovery-record` | Discovery 记录 | `stage.discovery` | 新问题或边界不清。 |
|
|
50
54
|
| `artifact.spec` | Spec | `stage.spec-architecture` | 新功能、行为变化或范围扩大。 |
|
|
51
55
|
| `artifact.product-overview` | 产品总体设计 | `stage.spec-architecture` | 进入 Spec 基线。 |
|
|
@@ -61,6 +65,7 @@
|
|
|
61
65
|
| `artifact.data-architecture` | 数据架构 | `stage.system-data-engineering` | 数据模型、存储或一致性变化。 |
|
|
62
66
|
| `artifact.engineering-baseline` | 工程基线记录 | `stage.system-data-engineering` | 后端、前端或高风险工程变化。 |
|
|
63
67
|
| `artifact.architecture-review` | 架构审查记录 | `stage.system-data-engineering` | 高风险或跨边界变化。 |
|
|
68
|
+
| `artifact.tactical-design` | DDD 战术设计 | `stage.system-data-engineering` | 聚合边界、状态机、一致性或持久化映射复杂到无法在系统概要设计的 Tactical DDD Check 中清楚表达。 |
|
|
64
69
|
| `artifact.spec-delta` | Spec Delta | `stage.spec-architecture` | 已有冻结 Spec 的高风险行为变化。 |
|
|
65
70
|
| `artifact.parent-ticket` | 功能父 Ticket | `stage.ticket-formalization` | 每个进入追踪的功能。 |
|
|
66
71
|
| `artifact.vertical-slice-ticket` | 垂直切片 Ticket | `stage.ticket-formalization` | 进入实现前。 |
|
|
@@ -74,6 +79,9 @@
|
|
|
74
79
|
| 稳定 ID | 证据 | 说明 |
|
|
75
80
|
|---|---|---|
|
|
76
81
|
| `evidence.impact-assessment` | 影响面分析记录 | 受影响仓库、资产、风险与最近可信阶段。 |
|
|
82
|
+
| `evidence.domain-strategy-review` | DDD 战略设计评审证据 | 子域、限界上下文、统一语言、Context Map、场景和不变量的结构化评审结果。 |
|
|
83
|
+
| `evidence.tactical-design-review` | DDD 战术设计评审证据 | 聚合、Entity、Value Object、不变量、状态机、一致性、Gateway 与 API 隔离的结构化评审结果。 |
|
|
84
|
+
| `evidence.stage-decision-package` | 阶段决策包验证证据 | 阶段决策包的 Schema、引用、语义一致性、影响传播和下游消费验证结果。 |
|
|
77
85
|
| `evidence.maintenance-intensity-checkpoint` | 模板维护强度 checkpoint | template-source 变更的 L1 / L2 / L3 分级、触发项、最低验证证据、review 模式和升级记录。 |
|
|
78
86
|
| `evidence.repository-identity-check` | 仓库身份校验结果 | yss-project.yaml 的合法性与 repository_mode 裁决。 |
|
|
79
87
|
| `evidence.approval-record` | 人工批准记录 | 对需要人工批准的 Spec、设计、契约或发布裁决的可追溯记录。 |
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": 1,
|
|
3
3
|
"registry_id": "yss.lifecycle",
|
|
4
|
-
"semantic_sha256": "
|
|
4
|
+
"semantic_sha256": "49ca553e83efb9cffae220d9e6fca434b1d27096126a640f8f8e172e048808df",
|
|
5
5
|
"published_ids": [
|
|
6
6
|
"artifact.architecture-review",
|
|
7
7
|
"artifact.data-architecture",
|
|
8
8
|
"artifact.discovery-record",
|
|
9
|
+
"artifact.domain-strategy",
|
|
9
10
|
"artifact.engineering-baseline",
|
|
10
11
|
"artifact.frontend-implementation-plan",
|
|
11
12
|
"artifact.frontend-implementation-verification",
|
|
@@ -24,7 +25,9 @@
|
|
|
24
25
|
"artifact.slice-implementation-contract",
|
|
25
26
|
"artifact.spec",
|
|
26
27
|
"artifact.spec-delta",
|
|
28
|
+
"artifact.stage-decision-package",
|
|
27
29
|
"artifact.state-matrix",
|
|
30
|
+
"artifact.tactical-design",
|
|
28
31
|
"artifact.vertical-slice-ticket",
|
|
29
32
|
"evidence.antd-cli-validation",
|
|
30
33
|
"evidence.approval-record",
|
|
@@ -32,6 +35,7 @@
|
|
|
32
35
|
"evidence.checkpoint-and-rollback",
|
|
33
36
|
"evidence.contract-approval",
|
|
34
37
|
"evidence.design-review-result",
|
|
38
|
+
"evidence.domain-strategy-review",
|
|
35
39
|
"evidence.fresh-verification",
|
|
36
40
|
"evidence.frontend-implementation-verification",
|
|
37
41
|
"evidence.impact-assessment",
|
|
@@ -40,9 +44,12 @@
|
|
|
40
44
|
"evidence.prototype-confirmation",
|
|
41
45
|
"evidence.prototype-review-result",
|
|
42
46
|
"evidence.repository-identity-check",
|
|
47
|
+
"evidence.stage-decision-package",
|
|
48
|
+
"evidence.tactical-design-review",
|
|
43
49
|
"evidence.yss-skill-execution-result",
|
|
44
50
|
"gate.architecture-reviewed",
|
|
45
51
|
"gate.design-reviewed",
|
|
52
|
+
"gate.domain-strategy-approved",
|
|
46
53
|
"gate.engineering-baseline-accepted",
|
|
47
54
|
"gate.frontend-implementation-verified",
|
|
48
55
|
"gate.openapi-draft-reviewed",
|
|
@@ -54,6 +61,7 @@
|
|
|
54
61
|
"gate.slice-contract-approved",
|
|
55
62
|
"gate.slice-ready-for-agent",
|
|
56
63
|
"gate.spec-baseline-approved",
|
|
64
|
+
"gate.stage-decision-package-approved",
|
|
57
65
|
"gate.user-confirmation",
|
|
58
66
|
"stage.discovery",
|
|
59
67
|
"stage.entry-triage",
|
|
@@ -67,6 +75,7 @@
|
|
|
67
75
|
"work-unit.code-review",
|
|
68
76
|
"work-unit.discovery-opportunity",
|
|
69
77
|
"work-unit.discovery-requirements",
|
|
78
|
+
"work-unit.domain-strategy-design",
|
|
70
79
|
"work-unit.entry-triage",
|
|
71
80
|
"work-unit.fresh-verification",
|
|
72
81
|
"work-unit.independent-review",
|
|
@@ -80,6 +89,7 @@
|
|
|
80
89
|
"work-unit.slice-implementation",
|
|
81
90
|
"work-unit.spec-synthesis",
|
|
82
91
|
"work-unit.ssot-update",
|
|
92
|
+
"work-unit.stage-decision",
|
|
83
93
|
"work-unit.technical-analysis",
|
|
84
94
|
"work-unit.ticket-decomposition",
|
|
85
95
|
"work-unit.template-snapshot-build"
|
|
@@ -48,6 +48,15 @@ evidence:
|
|
|
48
48
|
- id: evidence.impact-assessment
|
|
49
49
|
name: 影响面分析记录
|
|
50
50
|
description: 受影响仓库、资产、风险与最近可信阶段。
|
|
51
|
+
- id: evidence.domain-strategy-review
|
|
52
|
+
name: DDD 战略设计评审证据
|
|
53
|
+
description: 子域、限界上下文、统一语言、Context Map、场景和不变量的结构化评审结果。
|
|
54
|
+
- id: evidence.tactical-design-review
|
|
55
|
+
name: DDD 战术设计评审证据
|
|
56
|
+
description: 聚合、Entity、Value Object、不变量、状态机、一致性、Gateway 与 API 隔离的结构化评审结果。
|
|
57
|
+
- id: evidence.stage-decision-package
|
|
58
|
+
name: 阶段决策包验证证据
|
|
59
|
+
description: 阶段决策包的 Schema、引用、语义一致性、影响传播和下游消费验证结果。
|
|
51
60
|
- id: evidence.maintenance-intensity-checkpoint
|
|
52
61
|
name: 模板维护强度 checkpoint
|
|
53
62
|
description: template-source 变更的 L1 / L2 / L3 分级、触发项、最低验证证据、review 模式和升级记录。
|
|
@@ -97,6 +106,17 @@ gates:
|
|
|
97
106
|
stage: stage.entry-triage
|
|
98
107
|
trigger: 每次进入流程。
|
|
99
108
|
evidence: [evidence.repository-identity-check]
|
|
109
|
+
- id: gate.domain-strategy-approved
|
|
110
|
+
name: DDD 战略设计批准
|
|
111
|
+
stage: stage.discovery
|
|
112
|
+
trigger: 存在 DDD 战略设计影响或需要确定领域边界、统一语言和核心规则。
|
|
113
|
+
evidence: [evidence.domain-strategy-review, evidence.approval-record]
|
|
114
|
+
- id: gate.stage-decision-package-approved
|
|
115
|
+
name: 阶段决策包批准
|
|
116
|
+
stage: stage.discovery
|
|
117
|
+
trigger: Discovery 到 Spec 入口需要稳定的阶段决策合同。
|
|
118
|
+
evidence: [evidence.stage-decision-package, evidence.approval-record]
|
|
119
|
+
requires_gates: [gate.domain-strategy-approved]
|
|
100
120
|
- id: gate.spec-baseline-approved
|
|
101
121
|
name: Spec 基线批准
|
|
102
122
|
stage: stage.spec-architecture
|
|
@@ -169,6 +189,14 @@ artifacts:
|
|
|
169
189
|
name: 影响面分析
|
|
170
190
|
stage: stage.entry-triage
|
|
171
191
|
trigger: 每次变更。
|
|
192
|
+
- id: artifact.domain-strategy
|
|
193
|
+
name: DDD 战略设计
|
|
194
|
+
stage: stage.discovery
|
|
195
|
+
trigger: 新产品/模块、跨上下文功能、统一语言冲突、服务边界或核心规则变化。
|
|
196
|
+
- id: artifact.stage-decision-package
|
|
197
|
+
name: 阶段决策包
|
|
198
|
+
stage: stage.discovery
|
|
199
|
+
trigger: Discovery 到 Spec 入口需要结构化上游决策。
|
|
172
200
|
- id: artifact.discovery-record
|
|
173
201
|
name: Discovery 记录
|
|
174
202
|
stage: stage.discovery
|
|
@@ -229,6 +257,10 @@ artifacts:
|
|
|
229
257
|
name: 架构审查记录
|
|
230
258
|
stage: stage.system-data-engineering
|
|
231
259
|
trigger: 高风险或跨边界变化。
|
|
260
|
+
- id: artifact.tactical-design
|
|
261
|
+
name: DDD 战术设计
|
|
262
|
+
stage: stage.system-data-engineering
|
|
263
|
+
trigger: 聚合边界、状态机、一致性或持久化映射复杂到无法在系统概要设计的 Tactical DDD Check 中清楚表达。
|
|
232
264
|
- id: artifact.spec-delta
|
|
233
265
|
name: Spec Delta
|
|
234
266
|
stage: stage.spec-architecture
|
|
@@ -319,6 +351,18 @@ work_units:
|
|
|
319
351
|
input: 机会结论、用户反馈和领域词汇。
|
|
320
352
|
output: 用户、MVP、非目标、成功标准、测试 seam 和未决项。
|
|
321
353
|
completion: frontier 清空;用户确认;无 runnable blocker。
|
|
354
|
+
- id: work-unit.domain-strategy-design
|
|
355
|
+
name: DDD 战略设计
|
|
356
|
+
scope: project-instance
|
|
357
|
+
input: 已澄清的业务场景、领域词汇、约束和现有上下文。
|
|
358
|
+
output: 子域、限界上下文、Context Map、统一语言、事件、核心领域概念候选和不变量。
|
|
359
|
+
completion: 边界、语义方向、规则所有权和关键场景可审查;无未解释冲突。
|
|
360
|
+
- id: work-unit.stage-decision
|
|
361
|
+
name: 阶段决策包综合
|
|
362
|
+
scope: project-instance
|
|
363
|
+
input: Discovery、DDD 战略设计、产品和商务输入。
|
|
364
|
+
output: 带版本、digest、证据和下游映射的阶段决策包。
|
|
365
|
+
completion: 必填字段、引用、影响面和下游消费验证通过;批准门禁完成。
|
|
322
366
|
- id: work-unit.spec-synthesis
|
|
323
367
|
name: Spec 综合
|
|
324
368
|
scope: project-instance
|
|
@@ -335,8 +379,8 @@ work_units:
|
|
|
335
379
|
name: 技术分析与契约冻结
|
|
336
380
|
scope: project-instance
|
|
337
381
|
input: Spec、原型、API/数据/工程影响面。
|
|
338
|
-
output: OpenAPI
|
|
339
|
-
completion: 命中契约已冻结;无 API
|
|
382
|
+
output: OpenAPI、数据架构、Tactical DDD Check、工程基线、架构审查和 Slice 合同草案。
|
|
383
|
+
completion: 命中契约已冻结;无 API 影响有可读记录;命中领域影响时战术模型无未解释冲突;工程基线通过。
|
|
340
384
|
- id: work-unit.ticket-decomposition
|
|
341
385
|
name: 垂直切片 Ticket 正式化
|
|
342
386
|
scope: project-instance
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://yss.dev/schemas/digital-human-task-package.schema.json",
|
|
4
|
+
"title": "YSS Digital Human Task Package",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
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
|
+
"properties": {
|
|
9
|
+
"schema_version": { "const": 1 },
|
|
10
|
+
"task_id": { "type": "string", "minLength": 1, "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]*$" },
|
|
11
|
+
"work_unit_id": { "type": "string", "minLength": 1, "pattern": "^work-unit\\.[a-z0-9][a-z0-9-]*$" },
|
|
12
|
+
"actor_id": { "type": "string", "minLength": 1, "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._:-]*$" },
|
|
13
|
+
"role_id": { "type": "string", "pattern": "^role\\.[a-z0-9][a-z0-9-]*$" },
|
|
14
|
+
"runtime_id": { "type": "string", "pattern": "^runtime\\.[a-z0-9][a-z0-9-]*$" },
|
|
15
|
+
"execution_state": { "enum": ["Explorer", "Drafter", "Worker", "Reviewer", "Verifier"] },
|
|
16
|
+
"workflow_status": { "enum": ["not-started", "active", "paused", "resolved", "failed"] },
|
|
17
|
+
"stage_id": { "type": "string", "pattern": "^stage\\.[a-z0-9][a-z0-9-]*$" },
|
|
18
|
+
"feature_id": { "type": "string", "minLength": 1 },
|
|
19
|
+
"skill_source": {
|
|
20
|
+
"type": "object", "additionalProperties": false,
|
|
21
|
+
"required": ["registry_ref", "defaults_ref", "core_skills", "forbidden_skills"],
|
|
22
|
+
"properties": {
|
|
23
|
+
"registry_ref": { "const": "docs/agents/digital-human-roles.yaml" },
|
|
24
|
+
"defaults_ref": { "type": "string", "minLength": 1 },
|
|
25
|
+
"core_skills": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
|
|
26
|
+
"forbidden_skills": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "minLength": 1 } }
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"contract": {
|
|
30
|
+
"type": "object", "additionalProperties": false,
|
|
31
|
+
"required": ["kind", "contract_id", "contract_version", "status", "contract_ref"],
|
|
32
|
+
"properties": {
|
|
33
|
+
"kind": { "enum": ["lifecycle-work-unit", "slice-implementation", "template-maintenance"] },
|
|
34
|
+
"contract_id": { "type": "string", "minLength": 1 },
|
|
35
|
+
"contract_version": { "type": "integer", "minimum": 1 },
|
|
36
|
+
"status": { "enum": ["issued", "stale", "blocked"] },
|
|
37
|
+
"contract_ref": { "type": "string", "minLength": 1 },
|
|
38
|
+
"lifecycle_ref": { "type": "string", "minLength": 1 },
|
|
39
|
+
"slice_contract_ref": { "type": "string", "minLength": 1 },
|
|
40
|
+
"maintenance_ref": { "type": "string", "minLength": 1 },
|
|
41
|
+
"artifact_refs": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
42
|
+
"gate_refs": { "type": "array", "items": { "type": "string", "minLength": 1 } }
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"inputs": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
|
|
46
|
+
"objective": { "type": "string", "minLength": 1 },
|
|
47
|
+
"allowed_write_paths": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
|
|
48
|
+
"forbidden_actions": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
|
|
49
|
+
"expected_outputs": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
|
|
50
|
+
"expected_evidence_files": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
|
|
51
|
+
"verification_commands": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
|
|
52
|
+
"verification_results": {
|
|
53
|
+
"type": "array", "items": {
|
|
54
|
+
"type": "object", "additionalProperties": false,
|
|
55
|
+
"required": ["command", "exit_code", "executed_at", "evidence_ref"],
|
|
56
|
+
"properties": {
|
|
57
|
+
"command": { "type": "string", "minLength": 1 },
|
|
58
|
+
"exit_code": { "type": "integer", "minimum": 0 },
|
|
59
|
+
"duration_ms": { "type": "integer", "minimum": 0 },
|
|
60
|
+
"executed_at": { "type": "string", "minLength": 1 },
|
|
61
|
+
"evidence_ref": { "type": "string", "minLength": 1 },
|
|
62
|
+
"stdout_ref": { "type": "string", "minLength": 1 },
|
|
63
|
+
"stderr_ref": { "type": "string", "minLength": 1 }
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"review_context": {
|
|
68
|
+
"type": "object", "additionalProperties": false, "required": ["implementation_actor_id"],
|
|
69
|
+
"properties": { "implementation_actor_id": { "type": "string", "minLength": 1 }, "implementation_task_id": { "type": "string", "minLength": 1 } }
|
|
70
|
+
},
|
|
71
|
+
"downstream_consumers": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
|
|
72
|
+
"convergence": {
|
|
73
|
+
"type": "object", "additionalProperties": false, "required": ["parent_work_unit", "convergence_ref"],
|
|
74
|
+
"properties": {
|
|
75
|
+
"parent_work_unit": { "type": "string", "pattern": "^work-unit\\.[a-z0-9][a-z0-9-]*$" },
|
|
76
|
+
"convergence_ref": { "type": "string", "minLength": 1 },
|
|
77
|
+
"conflict_escalation": { "type": "string", "minLength": 1 }
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"result": {
|
|
81
|
+
"type": "object", "additionalProperties": false,
|
|
82
|
+
"properties": {
|
|
83
|
+
"result_schema": { "const": "workflow-execution-result-v1" },
|
|
84
|
+
"work_unit": { "type": "string", "minLength": 1 },
|
|
85
|
+
"workflow_reference": { "type": "string", "minLength": 1 },
|
|
86
|
+
"result": { "enum": ["completed", "blocked", "needs-human", "failed"] },
|
|
87
|
+
"skill": { "type": "string", "minLength": 1 },
|
|
88
|
+
"changed_files": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
89
|
+
"changed_artifacts": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
90
|
+
"evidence_refs": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
91
|
+
"deferred_seams": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
92
|
+
"drift": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
93
|
+
"violation": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
94
|
+
"new_impacts": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
95
|
+
"stale_candidates": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
96
|
+
"next_route": { "type": ["string", "null"], "minLength": 1 },
|
|
97
|
+
"blocking_signals": { "type": "array", "items": { "type": "string", "minLength": 1 } }
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"allOf": [
|
|
102
|
+
{ "if": { "properties": { "contract": { "properties": { "kind": { "const": "lifecycle-work-unit" } } } } }, "then": { "required": ["stage_id"], "properties": { "contract": { "required": ["lifecycle_ref"] } } } },
|
|
103
|
+
{ "if": { "properties": { "contract": { "properties": { "kind": { "const": "slice-implementation" } } } } }, "then": { "required": ["stage_id"], "properties": { "contract": { "required": ["slice_contract_ref"] } } } },
|
|
104
|
+
{ "if": { "properties": { "contract": { "properties": { "kind": { "const": "template-maintenance" } } } } }, "then": { "properties": { "contract": { "required": ["maintenance_ref"] } } } },
|
|
105
|
+
{ "if": { "properties": { "execution_state": { "const": "Reviewer" } } }, "then": { "required": ["review_context"] } }
|
|
106
|
+
]
|
|
107
|
+
}
|
|
@@ -37,7 +37,8 @@
|
|
|
37
37
|
"properties": {
|
|
38
38
|
"status": { "enum": ["not-evaluated", "blocked", "ready-for-human", "approved", "stale", "not-applicable"] },
|
|
39
39
|
"reason": { "type": "string" },
|
|
40
|
-
"evidence_refs": { "type": "array", "items": { "type": "string" } }
|
|
40
|
+
"evidence_refs": { "type": "array", "items": { "type": "string" } },
|
|
41
|
+
"approval_ref": { "type": ["string", "null"] }
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
},
|