vstack 3.0.0__tar.gz → 3.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. {vstack-3.0.0 → vstack-3.2.0}/PKG-INFO +154 -14
  2. {vstack-3.0.0 → vstack-3.2.0}/README-pypi.md +148 -12
  3. {vstack-3.0.0 → vstack-3.2.0}/pyproject.toml +39 -13
  4. vstack-3.2.0/src/vstack/_migrations/README.md +45 -0
  5. vstack-3.2.0/src/vstack/_migrations/v2_to_v3.yaml +39 -0
  6. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/architect/config.yaml +14 -12
  7. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/architect/template.md +14 -7
  8. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/designer/config.yaml +18 -16
  9. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/designer/template.md +18 -11
  10. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/engineer/config.yaml +15 -16
  11. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/engineer/template.md +16 -9
  12. vstack-3.2.0/src/vstack/_templates/agents/planner/config.yaml +28 -0
  13. vstack-3.2.0/src/vstack/_templates/agents/planner/template.md +103 -0
  14. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/product/config.yaml +16 -13
  15. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/product/template.md +18 -11
  16. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/release/artifacts/release-summary.md +1 -1
  17. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/release/config.yaml +12 -9
  18. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/release/template.md +20 -13
  19. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/tester/config.yaml +12 -13
  20. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/tester/template.md +17 -10
  21. vstack-3.2.0/src/vstack/_templates/hooks/log-retention-cleanup/hook.yaml +108 -0
  22. vstack-3.2.0/src/vstack/_templates/hooks/post-commit-security-scan/hook.yaml +73 -0
  23. vstack-3.2.0/src/vstack/_templates/hooks/post-edit-format/hook.yaml +70 -0
  24. vstack-3.2.0/src/vstack/_templates/hooks/post-edit-markdown-quality/hook.yaml +73 -0
  25. vstack-3.2.0/src/vstack/_templates/hooks/pre-tool-safety-gate/hook.yaml +93 -0
  26. vstack-3.2.0/src/vstack/_templates/hooks/session-audit/hook.yaml +248 -0
  27. vstack-3.2.0/src/vstack/_templates/project/.vstack/config.yaml +202 -0
  28. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/adr/config.yaml +1 -0
  29. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/analyse/config.yaml +1 -0
  30. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/architecture/config.yaml +1 -0
  31. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/aws-cli/config.yaml +1 -0
  32. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/cicd/config.yaml +1 -0
  33. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/cloudformation/config.yaml +1 -0
  34. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/code-review/config.yaml +1 -0
  35. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/codeql/config.yaml +1 -0
  36. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/concise/config.yaml +1 -0
  37. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/consult/config.yaml +1 -0
  38. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/container/config.yaml +1 -0
  39. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/conventional-commit/config.yaml +1 -0
  40. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/debug/config.yaml +1 -0
  41. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/dependabot/config.yaml +1 -0
  42. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/dependency/config.yaml +1 -0
  43. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/design/config.yaml +1 -0
  44. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/docs/config.yaml +1 -0
  45. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/explore/config.yaml +1 -0
  46. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/gdpr/config.yaml +1 -0
  47. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/gh-issues/config.yaml +1 -0
  48. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/gh-release/config.yaml +1 -0
  49. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/guardrails/config.yaml +1 -0
  50. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/helm/config.yaml +1 -0
  51. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/incident/config.yaml +1 -0
  52. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/inspect/config.yaml +1 -0
  53. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/k8s/config.yaml +1 -0
  54. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/migrate/config.yaml +1 -0
  55. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/onboard/config.yaml +1 -0
  56. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/openapi/config.yaml +1 -0
  57. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/performance/config.yaml +1 -0
  58. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/postmortem/config.yaml +1 -0
  59. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/pr/config.yaml +1 -0
  60. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/rancher/config.yaml +1 -0
  61. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/rca/config.yaml +1 -0
  62. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/refactor/config.yaml +1 -0
  63. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/release-notes/config.yaml +1 -0
  64. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/requirements/config.yaml +1 -0
  65. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/secret-scan/config.yaml +1 -0
  66. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/security/config.yaml +1 -0
  67. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/terraform/config.yaml +1 -0
  68. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/terragrunt/config.yaml +1 -0
  69. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/threat-model/config.yaml +1 -0
  70. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/verify/config.yaml +1 -0
  71. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/vision/config.yaml +1 -0
  72. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/agents/config.py +1 -1
  73. vstack-3.2.0/src/vstack/agents/generator.py +424 -0
  74. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/artifacts/protocol.py +5 -4
  75. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/cli/base.py +5 -0
  76. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/cli/catalog.py +10 -0
  77. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/cli/constants.py +12 -2
  78. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/cli/init.py +127 -10
  79. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/cli/install.py +4 -3
  80. vstack-3.2.0/src/vstack/cli/interface.py +473 -0
  81. vstack-3.2.0/src/vstack/cli/migrate.py +385 -0
  82. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/cli/parser.py +31 -0
  83. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/cli/service.py +52 -4
  84. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/cli/uninstall.py +4 -8
  85. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/cli/verify.py +3 -0
  86. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/constants.py +5 -3
  87. vstack-3.2.0/src/vstack/frontmatter/parser.py +98 -0
  88. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/frontmatter/serializer.py +34 -3
  89. vstack-3.2.0/src/vstack/hooks/__init__.py +5 -0
  90. vstack-3.2.0/src/vstack/hooks/config.py +22 -0
  91. vstack-3.2.0/src/vstack/hooks/constants.py +10 -0
  92. vstack-3.2.0/src/vstack/hooks/generator.py +339 -0
  93. vstack-3.2.0/src/vstack/manifest/__init__.py +71 -0
  94. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/manifest/store.py +35 -40
  95. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/skills/config.py +2 -0
  96. vstack-3.2.0/src/vstack/utils.py +20 -0
  97. vstack-3.0.0/src/vstack/_templates/project/.vstack/config.yaml +0 -28
  98. vstack-3.0.0/src/vstack/agents/generator.py +0 -194
  99. vstack-3.0.0/src/vstack/cli/helpers.py +0 -8
  100. vstack-3.0.0/src/vstack/cli/interface.py +0 -196
  101. vstack-3.0.0/src/vstack/cli/registry.py +0 -15
  102. vstack-3.0.0/src/vstack/frontmatter/parser.py +0 -272
  103. vstack-3.0.0/src/vstack/manifest/__init__.py +0 -25
  104. {vstack-3.0.0 → vstack-3.2.0}/LICENSE +0 -0
  105. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/__init__.py +0 -0
  106. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/__main__.py +0 -0
  107. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/_partials/agent-skill-boundary.md +0 -0
  108. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/architect/artifacts/adr/NNN-template.md +0 -0
  109. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/architect/artifacts/overview.md +0 -0
  110. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/designer/artifacts/overview.md +0 -0
  111. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/engineer/artifacts/issues/postmortem.md +0 -0
  112. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/engineer/artifacts/issues/rca.md +0 -0
  113. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/product/artifacts/changes/change-request.md +0 -0
  114. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/product/artifacts/issues/issue.md +0 -0
  115. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/product/artifacts/requirements.md +0 -0
  116. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/product/artifacts/roadmap.md +0 -0
  117. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/product/artifacts/vision.md +0 -0
  118. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/tester/artifacts/performance-baseline.md +0 -0
  119. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/tester/artifacts/security-report.md +0 -0
  120. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/agents/tester/artifacts/test-report.md +0 -0
  121. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/git/config.yaml +0 -0
  122. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/git/template.md +0 -0
  123. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/helm/config.yaml +0 -0
  124. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/helm/template.md +0 -0
  125. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/java/config.yaml +0 -0
  126. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/java/template.md +0 -0
  127. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/k8s/config.yaml +0 -0
  128. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/k8s/template.md +0 -0
  129. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/markdown/config.yaml +0 -0
  130. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/markdown/template.md +0 -0
  131. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/python/config.yaml +0 -0
  132. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/python/template.md +0 -0
  133. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/rancher/config.yaml +0 -0
  134. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/rancher/template.md +0 -0
  135. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/security/config.yaml +0 -0
  136. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/security/template.md +0 -0
  137. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/terraform/config.yaml +0 -0
  138. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/terraform/template.md +0 -0
  139. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/terragrunt/config.yaml +0 -0
  140. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/terragrunt/template.md +0 -0
  141. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/testing/config.yaml +0 -0
  142. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/testing/template.md +0 -0
  143. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/typescript/config.yaml +0 -0
  144. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/instructions/typescript/template.md +0 -0
  145. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/prompts/api-design-review/config.yaml +0 -0
  146. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/prompts/api-design-review/template.md +0 -0
  147. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/prompts/architecture-risk/config.yaml +0 -0
  148. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/prompts/architecture-risk/template.md +0 -0
  149. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/prompts/code-review/config.yaml +0 -0
  150. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/prompts/code-review/template.md +0 -0
  151. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/prompts/dependency-audit/config.yaml +0 -0
  152. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/prompts/dependency-audit/template.md +0 -0
  153. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/prompts/incident-timeline/config.yaml +0 -0
  154. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/prompts/incident-timeline/template.md +0 -0
  155. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/prompts/migration-safety/config.yaml +0 -0
  156. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/prompts/migration-safety/template.md +0 -0
  157. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/prompts/release-readiness/config.yaml +0 -0
  158. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/prompts/release-readiness/template.md +0 -0
  159. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/_partials/base-branch.md +0 -0
  160. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/_partials/observability-checklist.md +0 -0
  161. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/_partials/run-tests.md +0 -0
  162. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/_partials/skill-context.md +0 -0
  163. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/adr/template.md +0 -0
  164. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/analyse/template.md +0 -0
  165. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/architecture/template.md +0 -0
  166. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/aws-cli/template.md +0 -0
  167. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/cicd/template.md +0 -0
  168. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/cloudformation/template.md +0 -0
  169. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/code-review/template.md +0 -0
  170. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/codeql/template.md +0 -0
  171. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/concise/template.md +0 -0
  172. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/consult/template.md +0 -0
  173. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/container/template.md +0 -0
  174. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/conventional-commit/template.md +0 -0
  175. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/debug/template.md +0 -0
  176. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/dependabot/template.md +0 -0
  177. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/dependency/template.md +0 -0
  178. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/design/template.md +0 -0
  179. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/docs/template.md +0 -0
  180. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/explore/template.md +0 -0
  181. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/gdpr/template.md +0 -0
  182. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/gh-issues/template.md +0 -0
  183. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/gh-release/template.md +0 -0
  184. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/guardrails/template.md +0 -0
  185. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/helm/template.md +0 -0
  186. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/incident/template.md +0 -0
  187. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/inspect/template.md +0 -0
  188. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/k8s/template.md +0 -0
  189. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/migrate/template.md +0 -0
  190. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/onboard/template.md +0 -0
  191. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/openapi/template.md +0 -0
  192. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/performance/template.md +0 -0
  193. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/postmortem/template.md +0 -0
  194. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/pr/template.md +0 -0
  195. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/rancher/template.md +0 -0
  196. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/rca/template.md +0 -0
  197. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/refactor/template.md +0 -0
  198. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/release-notes/template.md +0 -0
  199. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/requirements/template.md +0 -0
  200. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/secret-scan/template.md +0 -0
  201. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/security/template.md +0 -0
  202. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/terraform/template.md +0 -0
  203. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/terragrunt/template.md +0 -0
  204. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/threat-model/template.md +0 -0
  205. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/verify/template.md +0 -0
  206. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/_templates/skills/vision/template.md +0 -0
  207. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/agents/__init__.py +0 -0
  208. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/agents/constants.py +0 -0
  209. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/artifacts/__init__.py +0 -0
  210. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/artifacts/config.py +0 -0
  211. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/artifacts/constants.py +0 -0
  212. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/artifacts/generator.py +0 -0
  213. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/artifacts/models.py +0 -0
  214. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/cli/__init__.py +0 -0
  215. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/cli/manifest.py +0 -0
  216. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/cli/report.py +0 -0
  217. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/cli/status.py +0 -0
  218. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/cli/validate.py +0 -0
  219. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/frontmatter/__init__.py +0 -0
  220. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/frontmatter/schema.py +0 -0
  221. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/instructions/__init__.py +0 -0
  222. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/instructions/config.py +0 -0
  223. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/instructions/constants.py +0 -0
  224. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/instructions/generator.py +0 -0
  225. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/main.py +0 -0
  226. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/models.py +0 -0
  227. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/prompts/__init__.py +0 -0
  228. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/prompts/config.py +0 -0
  229. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/prompts/constants.py +0 -0
  230. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/prompts/generator.py +0 -0
  231. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/skills/__init__.py +0 -0
  232. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/skills/constants.py +0 -0
  233. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/skills/generator.py +0 -0
  234. {vstack-3.0.0 → vstack-3.2.0}/src/vstack/skills/models.py +0 -0
