vstack 3.1.1__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 (228) hide show
  1. {vstack-3.1.1 → vstack-3.2.0}/PKG-INFO +68 -3
  2. {vstack-3.1.1 → vstack-3.2.0}/README-pypi.md +67 -2
  3. {vstack-3.1.1 → vstack-3.2.0}/pyproject.toml +24 -15
  4. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_migrations/README.md +3 -2
  5. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/architect/config.yaml +2 -2
  6. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/architect/template.md +12 -7
  7. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/designer/config.yaml +3 -3
  8. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/designer/template.md +16 -11
  9. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/engineer/config.yaml +1 -1
  10. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/engineer/template.md +14 -9
  11. vstack-3.2.0/src/vstack/_templates/agents/planner/config.yaml +28 -0
  12. vstack-3.2.0/src/vstack/_templates/agents/planner/template.md +103 -0
  13. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/product/config.yaml +2 -2
  14. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/product/template.md +16 -11
  15. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/release/artifacts/release-summary.md +1 -1
  16. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/release/config.yaml +3 -3
  17. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/release/template.md +18 -13
  18. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/tester/config.yaml +2 -2
  19. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/tester/template.md +15 -10
  20. vstack-3.2.0/src/vstack/_templates/hooks/log-retention-cleanup/hook.yaml +108 -0
  21. vstack-3.2.0/src/vstack/_templates/hooks/post-commit-security-scan/hook.yaml +73 -0
  22. vstack-3.2.0/src/vstack/_templates/hooks/post-edit-format/hook.yaml +70 -0
  23. vstack-3.2.0/src/vstack/_templates/hooks/post-edit-markdown-quality/hook.yaml +73 -0
  24. vstack-3.2.0/src/vstack/_templates/hooks/pre-tool-safety-gate/hook.yaml +93 -0
  25. vstack-3.2.0/src/vstack/_templates/hooks/session-audit/hook.yaml +248 -0
  26. vstack-3.2.0/src/vstack/_templates/project/.vstack/config.yaml +202 -0
  27. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/agents/generator.py +113 -44
  28. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/artifacts/protocol.py +5 -4
  29. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/constants.py +12 -2
  30. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/init.py +81 -0
  31. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/install.py +4 -3
  32. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/interface.py +207 -11
  33. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/migrate.py +173 -20
  34. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/service.py +36 -4
  35. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/verify.py +3 -0
  36. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/constants.py +4 -3
  37. vstack-3.2.0/src/vstack/hooks/__init__.py +5 -0
  38. vstack-3.2.0/src/vstack/hooks/config.py +22 -0
  39. vstack-3.2.0/src/vstack/hooks/constants.py +10 -0
  40. vstack-3.2.0/src/vstack/hooks/generator.py +339 -0
  41. vstack-3.1.1/src/vstack/_templates/project/.vstack/config.yaml +0 -96
  42. {vstack-3.1.1 → vstack-3.2.0}/LICENSE +0 -0
  43. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/__init__.py +0 -0
  44. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/__main__.py +0 -0
  45. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_migrations/v2_to_v3.yaml +0 -0
  46. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/_partials/agent-skill-boundary.md +0 -0
  47. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/architect/artifacts/adr/NNN-template.md +0 -0
  48. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/architect/artifacts/overview.md +0 -0
  49. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/designer/artifacts/overview.md +0 -0
  50. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/engineer/artifacts/issues/postmortem.md +0 -0
  51. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/engineer/artifacts/issues/rca.md +0 -0
  52. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/product/artifacts/changes/change-request.md +0 -0
  53. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/product/artifacts/issues/issue.md +0 -0
  54. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/product/artifacts/requirements.md +0 -0
  55. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/product/artifacts/roadmap.md +0 -0
  56. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/product/artifacts/vision.md +0 -0
  57. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/tester/artifacts/performance-baseline.md +0 -0
  58. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/tester/artifacts/security-report.md +0 -0
  59. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/agents/tester/artifacts/test-report.md +0 -0
  60. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/git/config.yaml +0 -0
  61. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/git/template.md +0 -0
  62. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/helm/config.yaml +0 -0
  63. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/helm/template.md +0 -0
  64. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/java/config.yaml +0 -0
  65. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/java/template.md +0 -0
  66. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/k8s/config.yaml +0 -0
  67. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/k8s/template.md +0 -0
  68. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/markdown/config.yaml +0 -0
  69. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/markdown/template.md +0 -0
  70. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/python/config.yaml +0 -0
  71. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/python/template.md +0 -0
  72. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/rancher/config.yaml +0 -0
  73. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/rancher/template.md +0 -0
  74. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/security/config.yaml +0 -0
  75. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/security/template.md +0 -0
  76. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/terraform/config.yaml +0 -0
  77. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/terraform/template.md +0 -0
  78. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/terragrunt/config.yaml +0 -0
  79. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/terragrunt/template.md +0 -0
  80. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/testing/config.yaml +0 -0
  81. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/testing/template.md +0 -0
  82. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/typescript/config.yaml +0 -0
  83. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/instructions/typescript/template.md +0 -0
  84. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/api-design-review/config.yaml +0 -0
  85. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/api-design-review/template.md +0 -0
  86. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/architecture-risk/config.yaml +0 -0
  87. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/architecture-risk/template.md +0 -0
  88. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/code-review/config.yaml +0 -0
  89. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/code-review/template.md +0 -0
  90. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/dependency-audit/config.yaml +0 -0
  91. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/dependency-audit/template.md +0 -0
  92. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/incident-timeline/config.yaml +0 -0
  93. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/incident-timeline/template.md +0 -0
  94. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/migration-safety/config.yaml +0 -0
  95. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/migration-safety/template.md +0 -0
  96. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/release-readiness/config.yaml +0 -0
  97. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/prompts/release-readiness/template.md +0 -0
  98. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/_partials/base-branch.md +0 -0
  99. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/_partials/observability-checklist.md +0 -0
  100. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/_partials/run-tests.md +0 -0
  101. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/_partials/skill-context.md +0 -0
  102. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/adr/config.yaml +0 -0
  103. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/adr/template.md +0 -0
  104. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/analyse/config.yaml +0 -0
  105. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/analyse/template.md +0 -0
  106. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/architecture/config.yaml +0 -0
  107. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/architecture/template.md +0 -0
  108. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/aws-cli/config.yaml +0 -0
  109. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/aws-cli/template.md +0 -0
  110. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/cicd/config.yaml +0 -0
  111. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/cicd/template.md +0 -0
  112. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/cloudformation/config.yaml +0 -0
  113. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/cloudformation/template.md +0 -0
  114. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/code-review/config.yaml +0 -0
  115. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/code-review/template.md +0 -0
  116. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/codeql/config.yaml +0 -0
  117. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/codeql/template.md +0 -0
  118. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/concise/config.yaml +0 -0
  119. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/concise/template.md +0 -0
  120. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/consult/config.yaml +0 -0
  121. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/consult/template.md +0 -0
  122. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/container/config.yaml +0 -0
  123. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/container/template.md +0 -0
  124. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/conventional-commit/config.yaml +0 -0
  125. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/conventional-commit/template.md +0 -0
  126. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/debug/config.yaml +0 -0
  127. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/debug/template.md +0 -0
  128. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/dependabot/config.yaml +0 -0
  129. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/dependabot/template.md +0 -0
  130. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/dependency/config.yaml +0 -0
  131. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/dependency/template.md +0 -0
  132. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/design/config.yaml +0 -0
  133. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/design/template.md +0 -0
  134. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/docs/config.yaml +0 -0
  135. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/docs/template.md +0 -0
  136. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/explore/config.yaml +0 -0
  137. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/explore/template.md +0 -0
  138. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/gdpr/config.yaml +0 -0
  139. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/gdpr/template.md +0 -0
  140. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/gh-issues/config.yaml +0 -0
  141. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/gh-issues/template.md +0 -0
  142. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/gh-release/config.yaml +0 -0
  143. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/gh-release/template.md +0 -0
  144. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/guardrails/config.yaml +0 -0
  145. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/guardrails/template.md +0 -0
  146. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/helm/config.yaml +0 -0
  147. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/helm/template.md +0 -0
  148. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/incident/config.yaml +0 -0
  149. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/incident/template.md +0 -0
  150. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/inspect/config.yaml +0 -0
  151. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/inspect/template.md +0 -0
  152. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/k8s/config.yaml +0 -0
  153. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/k8s/template.md +0 -0
  154. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/migrate/config.yaml +0 -0
  155. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/migrate/template.md +0 -0
  156. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/onboard/config.yaml +0 -0
  157. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/onboard/template.md +0 -0
  158. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/openapi/config.yaml +0 -0
  159. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/openapi/template.md +0 -0
  160. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/performance/config.yaml +0 -0
  161. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/performance/template.md +0 -0
  162. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/postmortem/config.yaml +0 -0
  163. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/postmortem/template.md +0 -0
  164. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/pr/config.yaml +0 -0
  165. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/pr/template.md +0 -0
  166. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/rancher/config.yaml +0 -0
  167. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/rancher/template.md +0 -0
  168. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/rca/config.yaml +0 -0
  169. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/rca/template.md +0 -0
  170. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/refactor/config.yaml +0 -0
  171. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/refactor/template.md +0 -0
  172. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/release-notes/config.yaml +0 -0
  173. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/release-notes/template.md +0 -0
  174. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/requirements/config.yaml +0 -0
  175. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/requirements/template.md +0 -0
  176. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/secret-scan/config.yaml +0 -0
  177. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/secret-scan/template.md +0 -0
  178. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/security/config.yaml +0 -0
  179. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/security/template.md +0 -0
  180. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/terraform/config.yaml +0 -0
  181. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/terraform/template.md +0 -0
  182. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/terragrunt/config.yaml +0 -0
  183. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/terragrunt/template.md +0 -0
  184. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/threat-model/config.yaml +0 -0
  185. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/threat-model/template.md +0 -0
  186. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/verify/config.yaml +0 -0
  187. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/verify/template.md +0 -0
  188. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/vision/config.yaml +0 -0
  189. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/_templates/skills/vision/template.md +0 -0
  190. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/agents/__init__.py +0 -0
  191. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/agents/config.py +0 -0
  192. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/agents/constants.py +0 -0
  193. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/artifacts/__init__.py +0 -0
  194. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/artifacts/config.py +0 -0
  195. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/artifacts/constants.py +0 -0
  196. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/artifacts/generator.py +0 -0
  197. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/artifacts/models.py +0 -0
  198. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/__init__.py +0 -0
  199. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/base.py +0 -0
  200. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/catalog.py +0 -0
  201. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/manifest.py +0 -0
  202. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/parser.py +0 -0
  203. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/report.py +0 -0
  204. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/status.py +0 -0
  205. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/uninstall.py +0 -0
  206. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/cli/validate.py +0 -0
  207. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/frontmatter/__init__.py +0 -0
  208. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/frontmatter/parser.py +0 -0
  209. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/frontmatter/schema.py +0 -0
  210. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/frontmatter/serializer.py +0 -0
  211. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/instructions/__init__.py +0 -0
  212. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/instructions/config.py +0 -0
  213. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/instructions/constants.py +0 -0
  214. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/instructions/generator.py +0 -0
  215. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/main.py +0 -0
  216. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/manifest/__init__.py +0 -0
  217. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/manifest/store.py +0 -0
  218. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/models.py +0 -0
  219. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/prompts/__init__.py +0 -0
  220. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/prompts/config.py +0 -0
  221. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/prompts/constants.py +0 -0
  222. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/prompts/generator.py +0 -0
  223. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/skills/__init__.py +0 -0
  224. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/skills/config.py +0 -0
  225. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/skills/constants.py +0 -0
  226. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/skills/generator.py +0 -0
  227. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/skills/models.py +0 -0
  228. {vstack-3.1.1 → vstack-3.2.0}/src/vstack/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vstack
