vstack 2.2.0__tar.gz → 3.1.1__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-2.2.0 → vstack-3.1.1}/PKG-INFO +100 -13
- {vstack-2.2.0 → vstack-3.1.1}/README-pypi.md +94 -11
- {vstack-2.2.0 → vstack-3.1.1}/pyproject.toml +19 -2
- vstack-3.1.1/src/vstack/_migrations/README.md +44 -0
- vstack-3.1.1/src/vstack/_migrations/v2_to_v3.yaml +39 -0
- vstack-3.1.1/src/vstack/_templates/agents/architect/artifacts/adr/NNN-template.md +27 -0
- vstack-3.1.1/src/vstack/_templates/agents/architect/artifacts/overview.md +41 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/agents/architect/config.yaml +20 -11
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/agents/architect/template.md +26 -8
- vstack-3.1.1/src/vstack/_templates/agents/designer/artifacts/overview.md +39 -0
- vstack-3.1.1/src/vstack/_templates/agents/designer/config.yaml +49 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/agents/designer/template.md +31 -11
- vstack-3.1.1/src/vstack/_templates/agents/engineer/artifacts/issues/postmortem.md +42 -0
- vstack-3.1.1/src/vstack/_templates/agents/engineer/artifacts/issues/rca.md +39 -0
- vstack-3.1.1/src/vstack/_templates/agents/engineer/config.yaml +49 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/agents/engineer/template.md +32 -10
- vstack-3.1.1/src/vstack/_templates/agents/product/artifacts/changes/change-request.md +42 -0
- vstack-3.1.1/src/vstack/_templates/agents/product/artifacts/issues/issue.md +38 -0
- vstack-3.1.1/src/vstack/_templates/agents/product/artifacts/requirements.md +42 -0
- vstack-3.1.1/src/vstack/_templates/agents/product/artifacts/roadmap.md +73 -0
- vstack-3.1.1/src/vstack/_templates/agents/product/artifacts/vision.md +38 -0
- vstack-3.1.1/src/vstack/_templates/agents/product/config.yaml +48 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/agents/product/template.md +16 -14
- vstack-3.1.1/src/vstack/_templates/agents/release/artifacts/release-summary.md +48 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/agents/release/config.yaml +14 -11
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/agents/release/template.md +26 -25
- vstack-3.1.1/src/vstack/_templates/agents/tester/artifacts/performance-baseline.md +25 -0
- vstack-3.1.1/src/vstack/_templates/agents/tester/artifacts/security-report.md +26 -0
- vstack-3.1.1/src/vstack/_templates/agents/tester/artifacts/test-report.md +32 -0
- vstack-3.1.1/src/vstack/_templates/agents/tester/config.yaml +42 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/agents/tester/template.md +28 -12
- vstack-3.1.1/src/vstack/_templates/project/.vstack/config.yaml +96 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/adr/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/adr/template.md +1 -1
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/analyse/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/architecture/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/architecture/template.md +4 -5
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/aws-cli/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/cicd/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/cicd/template.md +1 -1
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/cloudformation/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/code-review/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/codeql/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/concise/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/consult/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/container/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/conventional-commit/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/debug/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/dependabot/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/dependency/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/design/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/design/template.md +3 -4
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/docs/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/docs/template.md +1 -2
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/explore/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/gdpr/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/gh-issues/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/gh-issues/template.md +4 -1
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/gh-release/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/guardrails/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/helm/config.yaml +1 -0
- vstack-3.1.1/src/vstack/_templates/skills/incident/config.yaml +18 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/incident/template.md +15 -74
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/inspect/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/inspect/template.md +3 -4
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/k8s/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/migrate/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/onboard/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/onboard/template.md +1 -1
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/openapi/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/performance/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/performance/template.md +2 -3
- vstack-3.1.1/src/vstack/_templates/skills/postmortem/config.yaml +17 -0
- vstack-3.1.1/src/vstack/_templates/skills/postmortem/template.md +151 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/pr/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/rancher/config.yaml +1 -0
- vstack-3.1.1/src/vstack/_templates/skills/rca/config.yaml +18 -0
- vstack-3.1.1/src/vstack/_templates/skills/rca/template.md +174 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/refactor/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/release-notes/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/release-notes/template.md +14 -3
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/requirements/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/requirements/template.md +1 -2
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/secret-scan/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/security/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/security/template.md +2 -3
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/terraform/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/terragrunt/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/threat-model/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/threat-model/template.md +5 -5
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/verify/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/verify/template.md +2 -3
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/vision/config.yaml +1 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/vision/template.md +1 -2
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/agents/config.py +1 -1
- vstack-3.1.1/src/vstack/agents/generator.py +355 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/artifacts/generator.py +14 -2
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/cli/base.py +6 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/cli/catalog.py +23 -1
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/cli/constants.py +2 -0
- vstack-2.2.0/src/vstack/cli/install.py → vstack-3.1.1/src/vstack/cli/init.py +93 -32
- vstack-3.1.1/src/vstack/cli/install.py +151 -0
- vstack-3.1.1/src/vstack/cli/interface.py +277 -0
- vstack-3.1.1/src/vstack/cli/migrate.py +232 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/cli/parser.py +78 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/cli/service.py +45 -6
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/cli/status.py +1 -1
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/cli/uninstall.py +4 -8
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/constants.py +7 -0
- vstack-3.1.1/src/vstack/frontmatter/parser.py +98 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/frontmatter/serializer.py +34 -3
- vstack-3.1.1/src/vstack/manifest/__init__.py +71 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/manifest/store.py +35 -40
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/skills/config.py +2 -0
- vstack-3.1.1/src/vstack/utils.py +20 -0
- vstack-2.2.0/src/vstack/_templates/agents/designer/config.yaml +0 -36
- vstack-2.2.0/src/vstack/_templates/agents/engineer/config.yaml +0 -36
- vstack-2.2.0/src/vstack/_templates/agents/product/config.yaml +0 -37
- vstack-2.2.0/src/vstack/_templates/agents/tester/config.yaml +0 -41
- vstack-2.2.0/src/vstack/_templates/skills/incident/config.yaml +0 -17
- vstack-2.2.0/src/vstack/agents/generator.py +0 -20
- vstack-2.2.0/src/vstack/cli/helpers.py +0 -8
- vstack-2.2.0/src/vstack/cli/interface.py +0 -93
- vstack-2.2.0/src/vstack/cli/registry.py +0 -15
- vstack-2.2.0/src/vstack/frontmatter/parser.py +0 -272
- vstack-2.2.0/src/vstack/manifest/__init__.py +0 -25
- {vstack-2.2.0 → vstack-3.1.1}/LICENSE +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/__init__.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/__main__.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/agents/_partials/agent-skill-boundary.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/git/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/git/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/helm/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/helm/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/java/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/java/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/k8s/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/k8s/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/markdown/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/markdown/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/python/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/python/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/rancher/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/rancher/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/security/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/security/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/terraform/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/terraform/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/terragrunt/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/terragrunt/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/testing/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/testing/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/typescript/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/instructions/typescript/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/prompts/api-design-review/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/prompts/api-design-review/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/prompts/architecture-risk/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/prompts/architecture-risk/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/prompts/code-review/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/prompts/code-review/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/prompts/dependency-audit/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/prompts/dependency-audit/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/prompts/incident-timeline/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/prompts/incident-timeline/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/prompts/migration-safety/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/prompts/migration-safety/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/prompts/release-readiness/config.yaml +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/prompts/release-readiness/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/_partials/base-branch.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/_partials/observability-checklist.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/_partials/run-tests.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/_partials/skill-context.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/analyse/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/aws-cli/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/cloudformation/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/code-review/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/codeql/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/concise/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/consult/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/container/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/conventional-commit/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/debug/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/dependabot/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/dependency/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/explore/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/gdpr/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/gh-release/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/guardrails/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/helm/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/k8s/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/migrate/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/openapi/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/pr/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/rancher/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/refactor/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/secret-scan/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/terraform/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/_templates/skills/terragrunt/template.md +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/agents/__init__.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/agents/constants.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/artifacts/__init__.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/artifacts/config.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/artifacts/constants.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/artifacts/models.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/artifacts/protocol.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/cli/__init__.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/cli/manifest.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/cli/report.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/cli/validate.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/cli/verify.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/frontmatter/__init__.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/frontmatter/schema.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/instructions/__init__.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/instructions/config.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/instructions/constants.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/instructions/generator.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/main.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/models.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/prompts/__init__.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/prompts/config.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/prompts/constants.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/prompts/generator.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/skills/__init__.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/skills/constants.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/skills/generator.py +0 -0
- {vstack-2.2.0 → vstack-3.1.1}/src/vstack/skills/models.py +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vstack
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.1.1
|
|
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
|
|
7
|
-
Keywords: github-copilot,vscode,ai-workflows,developer-tools,devx,engineering-workflow,copilot-agent-mode,backend,microservices,api,workflow-automation,release-engineering
|
|
7
|
+
Keywords: github-copilot,vscode,ai-workflows,developer-tools,devx,engineering-workflow,copilot-agent-mode,backend,microservices,api,workflow-automation,release-engineering,agentic-workflow,agentic-ai,ai-agent,llm,llm-agents,prompt-engineering,code-generation,scaffolding,cli,agents
|
|
8
8
|
Requires-Python: >=3.11,<3.15
|
|
9
|
+
Classifier: Development Status :: 4 - Beta
|
|
9
10
|
Classifier: License :: OSI Approved :: MIT License
|
|
10
11
|
Classifier: Programming Language :: Python :: 3
|
|
11
12
|
Classifier: Programming Language :: Python :: 3.11
|
|
@@ -15,7 +16,10 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
15
16
|
Classifier: Environment :: Console
|
|
16
17
|
Classifier: Intended Audience :: Developers
|
|
17
18
|
Classifier: Topic :: Software Development :: Build Tools
|
|
19
|
+
Classifier: Topic :: Software Development :: Code Generators
|
|
18
20
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
|
+
Classifier: Topic :: Utilities
|
|
22
|
+
Requires-Dist: pyyaml (>=6.0)
|
|
19
23
|
Project-URL: Changelog, https://github.com/eschaar/vstack/blob/main/CHANGELOG.md
|
|
20
24
|
Project-URL: Documentation, https://github.com/eschaar/vstack/blob/main/README.md
|
|
21
25
|
Project-URL: Discussions, https://github.com/eschaar/vstack/discussions
|
|
@@ -33,7 +37,7 @@ Description-Content-Type: text/markdown
|
|
|
33
37
|
[](https://github.com/eschaar/vstack/blob/main/pyproject.toml)
|
|
34
38
|
[](https://github.com/eschaar/vstack/actions/workflows/verify.yml)
|
|
35
39
|
[](https://github.com/eschaar/vstack/actions/workflows/security.yml)
|
|
36
|
-
[](https://github.com/eschaar/vstack/blob/main/pyproject.toml)
|
|
37
41
|
[](https://github.com/eschaar/vstack/blob/main/LICENSE)
|
|
38
42
|
[](https://github.com/eschaar/vstack/discussions)
|
|
39
43
|
|
|
@@ -54,7 +58,7 @@ It provides a fixed role model for end-to-end software delivery: `product`, `arc
|
|
|
54
58
|
- Fixed role model: `product`, `architect`, `designer`, `engineer`, `tester`, `release`
|
|
55
59
|
- Template-driven install model from `src/vstack/_templates/`
|
|
56
60
|
- Backend-first verification, security, and release discipline
|
|
57
|
-
-
|
|
61
|
+
- One runtime dependency: PyYAML
|
|
58
62
|
|
|
59
63
|
## Building blocks
|
|
60
64
|
|
|
@@ -80,16 +84,23 @@ VS Code command palette (`Chat: Run Prompt File`) or the Copilot Chat attach but
|
|
|
80
84
|
| `migration-safety` | Review DB migration safety, rollback, and zero-downtime |
|
|
81
85
|
| `release-readiness` | Evaluate release readiness from reports and open blockers |
|
|
82
86
|
|
|
83
|
-
##
|
|
87
|
+
## Quickstart — fresh install
|
|
84
88
|
|
|
85
89
|
Install with `pipx`, then install vstack artifacts into your repository:
|
|
86
90
|
|
|
87
91
|
```bash
|
|
92
|
+
# Install the CLI once, globally
|
|
88
93
|
pipx install vstack
|
|
89
|
-
|
|
90
|
-
|
|
94
|
+
|
|
95
|
+
# Move to your repository root and run install — no --target needed
|
|
96
|
+
cd /path/to/your/project
|
|
97
|
+
vstack install # seeds .vstack/config.yaml and generates .github/ in the current directory
|
|
98
|
+
vstack validate # confirm no errors
|
|
91
99
|
```
|
|
92
100
|
|
|
101
|
+
When you omit `--target`, vstack uses the current working directory. The equivalent
|
|
102
|
+
explicit form is `vstack install --target /path/to/your/project`.
|
|
103
|
+
|
|
93
104
|
Run a first task in Copilot Agent Mode:
|
|
94
105
|
|
|
95
106
|
```text
|
|
@@ -101,6 +112,57 @@ Expected result:
|
|
|
101
112
|
- `vstack validate` reports no unresolved template tokens
|
|
102
113
|
- Agent command returns a concrete verification summary for your repository
|
|
103
114
|
|
|
115
|
+
## Quick upgrade
|
|
116
|
+
|
|
117
|
+
### Patch or minor version (e.g. v3.1 → v3.2, same major)
|
|
118
|
+
|
|
119
|
+
Docs paths never change within a major version. Only `.github/` artifacts are updated.
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
pipx upgrade vstack
|
|
123
|
+
|
|
124
|
+
cd /path/to/your/project
|
|
125
|
+
vstack init # idempotent — safe to run in CI
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Major version (e.g. v2 → v3)
|
|
129
|
+
|
|
130
|
+
Docs paths may change on a major version bump. Run `vstack migrate` before `vstack init`.
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
pipx upgrade vstack
|
|
134
|
+
|
|
135
|
+
cd /path/to/your/project
|
|
136
|
+
vstack migrate # moves docs files to their new paths (auto-detects installed version)
|
|
137
|
+
vstack init # regenerates .github/ artifacts
|
|
138
|
+
|
|
139
|
+
# Only if you see "Legacy manifest schema detected" in the output above:
|
|
140
|
+
vstack manifest upgrade
|
|
141
|
+
vstack init
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Preview the docs moves without touching any files:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
vstack migrate --dry-run
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
For upgrades spanning multiple major versions (e.g. v1 → v3), `vstack migrate` chains
|
|
151
|
+
all intermediate steps automatically. Use `--from` and `--to` to specify the range
|
|
152
|
+
explicitly if auto-detection from the manifest fails:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
vstack migrate --from 1 --to 3
|
|
156
|
+
vstack init
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Force reinstall (overwrite local edits)
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
vstack install --force # overwrite all managed artifacts
|
|
163
|
+
vstack install --force-name agent/engineer # overwrite one specific artifact
|
|
164
|
+
```
|
|
165
|
+
|
|
104
166
|
## Why this helps
|
|
105
167
|
|
|
106
168
|
- Consistent role boundaries for planning, implementation, validation, and release
|
|
@@ -112,10 +174,17 @@ Expected result:
|
|
|
112
174
|
```bash
|
|
113
175
|
vstack --version
|
|
114
176
|
vstack validate
|
|
177
|
+
|
|
178
|
+
# Run from your repository root (--target defaults to the current directory)
|
|
179
|
+
vstack install
|
|
180
|
+
vstack init
|
|
181
|
+
vstack migrate
|
|
182
|
+
vstack manifest verify
|
|
183
|
+
vstack manifest status
|
|
184
|
+
vstack manifest upgrade
|
|
185
|
+
|
|
186
|
+
# Or specify a path explicitly
|
|
115
187
|
vstack install --target /path/to/your/project
|
|
116
|
-
vstack manifest verify --target /path/to/your/project
|
|
117
|
-
vstack manifest status --target /path/to/your/project
|
|
118
|
-
vstack manifest upgrade --target /path/to/your/project
|
|
119
188
|
```
|
|
120
189
|
|
|
121
190
|
## Common usage patterns
|
|
@@ -123,6 +192,11 @@ vstack manifest upgrade --target /path/to/your/project
|
|
|
123
192
|
Repository-scoped install (recommended for teams):
|
|
124
193
|
|
|
125
194
|
```bash
|
|
195
|
+
# Move to your repository root and install there
|
|
196
|
+
cd /path/to/your/project
|
|
197
|
+
vstack install
|
|
198
|
+
|
|
199
|
+
# Or specify a path explicitly from any directory
|
|
126
200
|
vstack install --target /path/to/your/project
|
|
127
201
|
```
|
|
128
202
|
|
|
@@ -132,12 +206,25 @@ Profile-wide install (optional defaults for all projects):
|
|
|
132
206
|
vstack install --global
|
|
133
207
|
```
|
|
134
208
|
|
|
135
|
-
|
|
209
|
+
`vstack install` is the first-run command: it seeds `.vstack/config.yaml` in your project (never overwrites), then generates `.github/` artifacts from templates. `vstack init` re-runs generation idempotently — safe to use in CI after upgrading vstack.
|
|
210
|
+
|
|
211
|
+
By default, `vstack install` preserves existing unmanaged files and local edits to tracked files by comparing the current file contents with the SHA-256 checksum recorded in `.vstack/vstack.json`. Use `--adopt-name <name>` to start tracking one existing unmanaged file without overwriting it. `vstack uninstall` also preserves locally modified tracked files unless you explicitly pass `--force` or `--force-name <name>`. Use `vstack manifest status --target ...` (or `vstack status --target ...`) to see what still matches the manifest. If a legacy manifest schema is detected, run `vstack manifest upgrade --target ...` first.
|
|
212
|
+
|
|
213
|
+
To skip artifact types or individual artifacts you do not need, edit `.vstack/config.yaml`:
|
|
214
|
+
|
|
215
|
+
```yaml
|
|
216
|
+
exclude:
|
|
217
|
+
skills:
|
|
218
|
+
- terraform
|
|
219
|
+
- helm
|
|
220
|
+
instructions: all # skip the entire type
|
|
221
|
+
```
|
|
136
222
|
|
|
137
223
|
If you already have agents, skills, or other files in `.github/`, run a dry-run first to see what would be preserved before committing:
|
|
138
224
|
|
|
139
225
|
```bash
|
|
140
|
-
|
|
226
|
+
# Run from your repository root
|
|
227
|
+
vstack install --dry-run
|
|
141
228
|
```
|
|
142
229
|
|
|
143
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.
|
|
@@ -145,7 +232,7 @@ The summary lists preserved files as `type/name` selectors (e.g. `agent/engineer
|
|
|
145
232
|
## Fast troubleshooting
|
|
146
233
|
|
|
147
234
|
- Command not found after install: ensure your `pipx` binary path is in `PATH`
|
|
148
|
-
- Validation error: rerun `vstack install
|
|
235
|
+
- Validation error: rerun `vstack install` from your repository root and then `vstack validate`
|
|
149
236
|
- Agent results look generic: explicitly invoke a role (for example `@tester`) before a skill
|
|
150
237
|
|
|
151
238
|
## Full documentation
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
[](https://github.com/eschaar/vstack/blob/main/pyproject.toml)
|
|
7
7
|
[](https://github.com/eschaar/vstack/actions/workflows/verify.yml)
|
|
8
8
|
[](https://github.com/eschaar/vstack/actions/workflows/security.yml)
|
|
9
|
-
[](https://github.com/eschaar/vstack/blob/main/pyproject.toml)
|
|
10
10
|
[](https://github.com/eschaar/vstack/blob/main/LICENSE)
|
|
11
11
|
[](https://github.com/eschaar/vstack/discussions)
|
|
12
12
|
|
|
@@ -27,7 +27,7 @@ It provides a fixed role model for end-to-end software delivery: `product`, `arc
|
|
|
27
27
|
- Fixed role model: `product`, `architect`, `designer`, `engineer`, `tester`, `release`
|
|
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
|
|
31
31
|
|
|
32
32
|
## Building blocks
|
|
33
33
|
|
|
@@ -53,16 +53,23 @@ VS Code command palette (`Chat: Run Prompt File`) or the Copilot Chat attach but
|
|
|
53
53
|
| `migration-safety` | Review DB migration safety, rollback, and zero-downtime |
|
|
54
54
|
| `release-readiness` | Evaluate release readiness from reports and open blockers |
|
|
55
55
|
|
|
56
|
-
##
|
|
56
|
+
## Quickstart — fresh install
|
|
57
57
|
|
|
58
58
|
Install with `pipx`, then install vstack artifacts into your repository:
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
|
+
# Install the CLI once, globally
|
|
61
62
|
pipx install vstack
|
|
62
|
-
|
|
63
|
-
|
|
63
|
+
|
|
64
|
+
# Move to your repository root and run install — no --target needed
|
|
65
|
+
cd /path/to/your/project
|
|
66
|
+
vstack install # seeds .vstack/config.yaml and generates .github/ in the current directory
|
|
67
|
+
vstack validate # confirm no errors
|
|
64
68
|
```
|
|
65
69
|
|
|
70
|
+
When you omit `--target`, vstack uses the current working directory. The equivalent
|
|
71
|
+
explicit form is `vstack install --target /path/to/your/project`.
|
|
72
|
+
|
|
66
73
|
Run a first task in Copilot Agent Mode:
|
|
67
74
|
|
|
68
75
|
```text
|
|
@@ -74,6 +81,57 @@ Expected result:
|
|
|
74
81
|
- `vstack validate` reports no unresolved template tokens
|
|
75
82
|
- Agent command returns a concrete verification summary for your repository
|
|
76
83
|
|
|
84
|
+
## Quick upgrade
|
|
85
|
+
|
|
86
|
+
### Patch or minor version (e.g. v3.1 → v3.2, same major)
|
|
87
|
+
|
|
88
|
+
Docs paths never change within a major version. Only `.github/` artifacts are updated.
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
pipx upgrade vstack
|
|
92
|
+
|
|
93
|
+
cd /path/to/your/project
|
|
94
|
+
vstack init # idempotent — safe to run in CI
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Major version (e.g. v2 → v3)
|
|
98
|
+
|
|
99
|
+
Docs paths may change on a major version bump. Run `vstack migrate` before `vstack init`.
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
pipx upgrade vstack
|
|
103
|
+
|
|
104
|
+
cd /path/to/your/project
|
|
105
|
+
vstack migrate # moves docs files to their new paths (auto-detects installed version)
|
|
106
|
+
vstack init # regenerates .github/ artifacts
|
|
107
|
+
|
|
108
|
+
# Only if you see "Legacy manifest schema detected" in the output above:
|
|
109
|
+
vstack manifest upgrade
|
|
110
|
+
vstack init
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Preview the docs moves without touching any files:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
vstack migrate --dry-run
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
For upgrades spanning multiple major versions (e.g. v1 → v3), `vstack migrate` chains
|
|
120
|
+
all intermediate steps automatically. Use `--from` and `--to` to specify the range
|
|
121
|
+
explicitly if auto-detection from the manifest fails:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
vstack migrate --from 1 --to 3
|
|
125
|
+
vstack init
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Force reinstall (overwrite local edits)
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
vstack install --force # overwrite all managed artifacts
|
|
132
|
+
vstack install --force-name agent/engineer # overwrite one specific artifact
|
|
133
|
+
```
|
|
134
|
+
|
|
77
135
|
## Why this helps
|
|
78
136
|
|
|
79
137
|
- Consistent role boundaries for planning, implementation, validation, and release
|
|
@@ -85,10 +143,17 @@ Expected result:
|
|
|
85
143
|
```bash
|
|
86
144
|
vstack --version
|
|
87
145
|
vstack validate
|
|
146
|
+
|
|
147
|
+
# Run from your repository root (--target defaults to the current directory)
|
|
148
|
+
vstack install
|
|
149
|
+
vstack init
|
|
150
|
+
vstack migrate
|
|
151
|
+
vstack manifest verify
|
|
152
|
+
vstack manifest status
|
|
153
|
+
vstack manifest upgrade
|
|
154
|
+
|
|
155
|
+
# Or specify a path explicitly
|
|
88
156
|
vstack install --target /path/to/your/project
|
|
89
|
-
vstack manifest verify --target /path/to/your/project
|
|
90
|
-
vstack manifest status --target /path/to/your/project
|
|
91
|
-
vstack manifest upgrade --target /path/to/your/project
|
|
92
157
|
```
|
|
93
158
|
|
|
94
159
|
## Common usage patterns
|
|
@@ -96,6 +161,11 @@ vstack manifest upgrade --target /path/to/your/project
|
|
|
96
161
|
Repository-scoped install (recommended for teams):
|
|
97
162
|
|
|
98
163
|
```bash
|
|
164
|
+
# Move to your repository root and install there
|
|
165
|
+
cd /path/to/your/project
|
|
166
|
+
vstack install
|
|
167
|
+
|
|
168
|
+
# Or specify a path explicitly from any directory
|
|
99
169
|
vstack install --target /path/to/your/project
|
|
100
170
|
```
|
|
101
171
|
|
|
@@ -105,12 +175,25 @@ Profile-wide install (optional defaults for all projects):
|
|
|
105
175
|
vstack install --global
|
|
106
176
|
```
|
|
107
177
|
|
|
108
|
-
|
|
178
|
+
`vstack install` is the first-run command: it seeds `.vstack/config.yaml` in your project (never overwrites), then generates `.github/` artifacts from templates. `vstack init` re-runs generation idempotently — safe to use in CI after upgrading vstack.
|
|
179
|
+
|
|
180
|
+
By default, `vstack install` preserves existing unmanaged files and local edits to tracked files by comparing the current file contents with the SHA-256 checksum recorded in `.vstack/vstack.json`. Use `--adopt-name <name>` to start tracking one existing unmanaged file without overwriting it. `vstack uninstall` also preserves locally modified tracked files unless you explicitly pass `--force` or `--force-name <name>`. Use `vstack manifest status --target ...` (or `vstack status --target ...`) to see what still matches the manifest. If a legacy manifest schema is detected, run `vstack manifest upgrade --target ...` first.
|
|
181
|
+
|
|
182
|
+
To skip artifact types or individual artifacts you do not need, edit `.vstack/config.yaml`:
|
|
183
|
+
|
|
184
|
+
```yaml
|
|
185
|
+
exclude:
|
|
186
|
+
skills:
|
|
187
|
+
- terraform
|
|
188
|
+
- helm
|
|
189
|
+
instructions: all # skip the entire type
|
|
190
|
+
```
|
|
109
191
|
|
|
110
192
|
If you already have agents, skills, or other files in `.github/`, run a dry-run first to see what would be preserved before committing:
|
|
111
193
|
|
|
112
194
|
```bash
|
|
113
|
-
|
|
195
|
+
# Run from your repository root
|
|
196
|
+
vstack install --dry-run
|
|
114
197
|
```
|
|
115
198
|
|
|
116
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.
|
|
@@ -118,7 +201,7 @@ The summary lists preserved files as `type/name` selectors (e.g. `agent/engineer
|
|
|
118
201
|
## Fast troubleshooting
|
|
119
202
|
|
|
120
203
|
- Command not found after install: ensure your `pipx` binary path is in `PATH`
|
|
121
|
-
- Validation error: rerun `vstack install
|
|
204
|
+
- Validation error: rerun `vstack install` from your repository root and then `vstack validate`
|
|
122
205
|
- Agent results look generic: explicitly invoke a role (for example `@tester`) before a skill
|
|
123
206
|
|
|
124
207
|
## Full documentation
|
|
@@ -5,7 +5,7 @@ description = "VS Code-native AI engineering workflow system for microservices,
|
|
|
5
5
|
license = "MIT"
|
|
6
6
|
readme = "README-pypi.md"
|
|
7
7
|
requires-python = ">=3.11,<3.15"
|
|
8
|
-
dependencies = []
|
|
8
|
+
dependencies = ["pyyaml>=6.0"]
|
|
9
9
|
keywords = [
|
|
10
10
|
"github-copilot",
|
|
11
11
|
"vscode",
|
|
@@ -19,8 +19,19 @@ keywords = [
|
|
|
19
19
|
"api",
|
|
20
20
|
"workflow-automation",
|
|
21
21
|
"release-engineering",
|
|
22
|
+
"agentic-workflow",
|
|
23
|
+
"agentic-ai",
|
|
24
|
+
"ai-agent",
|
|
25
|
+
"llm",
|
|
26
|
+
"llm-agents",
|
|
27
|
+
"prompt-engineering",
|
|
28
|
+
"code-generation",
|
|
29
|
+
"scaffolding",
|
|
30
|
+
"cli",
|
|
31
|
+
"agents",
|
|
22
32
|
]
|
|
23
33
|
classifiers = [
|
|
34
|
+
"Development Status :: 4 - Beta",
|
|
24
35
|
"License :: OSI Approved :: MIT License",
|
|
25
36
|
"Programming Language :: Python :: 3",
|
|
26
37
|
"Programming Language :: Python :: 3.11",
|
|
@@ -30,9 +41,11 @@ classifiers = [
|
|
|
30
41
|
"Environment :: Console",
|
|
31
42
|
"Intended Audience :: Developers",
|
|
32
43
|
"Topic :: Software Development :: Build Tools",
|
|
44
|
+
"Topic :: Software Development :: Code Generators",
|
|
33
45
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
46
|
+
"Topic :: Utilities",
|
|
34
47
|
]
|
|
35
|
-
version = "
|
|
48
|
+
version = "3.1.1"
|
|
36
49
|
|
|
37
50
|
[project.urls]
|
|
38
51
|
Homepage = "https://github.com/eschaar/vstack"
|
|
@@ -55,6 +68,7 @@ vstack = "vstack:main"
|
|
|
55
68
|
packages = [{include = "vstack", from = "src"}]
|
|
56
69
|
include = [
|
|
57
70
|
{ path = "src/vstack/_templates", format = ["sdist", "wheel"] },
|
|
71
|
+
{ path = "src/vstack/_migrations", format = ["sdist", "wheel"] },
|
|
58
72
|
]
|
|
59
73
|
# Keep the placeholder version last because the plugin may remove/re-add it in
|
|
60
74
|
# PEP 621 mode, which otherwise causes noisy key reordering.
|
|
@@ -69,6 +83,7 @@ ruff = ">=0.15.12"
|
|
|
69
83
|
mypy = ">=1.20.2"
|
|
70
84
|
pre-commit = ">=4.6.0"
|
|
71
85
|
tox = ">=4.15"
|
|
86
|
+
types-PyYAML = ">=6.0"
|
|
72
87
|
|
|
73
88
|
|
|
74
89
|
# ---------------------------------------------------------------------------
|
|
@@ -163,6 +178,7 @@ package = skip
|
|
|
163
178
|
deps =
|
|
164
179
|
pytest>=9.0
|
|
165
180
|
pytest-cov>=6.0
|
|
181
|
+
pyyaml>=6.0
|
|
166
182
|
setenv =
|
|
167
183
|
PYTHONPATH = {tox_root}/src
|
|
168
184
|
commands =
|
|
@@ -181,6 +197,7 @@ description = Run mypy type checks
|
|
|
181
197
|
package = skip
|
|
182
198
|
deps =
|
|
183
199
|
mypy>=1.20
|
|
200
|
+
types-PyYAML>=6.0
|
|
184
201
|
commands =
|
|
185
202
|
mypy src tests
|
|
186
203
|
"""
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# vstack migration records
|
|
2
|
+
|
|
3
|
+
This directory contains machine-readable migration records for `docs/` artifact path
|
|
4
|
+
changes across major vstack version boundaries.
|
|
5
|
+
|
|
6
|
+
Each file covers one major version transition and is named `v{M}_to_v{N}.yaml` where
|
|
7
|
+
`M` is the source major version and `N` is the target major version.
|
|
8
|
+
|
|
9
|
+
These files are read by `vstack migrate` to relocate agent-owned docs files when their
|
|
10
|
+
paths change between major versions.
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
vstack migrate [--target <dir>] [--from <major>] [--to <major>] [--dry-run]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Run from the project root (or pass `--target`) after upgrading vstack to a new major
|
|
19
|
+
version. The command chains all necessary migration steps between the installed major
|
|
20
|
+
and the current package major.
|
|
21
|
+
|
|
22
|
+
| Flag | Description |
|
|
23
|
+
| ---------------- | --------------------------------------------------------------- |
|
|
24
|
+
| `--target <dir>` | Project root to migrate (default: current directory) |
|
|
25
|
+
| `--from <major>` | Source major version (default: read from `.vstack/vstack.json`) |
|
|
26
|
+
| `--to <major>` | Target major version (default: current vstack package major) |
|
|
27
|
+
| `--dry-run` | Print moves without touching the filesystem |
|
|
28
|
+
|
|
29
|
+
`vstack migrate` only moves files that exist at the old path; absent files are silently
|
|
30
|
+
skipped. It reads `artifacts.root` from `.vstack/config.yaml` and adjusts destination
|
|
31
|
+
paths when the project uses a custom docs root.
|
|
32
|
+
|
|
33
|
+
## Schema
|
|
34
|
+
|
|
35
|
+
```yaml
|
|
36
|
+
from_version: "3.x" # semver range for the source version
|
|
37
|
+
to_version: "4.0" # first minor of the target major
|
|
38
|
+
moves:
|
|
39
|
+
- old: docs/path/old.md # path relative to project root
|
|
40
|
+
new: docs/path/new.md # path relative to project root
|
|
41
|
+
type: docs # always "docs" for this directory
|
|
42
|
+
notes: > # optional: human-readable explanation
|
|
43
|
+
Why this path changed and what to do with the old file after migration.
|
|
44
|
+
```
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
from_version: "2.x"
|
|
2
|
+
to_version: "3.0"
|
|
3
|
+
moves:
|
|
4
|
+
- old: docs/architecture/architecture.md
|
|
5
|
+
new: docs/architecture/overview.md
|
|
6
|
+
type: docs
|
|
7
|
+
notes: >
|
|
8
|
+
architect role primary output renamed from architecture.md to overview.md
|
|
9
|
+
in v3 to align with the generic overview.md convention used by all roles.
|
|
10
|
+
Content is the same — only the filename changed.
|
|
11
|
+
|
|
12
|
+
- old: docs/design/design.md
|
|
13
|
+
new: docs/design/overview.md
|
|
14
|
+
type: docs
|
|
15
|
+
notes: >
|
|
16
|
+
designer role primary output renamed from design.md to overview.md in v3
|
|
17
|
+
to align with the generic overview.md convention used by all roles.
|
|
18
|
+
Content is the same — only the filename changed.
|
|
19
|
+
|
|
20
|
+
- old: docs/test-report.md
|
|
21
|
+
new: docs/reports/test-report.md
|
|
22
|
+
type: docs
|
|
23
|
+
notes: >
|
|
24
|
+
tester role reports moved from the docs/ root into docs/reports/ in v3.
|
|
25
|
+
This groups all tester outputs under a single subdirectory.
|
|
26
|
+
|
|
27
|
+
- old: docs/security-report.md
|
|
28
|
+
new: docs/reports/security-report.md
|
|
29
|
+
type: docs
|
|
30
|
+
notes: >
|
|
31
|
+
tester role reports moved from the docs/ root into docs/reports/ in v3.
|
|
32
|
+
This groups all tester outputs under a single subdirectory.
|
|
33
|
+
|
|
34
|
+
- old: docs/performance-baseline.md
|
|
35
|
+
new: docs/reports/performance-baseline.md
|
|
36
|
+
type: docs
|
|
37
|
+
notes: >
|
|
38
|
+
tester role reports moved from the docs/ root into docs/reports/ in v3.
|
|
39
|
+
This groups all tester outputs under a single subdirectory.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# ADR-NNN: {title}
|
|
2
|
+
|
|
3
|
+
<!-- One file per decision. Suggested name: NNN-{slug}.md (e.g. 001-service-boundaries.md)
|
|
4
|
+
Deviate from this structure as needed. -->
|
|
5
|
+
|
|
6
|
+
> **date:** YYYY-MM-DD\
|
|
7
|
+
> **status:** proposed | accepted | superseded by ADR-NNN
|
|
8
|
+
|
|
9
|
+
## context
|
|
10
|
+
|
|
11
|
+
<!-- What situation or problem led to this decision? -->
|
|
12
|
+
|
|
13
|
+
## decision
|
|
14
|
+
|
|
15
|
+
<!-- What was decided? State it clearly and positively. -->
|
|
16
|
+
|
|
17
|
+
## alternatives considered
|
|
18
|
+
|
|
19
|
+
<!-- What other options were evaluated? Why were they not chosen? -->
|
|
20
|
+
|
|
21
|
+
## rationale
|
|
22
|
+
|
|
23
|
+
<!-- Why is this decision the right one given the context? -->
|
|
24
|
+
|
|
25
|
+
## consequences
|
|
26
|
+
|
|
27
|
+
<!-- What is easier or harder as a result? What does this enable or constrain? -->
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Architecture Overview
|
|
2
|
+
|
|
3
|
+
<!-- Describes the system architecture. Deviate from this structure as needed. -->
|
|
4
|
+
|
|
5
|
+
> Maintained by: **architect** role\
|
|
6
|
+
> Last updated: YYYY-MM-DD
|
|
7
|
+
|
|
8
|
+
## overview
|
|
9
|
+
|
|
10
|
+
<!-- What system is this? What problem does it solve?
|
|
11
|
+
Include a system style declaration: e.g. `**System style:** microservice | monolith | platform | library` -->
|
|
12
|
+
|
|
13
|
+
## system structure
|
|
14
|
+
|
|
15
|
+
<!-- Repository or deployment layout. Use a plain text tree for directory structure. -->
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
{system}/
|
|
19
|
+
├── ...
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## components
|
|
23
|
+
|
|
24
|
+
<!-- High-level component breakdown. Use a Mermaid diagram for flows; text tree for structure. -->
|
|
25
|
+
|
|
26
|
+
## principles
|
|
27
|
+
|
|
28
|
+
<!-- Key architectural constraints and non-negotiable decisions.
|
|
29
|
+
These constrain all downstream design choices. -->
|
|
30
|
+
|
|
31
|
+
## data flow
|
|
32
|
+
|
|
33
|
+
<!-- How data moves through the system. -->
|
|
34
|
+
|
|
35
|
+
## key decisions
|
|
36
|
+
|
|
37
|
+
<!-- Links or summaries of significant ADRs. -->
|
|
38
|
+
|
|
39
|
+
## open questions
|
|
40
|
+
|
|
41
|
+
<!-- Unresolved architectural concerns. -->
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
name: architect
|
|
2
|
-
version:
|
|
2
|
+
version: 20260503022
|
|
3
3
|
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
|
|
8
|
-
|
|
9
|
-
docs/architecture/adr/*.md. Baseline-first on branch, optional
|
|
10
|
-
docs/delta/{id} for complex drafts.
|
|
7
|
+
designer's territory. Reads product artifacts; produces architecture overview
|
|
8
|
+
and ADRs. Baseline-first on branch.
|
|
11
9
|
argument-hint: "[design architecture | write ADR | review architecture | check implementation alignment]"
|
|
12
10
|
tools:
|
|
13
11
|
- read
|
|
14
12
|
- search
|
|
15
13
|
- edit
|
|
14
|
+
- execute
|
|
16
15
|
- web
|
|
17
16
|
- vscode
|
|
18
17
|
- todo
|
|
@@ -22,13 +21,23 @@ model:
|
|
|
22
21
|
- GPT-5.3-Codex (copilot)
|
|
23
22
|
- Claude Opus 4.7 (copilot)
|
|
24
23
|
agents: ["*"]
|
|
25
|
-
handoffs:
|
|
26
|
-
- label: Continue to design
|
|
27
|
-
agent: designer
|
|
28
|
-
prompt: >
|
|
29
|
-
Translate docs/architecture/architecture.md into docs/design/design.md
|
|
30
|
-
with concrete interfaces and contracts.
|
|
31
24
|
target: vscode
|
|
25
|
+
defaults:
|
|
26
|
+
handoffs:
|
|
27
|
+
prompt: >
|
|
28
|
+
Architecture outputs are approved. Assess the current state and produce
|
|
29
|
+
design specifications as needed. If your domain is not affected by
|
|
30
|
+
this change, assess and confirm that explicitly, then pass through to
|
|
31
|
+
the next stage.
|
|
32
|
+
artifacts:
|
|
33
|
+
dir: architecture
|
|
34
|
+
input:
|
|
35
|
+
- product/**/*.md
|
|
36
|
+
output:
|
|
37
|
+
- path: overview.md
|
|
38
|
+
baseline: true
|
|
39
|
+
- path: adr/*.md
|
|
40
|
+
baseline: true
|
|
32
41
|
user-invocable: true
|
|
33
42
|
|
|
34
43
|
# Optional when needed:
|