@@ -1,11 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vstack
3
- Version: 3.0.0
3
+ Version: 3.2.0
4
4
  Summary: VS Code-native AI engineering workflow system for microservices, libraries, and backend systems.
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
7
- Keywords: github-copilot,vscode,ai-workflows,developer-tools,devx,engineering-workflow,copilot-agent-mode,backend,microservices,api,workflow-automation,release-engineering
7
+ Keywords: github-copilot,vscode,ai-workflows,developer-tools,devx,engineering-workflow,copilot-agent-mode,backend,microservices,api,workflow-automation,release-engineering,agentic-workflow,agentic-ai,ai-agent,llm,llm-agents,prompt-engineering,code-generation,scaffolding,cli,agents
8
8
  Requires-Python: >=3.11,<3.15
9
+ Classifier: Development Status :: 4 - Beta
9
10
  Classifier: License :: OSI Approved :: MIT License
10
11
  Classifier: Programming Language :: Python :: 3
11
12
  Classifier: Programming Language :: Python :: 3.11
@@ -15,7 +16,10 @@ Classifier: Programming Language :: Python :: 3.14
15
16
  Classifier: Environment :: Console
16
17
  Classifier: Intended Audience :: Developers
17
18
  Classifier: Topic :: Software Development :: Build Tools
