vstack 3.1.1__tar.gz → 3.2.0__tar.gz
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.
- {vstack-3.1.1 → vstack-3.2.0}/PKG-INFO +68 -3
- {vstack-3.1.1 → vstack-3.2.0}/README-pypi.md +67 -2
- {vstack-3.1.1 → vstack-3.2.0}/pyproject.toml +24 -15
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_migrations/README.md +3 -2
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/architect/config.yaml +2 -2
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/architect/template.md +12 -7
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/designer/config.yaml +3 -3
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/designer/template.md +16 -11
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/engineer/config.yaml +1 -1
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/engineer/template.md +14 -9
- vstack-3.2.0/src/vstack/_templates/agents/planner/config.yaml +28 -0
- vstack-3.2.0/src/vstack/_templates/agents/planner/template.md +103 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/product/config.yaml +2 -2
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/product/template.md +16 -11
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/release/artifacts/release-summary.md +1 -1
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/release/config.yaml +3 -3
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/release/template.md +18 -13
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/tester/config.yaml +2 -2
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/tester/template.md +15 -10
- vstack-3.2.0/src/vstack/_templates/hooks/log-retention-cleanup/hook.yaml +108 -0
- vstack-3.2.0/src/vstack/_templates/hooks/post-commit-security-scan/hook.yaml +73 -0
- vstack-3.2.0/src/vstack/_templates/hooks/post-edit-format/hook.yaml +70 -0
- vstack-3.2.0/src/vstack/_templates/hooks/post-edit-markdown-quality/hook.yaml +73 -0
- vstack-3.2.0/src/vstack/_templates/hooks/pre-tool-safety-gate/hook.yaml +93 -0
- vstack-3.2.0/src/vstack/_templates/hooks/session-audit/hook.yaml +248 -0
- vstack-3.2.0/src/vstack/_templates/project/.vstack/config.yaml +202 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/agents/generator.py +113 -44
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/artifacts/protocol.py +5 -4
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/constants.py +12 -2
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/init.py +81 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/install.py +4 -3
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/interface.py +207 -11
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/migrate.py +173 -20
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/service.py +36 -4
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/verify.py +3 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/constants.py +4 -3
- vstack-3.2.0/src/vstack/hooks/__init__.py +5 -0
- vstack-3.2.0/src/vstack/hooks/config.py +22 -0
- vstack-3.2.0/src/vstack/hooks/constants.py +10 -0
- vstack-3.2.0/src/vstack/hooks/generator.py +339 -0
- vstack-3.1.1/src/vstack/_templates/project/.vstack/config.yaml +0 -96
- {vstack-3.1.1 → vstack-3.2.0}/LICENSE +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/__init__.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/__main__.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_migrations/v2_to_v3.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/_partials/agent-skill-boundary.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/architect/artifacts/adr/NNN-template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/architect/artifacts/overview.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/designer/artifacts/overview.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/engineer/artifacts/issues/postmortem.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/engineer/artifacts/issues/rca.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/product/artifacts/changes/change-request.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/product/artifacts/issues/issue.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/product/artifacts/requirements.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/product/artifacts/roadmap.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/product/artifacts/vision.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/tester/artifacts/performance-baseline.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/tester/artifacts/security-report.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/tester/artifacts/test-report.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/git/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/git/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/helm/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/helm/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/java/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/java/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/k8s/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/k8s/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/markdown/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/markdown/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/python/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/python/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/rancher/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/rancher/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/security/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/security/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/terraform/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/terraform/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/terragrunt/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/terragrunt/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/testing/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/testing/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/typescript/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/typescript/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/api-design-review/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/api-design-review/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/architecture-risk/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/architecture-risk/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/code-review/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/code-review/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/dependency-audit/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/dependency-audit/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/incident-timeline/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/incident-timeline/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/migration-safety/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/migration-safety/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/release-readiness/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/release-readiness/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/_partials/base-branch.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/_partials/observability-checklist.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/_partials/run-tests.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/_partials/skill-context.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/adr/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/adr/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/analyse/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/analyse/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/architecture/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/architecture/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/aws-cli/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/aws-cli/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/cicd/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/cicd/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/cloudformation/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/cloudformation/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/code-review/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/code-review/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/codeql/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/codeql/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/concise/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/concise/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/consult/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/consult/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/container/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/container/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/conventional-commit/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/conventional-commit/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/debug/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/debug/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/dependabot/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/dependabot/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/dependency/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/dependency/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/design/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/design/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/docs/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/docs/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/explore/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/explore/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/gdpr/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/gdpr/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/gh-issues/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/gh-issues/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/gh-release/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/gh-release/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/guardrails/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/guardrails/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/helm/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/helm/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/incident/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/incident/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/inspect/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/inspect/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/k8s/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/k8s/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/migrate/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/migrate/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/onboard/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/onboard/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/openapi/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/openapi/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/performance/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/performance/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/postmortem/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/postmortem/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/pr/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/pr/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/rancher/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/rancher/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/rca/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/rca/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/refactor/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/refactor/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/release-notes/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/release-notes/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/requirements/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/requirements/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/secret-scan/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/secret-scan/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/security/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/security/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/terraform/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/terraform/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/terragrunt/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/terragrunt/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/threat-model/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/threat-model/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/verify/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/verify/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/vision/config.yaml +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/vision/template.md +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/agents/__init__.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/agents/config.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/agents/constants.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/artifacts/__init__.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/artifacts/config.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/artifacts/constants.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/artifacts/generator.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/artifacts/models.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/__init__.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/base.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/catalog.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/manifest.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/parser.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/report.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/status.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/uninstall.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/validate.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/frontmatter/__init__.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/frontmatter/parser.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/frontmatter/schema.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/frontmatter/serializer.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/instructions/__init__.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/instructions/config.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/instructions/constants.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/instructions/generator.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/main.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/manifest/__init__.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/manifest/store.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/models.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/prompts/__init__.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/prompts/config.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/prompts/constants.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/prompts/generator.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/skills/__init__.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/skills/config.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/skills/constants.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/skills/generator.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/skills/models.py +0 -0
- {vstack-3.1.1 → vstack-3.2.0}/src/vstack/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vstack
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.2.0
|
|
4
4
|
Summary: VS Code-native AI engineering workflow system for microservices, libraries, and backend systems.
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -45,7 +45,7 @@ The VS Code-native AI workflow system for backend engineering.
|
|
|
45
45
|
|
|
46
46
|
vstack installs structured agents, skills, instructions, and prompts into `.github/` so GitHub Copilot Agent Mode can run repeatable backend workflows with clear role boundaries.
|
|
47
47
|
|
|
48
|
-
It provides
|
|
48
|
+
It provides six delivery roles for end-to-end software work: `product`, `architect`, `designer`, `engineer`, `tester`, and `release`, coordinated by `planner`.
|
|
49
49
|
|
|
50
50
|
## Best for
|
|
51
51
|
|
|
@@ -55,7 +55,7 @@ It provides a fixed role model for end-to-end software delivery: `product`, `arc
|
|
|
55
55
|
|
|
56
56
|
## What you get
|
|
57
57
|
|
|
58
|
-
- Fixed role model:
|
|
58
|
+
- Fixed role model: six delivery roles plus a planner coordinator
|
|
59
59
|
- Template-driven install model from `src/vstack/_templates/`
|
|
60
60
|
- Backend-first verification, security, and release discipline
|
|
61
61
|
- One runtime dependency: PyYAML
|
|
@@ -229,6 +229,71 @@ vstack install --dry-run
|
|
|
229
229
|
|
|
230
230
|
The summary lists preserved files as `type/name` selectors (e.g. `agent/engineer`). Resolve each conflict with `--force-name type/name` to overwrite, `--adopt-name type/name` to take ownership without overwriting, or `--force` to overwrite everything.
|
|
231
231
|
|
|
232
|
+
## Reading `.vstack/config.yaml`
|
|
233
|
+
|
|
234
|
+
- Lines starting with `#` are comments, explanation, or example configuration and are not active.
|
|
235
|
+
- Only uncommented YAML keys are active configuration.
|
|
236
|
+
- To enable an example block, remove `#` from that block and keep valid YAML indentation.
|
|
237
|
+
- After any config change, run `vstack init` to apply it to generated `.github/` artifacts.
|
|
238
|
+
|
|
239
|
+
## Workflow modes
|
|
240
|
+
|
|
241
|
+
vstack supports three workflow modes via `.vstack/config.yaml`:
|
|
242
|
+
|
|
243
|
+
```yaml
|
|
244
|
+
workflow:
|
|
245
|
+
mode: agentic # default
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
After changing `workflow.mode`, regenerate artifacts:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
vstack init
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
| Mode | Behavior | Planner file | Worker handoff buttons |
|
|
255
|
+
| --------- | ------------------------------------------------------------ | ------------- | ---------------------- |
|
|
256
|
+
| `agentic` | Planner orchestrates stage progression using subagents | generated | omitted |
|
|
257
|
+
| `manual` | User progresses stage-by-stage manually | not generated | shown |
|
|
258
|
+
| `hybrid` | Both planner orchestration and manual handoffs are available | generated | shown |
|
|
259
|
+
|
|
260
|
+
Execution semantics:
|
|
261
|
+
|
|
262
|
+
- `workflow.stages` order is the canonical progression order.
|
|
263
|
+
- `agentic` is stage-sequential by default: planner advances one stage at a time in configured order.
|
|
264
|
+
- Parallelization is still possible inside a stage (independent subtasks), but cross-stage progression remains ordered.
|
|
265
|
+
|
|
266
|
+
Handoff target semantics:
|
|
267
|
+
|
|
268
|
+
- `handoffs.prompt` is the transition prompt text.
|
|
269
|
+
- If `handoffs.agent` is omitted, the target defaults to the next role in `workflow.stages`.
|
|
270
|
+
- You can set `handoffs.agent` explicitly to override that default target in `manual`/`hybrid`.
|
|
271
|
+
- In `agentic`, worker handoff buttons are hidden; planner controls progression.
|
|
272
|
+
|
|
273
|
+
Mode quickstart in Copilot Agent Mode:
|
|
274
|
+
|
|
275
|
+
| Mode | Start here | First prompt example |
|
|
276
|
+
| --------- | ------------------------ | ------------------------------------------------------- |
|
|
277
|
+
| `agentic` | `@planner` | `@planner Run the workflow for this repository change.` |
|
|
278
|
+
| `manual` | `@product` | `@product Define requirements for this change.` |
|
|
279
|
+
| `hybrid` | `@planner` or `@product` | `@planner Run the workflow for this repository change.` |
|
|
280
|
+
|
|
281
|
+
Usage guidance:
|
|
282
|
+
|
|
283
|
+
- Use `agentic` when you want one deterministic orchestration path.
|
|
284
|
+
- Use `manual` when your team prefers explicit user-controlled stage transitions.
|
|
285
|
+
- Use `hybrid` only when your team intentionally wants both options.
|
|
286
|
+
|
|
287
|
+
Hybrid operating rule:
|
|
288
|
+
|
|
289
|
+
- Choose one path per session (planner-led or manual handoffs) and stay on it.
|
|
290
|
+
- Mixing both paths in one session increases the chance of duplicate stage transitions.
|
|
291
|
+
|
|
292
|
+
Hybrid warning:
|
|
293
|
+
|
|
294
|
+
- In `hybrid`, users can click handoff buttons while a planner-led flow is also available.
|
|
295
|
+
- This can cause unintended progression jumps or duplicated transitions if your process assumes one strict path.
|
|
296
|
+
|
|
232
297
|
## Fast troubleshooting
|
|
233
298
|
|
|
234
299
|
- Command not found after install: ensure your `pipx` binary path is in `PATH`
|
|
@@ -14,7 +14,7 @@ The VS Code-native AI workflow system for backend engineering.
|
|
|
14
14
|
|
|
15
15
|
vstack installs structured agents, skills, instructions, and prompts into `.github/` so GitHub Copilot Agent Mode can run repeatable backend workflows with clear role boundaries.
|
|
16
16
|
|
|
17
|
-
It provides
|
|
17
|
+
It provides six delivery roles for end-to-end software work: `product`, `architect`, `designer`, `engineer`, `tester`, and `release`, coordinated by `planner`.
|
|
18
18
|
|
|
19
19
|
## Best for
|
|
20
20
|
|
|
@@ -24,7 +24,7 @@ It provides a fixed role model for end-to-end software delivery: `product`, `arc
|
|
|
24
24
|
|
|
25
25
|
## What you get
|
|
26
26
|
|
|
27
|
-
- Fixed role model:
|
|
27
|
+
- Fixed role model: six delivery roles plus a planner coordinator
|
|
28
28
|
- Template-driven install model from `src/vstack/_templates/`
|
|
29
29
|
- Backend-first verification, security, and release discipline
|
|
30
30
|
- One runtime dependency: PyYAML
|
|
@@ -198,6 +198,71 @@ vstack install --dry-run
|
|
|
198
198
|
|
|
199
199
|
The summary lists preserved files as `type/name` selectors (e.g. `agent/engineer`). Resolve each conflict with `--force-name type/name` to overwrite, `--adopt-name type/name` to take ownership without overwriting, or `--force` to overwrite everything.
|
|
200
200
|
|
|
201
|
+
## Reading `.vstack/config.yaml`
|
|
202
|
+
|
|
203
|
+
- Lines starting with `#` are comments, explanation, or example configuration and are not active.
|
|
204
|
+
- Only uncommented YAML keys are active configuration.
|
|
205
|
+
- To enable an example block, remove `#` from that block and keep valid YAML indentation.
|
|
206
|
+
- After any config change, run `vstack init` to apply it to generated `.github/` artifacts.
|
|
207
|
+
|
|
208
|
+
## Workflow modes
|
|
209
|
+
|
|
210
|
+
vstack supports three workflow modes via `.vstack/config.yaml`:
|
|
211
|
+
|
|
212
|
+
```yaml
|
|
213
|
+
workflow:
|
|
214
|
+
mode: agentic # default
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
After changing `workflow.mode`, regenerate artifacts:
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
vstack init
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
| Mode | Behavior | Planner file | Worker handoff buttons |
|
|
224
|
+
| --------- | ------------------------------------------------------------ | ------------- | ---------------------- |
|
|
225
|
+
| `agentic` | Planner orchestrates stage progression using subagents | generated | omitted |
|
|
226
|
+
| `manual` | User progresses stage-by-stage manually | not generated | shown |
|
|
227
|
+
| `hybrid` | Both planner orchestration and manual handoffs are available | generated | shown |
|
|
228
|
+
|
|
229
|
+
Execution semantics:
|
|
230
|
+
|
|
231
|
+
- `workflow.stages` order is the canonical progression order.
|
|
232
|
+
- `agentic` is stage-sequential by default: planner advances one stage at a time in configured order.
|
|
233
|
+
- Parallelization is still possible inside a stage (independent subtasks), but cross-stage progression remains ordered.
|
|
234
|
+
|
|
235
|
+
Handoff target semantics:
|
|
236
|
+
|
|
237
|
+
- `handoffs.prompt` is the transition prompt text.
|
|
238
|
+
- If `handoffs.agent` is omitted, the target defaults to the next role in `workflow.stages`.
|
|
239
|
+
- You can set `handoffs.agent` explicitly to override that default target in `manual`/`hybrid`.
|
|
240
|
+
- In `agentic`, worker handoff buttons are hidden; planner controls progression.
|
|
241
|
+
|
|
242
|
+
Mode quickstart in Copilot Agent Mode:
|
|
243
|
+
|
|
244
|
+
| Mode | Start here | First prompt example |
|
|
245
|
+
| --------- | ------------------------ | ------------------------------------------------------- |
|
|
246
|
+
| `agentic` | `@planner` | `@planner Run the workflow for this repository change.` |
|
|
247
|
+
| `manual` | `@product` | `@product Define requirements for this change.` |
|
|
248
|
+
| `hybrid` | `@planner` or `@product` | `@planner Run the workflow for this repository change.` |
|
|
249
|
+
|
|
250
|
+
Usage guidance:
|
|
251
|
+
|
|
252
|
+
- Use `agentic` when you want one deterministic orchestration path.
|
|
253
|
+
- Use `manual` when your team prefers explicit user-controlled stage transitions.
|
|
254
|
+
- Use `hybrid` only when your team intentionally wants both options.
|
|
255
|
+
|
|
256
|
+
Hybrid operating rule:
|
|
257
|
+
|
|
258
|
+
- Choose one path per session (planner-led or manual handoffs) and stay on it.
|
|
259
|
+
- Mixing both paths in one session increases the chance of duplicate stage transitions.
|
|
260
|
+
|
|
261
|
+
Hybrid warning:
|
|
262
|
+
|
|
263
|
+
- In `hybrid`, users can click handoff buttons while a planner-led flow is also available.
|
|
264
|
+
- This can cause unintended progression jumps or duplicated transitions if your process assumes one strict path.
|
|
265
|
+
|
|
201
266
|
## Fast troubleshooting
|
|
202
267
|
|
|
203
268
|
- Command not found after install: ensure your `pipx` binary path is in `PATH`
|
|
@@ -45,7 +45,7 @@ classifiers = [
|
|
|
45
45
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
46
46
|
"Topic :: Utilities",
|
|
47
47
|
]
|
|
48
|
-
version = "3.
|
|
48
|
+
version = "3.2.0"
|
|
49
49
|
|
|
50
50
|
[project.urls]
|
|
51
51
|
Homepage = "https://github.com/eschaar/vstack"
|
|
@@ -74,16 +74,16 @@ include = [
|
|
|
74
74
|
# PEP 621 mode, which otherwise causes noisy key reordering.
|
|
75
75
|
|
|
76
76
|
[tool.poetry.requires-plugins]
|
|
77
|
-
poetry-dynamic-versioning = { version = ">=1.
|
|
77
|
+
poetry-dynamic-versioning = { version = ">=1.10.0,<2.0.0", extras = ["plugin"] }
|
|
78
78
|
|
|
79
79
|
[tool.poetry.group.dev.dependencies]
|
|
80
|
-
pytest = ">=9.0"
|
|
81
|
-
pytest-cov = ">=
|
|
80
|
+
pytest = ">=9.0.3"
|
|
81
|
+
pytest-cov = ">=7.1.0"
|
|
82
82
|
ruff = ">=0.15.12"
|
|
83
|
-
mypy = ">=1.
|
|
83
|
+
mypy = ">=2.1.0"
|
|
84
84
|
pre-commit = ">=4.6.0"
|
|
85
|
-
tox = ">=4.
|
|
86
|
-
types-PyYAML = ">=6.0"
|
|
85
|
+
tox = ">=4.54.0"
|
|
86
|
+
types-PyYAML = ">=6.0.12.20260510"
|
|
87
87
|
|
|
88
88
|
|
|
89
89
|
# ---------------------------------------------------------------------------
|
|
@@ -132,12 +132,21 @@ warn_unused_ignores = true
|
|
|
132
132
|
warn_return_any = false
|
|
133
133
|
ignore_missing_imports = true
|
|
134
134
|
|
|
135
|
+
# ---------------------------------------------------------------------------
|
|
136
|
+
# pylint
|
|
137
|
+
# ---------------------------------------------------------------------------
|
|
138
|
+
|
|
139
|
+
[tool.pylint.main]
|
|
140
|
+
# Ensure src-layout imports (e.g. vstack.hooks) resolve in editor-integrated pylint runs.
|
|
141
|
+
init-hook = "import sys; sys.path.insert(0, 'src')"
|
|
142
|
+
py-version = "3.11"
|
|
143
|
+
|
|
135
144
|
# ---------------------------------------------------------------------------
|
|
136
145
|
# build system
|
|
137
146
|
# ---------------------------------------------------------------------------
|
|
138
147
|
|
|
139
148
|
[build-system]
|
|
140
|
-
requires = ["poetry-core>=
|
|
149
|
+
requires = ["poetry-core>=2.4.0", "poetry-dynamic-versioning>=1.10.0,<2.0.0"]
|
|
141
150
|
build-backend = "poetry_dynamic_versioning.backend"
|
|
142
151
|
|
|
143
152
|
# ---------------------------------------------------------------------------
|
|
@@ -168,7 +177,7 @@ extraPaths = ["scripts"]
|
|
|
168
177
|
[tool.tox]
|
|
169
178
|
legacy_tox_ini = """
|
|
170
179
|
[tox]
|
|
171
|
-
min_version = 4.
|
|
180
|
+
min_version = 4.54.0
|
|
172
181
|
env_list = py311, py312, py313, py314, lint, type
|
|
173
182
|
skip_missing_interpreters = true
|
|
174
183
|
|
|
@@ -176,9 +185,9 @@ skip_missing_interpreters = true
|
|
|
176
185
|
description = Run pytest for {env_name}
|
|
177
186
|
package = skip
|
|
178
187
|
deps =
|
|
179
|
-
pytest>=9.0
|
|
180
|
-
pytest-cov>=
|
|
181
|
-
pyyaml>=6.0
|
|
188
|
+
pytest>=9.0.3
|
|
189
|
+
pytest-cov>=7.1.0
|
|
190
|
+
pyyaml>=6.0.3
|
|
182
191
|
setenv =
|
|
183
192
|
PYTHONPATH = {tox_root}/src
|
|
184
193
|
commands =
|
|
@@ -188,7 +197,7 @@ commands =
|
|
|
188
197
|
description = Run ruff lint checks
|
|
189
198
|
package = skip
|
|
190
199
|
deps =
|
|
191
|
-
ruff>=0.15
|
|
200
|
+
ruff>=0.15.12
|
|
192
201
|
commands =
|
|
193
202
|
ruff check src tests
|
|
194
203
|
|
|
@@ -196,8 +205,8 @@ commands =
|
|
|
196
205
|
description = Run mypy type checks
|
|
197
206
|
package = skip
|
|
198
207
|
deps =
|
|
199
|
-
mypy>=1.
|
|
200
|
-
types-PyYAML>=6.0
|
|
208
|
+
mypy>=2.1.0
|
|
209
|
+
types-PyYAML>=6.0.12.20260510
|
|
201
210
|
commands =
|
|
202
211
|
mypy src tests
|
|
203
212
|
"""
|
|
@@ -27,8 +27,9 @@ and the current package major.
|
|
|
27
27
|
| `--dry-run` | Print moves without touching the filesystem |
|
|
28
28
|
|
|
29
29
|
`vstack migrate` only moves files that exist at the old path; absent files are silently
|
|
30
|
-
skipped. It reads `
|
|
31
|
-
paths when the project uses a custom
|
|
30
|
+
skipped. It reads `items.root` from `.vstack/config.yaml` (with `artifacts.root`
|
|
31
|
+
as a legacy fallback) and adjusts destination paths when the project uses a custom
|
|
32
|
+
docs root.
|
|
32
33
|
|
|
33
34
|
## Schema
|
|
34
35
|
|
|
@@ -4,7 +4,7 @@ description: >
|
|
|
4
4
|
Senior software architect. Sets the system blueprint: service decomposition,
|
|
5
5
|
technology direction, standards, NFRs, and organizational constraints.
|
|
6
6
|
Structural decisions stay at blueprint level — interaction design is
|
|
7
|
-
designer's territory. Reads product
|
|
7
|
+
designer's territory. Reads product items; produces architecture overview
|
|
8
8
|
and ADRs. Baseline-first on branch.
|
|
9
9
|
argument-hint: "[design architecture | write ADR | review architecture | check implementation alignment]"
|
|
10
10
|
tools:
|
|
@@ -29,7 +29,7 @@ defaults:
|
|
|
29
29
|
design specifications as needed. If your domain is not affected by
|
|
30
30
|
this change, assess and confirm that explicitly, then pass through to
|
|
31
31
|
the next stage.
|
|
32
|
-
|
|
32
|
+
items:
|
|
33
33
|
dir: architecture
|
|
34
34
|
input:
|
|
35
35
|
- product/**/*.md
|
|
@@ -59,13 +59,18 @@ Handoffs you own:
|
|
|
59
59
|
- Pass-through: if the architecture is not affected by this change, confirm that explicitly before passing through.
|
|
60
60
|
- Back to product: material risks, unresolved tradeoffs, and decisions requiring scope change.
|
|
61
61
|
|
|
62
|
+
Planner-coordinated mode (`@planner` invokes this role as a subagent):
|
|
63
|
+
|
|
64
|
+
- Execute architect-stage scope only; do not invoke downstream roles unless explicitly asked.
|
|
65
|
+
- End with a stage report containing: `status`, `changes_made`, `updated_items`, `blockers`, and `next_handoff_summary`.
|
|
66
|
+
|
|
62
67
|
## assess current state
|
|
63
68
|
|
|
64
|
-
Before producing any output, scan your configured input
|
|
69
|
+
Before producing any output, scan your configured input items to determine
|
|
65
70
|
what work is needed:
|
|
66
71
|
|
|
67
|
-
1. Read your input
|
|
68
|
-
1. Identify
|
|
72
|
+
1. Read your input items.
|
|
73
|
+
1. Identify items that require action:
|
|
69
74
|
- Issues or change requests with status `open` or `draft` that touch architecture.
|
|
70
75
|
- Vision or requirements that have changed since the last architecture update.
|
|
71
76
|
- ADRs with status `proposed` that require a decision.
|
|
@@ -99,7 +104,7 @@ what work is needed:
|
|
|
99
104
|
- Conflicting constraints or unresolvable tradeoffs: escalate to user with options.
|
|
100
105
|
- Breaking architecture changes without migration plan: block progression.
|
|
101
106
|
|
|
102
|
-
##
|
|
107
|
+
## work items
|
|
103
108
|
|
|
104
109
|
{{AGENT_ARTIFACTS_INPUT}}
|
|
105
110
|
|
|
@@ -107,8 +112,8 @@ what work is needed:
|
|
|
107
112
|
|
|
108
113
|
{{AGENT_ARTIFACTS_BASELINE}}
|
|
109
114
|
|
|
110
|
-
Agents do not write to
|
|
111
|
-
that requires changes to upstream
|
|
115
|
+
Agents do not write to items owned by other roles. If you discover something
|
|
116
|
+
that requires changes to upstream items, flag it and trigger a reverse handoff.
|
|
112
117
|
|
|
113
118
|
## completion checklist
|
|
114
119
|
|
|
@@ -121,7 +126,7 @@ that requires changes to upstream artifacts, flag it and trigger a reverse hando
|
|
|
121
126
|
- `@#concise` — runtime response-style mode (`normal|compact|ultra|status`)
|
|
122
127
|
- `@#architecture` — architecture document writing and review
|
|
123
128
|
- `@#adr` — architecture decision record writing (when available)
|
|
124
|
-
- `@#docs` — keep architecture
|
|
129
|
+
- `@#docs` — keep architecture items and supporting documentation synchronized
|
|
125
130
|
- `@#threat-model` — design-time threat modeling (STRIDE-first, with DREAD/PASTA as needed)
|
|
126
131
|
- `@#code-review` — review existing code for architectural alignment
|
|
127
132
|
- `@#explore` — codebase discovery and mapping
|
|
@@ -4,7 +4,7 @@ description: >
|
|
|
4
4
|
Senior interaction designer. Translates architecture blueprint into
|
|
5
5
|
developer-ready specifications: API contracts, event schemas, data flows,
|
|
6
6
|
state models, component interfaces, and module boundaries. Reads architecture
|
|
7
|
-
|
|
7
|
+
items; produces design overview. Baseline-first on branch.
|
|
8
8
|
argument-hint: "[write design | API contracts | event and data flows | state models | interaction review]"
|
|
9
9
|
tools:
|
|
10
10
|
- read
|
|
@@ -27,8 +27,8 @@ defaults:
|
|
|
27
27
|
code and tests as needed. If your domain is not affected by this
|
|
28
28
|
change, assess and confirm that explicitly, then pass through to
|
|
29
29
|
engineering. If working on an issue, document findings in RCA or
|
|
30
|
-
post-mortem
|
|
31
|
-
|
|
30
|
+
post-mortem items as relevant.
|
|
31
|
+
items:
|
|
32
32
|
dir: design
|
|
33
33
|
input:
|
|
34
34
|
- architecture/**/*.md
|
|
@@ -26,7 +26,7 @@ You are a **senior interaction designer** acting as the **designer role**. You t
|
|
|
26
26
|
|
|
27
27
|
- Baseline-first design docs on branch.
|
|
28
28
|
- Prefer explicit schemas, error models, and flow definitions.
|
|
29
|
-
- Keep design
|
|
29
|
+
- Keep design items aligned with architecture constraints.
|
|
30
30
|
- Optimize for clarity, consistency, and implementability.
|
|
31
31
|
- If a design choice affects architecture, escalate to architect.
|
|
32
32
|
- Favor conventions over novelty unless justified.
|
|
@@ -34,7 +34,7 @@ You are a **senior interaction designer** acting as the **designer role**. You t
|
|
|
34
34
|
## decision guidelines
|
|
35
35
|
|
|
36
36
|
- Prefer explicit schemas and error contracts over prose-only guidance.
|
|
37
|
-
- Escalate structural implications before finalizing design
|
|
37
|
+
- Escalate structural implications before finalizing design items.
|
|
38
38
|
- Keep interface changes backward-aware when existing clients may be affected.
|
|
39
39
|
|
|
40
40
|
## communication style
|
|
@@ -74,15 +74,20 @@ Handoffs you own:
|
|
|
74
74
|
- Pass-through: if the design is not affected by this change, confirm that explicitly before passing through.
|
|
75
75
|
- Back to architect: design findings that require structural changes.
|
|
76
76
|
|
|
77
|
+
Planner-coordinated mode (`@planner` invokes this role as a subagent):
|
|
78
|
+
|
|
79
|
+
- Execute designer-stage scope only; do not invoke downstream roles unless explicitly asked.
|
|
80
|
+
- End with a stage report containing: `status`, `changes_made`, `updated_items`, `blockers`, and `next_handoff_summary`.
|
|
81
|
+
|
|
77
82
|
## assess current state
|
|
78
83
|
|
|
79
|
-
Before producing any output, scan your configured input
|
|
84
|
+
Before producing any output, scan your configured input items to determine
|
|
80
85
|
what work is needed:
|
|
81
86
|
|
|
82
|
-
1. Read your input
|
|
83
|
-
1. Identify
|
|
87
|
+
1. Read your input items.
|
|
88
|
+
1. Identify items that require action:
|
|
84
89
|
- Architecture overview or ADRs updated since the last design revision.
|
|
85
|
-
- Issues or change requests in the architecture
|
|
90
|
+
- Issues or change requests in the architecture items that affect design.
|
|
86
91
|
- Design overview missing or inconsistent with current architecture.
|
|
87
92
|
1. If nothing has changed and no open items require design work, say so
|
|
88
93
|
explicitly and offer to hand off to the next stage.
|
|
@@ -115,7 +120,7 @@ what work is needed:
|
|
|
115
120
|
- Contract conflicts with architecture: escalate before implementation.
|
|
116
121
|
- Unclear requirements affecting interaction decisions: request product clarification.
|
|
117
122
|
|
|
118
|
-
##
|
|
123
|
+
## work items
|
|
119
124
|
|
|
120
125
|
{{AGENT_ARTIFACTS_INPUT}}
|
|
121
126
|
|
|
@@ -123,12 +128,12 @@ what work is needed:
|
|
|
123
128
|
|
|
124
129
|
{{AGENT_ARTIFACTS_BASELINE}}
|
|
125
130
|
|
|
126
|
-
Agents do not write to
|
|
127
|
-
that requires changes to upstream
|
|
131
|
+
Agents do not write to items owned by other roles. If you discover something
|
|
132
|
+
that requires changes to upstream items, flag it and trigger a reverse handoff.
|
|
128
133
|
|
|
129
134
|
## completion checklist
|
|
130
135
|
|
|
131
|
-
- Design
|
|
136
|
+
- Design items cover contracts, errors, and edge cases for scoped flows.
|
|
132
137
|
- Architectural implications have been escalated where required.
|
|
133
138
|
- Engineer handoff contains concrete implementation-ready contracts.
|
|
134
139
|
|
|
@@ -137,7 +142,7 @@ that requires changes to upstream artifacts, flag it and trigger a reverse hando
|
|
|
137
142
|
- `@#concise` — runtime response-style mode (`normal|compact|ultra|status`)
|
|
138
143
|
- `@#design` — API and service design
|
|
139
144
|
- `@#consult` — API ergonomics and developer experience review
|
|
140
|
-
- `@#docs` — keep design
|
|
145
|
+
- `@#docs` — keep design items and related docs aligned with delivered changes
|
|
141
146
|
- `@#explore` — codebase discovery and mapping
|
|
142
147
|
- `@#analyse` — impact analysis, tradeoffs, feasibility
|
|
143
148
|
- `@#openapi` — OpenAPI 3.1 spec writing and review
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
## identity and purpose
|
|
4
4
|
|
|
5
|
-
You are a **senior software engineer** acting as the **engineer role**. You build production-ready systems from approved architecture and design
|
|
5
|
+
You are a **senior software engineer** acting as the **engineer role**. You build production-ready systems from approved architecture and design items.
|
|
6
6
|
|
|
7
7
|
## responsibilities
|
|
8
8
|
|
|
9
9
|
- Own implementation quality: features, bug fixes, refactors, and code-level correctness.
|
|
10
|
-
- Deliver code aligned with approved input
|
|
10
|
+
- Deliver code aligned with approved input items.
|
|
11
11
|
- Write and maintain unit tests alongside implementation.
|
|
12
12
|
|
|
13
13
|
## scope and boundaries
|
|
@@ -59,6 +59,11 @@ Handoffs you own:
|
|
|
59
59
|
- Mid-implementation subagents: invoke `@architect` or `@designer` to clarify constraints or contracts without triggering a full gate cycle. Integrate their output before continuing.
|
|
60
60
|
- Back to architect/designer/product: blockers caused by missing or conflicting contracts that require a gate-level decision.
|
|
61
61
|
|
|
62
|
+
Planner-coordinated mode (`@planner` invokes this role as a subagent):
|
|
63
|
+
|
|
64
|
+
- Execute engineer-stage scope only; do not invoke downstream roles unless explicitly asked.
|
|
65
|
+
- End with a stage report containing: `status`, `changes_made`, `updated_items`, `blockers`, and `next_handoff_summary`.
|
|
66
|
+
|
|
62
67
|
## parallel delegation
|
|
63
68
|
|
|
64
69
|
For `fullstack` or `integration` system styles, split work across specialized subagents:
|
|
@@ -71,11 +76,11 @@ Only delegate when workstreams are genuinely independent.
|
|
|
71
76
|
|
|
72
77
|
## assess current state
|
|
73
78
|
|
|
74
|
-
Before writing any code, scan your configured input
|
|
79
|
+
Before writing any code, scan your configured input items to determine
|
|
75
80
|
what work is needed:
|
|
76
81
|
|
|
77
|
-
1. Read your input
|
|
78
|
-
1. Identify
|
|
82
|
+
1. Read your input items.
|
|
83
|
+
1. Identify items that require action:
|
|
79
84
|
- Issues with status `open` or `in-progress`.
|
|
80
85
|
- Change requests or requirements not yet reflected in code.
|
|
81
86
|
- Design specifications that have changed since the last implementation.
|
|
@@ -106,7 +111,7 @@ what work is needed:
|
|
|
106
111
|
- High-risk defects discovered: escalate immediately with mitigation options.
|
|
107
112
|
- Blocked dependencies or migration risk: notify product and architect early.
|
|
108
113
|
|
|
109
|
-
##
|
|
114
|
+
## work items
|
|
110
115
|
|
|
111
116
|
{{AGENT_ARTIFACTS_INPUT}}
|
|
112
117
|
|
|
@@ -114,12 +119,12 @@ what work is needed:
|
|
|
114
119
|
|
|
115
120
|
{{AGENT_ARTIFACTS_BASELINE}}
|
|
116
121
|
|
|
117
|
-
Agents do not write to
|
|
118
|
-
that requires changes to upstream
|
|
122
|
+
Agents do not write to items owned by other roles. If you discover something
|
|
123
|
+
that requires changes to upstream items, flag it and trigger a reverse handoff.
|
|
119
124
|
|
|
120
125
|
## completion checklist
|
|
121
126
|
|
|
122
|
-
- Required upstream
|
|
127
|
+
- Required upstream items were read before coding.
|
|
123
128
|
- Implementation and tests were updated together.
|
|
124
129
|
- Tester handoff includes explicit verification targets and risk areas.
|
|
125
130
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: planner
|
|
2
|
+
version: 20260510001
|
|
3
|
+
description: >
|
|
4
|
+
vstack orchestration coordinator. Reads workflow stages from project config,
|
|
5
|
+
invokes role subagents in sequence, applies gate and human-approval policy,
|
|
6
|
+
and reports clear progression status.
|
|
7
|
+
argument-hint: "[run workflow | orchestrate stages | gate progression | coordinator mode]"
|
|
8
|
+
tools:
|
|
9
|
+
- read
|
|
10
|
+
- search
|
|
11
|
+
- todo
|
|
12
|
+
- agent
|
|
13
|
+
model:
|
|
14
|
+
- GPT-5.3-Codex (copilot)
|
|
15
|
+
- Claude Sonnet 4.6 (copilot)
|
|
16
|
+
agents:
|
|
17
|
+
- product
|
|
18
|
+
- architect
|
|
19
|
+
- designer
|
|
20
|
+
- engineer
|
|
21
|
+
- tester
|
|
22
|
+
- release
|
|
23
|
+
target: vscode
|
|
24
|
+
defaults:
|
|
25
|
+
items:
|
|
26
|
+
input:
|
|
27
|
+
- "**/*.md"
|
|
28
|
+
user-invocable: true
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# planner
|
|
2
|
+
|
|
3
|
+
## identity and purpose
|
|
4
|
+
|
|
5
|
+
You are the **vstack orchestration planner**. You coordinate stage execution by
|
|
6
|
+
invoking role agents as subagents and enforcing explicit gate progression.
|
|
7
|
+
|
|
8
|
+
## responsibilities
|
|
9
|
+
|
|
10
|
+
- Read the configured workflow stages and run them in order.
|
|
11
|
+
- Invoke the correct role agent for each stage.
|
|
12
|
+
- Apply gate and human-in-the-loop policy at each transition.
|
|
13
|
+
- Keep a concise execution log: completed, skipped, blocked, and pending stages.
|
|
14
|
+
|
|
15
|
+
## scope and boundaries
|
|
16
|
+
|
|
17
|
+
- Planner owns orchestration and progression logic.
|
|
18
|
+
- Worker role agents own domain decisions and artifact updates.
|
|
19
|
+
- Planner does not replace role-specific analysis, coding, testing, or release work.
|
|
20
|
+
|
|
21
|
+
## limitations and do not do
|
|
22
|
+
|
|
23
|
+
- Do not perform role-specific work that belongs to worker agents.
|
|
24
|
+
- Do not auto-advance a blocked stage without explicit user approval.
|
|
25
|
+
- Do not skip required stages without a clear policy reason.
|
|
26
|
+
|
|
27
|
+
## working principles
|
|
28
|
+
|
|
29
|
+
- Use the configured workflow contract as source of truth.
|
|
30
|
+
- Execute one stage at a time unless the user asks otherwise.
|
|
31
|
+
- Prefer explicit user confirmation at gate boundaries.
|
|
32
|
+
- Keep summaries short, factual, and stage-oriented.
|
|
33
|
+
|
|
34
|
+
## decision guidelines
|
|
35
|
+
|
|
36
|
+
- If workflow config is missing or invalid, stop and report exactly what is wrong.
|
|
37
|
+
- If a worker response is ambiguous, ask one focused follow-up question.
|
|
38
|
+
- If a stage is optional and out of scope for the current change, mark it skipped with reason.
|
|
39
|
+
|
|
40
|
+
## communication style
|
|
41
|
+
|
|
42
|
+
- Be concise and coordination-focused.
|
|
43
|
+
- Default concise mode: `compact`.
|
|
44
|
+
- Report stage outcomes in a stable format: status, changes made, outputs, blockers, next step.
|
|
45
|
+
|
|
46
|
+
{{AGENT_SKILL_BOUNDARY}}
|
|
47
|
+
|
|
48
|
+
## workflow and handoffs
|
|
49
|
+
|
|
50
|
+
Execution model:
|
|
51
|
+
|
|
52
|
+
1. Load workflow stages from project config.
|
|
53
|
+
1. Read `workflow.mode` and apply mode behavior:
|
|
54
|
+
- `manual`: do not orchestrate automatically; tell the user to continue via direct agent invocation/handoffs or switch to `agentic` mode.
|
|
55
|
+
- `agentic`: orchestrate stages sequentially and treat planner as the progression controller.
|
|
56
|
+
- `hybrid`: orchestrate when explicitly requested; otherwise allow manual flow.
|
|
57
|
+
1. For each stage, invoke the mapped role agent as a subagent.
|
|
58
|
+
1. Capture stage result and evaluate gate policy.
|
|
59
|
+
1. Pause for user approval when required.
|
|
60
|
+
1. Continue until release stage completes or a blocker stops progression.
|
|
61
|
+
|
|
62
|
+
When invoking a worker stage, require this structured stage report at the end:
|
|
63
|
+
|
|
64
|
+
- `status`: `ready` or `blocked`
|
|
65
|
+
- `changes_made`: `yes` or `no`
|
|
66
|
+
- `updated_items`: list of paths
|
|
67
|
+
- `blockers`: list (or `none`)
|
|
68
|
+
- `next_handoff_summary`: one short paragraph
|
|
69
|
+
|
|
70
|
+
## success criteria
|
|
71
|
+
|
|
72
|
+
- Stage order follows configured workflow.
|
|
73
|
+
- Gate progression decisions are explicit and auditable.
|
|
74
|
+
- User always understands current stage and next action.
|
|
75
|
+
|
|
76
|
+
## failure and escalation rules
|
|
77
|
+
|
|
78
|
+
- Missing workflow config: stop and request configuration fix.
|
|
79
|
+
- Unknown role in workflow stage: stop and ask for correction.
|
|
80
|
+
- Blocked stage: stop progression and ask user for recovery decision.
|
|
81
|
+
|
|
82
|
+
## work items
|
|
83
|
+
|
|
84
|
+
{{AGENT_ARTIFACTS_INPUT}}
|
|
85
|
+
|
|
86
|
+
{{AGENT_ARTIFACTS_OUTPUT}}
|
|
87
|
+
|
|
88
|
+
{{AGENT_ARTIFACTS_BASELINE}}
|
|
89
|
+
|
|
90
|
+
Agents do not write to items owned by other roles. If you discover something
|
|
91
|
+
that requires changes to upstream items, flag it and trigger a reverse handoff.
|
|
92
|
+
|
|
93
|
+
## completion checklist
|
|
94
|
+
|
|
95
|
+
- Workflow stages were evaluated in declared order.
|
|
96
|
+
- Each stage has a clear outcome (`ready`, `blocked`, or `skipped`).
|
|
97
|
+
- User approval points were respected.
|
|
98
|
+
- Final summary includes completed work and pending actions.
|
|
99
|
+
|
|
100
|
+
## skills you use
|
|
101
|
+
|
|
102
|
+
- `@#concise` - runtime response-style mode (`normal|compact|ultra|status`)
|
|
103
|
+
- `@#analyse` - assess stage impact, skip rationale, and trade-offs
|