vstack 2.2.0__tar.gz → 3.1.1__tar.gz

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