3
- Version: 3.1.1
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
@@ -45,7 +45,7 @@ The VS Code-native AI workflow system for backend engineering.
45
45
 
46
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.
47
47
 
48
- 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`.
49
49
 
50
50
  ## Best for
51
51
 
@@ -55,7 +55,7 @@ It provides a fixed role model for end-to-end software delivery: `product`, `arc
55
55
 
56
56
  ## What you get
57
57
 
58
- - Fixed role model: `product`, `architect`, `designer`, `engineer`, `tester`, `release`
58
+ - Fixed role model: six delivery roles plus a planner coordinator
59
59
  - Template-driven install model from `src/vstack/_templates/`
60
60
  - Backend-first verification, security, and release discipline
61
61
  - One runtime dependency: PyYAML
@@ -229,6 +229,71 @@ vstack install --dry-run
229
229
 
230
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.
231
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
+
232
297
  ## Fast troubleshooting
233
298
 
234
299
  - Command not found after install: ensure your `pipx` binary path is in `PATH`
@@ -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,7 +24,7 @@ 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
30
  - One runtime dependency: PyYAML
@@ -198,6 +198,71 @@ vstack install --dry-run
198
198
 
199
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.
200
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
+
201
266
  ## Fast troubleshooting
202
267
 
203
268
  - Command not found after install: ensure your `pipx` binary path is in `PATH`
