vstack 3.5.2__tar.gz → 3.6.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.5.2 → vstack-3.6.0}/PKG-INFO +2 -2
- {vstack-3.5.2 → vstack-3.6.0}/pyproject.toml +3 -3
- vstack-3.6.0/src/vstack/_templates/agents/_partials/stage-report-contract.md +25 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/architect/config.yaml +0 -5
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/designer/config.yaml +0 -4
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/engineer/config.yaml +0 -4
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/planner/config.yaml +0 -4
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/planner/template.md +82 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/product/config.yaml +0 -5
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/release/config.yaml +0 -4
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/tester/config.yaml +0 -4
- vstack-3.6.0/src/vstack/_templates/instructions/git/template.md +36 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/helm/template.md +5 -5
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/java/template.md +6 -6
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/k8s/template.md +4 -4
- vstack-3.6.0/src/vstack/_templates/instructions/markdown/template.md +46 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/python/template.md +7 -7
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/rancher/template.md +5 -5
- vstack-3.6.0/src/vstack/_templates/instructions/security/template.md +37 -0
- vstack-3.6.0/src/vstack/_templates/instructions/terraform/template.md +55 -0
- vstack-3.6.0/src/vstack/_templates/instructions/terragrunt/template.md +52 -0
- vstack-3.6.0/src/vstack/_templates/instructions/testing/template.md +38 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/typescript/template.md +4 -4
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/api-design-review/config.yaml +0 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/api-design-review/template.md +2 -2
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/architecture-risk/config.yaml +0 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/architecture-risk/template.md +1 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/artifact-integrity/config.yaml +0 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/artifact-integrity/template.md +7 -7
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/ci-triage/config.yaml +0 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/dependency-audit/config.yaml +0 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/dependency-audit/template.md +5 -5
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/incident-timeline/config.yaml +0 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/migration-plan/config.yaml +0 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/migration-safety/config.yaml +0 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/migration-safety/template.md +1 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/ops-readiness/config.yaml +0 -1
- {vstack-3.5.2/src/vstack/_templates/prompts/code-review → vstack-3.6.0/src/vstack/_templates/prompts/quick-review}/config.yaml +1 -2
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/release-check/config.yaml +0 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/repo-assessment/config.yaml +0 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/repo-assessment/template.md +6 -8
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/template-impact/config.yaml +0 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/test-gaps/config.yaml +0 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/upgrade-plan/config.yaml +0 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/workflow-check/config.yaml +0 -1
- vstack-3.6.0/src/vstack/_templates/skills/ask/config.yaml +17 -0
- vstack-3.6.0/src/vstack/_templates/skills/ask/template.md +91 -0
- vstack-3.6.0/src/vstack/_templates/skills/explore/config.yaml +18 -0
- vstack-3.6.0/src/vstack/_templates/skills/explore/template.md +116 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/space-setup/template.md +1 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/constants.py +2 -1
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/init.py +172 -9
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/parser.py +8 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/hooks/generator.py +1 -1
- vstack-3.5.2/src/vstack/_templates/agents/_partials/stage-report-contract.md +0 -10
- vstack-3.5.2/src/vstack/_templates/instructions/git/template.md +0 -36
- vstack-3.5.2/src/vstack/_templates/instructions/markdown/template.md +0 -46
- vstack-3.5.2/src/vstack/_templates/instructions/security/template.md +0 -37
- vstack-3.5.2/src/vstack/_templates/instructions/terraform/template.md +0 -55
- vstack-3.5.2/src/vstack/_templates/instructions/terragrunt/template.md +0 -52
- vstack-3.5.2/src/vstack/_templates/instructions/testing/template.md +0 -38
- vstack-3.5.2/src/vstack/_templates/skills/explore/config.yaml +0 -18
- vstack-3.5.2/src/vstack/_templates/skills/explore/template.md +0 -170
- {vstack-3.5.2 → vstack-3.6.0}/LICENSE +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/README-pypi.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/__init__.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/__main__.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_migrations/README.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_migrations/v2_to_v3.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/_partials/agent-skill-boundary.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/architect/artifacts/adr/NNN-template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/architect/artifacts/overview.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/architect/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/designer/artifacts/overview.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/designer/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/engineer/artifacts/issues/postmortem.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/engineer/artifacts/issues/rca.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/engineer/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/product/artifacts/changes/change-request.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/product/artifacts/issues/issue.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/product/artifacts/requirements.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/product/artifacts/roadmap.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/product/artifacts/vision.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/product/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/release/artifacts/release-summary.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/release/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/tester/artifacts/performance-baseline.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/tester/artifacts/security-report.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/tester/artifacts/test-report.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/tester/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/hooks/agent-call-audit/hook.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/hooks/log-retention-cleanup/hook.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/hooks/post-commit-security-scan/hook.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/hooks/post-edit-format/hook.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/hooks/post-edit-markdown-quality/hook.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/hooks/pre-tool-safety-gate/hook.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/hooks/session-audit/hook.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/git/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/helm/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/java/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/k8s/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/markdown/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/python/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/rancher/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/security/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/terraform/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/terragrunt/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/testing/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/typescript/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/project/.vstack/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/ci-triage/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/incident-timeline/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/migration-plan/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/ops-readiness/template.md +0 -0
- {vstack-3.5.2/src/vstack/_templates/prompts/code-review → vstack-3.6.0/src/vstack/_templates/prompts/quick-review}/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/release-check/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/template-impact/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/test-gaps/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/upgrade-plan/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/workflow-check/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/_partials/base-branch.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/_partials/observability-checklist.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/_partials/run-tests.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/_partials/skill-context.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/adr/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/adr/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/analyse/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/analyse/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/architecture/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/architecture/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/aws-cli/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/aws-cli/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/cicd/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/cicd/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/cloudformation/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/cloudformation/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/code-review/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/code-review/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/codeql/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/codeql/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/concise/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/concise/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/consult/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/consult/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/container/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/container/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/conventional-commit/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/conventional-commit/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/copilot-ops/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/copilot-ops/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/debug/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/debug/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/dependabot/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/dependabot/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/dependency/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/dependency/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/design/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/design/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/docs/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/docs/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/gdpr/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/gdpr/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/gh-issues/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/gh-issues/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/gh-release/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/gh-release/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/guardrails/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/guardrails/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/helm/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/helm/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/incident/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/incident/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/inspect/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/inspect/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/k8s/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/k8s/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/migrate/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/migrate/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/onboard/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/onboard/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/openapi/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/openapi/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/performance/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/performance/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/postmortem/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/postmortem/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/pr/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/pr/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/rancher/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/rancher/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/rca/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/rca/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/refactor/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/refactor/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/release-notes/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/release-notes/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/requirements/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/requirements/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/secret-scan/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/secret-scan/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/security/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/security/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/space-setup/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/terraform/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/terraform/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/terragrunt/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/terragrunt/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/threat-model/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/threat-model/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/verify/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/verify/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/vision/config.yaml +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/vision/template.md +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/agents/__init__.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/agents/config.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/agents/constants.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/agents/generator.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/artifacts/__init__.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/artifacts/config.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/artifacts/constants.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/artifacts/generator.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/artifacts/models.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/artifacts/protocol.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/__init__.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/base.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/catalog.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/install.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/interface.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/manifest.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/migrate.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/report.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/service.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/status.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/uninstall.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/validate.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/verify.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/constants.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/frontmatter/__init__.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/frontmatter/parser.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/frontmatter/schema.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/frontmatter/serializer.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/hooks/__init__.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/hooks/config.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/hooks/constants.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/instructions/__init__.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/instructions/config.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/instructions/constants.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/instructions/generator.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/main.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/manifest/__init__.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/manifest/store.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/models.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/prompts/__init__.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/prompts/config.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/prompts/constants.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/prompts/generator.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/skills/__init__.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/skills/config.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/skills/constants.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/skills/generator.py +0 -0
- {vstack-3.5.2 → vstack-3.6.0}/src/vstack/skills/models.py +0 -0
- {vstack-3.5.2 → vstack-3.6.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.6.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
|
|
@@ -19,7 +19,7 @@ Classifier: Topic :: Software Development :: Build Tools
|
|
|
19
19
|
Classifier: Topic :: Software Development :: Code Generators
|
|
20
20
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
21
|
Classifier: Topic :: Utilities
|
|
22
|
-
Requires-Dist: pyyaml (>=6.0)
|
|
22
|
+
Requires-Dist: pyyaml (>=6.0.3)
|
|
23
23
|
Project-URL: Changelog, https://github.com/eschaar/vstack/blob/main/CHANGELOG.md
|
|
24
24
|
Project-URL: Documentation, https://github.com/eschaar/vstack/blob/main/README.md
|
|
25
25
|
Project-URL: Discussions, https://github.com/eschaar/vstack/discussions
|
|
@@ -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 = ["pyyaml>=6.0"]
|
|
8
|
+
dependencies = ["pyyaml>=6.0.3"]
|
|
9
9
|
keywords = [
|
|
10
10
|
"github-copilot",
|
|
11
11
|
"vscode",
|
|
@@ -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.6.0"
|
|
49
49
|
|
|
50
50
|
[project.urls]
|
|
51
51
|
Homepage = "https://github.com/eschaar/vstack"
|
|
@@ -77,7 +77,7 @@ include = [
|
|
|
77
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.
|
|
80
|
+
pytest = ">=9.1.1"
|
|
81
81
|
pytest-cov = ">=7.1.0"
|
|
82
82
|
ruff = ">=0.15.16"
|
|
83
83
|
mypy = ">=2.1.0"
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Use this exact stage report schema at the end of your response. Keep values short and deterministic.
|
|
2
|
+
|
|
3
|
+
- `status`: `ready` or `blocked`
|
|
4
|
+
- `changes_made`: `yes` or `no`
|
|
5
|
+
- `updated_items`: list of paths or `none`
|
|
6
|
+
- `plan_delta`: short list of plan updates or `none`
|
|
7
|
+
- `blockers`: list or `none`
|
|
8
|
+
- `token_usage_summary`: `input_tokens`, `output_tokens`, `total_tokens`, and `budget_status` (`within` or `exceeded`)
|
|
9
|
+
- `next_handoff_summary`: one short paragraph
|
|
10
|
+
- `planner_run_id`: value from `PLANNER_RUN_ID` or `none`
|
|
11
|
+
- `model_used`: model identifier or `unknown`
|
|
12
|
+
- `subagents_invoked`: list of delegated subagents or `none`
|
|
13
|
+
|
|
14
|
+
Example:
|
|
15
|
+
|
|
16
|
+
- `status`: `ready`
|
|
17
|
+
- `changes_made`: `yes`
|
|
18
|
+
- `updated_items`: `docs/architecture/overview.md`
|
|
19
|
+
- `plan_delta`: `none`
|
|
20
|
+
- `blockers`: `none`
|
|
21
|
+
- `token_usage_summary`: `input_tokens=1200, output_tokens=420, total_tokens=1620, budget_status=within`
|
|
22
|
+
- `next_handoff_summary`: `Architecture baseline updated and aligned with current requirements. Ready for designer handoff.`
|
|
23
|
+
- `planner_run_id`: `20260611T101500Z-a1b2`
|
|
24
|
+
- `model_used`: `GPT-5.3-Codex (copilot)`
|
|
25
|
+
- `subagents_invoked`: `none`
|
|
@@ -74,6 +74,23 @@ Signs a request is a focused task (not a pipeline run):
|
|
|
74
74
|
|
|
75
75
|
When in doubt, ask: "Does this need more than one role to complete?" If not, route directly.
|
|
76
76
|
|
|
77
|
+
## collaborative planning with user approval
|
|
78
|
+
|
|
79
|
+
Before dispatching worker agents for a full pipeline, create a short execution plan with the user.
|
|
80
|
+
|
|
81
|
+
1. Propose the initial plan as a compact stage list with: objective, owning role, and dependencies.
|
|
82
|
+
1. Ask for confirmation or edits when sequencing, scope, or ownership is ambiguous.
|
|
83
|
+
1. Apply user feedback and freeze the plan baseline for this run.
|
|
84
|
+
1. Start delegation only after the plan is accepted.
|
|
85
|
+
|
|
86
|
+
During execution, the plan may change only when new facts appear. When replanning is needed:
|
|
87
|
+
|
|
88
|
+
1. Explain what changed and why the current plan is no longer valid.
|
|
89
|
+
1. Propose the minimal plan delta.
|
|
90
|
+
1. Ask for approval before continuing with the updated plan.
|
|
91
|
+
|
|
92
|
+
The planner owns planning and orchestration decisions. Worker agents execute scoped tasks from the accepted plan.
|
|
93
|
+
|
|
77
94
|
## working principles
|
|
78
95
|
|
|
79
96
|
- **Classify before orchestrating.** Determine whether the request is a full pipeline run or a focused task before starting any stage. Starting the pipeline for a focused task is overhead without benefit.
|
|
@@ -101,6 +118,71 @@ For every ready stage or domain question:
|
|
|
101
118
|
|
|
102
119
|
If a domain question surfaces mid-orchestration that no stage report has answered, route it to the relevant specialist instead of answering it yourself.
|
|
103
120
|
|
|
121
|
+
## token efficiency and delegation budget
|
|
122
|
+
|
|
123
|
+
Use subagents by default for substantive work, but keep delegation payloads minimal and deterministic.
|
|
124
|
+
|
|
125
|
+
1. Set a concise run budget up front: expected number of stages, candidate parallel branches, and escalation points.
|
|
126
|
+
1. Delegate only the minimum context needed for the stage:
|
|
127
|
+
|
|
128
|
+
- stage objective
|
|
129
|
+
- accepted plan slice for this stage
|
|
130
|
+
- relevant predecessor outputs only
|
|
131
|
+
- explicit done criteria
|
|
132
|
+
|
|
133
|
+
1. Prefer delta handoffs. If a stage reruns, pass only what changed since the last attempt.
|
|
134
|
+
1. Avoid duplicate calls. Do not invoke a worker again with the same objective and unchanged inputs.
|
|
135
|
+
1. Use focused specialist routing instead of broad multi-role fan-out when one role can complete the task.
|
|
136
|
+
1. Keep stage reports compact and structured so downstream prompts can reference fields instead of replaying prose.
|
|
137
|
+
|
|
138
|
+
Parallelization rule:
|
|
139
|
+
|
|
140
|
+
- Run in parallel only when dependencies are fully satisfied and merge criteria are explicit.
|
|
141
|
+
- If merge criteria are unclear, run sequentially to avoid rework and token waste.
|
|
142
|
+
|
|
143
|
+
Escalation rule:
|
|
144
|
+
|
|
145
|
+
- If required context is missing, ask one targeted question before dispatching.
|
|
146
|
+
- If uncertainty remains high after one question, pause and request user decision instead of speculative delegation.
|
|
147
|
+
|
|
148
|
+
## plan state and persistence
|
|
149
|
+
|
|
150
|
+
The execution plan is operational state, not a domain deliverable.
|
|
151
|
+
|
|
152
|
+
Planner-run state schema (keep this shape stable across the run):
|
|
153
|
+
|
|
154
|
+
```yaml
|
|
155
|
+
planner_run_state:
|
|
156
|
+
planner_run_id: <string>
|
|
157
|
+
plan_version: <integer>
|
|
158
|
+
stage_status_map:
|
|
159
|
+
<stage_id>: ready|blocked|skipped|pending
|
|
160
|
+
blockers:
|
|
161
|
+
- <short blocker>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
State update protocol:
|
|
165
|
+
|
|
166
|
+
1. Initialize `planner_run_state` before first delegation.
|
|
167
|
+
|
|
168
|
+
1. Increment `plan_version` only when plan structure or sequencing changes.
|
|
169
|
+
|
|
170
|
+
1. Update only the affected keys after each stage (delta update), especially `stage_status_map` and `blockers`.
|
|
171
|
+
|
|
172
|
+
1. Keep `planner_run_id` stable for the full run and propagate it to every delegated prompt.
|
|
173
|
+
|
|
174
|
+
1. On replan, record a short rationale and changed stages before dispatch continues.
|
|
175
|
+
|
|
176
|
+
1. Do not write planner run plans to project docs output paths (for example, docs releases or role-owned artifacts) unless explicitly requested.
|
|
177
|
+
|
|
178
|
+
1. Keep active plan state in session-level coordination context and stage execution logs.
|
|
179
|
+
|
|
180
|
+
1. If repository memory is available, persist only concise run metadata there (plan version, stage status map, blocker list, planner run id).
|
|
181
|
+
|
|
182
|
+
1. Persist plan state updates as deltas, not full rewrites.
|
|
183
|
+
|
|
184
|
+
1. Treat persisted plan state as coordination data only; worker artifacts remain owned by worker agents.
|
|
185
|
+
|
|
104
186
|
## decision guidelines
|
|
105
187
|
|
|
106
188
|
- If workflow config is missing or invalid, stop and report exactly what is wrong.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
Use these Git and release hygiene conventions.
|
|
2
|
+
|
|
3
|
+
## Branch naming
|
|
4
|
+
|
|
5
|
+
1. Use `type/short-description` branch names.
|
|
6
|
+
1. Keep names lowercase and hyphenated.
|
|
7
|
+
1. Use one of these branch types when validation is enabled:
|
|
8
|
+
`feature`, `bugfix`, `hotfix`, `release`, `chore`, `feat`, `fix`, `docs`,
|
|
9
|
+
`refactor`, `perf`, `test`, `ci`, `build`, `style`, `opt`, `patch`, `dependabot`.
|
|
10
|
+
|
|
11
|
+
## Commit messages
|
|
12
|
+
|
|
13
|
+
1. Use Conventional Commits: `type(optional-scope)!: short summary`.
|
|
14
|
+
1. Keep subjects clear, imperative, and within repository limits.
|
|
15
|
+
1. Keep commit subjects at 100 characters or fewer when policy CI enforces that limit.
|
|
16
|
+
1. Add `!` or a `BREAKING CHANGE:` footer for breaking behavior.
|
|
17
|
+
1. Match type and scope to repository policy.
|
|
18
|
+
|
|
19
|
+
## SemVer alignment
|
|
20
|
+
|
|
21
|
+
1. Treat commit messages as release inputs when semantic version automation is in use.
|
|
22
|
+
1. Reflect major, minor, and patch intent in the commit type and breaking markers.
|
|
23
|
+
1. Do not merge release-impacting changes with ambiguous commit messages.
|
|
24
|
+
|
|
25
|
+
## Security and credentials
|
|
26
|
+
|
|
27
|
+
1. Never ask users to paste passphrases, tokens, API keys, or private keys into chat.
|
|
28
|
+
1. Never echo or log secrets from prompts, command output, or environment variables.
|
|
29
|
+
1. Never place credentials in commit messages, source files, workflow files, or documentation.
|
|
30
|
+
1. Prefer existing secure auth flows such as SSH agent, OS keychain, or `gh auth`.
|
|
31
|
+
|
|
32
|
+
## Safe Git operations
|
|
33
|
+
|
|
34
|
+
1. Avoid force pushes and destructive history rewrites unless explicitly requested and approved.
|
|
35
|
+
1. Keep commits focused and reviewable.
|
|
36
|
+
1. Prefer local verification before pushing release-impacting changes.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Use these Helm conventions
|
|
1
|
+
Use these Helm conventions.
|
|
2
2
|
|
|
3
3
|
## Chart structure
|
|
4
4
|
|
|
@@ -8,10 +8,10 @@ Use these Helm conventions in this project.
|
|
|
8
8
|
|
|
9
9
|
## Templating quality
|
|
10
10
|
|
|
11
|
-
1. Quote string values where ambiguity may cause rendering
|
|
12
|
-
1. Guard optional blocks with conditionals to avoid
|
|
11
|
+
1. Quote string values where ambiguity may cause rendering or type errors.
|
|
12
|
+
1. Guard optional blocks with conditionals to avoid invalid YAML.
|
|
13
13
|
1. Keep names and labels deterministic via helper templates.
|
|
14
|
-
1. Avoid embedding large opaque blobs
|
|
14
|
+
1. Avoid embedding large opaque blobs; externalize where possible.
|
|
15
15
|
|
|
16
16
|
## Values and secrets
|
|
17
17
|
|
|
@@ -34,7 +34,7 @@ Use these Helm conventions in this project.
|
|
|
34
34
|
|
|
35
35
|
## References
|
|
36
36
|
|
|
37
|
-
> Always use the official documentation for the exact Helm and Kubernetes versions in use
|
|
37
|
+
> Always use the official documentation for the exact Helm and Kubernetes versions in use; chart schema, flags, and behavior evolve between releases.
|
|
38
38
|
|
|
39
39
|
- [Helm docs](https://helm.sh/docs/)
|
|
40
40
|
- [Helm chart best practices](https://helm.sh/docs/chart_best_practices/)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
Use these Java conventions
|
|
1
|
+
Use these Java conventions.
|
|
2
2
|
|
|
3
3
|
## Design and readability
|
|
4
4
|
|
|
5
|
-
1. Prefer explicit, domain-meaningful names over abbreviations
|
|
6
|
-
1. Keep methods focused
|
|
7
|
-
1. Prefer immutable objects; make fields `final` by default
|
|
5
|
+
1. Prefer explicit, domain-meaningful names over abbreviations.
|
|
6
|
+
1. Keep methods focused.
|
|
7
|
+
1. Prefer immutable objects; make fields `final` by default.
|
|
8
8
|
1. Prefer straightforward control flow over clever one-liners.
|
|
9
9
|
|
|
10
10
|
## Types and APIs
|
|
@@ -12,13 +12,13 @@ Use these Java conventions in this project.
|
|
|
12
12
|
1. Keep public APIs minimal and stable; mark implementation details `package-private` or `private`.
|
|
13
13
|
1. Program to interfaces, not implementations, for dependencies that may change.
|
|
14
14
|
1. Use records for simple value types where the Java version supports them.
|
|
15
|
-
1. Prefer `Optional` as a return type for values
|
|
15
|
+
1. Prefer `Optional` as a return type for absent values; do not use it for fields or parameters.
|
|
16
16
|
|
|
17
17
|
## Null safety
|
|
18
18
|
|
|
19
19
|
1. Annotate method parameters and return types with `@NonNull` or `@Nullable` where nullability is meaningful.
|
|
20
20
|
1. Never return `null` from a public method that could return `Optional` instead.
|
|
21
|
-
1. Fail fast on unexpected nulls at system boundaries
|
|
21
|
+
1. Fail fast on unexpected nulls at system boundaries.
|
|
22
22
|
|
|
23
23
|
## Exception handling
|
|
24
24
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Use these Kubernetes conventions
|
|
1
|
+
Use these Kubernetes conventions.
|
|
2
2
|
|
|
3
3
|
## API and versioning
|
|
4
4
|
|
|
@@ -9,7 +9,7 @@ Use these Kubernetes conventions in this project.
|
|
|
9
9
|
## Workload safety
|
|
10
10
|
|
|
11
11
|
1. Set CPU and memory `requests` and `limits` for every container.
|
|
12
|
-
1. Define
|
|
12
|
+
1. Define readiness and liveness probes for long-running services.
|
|
13
13
|
1. Avoid mutable image tags (`:latest`); use pinned tags or immutable digests.
|
|
14
14
|
1. Set rollout strategy explicitly for Deployments handling production traffic.
|
|
15
15
|
|
|
@@ -30,7 +30,7 @@ Use these Kubernetes conventions in this project.
|
|
|
30
30
|
|
|
31
31
|
1. Use PodDisruptionBudgets for critical workloads.
|
|
32
32
|
1. Configure `terminationGracePeriodSeconds` and preStop hooks where graceful shutdown is required.
|
|
33
|
-
1. Add resource annotations
|
|
33
|
+
1. Add resource annotations or labels needed by observability and runtime policies.
|
|
34
34
|
|
|
35
35
|
## Validation
|
|
36
36
|
|
|
@@ -40,7 +40,7 @@ Use these Kubernetes conventions in this project.
|
|
|
40
40
|
|
|
41
41
|
## References
|
|
42
42
|
|
|
43
|
-
> Always use the official documentation for the exact Kubernetes version in use
|
|
43
|
+
> Always use the official documentation for the exact Kubernetes version in use; API versions and defaults change between releases.
|
|
44
44
|
|
|
45
45
|
- [Kubernetes docs](https://kubernetes.io/docs/)
|
|
46
46
|
- [Kubernetes API reference](https://kubernetes.io/docs/reference/kubernetes-api/)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
Use these Markdown conventions.
|
|
2
|
+
|
|
3
|
+
## Structure and headings
|
|
4
|
+
|
|
5
|
+
1. Keep heading levels sequential.
|
|
6
|
+
1. Prefer flat heading structures; rarely go deeper than `####`.
|
|
7
|
+
1. Keep headings short and descriptive.
|
|
8
|
+
|
|
9
|
+
## Prose and tone
|
|
10
|
+
|
|
11
|
+
1. Write in clear, direct language with active voice.
|
|
12
|
+
1. Keep sentences short.
|
|
13
|
+
1. Be consistent with terminology throughout the file.
|
|
14
|
+
1. Avoid filler phrases such as "please note", "it is important to", and "simply".
|
|
15
|
+
|
|
16
|
+
## Lists and tables
|
|
17
|
+
|
|
18
|
+
1. Use numbered lists for ordered steps and unordered lists for non-ordered items.
|
|
19
|
+
1. Keep list items parallel.
|
|
20
|
+
1. Prefer tables over nested lists for structured comparisons.
|
|
21
|
+
1. Keep tables lean.
|
|
22
|
+
|
|
23
|
+
## Code blocks and inline code
|
|
24
|
+
|
|
25
|
+
1. Specify a language identifier on fenced code blocks when possible.
|
|
26
|
+
1. Use inline code for file names, paths, commands, identifiers, and literal values.
|
|
27
|
+
1. Do not put prose in a code block; reserve code blocks for commands, source code, and literal output.
|
|
28
|
+
|
|
29
|
+
## Links and references
|
|
30
|
+
|
|
31
|
+
1. Use descriptive link text.
|
|
32
|
+
1. Prefer relative links for documents within the same repository.
|
|
33
|
+
1. Verify that section anchors match actual heading text.
|
|
34
|
+
|
|
35
|
+
## Diagrams
|
|
36
|
+
|
|
37
|
+
1. Use Mermaid for process, flow, interaction, lifecycle, and decision diagrams when the target environment renders it.
|
|
38
|
+
1. Fall back to ASCII or plain text when Mermaid cannot be guaranteed.
|
|
39
|
+
1. Use ASCII or text trees for directory layouts and file hierarchies.
|
|
40
|
+
1. Do not embed a diagram where a simple sentence or table communicates the same information.
|
|
41
|
+
|
|
42
|
+
## Maintenance
|
|
43
|
+
|
|
44
|
+
1. Update documentation with the behavior or interface it describes.
|
|
45
|
+
1. Remove outdated content rather than leaving a TODO.
|
|
46
|
+
1. Keep examples accurate and runnable.
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
Use these Python conventions
|
|
1
|
+
Use these Python conventions.
|
|
2
2
|
|
|
3
3
|
## Design and readability
|
|
4
4
|
|
|
5
5
|
1. Prefer explicit, domain-meaningful names over abbreviations.
|
|
6
|
-
1. Keep functions focused
|
|
7
|
-
1. Prefer straightforward control flow
|
|
8
|
-
1. Raise precise exceptions with actionable
|
|
6
|
+
1. Keep functions focused.
|
|
7
|
+
1. Prefer straightforward control flow.
|
|
8
|
+
1. Raise precise exceptions with actionable messages.
|
|
9
9
|
|
|
10
10
|
## Typing and APIs
|
|
11
11
|
|
|
12
12
|
1. Add type hints to public functions, methods, and module-level constants.
|
|
13
|
-
1. Keep public interfaces stable and backward compatible unless
|
|
14
|
-
1. Use dataclasses or TypedDict for structured data
|
|
13
|
+
1. Keep public interfaces stable and backward compatible unless breaking changes are explicitly allowed.
|
|
14
|
+
1. Use dataclasses or TypedDict for structured data.
|
|
15
15
|
|
|
16
16
|
## Imports and dependencies
|
|
17
17
|
|
|
18
18
|
1. Group imports as standard library, third-party, and local modules.
|
|
19
19
|
1. Keep imports minimal and remove unused imports.
|
|
20
|
-
1. Avoid adding runtime dependencies unless there is a clear benefit over stdlib or existing
|
|
20
|
+
1. Avoid adding runtime dependencies unless there is a clear benefit over stdlib or existing dependencies.
|
|
21
21
|
|
|
22
22
|
## Testing and verification
|
|
23
23
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
Use these Rancher conventions
|
|
1
|
+
Use these Rancher conventions.
|
|
2
2
|
|
|
3
3
|
## Scope and environment
|
|
4
4
|
|
|
5
5
|
1. Keep environment and cluster targeting explicit; avoid wildcard targeting for production bundles.
|
|
6
6
|
1. Separate dev, staging, and production policies and rollout paths.
|
|
7
|
-
1. Document expected project
|
|
7
|
+
1. Document expected project and namespace scope for each config set.
|
|
8
8
|
|
|
9
9
|
## Fleet and GitOps hygiene
|
|
10
10
|
|
|
@@ -23,17 +23,17 @@ Use these Rancher conventions in this project.
|
|
|
23
23
|
|
|
24
24
|
1. Do not hardcode credentials or tokens in Rancher/Fleet config files.
|
|
25
25
|
1. Reference secrets from approved secret management paths.
|
|
26
|
-
1. Keep auditability for cluster
|
|
26
|
+
1. Keep auditability for cluster and project configuration changes.
|
|
27
27
|
|
|
28
28
|
## Operations
|
|
29
29
|
|
|
30
|
-
1. Validate target clusters
|
|
30
|
+
1. Validate target clusters and projects before applying any change.
|
|
31
31
|
1. Include rollback guidance for application and bundle updates.
|
|
32
32
|
1. Treat drift and failed bundle rollout as operational incidents with follow-up remediation.
|
|
33
33
|
|
|
34
34
|
## References
|
|
35
35
|
|
|
36
|
-
> Always use the official documentation for the exact Rancher and Fleet versions in use
|
|
36
|
+
> Always use the official documentation for the exact Rancher and Fleet versions in use; features and defaults vary between releases.
|
|
37
37
|
|
|
38
38
|
- [Rancher docs](https://ranchermanager.docs.rancher.com/)
|
|
39
39
|
- [Fleet docs](https://fleet.rancher.io/)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
Use these security policies.
|
|
2
|
+
|
|
3
|
+
## Secrets and credentials
|
|
4
|
+
|
|
5
|
+
1. Never hardcode secrets, tokens, passwords, or private keys in source code, config files, tests, or commit messages.
|
|
6
|
+
1. Read secrets from environment variables or a secret store at runtime; document required variables.
|
|
7
|
+
1. Treat accidental exposure as a revocation event; rotate immediately.
|
|
8
|
+
|
|
9
|
+
## Input and trust boundaries
|
|
10
|
+
|
|
11
|
+
1. Validate and sanitize all input that crosses a trust boundary: HTTP requests, CLI arguments, environment variables, files, and inter-service messages.
|
|
12
|
+
1. Never trust client-supplied values for authorization decisions.
|
|
13
|
+
1. Reject or escape input before it reaches queries, shell commands, template engines, or logs.
|
|
14
|
+
|
|
15
|
+
## Authentication and authorization
|
|
16
|
+
|
|
17
|
+
1. Default to deny; require explicit grants for protected resources or operations.
|
|
18
|
+
1. Verify identity and permission separately.
|
|
19
|
+
1. Use established, maintained libraries; do not implement custom cryptography or auth schemes.
|
|
20
|
+
|
|
21
|
+
## Dependencies and supply chain
|
|
22
|
+
|
|
23
|
+
1. Pin dependency versions in manifests; do not use unbounded version ranges in production code.
|
|
24
|
+
1. Minimise the dependency surface.
|
|
25
|
+
1. Treat updates that add new transitive dependencies as requiring explicit review.
|
|
26
|
+
|
|
27
|
+
## Error handling and observability
|
|
28
|
+
|
|
29
|
+
1. Never expose internal stack traces, system paths, or configuration details to external callers.
|
|
30
|
+
1. Do not log sensitive data: passwords, tokens, PII, or session identifiers.
|
|
31
|
+
1. Fail closed on security errors.
|
|
32
|
+
|
|
33
|
+
## Destructive and privileged operations
|
|
34
|
+
|
|
35
|
+
1. Require explicit confirmation before irreversible or destructive operations.
|
|
36
|
+
1. Apply least privilege.
|
|
37
|
+
1. Keep privileged logic minimal, auditable, and separate from business logic.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
Use these Terraform conventions.
|
|
2
|
+
|
|
3
|
+
## Structure and file layout
|
|
4
|
+
|
|
5
|
+
1. Split config into `main.tf`, `variables.tf`, `outputs.tf`, `providers.tf`, `versions.tf`, and `locals.tf`.
|
|
6
|
+
1. Keep one module per directory.
|
|
7
|
+
1. Put reusable logic in `modules/<name>/` with its own `variables.tf` and `outputs.tf`.
|
|
8
|
+
|
|
9
|
+
## Versioning and pinning
|
|
10
|
+
|
|
11
|
+
1. Pin the Terraform version with `required_version = "~> X.Y"` in `versions.tf`.
|
|
12
|
+
1. Pin each provider with `version = "~> X.Y"` in `required_providers`; never use unbounded ranges in production.
|
|
13
|
+
1. Commit `.terraform.lock.hcl` to source control.
|
|
14
|
+
1. Pin external module sources to a specific git ref or registry semver tag; never `?ref=main`.
|
|
15
|
+
|
|
16
|
+
## State management
|
|
17
|
+
|
|
18
|
+
1. Use a remote backend with encryption and locking for all non-local work.
|
|
19
|
+
1. Enable versioning on the S3 state bucket.
|
|
20
|
+
1. Never expose secrets via outputs; mark sensitive outputs with `sensitive = true`.
|
|
21
|
+
|
|
22
|
+
## Variables and outputs
|
|
23
|
+
|
|
24
|
+
1. Add `type`, `description`, and a sensible `default` for every variable.
|
|
25
|
+
1. Add validation blocks for constrained variables.
|
|
26
|
+
1. Mark secret variables with `sensitive = true`; never hardcode them in `.tf` files or committed `.tfvars`.
|
|
27
|
+
1. Add `description` to every output; mark secret outputs `sensitive = true`.
|
|
28
|
+
|
|
29
|
+
## Naming and tagging
|
|
30
|
+
|
|
31
|
+
1. Use `locals` to build name prefixes and centralise tag maps.
|
|
32
|
+
1. Name physical resources with `"${local.name_prefix}-<role>"` to ensure cross-stack uniqueness.
|
|
33
|
+
1. Apply a common tag map (`local.common_tags`) to every taggable resource; include at minimum `Environment` and `ManagedBy = "terraform"`.
|
|
34
|
+
|
|
35
|
+
## Security
|
|
36
|
+
|
|
37
|
+
1. Block public access on all S3 buckets unless intentionally public; document the exception.
|
|
38
|
+
1. Enable `storage_encrypted = true` and `deletion_protection = true` on all RDS instances.
|
|
39
|
+
1. Restrict security group rules; avoid `0.0.0.0/0` on management ports and add a comment when HTTPS/443 is open.
|
|
40
|
+
1. Apply least-privilege IAM policies; no `*` actions on `*` resources.
|
|
41
|
+
1. Enable KMS key rotation (`enable_key_rotation = true`).
|
|
42
|
+
|
|
43
|
+
## Tooling
|
|
44
|
+
|
|
45
|
+
1. Run `terraform fmt -check -recursive` in CI and auto-format locally.
|
|
46
|
+
1. Run `terraform validate` before every plan.
|
|
47
|
+
1. Run `tfsec` or `checkov` on all changes; fix HIGH/CRITICAL findings before merging.
|
|
48
|
+
|
|
49
|
+
## References
|
|
50
|
+
|
|
51
|
+
> Use official docs for the provider and Terraform version in use; resource arguments and defaults change between releases.
|
|
52
|
+
|
|
53
|
+
- [Terraform documentation](https://developer.hashicorp.com/terraform/docs)
|
|
54
|
+
- [Terraform provider registry](https://registry.terraform.io/)
|
|
55
|
+
- [tfsec](https://aquasecurity.github.io/tfsec/) · [checkov](https://www.checkov.io/)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
Use these Terragrunt conventions.
|
|
2
|
+
|
|
3
|
+
## Structure and hierarchy
|
|
4
|
+
|
|
5
|
+
1. Maintain a strict directory hierarchy that maps to deployment topology: `infra/<env>/<unit>/terragrunt.hcl`.
|
|
6
|
+
1. Keep one root `terragrunt.hcl` at repo root or top-level `infra/`; inherit it in all units via `include "root" { path = find_in_parent_folders() }`.
|
|
7
|
+
1. Use `account.hcl` files at the account/environment level for account ID, region, and environment name; read them with `read_terragrunt_config(find_in_parent_folders("account.hcl"))`.
|
|
8
|
+
|
|
9
|
+
## Remote state and backend generation
|
|
10
|
+
|
|
11
|
+
1. Generate `backend.tf` from the root `remote_state` block; never hand-write backend files in units.
|
|
12
|
+
1. Use `path_relative_to_include()` as the state key so each unit gets a unique state file.
|
|
13
|
+
1. Enable encryption and state locking on the S3 backend; enable versioning on the state bucket.
|
|
14
|
+
|
|
15
|
+
## Provider generation
|
|
16
|
+
|
|
17
|
+
1. Generate `provider.tf` from the root `generate "provider"` block; never duplicate provider configuration across units.
|
|
18
|
+
1. Include `default_tags` in the generated provider block to keep tagging consistent across resources.
|
|
19
|
+
|
|
20
|
+
## Module sources and pinning
|
|
21
|
+
|
|
22
|
+
1. Pin all module sources to a specific git ref or registry semver tag; never `?ref=main` or floating tags.
|
|
23
|
+
1. Prefer a versioned internal registry or tagged git commit over local paths in shared modules.
|
|
24
|
+
|
|
25
|
+
## Dependency blocks
|
|
26
|
+
|
|
27
|
+
1. Add `mock_outputs` to every `dependency` block for the `validate` and `plan` commands; this allows planning without deploying dependencies first.
|
|
28
|
+
1. Declare only the outputs you actually use from a dependency; do not expose the full output set.
|
|
29
|
+
1. Keep `dependency` blocks at unit level; do not express dependencies in root config.
|
|
30
|
+
|
|
31
|
+
## DRY inputs
|
|
32
|
+
|
|
33
|
+
1. Extract shared inputs for an ecosystem into `_envcommon/<name>.hcl`; load with `read_terragrunt_config`.
|
|
34
|
+
1. Use `merge(local.common.inputs, { ... })` to override defaults per environment; do not copy-paste full input maps.
|
|
35
|
+
|
|
36
|
+
## CI/CD
|
|
37
|
+
|
|
38
|
+
1. Always pass `--terragrunt-non-interactive` in automated pipelines to prevent interactive prompts.
|
|
39
|
+
1. Use `--terragrunt-parallelism` to control concurrency; start with 4 and adjust to pipeline resource limits.
|
|
40
|
+
1. Add `.terragrunt-cache/` to `.gitignore`.
|
|
41
|
+
|
|
42
|
+
## Secrets
|
|
43
|
+
|
|
44
|
+
1. Never hardcode secrets in `.hcl` files; supply them via environment variables (`TF_VAR_*`) or a secrets manager data source.
|
|
45
|
+
1. Do not commit `.tfvars` files containing real secrets.
|
|
46
|
+
|
|
47
|
+
## References
|
|
48
|
+
|
|
49
|
+
> Use official docs for the Terragrunt version in use; built-in functions and CLI flags evolve between releases.
|
|
50
|
+
|
|
51
|
+
- [Terragrunt documentation](https://terragrunt.gruntwork.io/docs/)
|
|
52
|
+
- [Terragrunt CLI reference](https://terragrunt.gruntwork.io/docs/reference/cli-options/)
|