19
+ Classifier: Topic :: Software Development :: Code Generators
18
20
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
+ Classifier: Topic :: Utilities
22
+ Requires-Dist: pyyaml (>=6.0)
19
23
  Project-URL: Changelog, https://github.com/eschaar/vstack/blob/main/CHANGELOG.md
20
24
  Project-URL: Documentation, https://github.com/eschaar/vstack/blob/main/README.md
21
25
  Project-URL: Discussions, https://github.com/eschaar/vstack/discussions
@@ -33,7 +37,7 @@ Description-Content-Type: text/markdown
33
37
  [![Python version](https://img.shields.io/badge/python-3.11--3.14-0B8A6F)](https://github.com/eschaar/vstack/blob/main/pyproject.toml)
34
38
  [![Verify status](https://img.shields.io/github/actions/workflow/status/eschaar/vstack/verify.yml?label=verify&color=1D6FA5)](https://github.com/eschaar/vstack/actions/workflows/verify.yml)
35
39
  [![Security checks](https://img.shields.io/github/actions/workflow/status/eschaar/vstack/security.yml?label=security&color=B15E00)](https://github.com/eschaar/vstack/actions/workflows/security.yml)
36
- [![Runtime: stdlib only](https://img.shields.io/badge/runtime-stdlib%20only-5B6C8F)](https://github.com/eschaar/vstack/blob/main/pyproject.toml)
40
+ [![Runtime: PyYAML](https://img.shields.io/badge/runtime-PyYAML-5B6C8F)](https://github.com/eschaar/vstack/blob/main/pyproject.toml)
37
41
  [![License: MIT](https://img.shields.io/github/license/eschaar/vstack?color=5F7A1F)](https://github.com/eschaar/vstack/blob/main/LICENSE)
38
42
  [![GitHub Discussions](https://img.shields.io/badge/discussions-ask%20%26%20share-blueviolet?logo=github)](https://github.com/eschaar/vstack/discussions)
39
43
 
@@ -41,7 +45,7 @@ The VS Code-native AI workflow system for backend engineering.
41
45
 
42
46
  vstack installs structured agents, skills, instructions, and prompts into `.github/` so GitHub Copilot Agent Mode can run repeatable backend workflows with clear role boundaries.
43
47
 
44
- It provides a fixed role model for end-to-end software delivery: `product`, `architect`, `designer`, `engineer`, `tester`, and `release`.
48
+ It provides six delivery roles for end-to-end software work: `product`, `architect`, `designer`, `engineer`, `tester`, and `release`, coordinated by `planner`.
45
49
 
46
50
  ## Best for
47
51
 
@@ -51,10 +55,10 @@ It provides a fixed role model for end-to-end software delivery: `product`, `arc
51
55
 
52
56
  ## What you get
53
57
 
54
- - Fixed role model: `product`, `architect`, `designer`, `engineer`, `tester`, `release`
58
+ - Fixed role model: six delivery roles plus a planner coordinator
55
59
  - Template-driven install model from `src/vstack/_templates/`
56
60
  - Backend-first verification, security, and release discipline
57
- - Standard-library-only runtime dependencies
61
+ - One runtime dependency: PyYAML
58
62
 
59
63
  ## Building blocks
60
64
 
@@ -80,16 +84,23 @@ VS Code command palette (`Chat: Run Prompt File`) or the Copilot Chat attach but
80
84
  | `migration-safety` | Review DB migration safety, rollback, and zero-downtime |
81
85
  | `release-readiness` | Evaluate release readiness from reports and open blockers |
82
86
 
83
- ## Quick start
87
+ ## Quickstart — fresh install
84
88
 
85
89
  Install with `pipx`, then install vstack artifacts into your repository:
86
90
 
87
91
  ```bash
92
+ # Install the CLI once, globally
88
93
  pipx install vstack
89
- vstack install --target /path/to/your/project
90
- vstack validate
94
+
95
+ # Move to your repository root and run install — no --target needed
96
+ cd /path/to/your/project
97
+ vstack install # seeds .vstack/config.yaml and generates .github/ in the current directory
98
+ vstack validate # confirm no errors
91
99
  ```
92
100
 
101
+ When you omit `--target`, vstack uses the current working directory. The equivalent
102
+ explicit form is `vstack install --target /path/to/your/project`.
103
+
93
104
  Run a first task in Copilot Agent Mode:
94
105
 
95
106
  ```text
@@ -101,6 +112,57 @@ Expected result:
101
112
  - `vstack validate` reports no unresolved template tokens
102
113
  - Agent command returns a concrete verification summary for your repository
103
114
 
115
+ ## Quick upgrade
116
+
117
+ ### Patch or minor version (e.g. v3.1 → v3.2, same major)
118
+
119
+ Docs paths never change within a major version. Only `.github/` artifacts are updated.
120
+
121
+ ```bash
122
+ pipx upgrade vstack
123
+
124
+ cd /path/to/your/project
125
+ vstack init # idempotent — safe to run in CI
126
+ ```
127
+
128
+ ### Major version (e.g. v2 → v3)
129
+
130
+ Docs paths may change on a major version bump. Run `vstack migrate` before `vstack init`.
131
+
132
+ ```bash
133
+ pipx upgrade vstack
134
+
135
+ cd /path/to/your/project
136
+ vstack migrate # moves docs files to their new paths (auto-detects installed version)
137
+ vstack init # regenerates .github/ artifacts
138
+
139
+ # Only if you see "Legacy manifest schema detected" in the output above:
140
+ vstack manifest upgrade
141
+ vstack init
142
+ ```
143
+
144
+ Preview the docs moves without touching any files:
145
+
146
+ ```bash
147
+ vstack migrate --dry-run
148
+ ```
149
+
150
+ For upgrades spanning multiple major versions (e.g. v1 → v3), `vstack migrate` chains
151
+ all intermediate steps automatically. Use `--from` and `--to` to specify the range
152
+ explicitly if auto-detection from the manifest fails:
153
+
154
+ ```bash
155
+ vstack migrate --from 1 --to 3
156
+ vstack init
157
+ ```
158
+
159
+ ### Force reinstall (overwrite local edits)
160
+
161
+ ```bash
162
+ vstack install --force # overwrite all managed artifacts
163
+ vstack install --force-name agent/engineer # overwrite one specific artifact
164
+ ```
165
+
104
166
  ## Why this helps
105
167
 
106
168
  - Consistent role boundaries for planning, implementation, validation, and release
@@ -112,10 +174,17 @@ Expected result:
112
174
  ```bash
113
175
  vstack --version
114
176
  vstack validate
177
+
178
+ # Run from your repository root (--target defaults to the current directory)
179
+ vstack install
180
+ vstack init
181
+ vstack migrate
182
+ vstack manifest verify
183
+ vstack manifest status
184
+ vstack manifest upgrade
185
+
186
+ # Or specify a path explicitly
115
187
  vstack install --target /path/to/your/project
116
- vstack manifest verify --target /path/to/your/project
117
- vstack manifest status --target /path/to/your/project
118
- vstack manifest upgrade --target /path/to/your/project
119
188
  ```
120
189
 
121
190
  ## Common usage patterns
@@ -123,6 +192,11 @@ vstack manifest upgrade --target /path/to/your/project
123
192
  Repository-scoped install (recommended for teams):
124
193
 
125
194
  ```bash
195
+ # Move to your repository root and install there
196
+ cd /path/to/your/project
197
+ vstack install
198
+
199
+ # Or specify a path explicitly from any directory
126
200
  vstack install --target /path/to/your/project
127
201
  ```
128
202
 
@@ -149,15 +223,81 @@ exclude:
149
223
  If you already have agents, skills, or other files in `.github/`, run a dry-run first to see what would be preserved before committing:
150
224
 
151
225
  ```bash
152
- vstack install --dry-run --target /path/to/your/project
226
+ # Run from your repository root
227
+ vstack install --dry-run
153
228
  ```
154
229
 
155
230
  The summary lists preserved files as `type/name` selectors (e.g. `agent/engineer`). Resolve each conflict with `--force-name type/name` to overwrite, `--adopt-name type/name` to take ownership without overwriting, or `--force` to overwrite everything.
156
231
 
232
+ ## Reading `.vstack/config.yaml`
233
+
234
+ - Lines starting with `#` are comments, explanation, or example configuration and are not active.
235
+ - Only uncommented YAML keys are active configuration.
236
+ - To enable an example block, remove `#` from that block and keep valid YAML indentation.
237
+ - After any config change, run `vstack init` to apply it to generated `.github/` artifacts.
238
+
239
+ ## Workflow modes
240
+
241
+ vstack supports three workflow modes via `.vstack/config.yaml`:
242
+
243
+ ```yaml
244
+ workflow:
245
+ mode: agentic # default
246
+ ```
247
+
248
+ After changing `workflow.mode`, regenerate artifacts:
249
+
250
+ ```bash
251
+ vstack init
252
+ ```
253
+
254
+ | Mode | Behavior | Planner file | Worker handoff buttons |
255
+ | --------- | ------------------------------------------------------------ | ------------- | ---------------------- |
256
+ | `agentic` | Planner orchestrates stage progression using subagents | generated | omitted |
257
+ | `manual` | User progresses stage-by-stage manually | not generated | shown |
258
+ | `hybrid` | Both planner orchestration and manual handoffs are available | generated | shown |
259
+
260
+ Execution semantics:
261
+
262
+ - `workflow.stages` order is the canonical progression order.
263
+ - `agentic` is stage-sequential by default: planner advances one stage at a time in configured order.
264
+ - Parallelization is still possible inside a stage (independent subtasks), but cross-stage progression remains ordered.
265
+
266
+ Handoff target semantics:
267
+
268
+ - `handoffs.prompt` is the transition prompt text.
269
+ - If `handoffs.agent` is omitted, the target defaults to the next role in `workflow.stages`.
270
+ - You can set `handoffs.agent` explicitly to override that default target in `manual`/`hybrid`.
271
+ - In `agentic`, worker handoff buttons are hidden; planner controls progression.
272
+
273
+ Mode quickstart in Copilot Agent Mode:
274
+
275
+ | Mode | Start here | First prompt example |
276
+ | --------- | ------------------------ | ------------------------------------------------------- |
277
+ | `agentic` | `@planner` | `@planner Run the workflow for this repository change.` |
278
+ | `manual` | `@product` | `@product Define requirements for this change.` |
279
+ | `hybrid` | `@planner` or `@product` | `@planner Run the workflow for this repository change.` |
280
+
281
+ Usage guidance:
282
+
283
+ - Use `agentic` when you want one deterministic orchestration path.
284
+ - Use `manual` when your team prefers explicit user-controlled stage transitions.
285
+ - Use `hybrid` only when your team intentionally wants both options.
286
+
287
+ Hybrid operating rule:
288
+
289
+ - Choose one path per session (planner-led or manual handoffs) and stay on it.
290
+ - Mixing both paths in one session increases the chance of duplicate stage transitions.
291
+
292
+ Hybrid warning:
293
+
294
+ - In `hybrid`, users can click handoff buttons while a planner-led flow is also available.
295
+ - This can cause unintended progression jumps or duplicated transitions if your process assumes one strict path.
296
+
157
297
  ## Fast troubleshooting
158
298
 
159
299
  - Command not found after install: ensure your `pipx` binary path is in `PATH`
160
- - Validation error: rerun `vstack install --target ...` and then `vstack validate`
300
+ - Validation error: rerun `vstack install` from your repository root and then `vstack validate`
161
301
  - Agent results look generic: explicitly invoke a role (for example `@tester`) before a skill
162
302
 
163
303
  ## Full documentation
@@ -6,7 +6,7 @@
6
6
  [![Python version](https://img.shields.io/badge/python-3.11--3.14-0B8A6F)](https://github.com/eschaar/vstack/blob/main/pyproject.toml)
7
7
  [![Verify status](https://img.shields.io/github/actions/workflow/status/eschaar/vstack/verify.yml?label=verify&color=1D6FA5)](https://github.com/eschaar/vstack/actions/workflows/verify.yml)
8
8
  [![Security checks](https://img.shields.io/github/actions/workflow/status/eschaar/vstack/security.yml?label=security&color=B15E00)](https://github.com/eschaar/vstack/actions/workflows/security.yml)
9
- [![Runtime: stdlib only](https://img.shields.io/badge/runtime-stdlib%20only-5B6C8F)](https://github.com/eschaar/vstack/blob/main/pyproject.toml)
9
+ [![Runtime: PyYAML](https://img.shields.io/badge/runtime-PyYAML-5B6C8F)](https://github.com/eschaar/vstack/blob/main/pyproject.toml)
10
10
  [![License: MIT](https://img.shields.io/github/license/eschaar/vstack?color=5F7A1F)](https://github.com/eschaar/vstack/blob/main/LICENSE)
11
11
  [![GitHub Discussions](https://img.shields.io/badge/discussions-ask%20%26%20share-blueviolet?logo=github)](https://github.com/eschaar/vstack/discussions)
12
12
 
@@ -14,7 +14,7 @@ The VS Code-native AI workflow system for backend engineering.
14
14
 
15
15
  vstack installs structured agents, skills, instructions, and prompts into `.github/` so GitHub Copilot Agent Mode can run repeatable backend workflows with clear role boundaries.
16
16
 
17
- It provides a fixed role model for end-to-end software delivery: `product`, `architect`, `designer`, `engineer`, `tester`, and `release`.
17
+ It provides six delivery roles for end-to-end software work: `product`, `architect`, `designer`, `engineer`, `tester`, and `release`, coordinated by `planner`.
18
18
 
19
19
  ## Best for
20
20
 
@@ -24,10 +24,10 @@ It provides a fixed role model for end-to-end software delivery: `product`, `arc
24
24
 
25
25
  ## What you get
26
26
 
27
- - Fixed role model: `product`, `architect`, `designer`, `engineer`, `tester`, `release`
27
+ - Fixed role model: six delivery roles plus a planner coordinator
28
28
  - Template-driven install model from `src/vstack/_templates/`
29
29
  - Backend-first verification, security, and release discipline
30
- - Standard-library-only runtime dependencies
30
+ - One runtime dependency: PyYAML
31
31
 
32
32
  ## Building blocks
33
33
 
@@ -53,16 +53,23 @@ VS Code command palette (`Chat: Run Prompt File`) or the Copilot Chat attach but
53
53
  | `migration-safety` | Review DB migration safety, rollback, and zero-downtime |
54
54
  | `release-readiness` | Evaluate release readiness from reports and open blockers |
55
55
 
56
- ## Quick start
56
+ ## Quickstart — fresh install
57
57
 
58
58
  Install with `pipx`, then install vstack artifacts into your repository:
59
59
 
60
60
  ```bash
61
+ # Install the CLI once, globally
61
62
  pipx install vstack
62
- vstack install --target /path/to/your/project
63
- vstack validate
63
+
64
+ # Move to your repository root and run install — no --target needed
65
+ cd /path/to/your/project
66
+ vstack install # seeds .vstack/config.yaml and generates .github/ in the current directory
67
+ vstack validate # confirm no errors
64
68
  ```
65
69
 
70
+ When you omit `--target`, vstack uses the current working directory. The equivalent
71
+ explicit form is `vstack install --target /path/to/your/project`.
72
+
66
73
  Run a first task in Copilot Agent Mode:
67
74
 
68
75
  ```text
@@ -74,6 +81,57 @@ Expected result:
74
81
  - `vstack validate` reports no unresolved template tokens
75
82
  - Agent command returns a concrete verification summary for your repository
76
83
 
84
+ ## Quick upgrade
85
+
86
+ ### Patch or minor version (e.g. v3.1 → v3.2, same major)
87
+
88
+ Docs paths never change within a major version. Only `.github/` artifacts are updated.
89
+
90
+ ```bash
91
+ pipx upgrade vstack
92
+
93
+ cd /path/to/your/project
94
+ vstack init # idempotent — safe to run in CI
95
+ ```
96
+
97
+ ### Major version (e.g. v2 → v3)
98
+
99
+ Docs paths may change on a major version bump. Run `vstack migrate` before `vstack init`.
100
+
101
+ ```bash
102
+ pipx upgrade vstack
103
+
104
+ cd /path/to/your/project
105
+ vstack migrate # moves docs files to their new paths (auto-detects installed version)
106
+ vstack init # regenerates .github/ artifacts
107
+
108
+ # Only if you see "Legacy manifest schema detected" in the output above:
109
+ vstack manifest upgrade
110
+ vstack init
111
+ ```
112
+
113
+ Preview the docs moves without touching any files:
114
+
115
+ ```bash
116
+ vstack migrate --dry-run
117
+ ```
118
+
119
+ For upgrades spanning multiple major versions (e.g. v1 → v3), `vstack migrate` chains
120
+ all intermediate steps automatically. Use `--from` and `--to` to specify the range
121
+ explicitly if auto-detection from the manifest fails:
122
+
123
+ ```bash
124
+ vstack migrate --from 1 --to 3
125
+ vstack init
126
+ ```
127
+
128
+ ### Force reinstall (overwrite local edits)
129
+
130
+ ```bash
131
+ vstack install --force # overwrite all managed artifacts
132
+ vstack install --force-name agent/engineer # overwrite one specific artifact
133
+ ```
134
+
77
135
  ## Why this helps
78
136
 
79
137
  - Consistent role boundaries for planning, implementation, validation, and release
@@ -85,10 +143,17 @@ Expected result:
85
143
  ```bash
86
144
  vstack --version
87
145
  vstack validate
146
+
147
+ # Run from your repository root (--target defaults to the current directory)
148
+ vstack install
149
+ vstack init
150
+ vstack migrate
151
+ vstack manifest verify
152
+ vstack manifest status
153
+ vstack manifest upgrade
154
+
155
+ # Or specify a path explicitly
88
156
  vstack install --target /path/to/your/project
89
- vstack manifest verify --target /path/to/your/project
90
- vstack manifest status --target /path/to/your/project
91
- vstack manifest upgrade --target /path/to/your/project
92
157
  ```
93
158
 
94
159
  ## Common usage patterns
@@ -96,6 +161,11 @@ vstack manifest upgrade --target /path/to/your/project
96
161
  Repository-scoped install (recommended for teams):
97
162
 
98
163
  ```bash
164
+ # Move to your repository root and install there
165
+ cd /path/to/your/project
166
+ vstack install
167
+
168
+ # Or specify a path explicitly from any directory
99
169
  vstack install --target /path/to/your/project
100
170
  ```
101
171
 
@@ -122,15 +192,81 @@ exclude:
122
192
  If you already have agents, skills, or other files in `.github/`, run a dry-run first to see what would be preserved before committing:
123
193
 
124
194
  ```bash
125
- vstack install --dry-run --target /path/to/your/project
195
+ # Run from your repository root
196
+ vstack install --dry-run
126
197
  ```
127
198
 
128
199
  The summary lists preserved files as `type/name` selectors (e.g. `agent/engineer`). Resolve each conflict with `--force-name type/name` to overwrite, `--adopt-name type/name` to take ownership without overwriting, or `--force` to overwrite everything.
129
200
 
201
+ ## Reading `.vstack/config.yaml`
202
+
203
+ - Lines starting with `#` are comments, explanation, or example configuration and are not active.
204
+ - Only uncommented YAML keys are active configuration.
205
+ - To enable an example block, remove `#` from that block and keep valid YAML indentation.
206
+ - After any config change, run `vstack init` to apply it to generated `.github/` artifacts.
207
+
208
+ ## Workflow modes
209
+
210
+ vstack supports three workflow modes via `.vstack/config.yaml`:
211
+
212
+ ```yaml
213
+ workflow:
214
+ mode: agentic # default
215
+ ```
216
+
217
+ After changing `workflow.mode`, regenerate artifacts:
218
+
219
+ ```bash
220
+ vstack init
221
+ ```
222
+
223
+ | Mode | Behavior | Planner file | Worker handoff buttons |
224
+ | --------- | ------------------------------------------------------------ | ------------- | ---------------------- |
225
+ | `agentic` | Planner orchestrates stage progression using subagents | generated | omitted |
226
+ | `manual` | User progresses stage-by-stage manually | not generated | shown |
227
+ | `hybrid` | Both planner orchestration and manual handoffs are available | generated | shown |
228
+
229
+ Execution semantics:
230
+
231
+ - `workflow.stages` order is the canonical progression order.
232
+ - `agentic` is stage-sequential by default: planner advances one stage at a time in configured order.
233
+ - Parallelization is still possible inside a stage (independent subtasks), but cross-stage progression remains ordered.
234
+
235
+ Handoff target semantics:
236
+
237
+ - `handoffs.prompt` is the transition prompt text.
238
+ - If `handoffs.agent` is omitted, the target defaults to the next role in `workflow.stages`.
239
+ - You can set `handoffs.agent` explicitly to override that default target in `manual`/`hybrid`.
240
+ - In `agentic`, worker handoff buttons are hidden; planner controls progression.
241
+
242
+ Mode quickstart in Copilot Agent Mode:
243
+
244
+ | Mode | Start here | First prompt example |
245
+ | --------- | ------------------------ | ------------------------------------------------------- |
246
+ | `agentic` | `@planner` | `@planner Run the workflow for this repository change.` |
247
+ | `manual` | `@product` | `@product Define requirements for this change.` |
248
+ | `hybrid` | `@planner` or `@product` | `@planner Run the workflow for this repository change.` |
249
+
250
+ Usage guidance:
251
+
252
+ - Use `agentic` when you want one deterministic orchestration path.
253
+ - Use `manual` when your team prefers explicit user-controlled stage transitions.
254
+ - Use `hybrid` only when your team intentionally wants both options.
255
+
256
+ Hybrid operating rule:
257
+
258
+ - Choose one path per session (planner-led or manual handoffs) and stay on it.
259
+ - Mixing both paths in one session increases the chance of duplicate stage transitions.
260
+
261
+ Hybrid warning:
262
+
263
+ - In `hybrid`, users can click handoff buttons while a planner-led flow is also available.
264
+ - This can cause unintended progression jumps or duplicated transitions if your process assumes one strict path.
265
+
130
266
  ## Fast troubleshooting
131
267
 
132
268
  - Command not found after install: ensure your `pipx` binary path is in `PATH`
133
- - Validation error: rerun `vstack install --target ...` and then `vstack validate`
269
+ - Validation error: rerun `vstack install` from your repository root and then `vstack validate`
134
270
  - Agent results look generic: explicitly invoke a role (for example `@tester`) before a skill
135
271
 
136
272
  ## Full documentation
@@ -5,7 +5,7 @@ description = "VS Code-native AI engineering workflow system for microservices,
5
5
  license = "MIT"
6
6
  readme = "README-pypi.md"
7
7
  requires-python = ">=3.11,<3.15"
8
- dependencies = []
8
+ dependencies = ["pyyaml>=6.0"]
9
9
  keywords = [
10
10
  "github-copilot",
11
11
  "vscode",
@@ -19,8 +19,19 @@ keywords = [
19
19
  "api",
20
20
  "workflow-automation",
21
21
  "release-engineering",
22
+ "agentic-workflow",
23
+ "agentic-ai",
24
+ "ai-agent",
25
+ "llm",
26
+ "llm-agents",
27
+ "prompt-engineering",
28
+ "code-generation",
29
+ "scaffolding",
30
+ "cli",
31
+ "agents",
22
32
  ]
23
33
  classifiers = [
34
+ "Development Status :: 4 - Beta",
24
35
  "License :: OSI Approved :: MIT License",
25
36
  "Programming Language :: Python :: 3",
26
37
  "Programming Language :: Python :: 3.11",
@@ -30,9 +41,11 @@ classifiers = [
30
41
  "Environment :: Console",
31
42
  "Intended Audience :: Developers",
32
43
  "Topic :: Software Development :: Build Tools",
44
+ "Topic :: Software Development :: Code Generators",
33
45
  "Topic :: Software Development :: Libraries :: Python Modules",
46
+ "Topic :: Utilities",
34
47
  ]
35
- version = "3.0.0"
48
+ version = "3.2.0"
36
49
 
37
50
  [project.urls]
38
51
  Homepage = "https://github.com/eschaar/vstack"
@@ -55,20 +68,22 @@ vstack = "vstack:main"
55
68
  packages = [{include = "vstack", from = "src"}]
56
69
  include = [
57
70
  { path = "src/vstack/_templates", format = ["sdist", "wheel"] },
71
+ { path = "src/vstack/_migrations", format = ["sdist", "wheel"] },
58
72
  ]
59
73
  # Keep the placeholder version last because the plugin may remove/re-add it in
60
74
  # PEP 621 mode, which otherwise causes noisy key reordering.
61
75
 
62
76
  [tool.poetry.requires-plugins]
63
- poetry-dynamic-versioning = { version = ">=1.0.0,<2.0.0", extras = ["plugin"] }
77
+ poetry-dynamic-versioning = { version = ">=1.10.0,<2.0.0", extras = ["plugin"] }
64
78
 
65
79
  [tool.poetry.group.dev.dependencies]
66
- pytest = ">=9.0"
67
- pytest-cov = ">=6.0"
80
+ pytest = ">=9.0.3"
81
+ pytest-cov = ">=7.1.0"
68
82
  ruff = ">=0.15.12"
69
- mypy = ">=1.20.2"
83
+ mypy = ">=2.1.0"
70
84
  pre-commit = ">=4.6.0"
71
- tox = ">=4.15"
85
+ tox = ">=4.54.0"
86
+ types-PyYAML = ">=6.0.12.20260510"
72
87
 
73
88
 
74
89
  # ---------------------------------------------------------------------------
@@ -117,12 +132,21 @@ warn_unused_ignores = true
117
132
  warn_return_any = false
118
133
  ignore_missing_imports = true
119
134
 
135
+ # ---------------------------------------------------------------------------
136
+ # pylint
137
+ # ---------------------------------------------------------------------------
138
+
139
+ [tool.pylint.main]
140
+ # Ensure src-layout imports (e.g. vstack.hooks) resolve in editor-integrated pylint runs.
141
+ init-hook = "import sys; sys.path.insert(0, 'src')"
142
+ py-version = "3.11"
143
+
120
144
  # ---------------------------------------------------------------------------
121
145
  # build system
122
146
  # ---------------------------------------------------------------------------
123
147
 
124
148
  [build-system]
125
- requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning>=1.0.0,<2.0.0"]
149
+ requires = ["poetry-core>=2.4.0", "poetry-dynamic-versioning>=1.10.0,<2.0.0"]
126
150
  build-backend = "poetry_dynamic_versioning.backend"
127
151
 
128
152
  # ---------------------------------------------------------------------------
@@ -153,7 +177,7 @@ extraPaths = ["scripts"]
153
177
  [tool.tox]
154
178
  legacy_tox_ini = """
155
179
  [tox]
156
- min_version = 4.15
180
+ min_version = 4.54.0
157
181
  env_list = py311, py312, py313, py314, lint, type
158
182
  skip_missing_interpreters = true
159
183
 
@@ -161,8 +185,9 @@ skip_missing_interpreters = true
161
185
  description = Run pytest for {env_name}
162
186
  package = skip
163
187
  deps =
164
- pytest>=9.0
165
- pytest-cov>=6.0
188
+ pytest>=9.0.3
189
+ pytest-cov>=7.1.0
190
+ pyyaml>=6.0.3
166
191
  setenv =
167
192
  PYTHONPATH = {tox_root}/src
168
193
  commands =
@@ -172,7 +197,7 @@ commands =
172
197
  description = Run ruff lint checks
173
198
  package = skip
174
199
  deps =
175
- ruff>=0.15
200
+ ruff>=0.15.12
176
201
  commands =
177
202
  ruff check src tests
178
203
 
@@ -180,7 +205,8 @@ commands =
180
205
  description = Run mypy type checks
181
206
  package = skip
182
207
  deps =
183
- mypy>=1.20
208
+ mypy>=2.1.0
209
+ types-PyYAML>=6.0.12.20260510
184
210
  commands =
185
211
  mypy src tests
186
212
  """
@@ -0,0 +1,45 @@
1
+ # vstack migration records
2
+
3
+ This directory contains machine-readable migration records for `docs/` artifact path
4
+ changes across major vstack version boundaries.
5
+
6
+ Each file covers one major version transition and is named `v{M}_to_v{N}.yaml` where
7
+ `M` is the source major version and `N` is the target major version.
8
+
9
+ These files are read by `vstack migrate` to relocate agent-owned docs files when their
10
+ paths change between major versions.
11
+
12
+ ## Usage
13
+
14
+ ```
15
+ vstack migrate [--target <dir>] [--from <major>] [--to <major>] [--dry-run]
16
+ ```
17
+
18
+ Run from the project root (or pass `--target`) after upgrading vstack to a new major
19
+ version. The command chains all necessary migration steps between the installed major
20
+ and the current package major.
21
+
22
+ | Flag | Description |
23
+ | ---------------- | --------------------------------------------------------------- |
24
+ | `--target <dir>` | Project root to migrate (default: current directory) |
25
+ | `--from <major>` | Source major version (default: read from `.vstack/vstack.json`) |
26
+ | `--to <major>` | Target major version (default: current vstack package major) |
27
+ | `--dry-run` | Print moves without touching the filesystem |
28
+
29
+ `vstack migrate` only moves files that exist at the old path; absent files are silently
30
+ skipped. It reads `items.root` from `.vstack/config.yaml` (with `artifacts.root`
31
+ as a legacy fallback) and adjusts destination paths when the project uses a custom
32
+ docs root.
33
+
34
+ ## Schema
35
+
36
+ ```yaml
37
+ from_version: "3.x" # semver range for the source version
38
+ to_version: "4.0" # first minor of the target major
39
+ moves:
40
+ - old: docs/path/old.md # path relative to project root
41
+ new: docs/path/new.md # path relative to project root
42
+ type: docs # always "docs" for this directory
43
+ notes: > # optional: human-readable explanation
44
+ Why this path changed and what to do with the old file after migration.
45
+ ```