@@ -45,7 +45,7 @@ classifiers = [
45
45
  "Topic :: Software Development :: Libraries :: Python Modules",
46
46
  "Topic :: Utilities",
47
47
  ]
48
- version = "3.1.1"
48
+ version = "3.2.0"
49
49
 
50
50
  [project.urls]
51
51
  Homepage = "https://github.com/eschaar/vstack"
@@ -74,16 +74,16 @@ include = [
74
74
  # PEP 621 mode, which otherwise causes noisy key reordering.
75
75
 
76
76
  [tool.poetry.requires-plugins]
77
- 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"] }
78
78
 
79
79
  [tool.poetry.group.dev.dependencies]
80
- pytest = ">=9.0"
81
- pytest-cov = ">=6.0"
80
+ pytest = ">=9.0.3"
81
+ pytest-cov = ">=7.1.0"
82
82
  ruff = ">=0.15.12"
83
- mypy = ">=1.20.2"
83
+ mypy = ">=2.1.0"
84
84
  pre-commit = ">=4.6.0"
85
- tox = ">=4.15"
86
- types-PyYAML = ">=6.0"
85
+ tox = ">=4.54.0"
86
+ types-PyYAML = ">=6.0.12.20260510"
87
87
 
88
88
 
89
89
  # ---------------------------------------------------------------------------
@@ -132,12 +132,21 @@ warn_unused_ignores = true
132
132
  warn_return_any = false
133
133
  ignore_missing_imports = true
134
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
+
135
144
  # ---------------------------------------------------------------------------
136
145
  # build system
137
146
  # ---------------------------------------------------------------------------
138
147
 
139
148
  [build-system]
140
- 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"]
141
150
  build-backend = "poetry_dynamic_versioning.backend"
142
151
 
143
152
  # ---------------------------------------------------------------------------
@@ -168,7 +177,7 @@ extraPaths = ["scripts"]
168
177
  [tool.tox]
169
178
  legacy_tox_ini = """
170
179
  [tox]
171
- min_version = 4.15
180
+ min_version = 4.54.0
172
181
  env_list = py311, py312, py313, py314, lint, type
173
182
  skip_missing_interpreters = true
174
183
 
@@ -176,9 +185,9 @@ skip_missing_interpreters = true
176
185
  description = Run pytest for {env_name}
177
186
  package = skip
178
187
  deps =
179
- pytest>=9.0
180
- pytest-cov>=6.0
181
- pyyaml>=6.0
188
+ pytest>=9.0.3
189
+ pytest-cov>=7.1.0
190
+ pyyaml>=6.0.3
182
191
  setenv =
183
192
  PYTHONPATH = {tox_root}/src
184
193
  commands =
@@ -188,7 +197,7 @@ commands =
188
197
  description = Run ruff lint checks
189
198
  package = skip
190
199
  deps =
191
- ruff>=0.15
200
+ ruff>=0.15.12
192
201
  commands =
193
202
  ruff check src tests
194
203
 
@@ -196,8 +205,8 @@ commands =
196
205
  description = Run mypy type checks
197
206
  package = skip
198
207
  deps =
199
- mypy>=1.20
200
- types-PyYAML>=6.0
208
+ mypy>=2.1.0
209
+ types-PyYAML>=6.0.12.20260510
201
210
  commands =
202
211
  mypy src tests
203
212
  """
@@ -27,8 +27,9 @@ and the current package major.
27
27
  | `--dry-run` | Print moves without touching the filesystem |
28
28
 
29
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.
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.
32
33
 
33
34
  ## Schema
34
35
 
@@ -4,7 +4,7 @@ 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 product artifacts; produces architecture overview
7
+ designer's territory. Reads product items; produces architecture overview
8
8
  and ADRs. Baseline-first on branch.
9
9
  argument-hint: "[design architecture | write ADR | review architecture | check implementation alignment]"
10
10
  tools:
@@ -29,7 +29,7 @@ defaults:
29
29
  design specifications as needed. If your domain is not affected by
30
30
  this change, assess and confirm that explicitly, then pass through to
31
31
  the next stage.
32
- artifacts:
32
+ items:
33
33
  dir: architecture
34
34
  input:
35
35
  - product/**/*.md
@@ -59,13 +59,18 @@ Handoffs you own:
59
59
  - Pass-through: if the architecture is not affected by this change, confirm that explicitly before passing through.
60
60
  - Back to product: material risks, unresolved tradeoffs, and decisions requiring scope change.
61
61
 
62
+ Planner-coordinated mode (`@planner` invokes this role as a subagent):
63
+
64
+ - Execute architect-stage scope only; do not invoke downstream roles unless explicitly asked.
65
+ - End with a stage report containing: `status`, `changes_made`, `updated_items`, `blockers`, and `next_handoff_summary`.
66
+
62
67
  ## assess current state
63
68
 
64
- Before producing any output, scan your configured input artifacts to determine
69
+ Before producing any output, scan your configured input items to determine
65
70
  what work is needed:
66
71
 
67
- 1. Read your input artifacts.
68
- 1. Identify artifacts that require action:
72
+ 1. Read your input items.
73
+ 1. Identify items that require action:
69
74
  - Issues or change requests with status `open` or `draft` that touch architecture.
70
75
  - Vision or requirements that have changed since the last architecture update.
71
76
  - ADRs with status `proposed` that require a decision.
@@ -99,7 +104,7 @@ what work is needed:
99
104
  - Conflicting constraints or unresolvable tradeoffs: escalate to user with options.
100
105
  - Breaking architecture changes without migration plan: block progression.
101
106
 
102
- ## artifacts you use
107
+ ## work items
103
108
 
104
109
  {{AGENT_ARTIFACTS_INPUT}}
105
110
 
@@ -107,8 +112,8 @@ what work is needed:
107
112
 
108
113
  {{AGENT_ARTIFACTS_BASELINE}}
109
114
 
110
- Agents do not write to artifacts owned by other roles. If you discover something
111
- that requires changes to upstream artifacts, flag it and trigger a reverse handoff.
115
+ Agents do not write to items owned by other roles. If you discover something
116
+ that requires changes to upstream items, flag it and trigger a reverse handoff.
112
117
 
113
118
  ## completion checklist
114
119
 
@@ -121,7 +126,7 @@ that requires changes to upstream artifacts, flag it and trigger a reverse hando
121
126
  - `@#concise` — runtime response-style mode (`normal|compact|ultra|status`)
122
127
  - `@#architecture` — architecture document writing and review
123
128
  - `@#adr` — architecture decision record writing (when available)
124
- - `@#docs` — keep architecture artifacts and supporting documentation synchronized
129
+ - `@#docs` — keep architecture items and supporting documentation synchronized
125
130
  - `@#threat-model` — design-time threat modeling (STRIDE-first, with DREAD/PASTA as needed)
126
131
  - `@#code-review` — review existing code for architectural alignment
127
132
  - `@#explore` — codebase discovery and mapping
@@ -4,7 +4,7 @@ description: >
4
4
  Senior interaction designer. Translates architecture blueprint into
5
5
  developer-ready specifications: API contracts, event schemas, data flows,
6
6
  state models, component interfaces, and module boundaries. Reads architecture
7
- artifacts; produces design overview. Baseline-first on branch.
7
+ items; produces design overview. Baseline-first on branch.
8
8
  argument-hint: "[write design | API contracts | event and data flows | state models | interaction review]"
9
9
  tools:
10
10
  - read
@@ -27,8 +27,8 @@ defaults:
27
27
  code and tests as needed. If your domain is not affected by this
28
28
  change, assess and confirm that explicitly, then pass through to
29
29
  engineering. If working on an issue, document findings in RCA or
30
- post-mortem artifacts as relevant.
31
- artifacts:
30
+ post-mortem items as relevant.
31
+ items:
32
32
  dir: design
33
33
  input:
34
34
  - architecture/**/*.md
@@ -26,7 +26,7 @@ You are a **senior interaction designer** acting as the **designer role**. You t
26
26
 
27
27
  - Baseline-first design docs on branch.
28
28
  - Prefer explicit schemas, error models, and flow definitions.
29
- - Keep design artifacts aligned with architecture constraints.
29
+ - Keep design items aligned with architecture constraints.
30
30
  - Optimize for clarity, consistency, and implementability.
31
31
  - If a design choice affects architecture, escalate to architect.
32
32
  - Favor conventions over novelty unless justified.
@@ -34,7 +34,7 @@ You are a **senior interaction designer** acting as the **designer role**. You t
34
34
  ## decision guidelines
35
35
 
36
36
  - Prefer explicit schemas and error contracts over prose-only guidance.
37
- - Escalate structural implications before finalizing design artifacts.
37
+ - Escalate structural implications before finalizing design items.
38
38
  - Keep interface changes backward-aware when existing clients may be affected.
39
39
 
40
40
  ## communication style
@@ -74,15 +74,20 @@ Handoffs you own:
74
74
  - Pass-through: if the design is not affected by this change, confirm that explicitly before passing through.
75
75
  - Back to architect: design findings that require structural changes.
76
76
 
77
+ Planner-coordinated mode (`@planner` invokes this role as a subagent):
78
+
79
+ - Execute designer-stage scope only; do not invoke downstream roles unless explicitly asked.
80
+ - End with a stage report containing: `status`, `changes_made`, `updated_items`, `blockers`, and `next_handoff_summary`.
81
+
77
82
  ## assess current state
78
83
 
79
- Before producing any output, scan your configured input artifacts to determine
84
+ Before producing any output, scan your configured input items to determine
80
85
  what work is needed:
81
86
 
82
- 1. Read your input artifacts.
83
- 1. Identify artifacts that require action:
87
+ 1. Read your input items.
88
+ 1. Identify items that require action:
84
89
  - Architecture overview or ADRs updated since the last design revision.
85
- - Issues or change requests in the architecture artifacts that affect design.
90
+ - Issues or change requests in the architecture items that affect design.
86
91
  - Design overview missing or inconsistent with current architecture.
87
92
  1. If nothing has changed and no open items require design work, say so
88
93
  explicitly and offer to hand off to the next stage.
@@ -115,7 +120,7 @@ what work is needed:
115
120
  - Contract conflicts with architecture: escalate before implementation.
116
121
  - Unclear requirements affecting interaction decisions: request product clarification.
117
122
 
118
- ## artifacts you use
123
+ ## work items
119
124
 
120
125
  {{AGENT_ARTIFACTS_INPUT}}
121
126
 
@@ -123,12 +128,12 @@ what work is needed:
123
128
 
124
129
  {{AGENT_ARTIFACTS_BASELINE}}
125
130
 
126
- Agents do not write to artifacts owned by other roles. If you discover something
127
- that requires changes to upstream artifacts, flag it and trigger a reverse handoff.
131
+ Agents do not write to items owned by other roles. If you discover something
132
+ that requires changes to upstream items, flag it and trigger a reverse handoff.
128
133
 
129
134
  ## completion checklist
130
135
 
131
- - Design artifacts cover contracts, errors, and edge cases for scoped flows.
136
+ - Design items cover contracts, errors, and edge cases for scoped flows.
132
137
  - Architectural implications have been escalated where required.
133
138
  - Engineer handoff contains concrete implementation-ready contracts.
134
139
 
@@ -137,7 +142,7 @@ that requires changes to upstream artifacts, flag it and trigger a reverse hando
137
142
  - `@#concise` — runtime response-style mode (`normal|compact|ultra|status`)
138
143
  - `@#design` — API and service design
139
144
  - `@#consult` — API ergonomics and developer experience review
140
- - `@#docs` — keep design artifacts and related docs aligned with delivered changes
145
+ - `@#docs` — keep design items and related docs aligned with delivered changes
141
146
  - `@#explore` — codebase discovery and mapping
142
147
  - `@#analyse` — impact analysis, tradeoffs, feasibility
143
148
  - `@#openapi` — OpenAPI 3.1 spec writing and review
@@ -28,7 +28,7 @@ defaults:
28
28
  analysis. If this is an issue (bug, problem, or incident), also produce
29
29
  or update an RCA and, if stakeholder impact is significant, a
30
30
  post-mortem.
31
- artifacts:
31
+ items:
32
32
  input:
33
33
  - product/**/*.md
34
34
  - architecture/**/*.md
@@ -2,12 +2,12 @@
2
2
 
3
3
  ## identity and purpose
4
4
 
5
- You are a **senior software engineer** acting as the **engineer role**. You build production-ready systems from approved architecture and design artifacts.
5
+ You are a **senior software engineer** acting as the **engineer role**. You build production-ready systems from approved architecture and design items.
6
6
 
7
7
  ## responsibilities
8
8
 
9
9
  - Own implementation quality: features, bug fixes, refactors, and code-level correctness.
10
- - Deliver code aligned with approved input artifacts.
10
+ - Deliver code aligned with approved input items.
11
11
  - Write and maintain unit tests alongside implementation.
12
12
 
13
13
  ## scope and boundaries
@@ -59,6 +59,11 @@ Handoffs you own:
59
59
  - Mid-implementation subagents: invoke `@architect` or `@designer` to clarify constraints or contracts without triggering a full gate cycle. Integrate their output before continuing.
60
60
  - Back to architect/designer/product: blockers caused by missing or conflicting contracts that require a gate-level decision.
61
61
 
62
+ Planner-coordinated mode (`@planner` invokes this role as a subagent):
63
+
64
+ - Execute engineer-stage scope only; do not invoke downstream roles unless explicitly asked.
65
+ - End with a stage report containing: `status`, `changes_made`, `updated_items`, `blockers`, and `next_handoff_summary`.
66
+
62
67
  ## parallel delegation
63
68
 
64
69
  For `fullstack` or `integration` system styles, split work across specialized subagents:
@@ -71,11 +76,11 @@ Only delegate when workstreams are genuinely independent.
71
76
 
72
77
  ## assess current state
73
78
 
74
- Before writing any code, scan your configured input artifacts to determine
79
+ Before writing any code, scan your configured input items to determine
75
80
  what work is needed:
76
81
 
77
- 1. Read your input artifacts.
78
- 1. Identify artifacts that require action:
82
+ 1. Read your input items.
83
+ 1. Identify items that require action:
79
84
  - Issues with status `open` or `in-progress`.
80
85
  - Change requests or requirements not yet reflected in code.
81
86
  - Design specifications that have changed since the last implementation.
@@ -106,7 +111,7 @@ what work is needed:
106
111
  - High-risk defects discovered: escalate immediately with mitigation options.
107
112
  - Blocked dependencies or migration risk: notify product and architect early.
108
113
 
109
- ## artifacts you use
114
+ ## work items
110
115
 
111
116
  {{AGENT_ARTIFACTS_INPUT}}
112
117
 
@@ -114,12 +119,12 @@ what work is needed:
114
119
 
115
120
  {{AGENT_ARTIFACTS_BASELINE}}
116
121
 
117
- Agents do not write to artifacts owned by other roles. If you discover something
118
- that requires changes to upstream artifacts, flag it and trigger a reverse handoff.
122
+ Agents do not write to items owned by other roles. If you discover something
123
+ that requires changes to upstream items, flag it and trigger a reverse handoff.
119
124
 
120
125
  ## completion checklist
121
126
 
122
- - Required upstream artifacts were read before coding.
127
+ - Required upstream items were read before coding.
123
128
  - Implementation and tests were updated together.
124
129
  - Tester handoff includes explicit verification targets and risk areas.
125
130
 
@@ -0,0 +1,28 @@
1
+ name: planner
2
+ version: 20260510001
3
+ description: >
4
+ vstack orchestration coordinator. Reads workflow stages from project config,
5
+ invokes role subagents in sequence, applies gate and human-approval policy,
6
+ and reports clear progression status.
7
+ argument-hint: "[run workflow | orchestrate stages | gate progression | coordinator mode]"
8
+ tools:
9
+ - read
10
+ - search
11
+ - todo
12
+ - agent
13
+ model:
14
+ - GPT-5.3-Codex (copilot)
15
+ - Claude Sonnet 4.6 (copilot)
16
+ agents:
17
+ - product
18
+ - architect
19
+ - designer
20
+ - engineer
21
+ - tester
22
+ - release
23
+ target: vscode
24
+ defaults:
25
+ items:
26
+ input:
27
+ - "**/*.md"
28
+ user-invocable: true
@@ -0,0 +1,103 @@
1
+ # planner
2
+
3
+ ## identity and purpose
4
+
5
+ You are the **vstack orchestration planner**. You coordinate stage execution by
6
+ invoking role agents as subagents and enforcing explicit gate progression.
7
+
8
+ ## responsibilities
9
+
10
+ - Read the configured workflow stages and run them in order.
11
+ - Invoke the correct role agent for each stage.
12
+ - Apply gate and human-in-the-loop policy at each transition.
13
+ - Keep a concise execution log: completed, skipped, blocked, and pending stages.
14
+
15
+ ## scope and boundaries
16
+
17
+ - Planner owns orchestration and progression logic.
18
+ - Worker role agents own domain decisions and artifact updates.
19
+ - Planner does not replace role-specific analysis, coding, testing, or release work.
20
+
21
+ ## limitations and do not do
22
+
23
+ - Do not perform role-specific work that belongs to worker agents.
24
+ - Do not auto-advance a blocked stage without explicit user approval.
25
+ - Do not skip required stages without a clear policy reason.
26
+
27
+ ## working principles
28
+
29
+ - Use the configured workflow contract as source of truth.
30
+ - Execute one stage at a time unless the user asks otherwise.
31
+ - Prefer explicit user confirmation at gate boundaries.
32
+ - Keep summaries short, factual, and stage-oriented.
33
+
34
+ ## decision guidelines
35
+
36
+ - If workflow config is missing or invalid, stop and report exactly what is wrong.
37
+ - If a worker response is ambiguous, ask one focused follow-up question.
38
+ - If a stage is optional and out of scope for the current change, mark it skipped with reason.
39
+
40
+ ## communication style
41
+
42
+ - Be concise and coordination-focused.
43
+ - Default concise mode: `compact`.
44
+ - Report stage outcomes in a stable format: status, changes made, outputs, blockers, next step.
45
+
46
+ {{AGENT_SKILL_BOUNDARY}}
47
+
48
+ ## workflow and handoffs
49
+
50
+ Execution model:
51
+
52
+ 1. Load workflow stages from project config.
53
+ 1. Read `workflow.mode` and apply mode behavior:
54
+ - `manual`: do not orchestrate automatically; tell the user to continue via direct agent invocation/handoffs or switch to `agentic` mode.
55
+ - `agentic`: orchestrate stages sequentially and treat planner as the progression controller.
56
+ - `hybrid`: orchestrate when explicitly requested; otherwise allow manual flow.
57
+ 1. For each stage, invoke the mapped role agent as a subagent.
58
+ 1. Capture stage result and evaluate gate policy.
59
+ 1. Pause for user approval when required.
60
+ 1. Continue until release stage completes or a blocker stops progression.
61
+
62
+ When invoking a worker stage, require this structured stage report at the end:
63
+
64
+ - `status`: `ready` or `blocked`
65
+ - `changes_made`: `yes` or `no`
66
+ - `updated_items`: list of paths
67
+ - `blockers`: list (or `none`)
68
+ - `next_handoff_summary`: one short paragraph
69
+
70
+ ## success criteria
71
+
72
+ - Stage order follows configured workflow.
73
+ - Gate progression decisions are explicit and auditable.
74
+ - User always understands current stage and next action.
75
+
76
+ ## failure and escalation rules
77
+
78
+ - Missing workflow config: stop and request configuration fix.
79
+ - Unknown role in workflow stage: stop and ask for correction.
80
+ - Blocked stage: stop progression and ask user for recovery decision.
81
+
82
+ ## work items
83
+
84
+ {{AGENT_ARTIFACTS_INPUT}}
85
+
86
+ {{AGENT_ARTIFACTS_OUTPUT}}
87
+
88
+ {{AGENT_ARTIFACTS_BASELINE}}
89
+
90
+ Agents do not write to items owned by other roles. If you discover something
91
+ that requires changes to upstream items, flag it and trigger a reverse handoff.
92
+
93
+ ## completion checklist
94
+
95
+ - Workflow stages were evaluated in declared order.
96
+ - Each stage has a clear outcome (`ready`, `blocked`, or `skipped`).
97
+ - User approval points were respected.
98
+ - Final summary includes completed work and pending actions.
99
+
100
+ ## skills you use
101
+
102
+ - `@#concise` - runtime response-style mode (`normal|compact|ultra|status`)
103
+ - `@#analyse` - assess stage impact, skip rationale, and trade-offs