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.
Files changed (262) hide show
  1. {vstack-3.5.2 → vstack-3.6.0}/PKG-INFO +2 -2
  2. {vstack-3.5.2 → vstack-3.6.0}/pyproject.toml +3 -3
  3. vstack-3.6.0/src/vstack/_templates/agents/_partials/stage-report-contract.md +25 -0
  4. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/architect/config.yaml +0 -5
  5. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/designer/config.yaml +0 -4
  6. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/engineer/config.yaml +0 -4
  7. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/planner/config.yaml +0 -4
  8. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/planner/template.md +82 -0
  9. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/product/config.yaml +0 -5
  10. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/release/config.yaml +0 -4
  11. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/tester/config.yaml +0 -4
  12. vstack-3.6.0/src/vstack/_templates/instructions/git/template.md +36 -0
  13. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/helm/template.md +5 -5
  14. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/java/template.md +6 -6
  15. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/k8s/template.md +4 -4
  16. vstack-3.6.0/src/vstack/_templates/instructions/markdown/template.md +46 -0
  17. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/python/template.md +7 -7
  18. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/rancher/template.md +5 -5
  19. vstack-3.6.0/src/vstack/_templates/instructions/security/template.md +37 -0
  20. vstack-3.6.0/src/vstack/_templates/instructions/terraform/template.md +55 -0
  21. vstack-3.6.0/src/vstack/_templates/instructions/terragrunt/template.md +52 -0
  22. vstack-3.6.0/src/vstack/_templates/instructions/testing/template.md +38 -0
  23. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/typescript/template.md +4 -4
  24. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/api-design-review/config.yaml +0 -1
  25. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/api-design-review/template.md +2 -2
  26. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/architecture-risk/config.yaml +0 -1
  27. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/architecture-risk/template.md +1 -1
  28. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/artifact-integrity/config.yaml +0 -1
  29. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/artifact-integrity/template.md +7 -7
  30. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/ci-triage/config.yaml +0 -1
  31. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/dependency-audit/config.yaml +0 -1
  32. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/dependency-audit/template.md +5 -5
  33. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/incident-timeline/config.yaml +0 -1
  34. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/migration-plan/config.yaml +0 -1
  35. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/migration-safety/config.yaml +0 -1
  36. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/migration-safety/template.md +1 -1
  37. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/ops-readiness/config.yaml +0 -1
  38. {vstack-3.5.2/src/vstack/_templates/prompts/code-review → vstack-3.6.0/src/vstack/_templates/prompts/quick-review}/config.yaml +1 -2
  39. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/release-check/config.yaml +0 -1
  40. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/repo-assessment/config.yaml +0 -1
  41. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/repo-assessment/template.md +6 -8
  42. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/template-impact/config.yaml +0 -1
  43. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/test-gaps/config.yaml +0 -1
  44. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/upgrade-plan/config.yaml +0 -1
  45. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/workflow-check/config.yaml +0 -1
  46. vstack-3.6.0/src/vstack/_templates/skills/ask/config.yaml +17 -0
  47. vstack-3.6.0/src/vstack/_templates/skills/ask/template.md +91 -0
  48. vstack-3.6.0/src/vstack/_templates/skills/explore/config.yaml +18 -0
  49. vstack-3.6.0/src/vstack/_templates/skills/explore/template.md +116 -0
  50. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/space-setup/template.md +1 -1
  51. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/constants.py +2 -1
  52. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/init.py +172 -9
  53. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/parser.py +8 -0
  54. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/hooks/generator.py +1 -1
  55. vstack-3.5.2/src/vstack/_templates/agents/_partials/stage-report-contract.md +0 -10
  56. vstack-3.5.2/src/vstack/_templates/instructions/git/template.md +0 -36
  57. vstack-3.5.2/src/vstack/_templates/instructions/markdown/template.md +0 -46
  58. vstack-3.5.2/src/vstack/_templates/instructions/security/template.md +0 -37
  59. vstack-3.5.2/src/vstack/_templates/instructions/terraform/template.md +0 -55
  60. vstack-3.5.2/src/vstack/_templates/instructions/terragrunt/template.md +0 -52
  61. vstack-3.5.2/src/vstack/_templates/instructions/testing/template.md +0 -38
  62. vstack-3.5.2/src/vstack/_templates/skills/explore/config.yaml +0 -18
  63. vstack-3.5.2/src/vstack/_templates/skills/explore/template.md +0 -170
  64. {vstack-3.5.2 → vstack-3.6.0}/LICENSE +0 -0
  65. {vstack-3.5.2 → vstack-3.6.0}/README-pypi.md +0 -0
  66. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/__init__.py +0 -0
  67. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/__main__.py +0 -0
  68. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_migrations/README.md +0 -0
  69. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_migrations/v2_to_v3.yaml +0 -0
  70. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/_partials/agent-skill-boundary.md +0 -0
  71. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/architect/artifacts/adr/NNN-template.md +0 -0
  72. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/architect/artifacts/overview.md +0 -0
  73. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/architect/template.md +0 -0
  74. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/designer/artifacts/overview.md +0 -0
  75. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/designer/template.md +0 -0
  76. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/engineer/artifacts/issues/postmortem.md +0 -0
  77. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/engineer/artifacts/issues/rca.md +0 -0
  78. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/engineer/template.md +0 -0
  79. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/product/artifacts/changes/change-request.md +0 -0
  80. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/product/artifacts/issues/issue.md +0 -0
  81. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/product/artifacts/requirements.md +0 -0
  82. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/product/artifacts/roadmap.md +0 -0
  83. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/product/artifacts/vision.md +0 -0
  84. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/product/template.md +0 -0
  85. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/release/artifacts/release-summary.md +0 -0
  86. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/release/template.md +0 -0
  87. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/tester/artifacts/performance-baseline.md +0 -0
  88. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/tester/artifacts/security-report.md +0 -0
  89. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/tester/artifacts/test-report.md +0 -0
  90. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/agents/tester/template.md +0 -0
  91. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/hooks/agent-call-audit/hook.yaml +0 -0
  92. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/hooks/log-retention-cleanup/hook.yaml +0 -0
  93. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/hooks/post-commit-security-scan/hook.yaml +0 -0
  94. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/hooks/post-edit-format/hook.yaml +0 -0
  95. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/hooks/post-edit-markdown-quality/hook.yaml +0 -0
  96. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/hooks/pre-tool-safety-gate/hook.yaml +0 -0
  97. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/hooks/session-audit/hook.yaml +0 -0
  98. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/git/config.yaml +0 -0
  99. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/helm/config.yaml +0 -0
  100. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/java/config.yaml +0 -0
  101. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/k8s/config.yaml +0 -0
  102. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/markdown/config.yaml +0 -0
  103. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/python/config.yaml +0 -0
  104. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/rancher/config.yaml +0 -0
  105. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/security/config.yaml +0 -0
  106. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/terraform/config.yaml +0 -0
  107. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/terragrunt/config.yaml +0 -0
  108. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/testing/config.yaml +0 -0
  109. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/instructions/typescript/config.yaml +0 -0
  110. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/project/.vstack/config.yaml +0 -0
  111. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/ci-triage/template.md +0 -0
  112. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/incident-timeline/template.md +0 -0
  113. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/migration-plan/template.md +0 -0
  114. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/ops-readiness/template.md +0 -0
  115. {vstack-3.5.2/src/vstack/_templates/prompts/code-review → vstack-3.6.0/src/vstack/_templates/prompts/quick-review}/template.md +0 -0
  116. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/release-check/template.md +0 -0
  117. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/template-impact/template.md +0 -0
  118. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/test-gaps/template.md +0 -0
  119. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/upgrade-plan/template.md +0 -0
  120. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/prompts/workflow-check/template.md +0 -0
  121. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/_partials/base-branch.md +0 -0
  122. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/_partials/observability-checklist.md +0 -0
  123. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/_partials/run-tests.md +0 -0
  124. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/_partials/skill-context.md +0 -0
  125. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/adr/config.yaml +0 -0
  126. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/adr/template.md +0 -0
  127. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/analyse/config.yaml +0 -0
  128. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/analyse/template.md +0 -0
  129. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/architecture/config.yaml +0 -0
  130. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/architecture/template.md +0 -0
  131. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/aws-cli/config.yaml +0 -0
  132. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/aws-cli/template.md +0 -0
  133. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/cicd/config.yaml +0 -0
  134. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/cicd/template.md +0 -0
  135. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/cloudformation/config.yaml +0 -0
  136. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/cloudformation/template.md +0 -0
  137. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/code-review/config.yaml +0 -0
  138. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/code-review/template.md +0 -0
  139. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/codeql/config.yaml +0 -0
  140. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/codeql/template.md +0 -0
  141. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/concise/config.yaml +0 -0
  142. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/concise/template.md +0 -0
  143. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/consult/config.yaml +0 -0
  144. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/consult/template.md +0 -0
  145. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/container/config.yaml +0 -0
  146. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/container/template.md +0 -0
  147. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/conventional-commit/config.yaml +0 -0
  148. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/conventional-commit/template.md +0 -0
  149. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/copilot-ops/config.yaml +0 -0
  150. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/copilot-ops/template.md +0 -0
  151. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/debug/config.yaml +0 -0
  152. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/debug/template.md +0 -0
  153. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/dependabot/config.yaml +0 -0
  154. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/dependabot/template.md +0 -0
  155. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/dependency/config.yaml +0 -0
  156. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/dependency/template.md +0 -0
  157. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/design/config.yaml +0 -0
  158. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/design/template.md +0 -0
  159. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/docs/config.yaml +0 -0
  160. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/docs/template.md +0 -0
  161. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/gdpr/config.yaml +0 -0
  162. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/gdpr/template.md +0 -0
  163. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/gh-issues/config.yaml +0 -0
  164. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/gh-issues/template.md +0 -0
  165. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/gh-release/config.yaml +0 -0
  166. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/gh-release/template.md +0 -0
  167. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/guardrails/config.yaml +0 -0
  168. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/guardrails/template.md +0 -0
  169. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/helm/config.yaml +0 -0
  170. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/helm/template.md +0 -0
  171. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/incident/config.yaml +0 -0
  172. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/incident/template.md +0 -0
  173. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/inspect/config.yaml +0 -0
  174. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/inspect/template.md +0 -0
  175. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/k8s/config.yaml +0 -0
  176. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/k8s/template.md +0 -0
  177. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/migrate/config.yaml +0 -0
  178. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/migrate/template.md +0 -0
  179. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/onboard/config.yaml +0 -0
  180. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/onboard/template.md +0 -0
  181. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/openapi/config.yaml +0 -0
  182. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/openapi/template.md +0 -0
  183. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/performance/config.yaml +0 -0
  184. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/performance/template.md +0 -0
  185. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/postmortem/config.yaml +0 -0
  186. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/postmortem/template.md +0 -0
  187. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/pr/config.yaml +0 -0
  188. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/pr/template.md +0 -0
  189. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/rancher/config.yaml +0 -0
  190. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/rancher/template.md +0 -0
  191. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/rca/config.yaml +0 -0
  192. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/rca/template.md +0 -0
  193. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/refactor/config.yaml +0 -0
  194. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/refactor/template.md +0 -0
  195. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/release-notes/config.yaml +0 -0
  196. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/release-notes/template.md +0 -0
  197. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/requirements/config.yaml +0 -0
  198. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/requirements/template.md +0 -0
  199. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/secret-scan/config.yaml +0 -0
  200. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/secret-scan/template.md +0 -0
  201. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/security/config.yaml +0 -0
  202. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/security/template.md +0 -0
  203. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/space-setup/config.yaml +0 -0
  204. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/terraform/config.yaml +0 -0
  205. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/terraform/template.md +0 -0
  206. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/terragrunt/config.yaml +0 -0
  207. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/terragrunt/template.md +0 -0
  208. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/threat-model/config.yaml +0 -0
  209. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/threat-model/template.md +0 -0
  210. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/verify/config.yaml +0 -0
  211. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/verify/template.md +0 -0
  212. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/vision/config.yaml +0 -0
  213. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/_templates/skills/vision/template.md +0 -0
  214. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/agents/__init__.py +0 -0
  215. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/agents/config.py +0 -0
  216. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/agents/constants.py +0 -0
  217. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/agents/generator.py +0 -0
  218. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/artifacts/__init__.py +0 -0
  219. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/artifacts/config.py +0 -0
  220. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/artifacts/constants.py +0 -0
  221. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/artifacts/generator.py +0 -0
  222. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/artifacts/models.py +0 -0
  223. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/artifacts/protocol.py +0 -0
  224. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/__init__.py +0 -0
  225. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/base.py +0 -0
  226. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/catalog.py +0 -0
  227. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/install.py +0 -0
  228. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/interface.py +0 -0
  229. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/manifest.py +0 -0
  230. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/migrate.py +0 -0
  231. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/report.py +0 -0
  232. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/service.py +0 -0
  233. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/status.py +0 -0
  234. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/uninstall.py +0 -0
  235. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/validate.py +0 -0
  236. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/cli/verify.py +0 -0
  237. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/constants.py +0 -0
  238. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/frontmatter/__init__.py +0 -0
  239. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/frontmatter/parser.py +0 -0
  240. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/frontmatter/schema.py +0 -0
  241. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/frontmatter/serializer.py +0 -0
  242. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/hooks/__init__.py +0 -0
  243. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/hooks/config.py +0 -0
  244. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/hooks/constants.py +0 -0
  245. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/instructions/__init__.py +0 -0
  246. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/instructions/config.py +0 -0
  247. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/instructions/constants.py +0 -0
  248. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/instructions/generator.py +0 -0
  249. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/main.py +0 -0
  250. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/manifest/__init__.py +0 -0
  251. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/manifest/store.py +0 -0
  252. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/models.py +0 -0
  253. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/prompts/__init__.py +0 -0
  254. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/prompts/config.py +0 -0
  255. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/prompts/constants.py +0 -0
  256. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/prompts/generator.py +0 -0
  257. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/skills/__init__.py +0 -0
  258. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/skills/config.py +0 -0
  259. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/skills/constants.py +0 -0
  260. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/skills/generator.py +0 -0
  261. {vstack-3.5.2 → vstack-3.6.0}/src/vstack/skills/models.py +0 -0
  262. {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.5.2
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.5.2"
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.0.3"
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`
@@ -16,11 +16,6 @@ tools:
16
16
  - vscode
17
17
  - todo
18
18
  - agent
19
- model:
20
- - auto
21
- - Claude Sonnet 4.6 (copilot)
22
- - GPT-5.3-Codex (copilot)
23
- - Claude Opus 4.7 (copilot)
24
19
  agents:
25
20
  - product
26
21
  - architect
@@ -15,10 +15,6 @@ tools:
15
15
  - vscode
16
16
  - todo
17
17
  - agent
18
- model:
19
- - auto
20
- - Claude Sonnet 4.6 (copilot)
21
- - GPT-5.3-Codex (copilot)
22
18
  agents:
23
19
  - product
24
20
  - architect
@@ -15,10 +15,6 @@ tools:
15
15
  - vscode
16
16
  - todo
17
17
  - agent
18
- model:
19
- - auto
20
- - GPT-5.3-Codex (copilot)
21
- - Claude Sonnet 4.6 (copilot)
22
18
  agents:
23
19
  - product
24
20
  - architect
@@ -10,10 +10,6 @@ tools:
10
10
  - search
11
11
  - todo
12
12
  - agent
13
- model:
14
- - auto
15
- - GPT-5.3-Codex (copilot)
16
- - Claude Sonnet 4.6 (copilot)
17
13
  agents:
18
14
  - product
19
15
  - architect
@@ -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.
@@ -15,11 +15,6 @@ tools:
15
15
  - vscode
16
16
  - todo
17
17
  - agent
18
- model:
19
- - auto
20
- - Claude Sonnet 4.6 (copilot)
21
- - GPT-5.3-Codex (copilot)
22
- - Claude Opus 4.7 (copilot)
23
18
  agents:
24
19
  - product
25
20
  - architect
@@ -15,10 +15,6 @@ tools:
15
15
  - vscode
16
16
  - todo
17
17
  - agent
18
- model:
19
- - auto
20
- - Claude Sonnet 4.6 (copilot)
21
- - GPT-5.3-Codex (copilot)
22
18
  agents:
23
19
  - product
24
20
  - architect
@@ -14,10 +14,6 @@ tools:
14
14
  - vscode
15
15
  - todo
16
16
  - agent
17
- model:
18
- - auto
19
- - Claude Sonnet 4.6 (copilot)
20
- - GPT-5.3-Codex (copilot)
21
17
  agents:
22
18
  - product
23
19
  - architect
@@ -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 in this project.
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/type errors.
12
- 1. Guard optional blocks with conditionals to avoid emitting invalid YAML.
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 in templates; externalize where possible.
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 - chart schema, flags, and behavior evolve between releases.
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 in this project.
1
+ Use these Java conventions.
2
2
 
3
3
  ## Design and readability
4
4
 
5
- 1. Prefer explicit, domain-meaningful names over abbreviations; follow standard Java naming conventions.
6
- 1. Keep methods focused; split methods that mix parsing, I/O, and business rules.
7
- 1. Prefer immutable objects; make fields `final` by default and expose mutation only where required.
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 that may be absent; do not use it for fields or parameters.
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 using explicit precondition checks.
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 in this project.
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 both readiness and liveness probes for long-running services.
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/labels needed by observability and runtime policies.
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 - API versions and defaults change between releases.
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 in this project.
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; split functions that mix parsing, I/O, and business rules.
7
- 1. Prefer straightforward control flow over clever one-liners.
8
- 1. Raise precise exceptions with actionable error messages.
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 the task explicitly allows breaking changes.
14
- 1. Use dataclasses or TypedDict for structured data instead of untyped dicts when shape is known.
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 project dependencies.
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 in this project.
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/namespace scope for each config set.
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/project configuration changes.
26
+ 1. Keep auditability for cluster and project configuration changes.
27
27
 
28
28
  ## Operations
29
29
 
30
- 1. Validate target clusters/projects before applying any change.
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 - features and defaults vary between releases.
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/)