vstack 0.0.0__py3-none-any.whl

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 (119) hide show
  1. vstack/__init__.py +5 -0
  2. vstack/__main__.py +5 -0
  3. vstack/_templates/agents/_partials/agent-skill-boundary.md +5 -0
  4. vstack/_templates/agents/architect/config.yaml +38 -0
  5. vstack/_templates/agents/architect/template.md +84 -0
  6. vstack/_templates/agents/designer/config.yaml +36 -0
  7. vstack/_templates/agents/designer/template.md +99 -0
  8. vstack/_templates/agents/engineer/config.yaml +36 -0
  9. vstack/_templates/agents/engineer/template.md +88 -0
  10. vstack/_templates/agents/product/config.yaml +37 -0
  11. vstack/_templates/agents/product/template.md +87 -0
  12. vstack/_templates/agents/release/config.yaml +35 -0
  13. vstack/_templates/agents/release/template.md +86 -0
  14. vstack/_templates/agents/tester/config.yaml +41 -0
  15. vstack/_templates/agents/tester/template.md +90 -0
  16. vstack/_templates/instructions/git/config.yaml +4 -0
  17. vstack/_templates/instructions/git/template.md +36 -0
  18. vstack/_templates/instructions/python/config.yaml +4 -0
  19. vstack/_templates/instructions/python/template.md +37 -0
  20. vstack/_templates/prompts/code-review/config.yaml +10 -0
  21. vstack/_templates/prompts/code-review/template.md +39 -0
  22. vstack/_templates/skills/_partials/base-branch.md +8 -0
  23. vstack/_templates/skills/_partials/observability-checklist.md +36 -0
  24. vstack/_templates/skills/_partials/run-tests.md +22 -0
  25. vstack/_templates/skills/_partials/skill-context.md +21 -0
  26. vstack/_templates/skills/adr/config.yaml +17 -0
  27. vstack/_templates/skills/adr/template.md +167 -0
  28. vstack/_templates/skills/analyse/config.yaml +16 -0
  29. vstack/_templates/skills/analyse/template.md +188 -0
  30. vstack/_templates/skills/architecture/config.yaml +18 -0
  31. vstack/_templates/skills/architecture/template.md +213 -0
  32. vstack/_templates/skills/cicd/config.yaml +16 -0
  33. vstack/_templates/skills/cicd/template.md +169 -0
  34. vstack/_templates/skills/code-review/config.yaml +16 -0
  35. vstack/_templates/skills/code-review/template.md +180 -0
  36. vstack/_templates/skills/concise/config.yaml +16 -0
  37. vstack/_templates/skills/concise/template.md +128 -0
  38. vstack/_templates/skills/consult/config.yaml +18 -0
  39. vstack/_templates/skills/consult/template.md +195 -0
  40. vstack/_templates/skills/container/config.yaml +17 -0
  41. vstack/_templates/skills/container/template.md +122 -0
  42. vstack/_templates/skills/debug/config.yaml +16 -0
  43. vstack/_templates/skills/debug/template.md +247 -0
  44. vstack/_templates/skills/dependency/config.yaml +18 -0
  45. vstack/_templates/skills/dependency/template.md +293 -0
  46. vstack/_templates/skills/design/config.yaml +16 -0
  47. vstack/_templates/skills/design/template.md +231 -0
  48. vstack/_templates/skills/docs/config.yaml +17 -0
  49. vstack/_templates/skills/docs/template.md +128 -0
  50. vstack/_templates/skills/explore/config.yaml +17 -0
  51. vstack/_templates/skills/explore/template.md +188 -0
  52. vstack/_templates/skills/guardrails/config.yaml +16 -0
  53. vstack/_templates/skills/guardrails/template.md +45 -0
  54. vstack/_templates/skills/incident/config.yaml +17 -0
  55. vstack/_templates/skills/incident/template.md +293 -0
  56. vstack/_templates/skills/inspect/config.yaml +16 -0
  57. vstack/_templates/skills/inspect/template.md +105 -0
  58. vstack/_templates/skills/migrate/config.yaml +17 -0
  59. vstack/_templates/skills/migrate/template.md +298 -0
  60. vstack/_templates/skills/onboard/config.yaml +18 -0
  61. vstack/_templates/skills/onboard/template.md +289 -0
  62. vstack/_templates/skills/openapi/config.yaml +17 -0
  63. vstack/_templates/skills/openapi/template.md +382 -0
  64. vstack/_templates/skills/performance/config.yaml +15 -0
  65. vstack/_templates/skills/performance/template.md +198 -0
  66. vstack/_templates/skills/pr/config.yaml +15 -0
  67. vstack/_templates/skills/pr/template.md +108 -0
  68. vstack/_templates/skills/refactor/config.yaml +18 -0
  69. vstack/_templates/skills/refactor/template.md +283 -0
  70. vstack/_templates/skills/release-notes/config.yaml +16 -0
  71. vstack/_templates/skills/release-notes/template.md +127 -0
  72. vstack/_templates/skills/requirements/config.yaml +17 -0
  73. vstack/_templates/skills/requirements/template.md +187 -0
  74. vstack/_templates/skills/security/config.yaml +17 -0
  75. vstack/_templates/skills/security/template.md +256 -0
  76. vstack/_templates/skills/verify/config.yaml +17 -0
  77. vstack/_templates/skills/verify/template.md +201 -0
  78. vstack/_templates/skills/vision/config.yaml +19 -0
  79. vstack/_templates/skills/vision/template.md +169 -0
  80. vstack/agents/__init__.py +5 -0
  81. vstack/agents/config.py +67 -0
  82. vstack/agents/constants.py +14 -0
  83. vstack/agents/generator.py +20 -0
  84. vstack/artifacts/__init__.py +17 -0
  85. vstack/artifacts/config.py +111 -0
  86. vstack/artifacts/constants.py +6 -0
  87. vstack/artifacts/generator.py +406 -0
  88. vstack/artifacts/models.py +55 -0
  89. vstack/artifacts/protocol.py +50 -0
  90. vstack/cli/__init__.py +3 -0
  91. vstack/cli/commands.py +596 -0
  92. vstack/cli/constants.py +33 -0
  93. vstack/cli/manifest.py +166 -0
  94. vstack/cli/parser.py +156 -0
  95. vstack/constants.py +84 -0
  96. vstack/frontmatter/__init__.py +8 -0
  97. vstack/frontmatter/parser.py +272 -0
  98. vstack/frontmatter/schema.py +142 -0
  99. vstack/frontmatter/serializer.py +208 -0
  100. vstack/instructions/__init__.py +5 -0
  101. vstack/instructions/config.py +21 -0
  102. vstack/instructions/constants.py +9 -0
  103. vstack/instructions/generator.py +13 -0
  104. vstack/main.py +71 -0
  105. vstack/models.py +35 -0
  106. vstack/prompts/__init__.py +5 -0
  107. vstack/prompts/config.py +21 -0
  108. vstack/prompts/constants.py +9 -0
  109. vstack/prompts/generator.py +13 -0
  110. vstack/skills/__init__.py +5 -0
  111. vstack/skills/config.py +58 -0
  112. vstack/skills/constants.py +17 -0
  113. vstack/skills/generator.py +20 -0
  114. vstack/skills/models.py +15 -0
  115. vstack-0.0.0.dist-info/METADATA +725 -0
  116. vstack-0.0.0.dist-info/RECORD +119 -0
  117. vstack-0.0.0.dist-info/WHEEL +4 -0
  118. vstack-0.0.0.dist-info/entry_points.txt +3 -0
  119. vstack-0.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,725 @@
1
+ Metadata-Version: 2.4
2
+ Name: vstack
3
+ Version: 0.0.0
4
+ Summary: VS Code-native AI engineering workflow system for microservices, libraries, and backend systems.
5
+ License-Expression: MIT
6
+ License-File: LICENSE
7
+ Requires-Python: >=3.11,<3.15
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Programming Language :: Python :: 3.13
12
+ Classifier: Programming Language :: Python :: 3.14
13
+ Description-Content-Type: text/markdown
14
+
15
+ <div align="center">
16
+ <picture>
17
+ <source media="(prefers-color-scheme: dark)" srcset="assets/branding/vstack_dm.png">
18
+ <img src="assets/branding/vstack.png" alt="vstack" width="400">
19
+ </picture>
20
+
21
+ [![PyPI version](https://img.shields.io/pypi/v/vstack?color=0B8A6F "Latest PyPI release")](https://pypi.org/project/vstack/)
22
+ [![Python version](https://img.shields.io/badge/python-3.11--3.14-0B8A6F "Supported Python versions")](pyproject.toml)
23
+ [![Verify status](https://img.shields.io/github/actions/workflow/status/eschaar/vstack/verify.yml?branch=main&label=verify&color=1D6FA5 "Build and test status")](https://github.com/eschaar/vstack/actions/workflows/verify.yml)
24
+ [![Security checks](https://img.shields.io/github/actions/workflow/status/eschaar/vstack/security.yml?branch=main&label=security&color=B15E00 "Security workflow status")](https://github.com/eschaar/vstack/actions/workflows/security.yml)
25
+ [![Runtime: stdlib only](https://img.shields.io/badge/runtime-stdlib%20only-5B6C8F "No runtime dependencies")](pyproject.toml)
26
+ [![License: MIT](https://img.shields.io/github/license/eschaar/vstack?color=5F7A1F "Project license")](LICENSE)
27
+ [![GitHub Discussions](https://img.shields.io/badge/discussions-ask%20%26%20share-blueviolet?logo=github "GitHub Discussions")](https://github.com/eschaar/vstack/discussions)
28
+
29
+ </div>
30
+
31
+ > **The VS Code-native AI workflow system for backend engineering.**
32
+
33
+ vstack is a VS Code-native AI engineering workflow system for backend services,
34
+ libraries, APIs, and adjacent platform work. It installs structured agents,
35
+ skills, instructions, and prompts into `.github/` so GitHub Copilot Agent Mode
36
+ has a clear operating model instead of ad hoc chat prompts.
37
+
38
+ What gets built is determined by the product vision. vstack fixes the delivery
39
+ roles and boundaries: `product`, `architect`, `designer`, `engineer`, `tester`,
40
+ and `release`.
41
+
42
+ vstack started as a rethink inspired by [gstack](https://github.com/observiq/gstack),
43
+ but was rebuilt around a template-driven, VS Code-first workflow model.
44
+
45
+ ______________________________________________________________________
46
+
47
+ ## ❔ Why vstack
48
+
49
+ - Fixed role model with explicit ownership boundaries
50
+ - Template-driven install model from `src/vstack/_templates/`
51
+ - Backend-first verification, security, and release discipline
52
+ - No runtime dependencies beyond the Python standard library
53
+ - Works at project scope or globally in the VS Code user profile
54
+
55
+ ______________________________________________________________________
56
+
57
+ ## 🧭 Quick navigation
58
+
59
+ For new users:
60
+
61
+ - Quickstart
62
+ - Quick check
63
+ - Using vstack in Copilot Agent Mode
64
+ - Try it now
65
+ - Troubleshooting
66
+
67
+ For experienced users:
68
+
69
+ - Role summary
70
+ - Example usage
71
+ - All vstack CLI commands
72
+ - Workflow
73
+ - Development
74
+ - CI and Release Automation
75
+
76
+ ### ⚡ Quick paths
77
+
78
+ #### New user path (2 minutes)
79
+
80
+ ```bash
81
+ pipx install vstack
82
+ vstack install --target /path/to/your/project
83
+ vstack validate
84
+ ```
85
+
86
+ Then in Copilot Agent Mode:
87
+
88
+ ```text
89
+ @tester /verify Check this repository and summarize findings
90
+ ```
91
+
92
+ #### Power user path (30 seconds)
93
+
94
+ ```bash
95
+ vstack install --target /path/to/your/project && vstack verify --target /path/to/your/project
96
+ ```
97
+
98
+ Then jump straight into your role workflow:
99
+
100
+ ```text
101
+ @architect Review contracts in src/api/
102
+ @engineer /code-review
103
+ @tester /security
104
+ ```
105
+
106
+ ```mermaid
107
+ flowchart LR
108
+ A[Install CLI] --> B[Install artifacts per repo]
109
+ B --> C[Validate setup]
110
+ C --> D[Run @tester /verify]
111
+ D --> E[Role-based flow]
112
+ ```
113
+
114
+ ______________________________________________________________________
115
+
116
+ ## 🚀 Quickstart
117
+
118
+ > New here? Start with `pipx install ...`, then run `vstack install --target ...`, then try `@tester /verify` in Copilot Agent Mode.
119
+
120
+ ### ⚡ Install with pipx (recommended)
121
+
122
+ `pipx` installs vstack in its own isolated environment so it never conflicts with
123
+ your project dependencies. The `vstack` command is then available globally across
124
+ all projects, regardless of which virtual environment is active.
125
+
126
+ ```bash
127
+ pipx install vstack
128
+ ```
129
+
130
+ Afterwards, the `vstack` command is available everywhere:
131
+
132
+ ```bash
133
+ # Recommended: install vstack artifacts per project/repository
134
+ vstack install --target /path/to/your/project
135
+
136
+ # Optional: install profile-wide defaults for all VS Code projects
137
+ vstack install --global
138
+ ```
139
+
140
+ ### 🐙 Alternative: install directly from GitHub
141
+
142
+ To install the latest unreleased version directly from the repository without cloning:
143
+
144
+ ```bash
145
+ pipx install git+https://github.com/eschaar/vstack.git
146
+ ```
147
+
148
+ Or a specific branch or tag:
149
+
150
+ ```bash
151
+ pipx install git+https://github.com/eschaar/vstack.git@main
152
+ pipx install git+https://github.com/eschaar/vstack.git@1.3.0
153
+ ```
154
+
155
+ ### 🐙 Alternative: manual clone and install
156
+
157
+ ```bash
158
+ git clone git@github.com:eschaar/vstack.git
159
+ cd vstack
160
+ poetry install
161
+ poetry run vstack install --target /path/to/your/project
162
+ ```
163
+
164
+ ### 🤝 Team setup (recommended for teams)
165
+
166
+ Use repository-scoped installation so every contributor and CI run uses the same agent setup.
167
+
168
+ 1. Install artifacts into the repository.
169
+ 1. Commit the generated `.github/` artifacts.
170
+ 1. Require `verify.yml` and `security.yml` checks before merge.
171
+
172
+ ```bash
173
+ # From your repository root
174
+ vstack install --target /path/to/your/project
175
+ git add .github
176
+ git commit -m "chore: install vstack artifacts"
177
+ ```
178
+
179
+ Expected outcome:
180
+
181
+ - Teammates get the same agents and skills after `git pull`.
182
+ - CI validates the same repository-level setup.
183
+
184
+ ## 🚦 Quick check: Is vstack working?
185
+
186
+ After install, run:
187
+
188
+ ```bash
189
+ vstack --version
190
+ vstack validate
191
+ ```
192
+
193
+ If you see the version and no errors, your install is working.
194
+
195
+ Expected output (example):
196
+
197
+ ```text
198
+ vstack 1.3.0
199
+ Validation passed: no unresolved template tokens
200
+ ```
201
+
202
+ ### First use example
203
+
204
+ Open Copilot Agent Mode and run:
205
+
206
+ ```text
207
+ @tester /verify Check this repository and summarize findings
208
+ ```
209
+
210
+ You should receive a concise verification summary for your current workspace.
211
+
212
+ ### 💬 Using vstack in Copilot Agent Mode
213
+
214
+ For new users (first 5 minutes):
215
+
216
+ - Follow the 3-step flow below exactly once.
217
+ - Start with `@tester /verify` to confirm the setup works.
218
+
219
+ For experienced users:
220
+
221
+ - Use direct role invocation (`@product`, `@architect`, `@engineer`, etc.) for context-rich execution.
222
+ - Use direct skills (`/verify`, `/security`, `/code-review`) for focused, faster runs.
223
+
224
+ 1. **Open Copilot Chat**
225
+ - Use `Ctrl+Shift+I` (Windows/Linux) or `Cmd+Shift+I` (Mac), or click the Copilot icon in the sidebar.
226
+ 1. **Switch to Agent Mode**
227
+ - In the Copilot Chat panel, change the mode selector from `Ask` to `Agent`.
228
+ 1. **Invoke a role agent**
229
+ - Type e.g.:
230
+ ```text
231
+ @product Review my plan for a payments service
232
+ @architect Review the API contracts in src/api/
233
+ @tester /security Audit the authentication module
234
+ ```
235
+ - The `@role` prefix selects the corresponding agent. You can add a skill command (e.g. `/security`) after the agent for a focused procedure.
236
+
237
+ **How it works:**
238
+
239
+ - When you use `@role` (e.g. `@tester`), the agent loads all relevant skills and instructions for that role. Skills are discovered automatically and routed by the agent based on your request.
240
+ - If you use only a skill (e.g. `/verify`), a prompt, or an instruction (without an explicit agent), VS Code Copilot Agent Mode will use the default agent for the context (typically `@tester` for verification-related skills, or the most relevant role based on your workspace and prompt). This means you can use `/verify`, `/security`, or other skills directly, and they will work even without specifying an agent.
241
+ - Agents are not invoked automatically; you must use the `@role` prefix to select a specific agent and role context. Skills, prompts, and instructions are always auto-discovered and available in the background.
242
+ - For maximum control and clarity, always specify the agent (`@role`) when you want a particular role's framing, default behavior, or skill routing.
243
+
244
+ ______________________________________________________________________
245
+
246
+ #### 🧩 Visual: How agents, skills, instructions, and prompts interact
247
+
248
+ ```mermaid
249
+ flowchart TD
250
+ subgraph "VS Code Copilot Agent Mode"
251
+ A["User prompt"]
252
+ B["Agent (e.g. @tester)"]
253
+ C["Skills (e.g. /verify, /security)"]
254
+ D["Instructions"]
255
+ E["Prompts"]
256
+ end
257
+ A --> B
258
+ B --> C
259
+ B --> D
260
+ B --> E
261
+ C -.-> B
262
+ E -.-> B
263
+ D -.-> B
264
+ ```
265
+
266
+ **Legend:**
267
+
268
+ - **Agents** (`@role`): Main entrypoint, routes and coordinates work.
269
+ - **Skills** (`/skill`): Reusable procedures, invoked by agents or directly.
270
+ - **Instructions**: Baseline policies, always loaded by agents.
271
+ - **Prompts**: Reusable prompt artifacts, used as needed.
272
+
273
+ ______________________________________________________________________
274
+
275
+ ## 🧪 Try it now
276
+
277
+ Open Copilot Agent Mode and enter:
278
+
279
+ ```text
280
+ @tester /verify Check this repo
281
+ ```
282
+
283
+ You should see a verification summary for your current project.
284
+
285
+ ______________________________________________________________________
286
+
287
+ ## 🧑‍💻 Role summary
288
+
289
+ | Role | Emoji | Invocation | Primary areas | Example invocation |
290
+ | --------- | ----- | ------------ | ------------------------------------------------------- | ------------------------------------- |
291
+ | Product | 🧑‍💼 | `@product` | Vision, requirements, onboarding, docs | `@product Review my plan` |
292
+ | Architect | 🏗️ | `@architect` | Architecture, ADRs | `@architect Review the API contracts` |
293
+ | Designer | 🎨 | `@designer` | Service design, OpenAPI, DX review | `@designer Review the OpenAPI spec` |
294
+ | Engineer | 🛠️ | `@engineer` | Implementation, debugging, refactoring, dependency work | `@engineer /code-review` |
295
+ | Tester | 🧪 | `@tester` | Verification, security, incident review, performance | `@tester /verify` |
296
+ | Release | 🚀 | `@release` | Release notes, PR creation, release gating | `@release Prepare release notes` |
297
+
298
+ ### Role-to-skill mapping
299
+
300
+ | Role | Invocation | Primary skills | Default concise mode |
301
+ | --------- | ------------ | ------------------------------------------------------- | -------------------- |
302
+ | product | `@product` | vision, requirements, onboard, docs | compact |
303
+ | architect | `@architect` | architecture, adr | normal |
304
+ | designer | `@designer` | design, openapi, consult, docs | compact |
305
+ | engineer | `@engineer` | code-review, debug, refactor, migrate, dependency, docs | compact |
306
+ | tester | `@tester` | verify, inspect, security, incident, dependency, docs | ultra |
307
+ | release | `@release` | release-notes, pr, docs | compact |
308
+
309
+ ______________________________________________________________________
310
+
311
+ > ℹ️ **Tip:** Use the `@role` prefix for full context and best results. Skills like `/verify` also work directly, but explicit roles give you more control.
312
+
313
+ ______________________________________________________________________
314
+
315
+ > 💡 **Pro tip:** Try combining agents and skills for focused tasks, e.g. `@tester /security` or `@engineer /code-review`.
316
+
317
+ ______________________________________________________________________
318
+
319
+ ## 📝 Example usage
320
+
321
+ ### Idea to release
322
+
323
+ 1. `@product` to lock requirements and success criteria.
324
+ 1. `@architect` to define service boundaries and ADRs.
325
+ 1. `@designer` to define APIs, schemas, and flows.
326
+ 1. `@engineer` to implement.
327
+ 1. `@tester` to verify behavior and risk.
328
+ 1. `@release` to prepare release artifacts and PR flow.
329
+
330
+ ### Direct skill usage
331
+
332
+ | Goal | Agent invocation | Optional direct skill |
333
+ | ------------------- | ---------------- | --------------------- |
334
+ | Requirements | `@product` | |
335
+ | Architecture review | `@architect` | |
336
+ | API design | `@designer` | |
337
+ | Code review | `@engineer` | `/code-review` |
338
+ | Verification | `@tester` | `/verify` |
339
+ | Security audit | `@tester` | `/security` |
340
+ | Performance check | `@tester` | `/performance` |
341
+
342
+ ### Subagent orchestration pattern
343
+
344
+ ```text
345
+ @product Deliver a requirements-to-release plan for a new payments service
346
+ ```
347
+
348
+ Typical downstream path: `@product` -> `@architect` -> `@designer` -> `@engineer` -> `@tester` -> `@release`.
349
+
350
+ ______________________________________________________________________
351
+
352
+ ## ❓ FAQ
353
+
354
+ **Q: Why don't I see agents in Copilot?**
355
+ A: In a specific repository, run `vstack install --target /path/to/your/project` (or run `vstack install` from the repo root), then reload VS Code. Use `--global` only when you want profile-wide defaults.
356
+
357
+ **Q: Which Python version do I need?**
358
+ A: Python 3.11–3.14 (see badges above).
359
+
360
+ **Q: How do I reset the install?**
361
+ A: For one repository, run `vstack uninstall --target /path/to/your/project` and then reinstall with `vstack install --target /path/to/your/project`. Use `--global` only for profile-wide defaults.
362
+
363
+ **Q: Where can I ask questions or give feedback?**
364
+ A: [Start a discussion or ask a question here.](https://github.com/eschaar/vstack/discussions)
365
+
366
+ ______________________________________________________________________
367
+
368
+ ## 🧹 Uninstall / Reset
369
+
370
+ To remove vstack artifacts from your project or profile, use the CLI:
371
+
372
+ ```bash
373
+ # Uninstall vstack artifacts from your current project
374
+ vstack uninstall --target /path/to/your/project
375
+
376
+ # Uninstall vstack artifacts from your global VS Code profile
377
+ vstack uninstall --global
378
+ ```
379
+
380
+ To remove vstack itself (the CLI):
381
+
382
+ ```bash
383
+ # If installed with pipx
384
+ pipx uninstall vstack
385
+
386
+ # If installed with pip in an active environment
387
+ pip uninstall vstack
388
+
389
+ # If installed from a local clone for development
390
+ rm -rf .venv
391
+ ```
392
+
393
+ You can also manually remove any leftover `.github/agents`, `.github/skills`, etc. if needed.
394
+
395
+ ## ⚡ Essential CLI commands
396
+
397
+ ```bash
398
+ vstack --version # Show vstack version
399
+ vstack validate # Validate current vstack install
400
+ vstack install --target . # Install vstack artifacts into current project
401
+ vstack install --global # Install vstack artifacts globally
402
+ vstack uninstall --target . # Uninstall vstack artifacts from current project
403
+ vstack uninstall --global # Uninstall vstack artifacts globally
404
+ ```
405
+
406
+ ______________________________________________________________________
407
+
408
+ ## 📖 All vstack CLI commands
409
+
410
+ | Command | Description |
411
+ | ------------------------------- | ---------------------------------------------------- |
412
+ | `vstack --version` | Show vstack version |
413
+ | `vstack validate` | Validate vstack install and check for issues |
414
+ | `vstack verify` | Verify source templates and/or installed output |
415
+ | `vstack verify --target DIR` | Verify installed artifacts in DIR/.github |
416
+ | `vstack verify --global` | Verify artifacts in your VS Code global profile |
417
+ | `vstack install --target DIR` | Install vstack artifacts into a project |
418
+ | `vstack install --global` | Install vstack artifacts into your VS Code profile |
419
+ | `vstack install --dry-run` | Preview install actions without writing files |
420
+ | `vstack uninstall --target DIR` | Uninstall vstack artifacts from a project |
421
+ | `vstack uninstall --global` | Uninstall vstack artifacts from your VS Code profile |
422
+ | `vstack uninstall` | Uninstall from the current directory default target |
423
+
424
+ ______________________________________________________________________
425
+
426
+ ## 🤝 How to contribute
427
+
428
+ Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines, code style, and how to get started.
429
+
430
+ ______________________________________________________________________
431
+
432
+ ## 🛠️ Troubleshooting
433
+
434
+ Quick index:
435
+ [Installation and environment](#installation-and-environment) · [Copilot Agent Mode](#copilot-agent-mode) · [CI parity and badges](#ci-parity-and-badges) · [VS Code search noise](#vs-code-search-noise)
436
+
437
+ ```mermaid
438
+ flowchart TD
439
+ A[Problem observed] --> B{Install or environment issue?}
440
+ B -->|Yes| C[Check pipx/poetry/python version]
441
+ B -->|No| D{Agents visible in Copilot?}
442
+ D -->|No| E[Run vstack install --target and reload VS Code]
443
+ D -->|Yes| F{CI mismatch or badge confusion?}
444
+ F -->|CI mismatch| G[Run make bootstrap then make check or make ci]
445
+ F -->|Badge no status| H[Verify PR-based workflow trigger]
446
+ F -->|Search noisy| I[Set search.exclude and files.watcherExclude]
447
+ C --> J[Resolved]
448
+ E --> J
449
+ G --> J
450
+ H --> J
451
+ I --> J
452
+ ```
453
+
454
+ ### Installation and environment
455
+
456
+ - Issue: `pipx: command not found`
457
+ Action: Install pipx with `pip install --user pipx`.
458
+ - Issue: `poetry: command not found`
459
+ Action: Follow the Poetry install guide at [https://python-poetry.org/docs/#installation](https://python-poetry.org/docs/#installation).
460
+ - Issue: `Python version not supported`
461
+ Action: Use Python 3.11-3.14.
462
+ - Issue: `Permission denied` during install or uninstall
463
+ Action: Check directory permissions and rerun with appropriate privileges.
464
+ - Issue: `Could not detect VS Code user data directory`
465
+ Action: Run `vstack install --global` to install into the VS Code user profile, or run `vstack install --target /path/to/your/project` to install into a specific project instead.
466
+
467
+ ### Copilot Agent Mode
468
+
469
+ - Issue: Agents do not appear in one repository
470
+ Action: Run `vstack install --target /path/to/your/project` (or run `vstack install` from that repository root), then reload VS Code.
471
+ - Issue: Agents appear in one repository but not another
472
+ Action: Install per repository with `vstack install --target ...` in each repo, or use `vstack install --global` for profile-wide defaults.
473
+ - Issue: Agents still do not appear
474
+ Action: Confirm templates exist under `src/vstack/_templates/agents/`, then run `Developer: Reload Window` in VS Code.
475
+ - Issue: Agent does not execute actions
476
+ Action: Make sure Copilot is in Agent Mode, not Ask or Edit mode.
477
+
478
+ ### CI parity and badges
479
+
480
+ - Issue: Checks pass in CI but fail locally
481
+ Action: Run `make bootstrap` once per clone, then run `make check`.
482
+ - Issue: Need to mirror the CI quality gate locally
483
+ Action: Run `make ci`.
484
+ - Issue: Verify or Security badge shows no status
485
+ Action: These workflows are PR-based, so main may not always show a latest status.
486
+
487
+ ### VS Code search noise
488
+
489
+ - Issue: Search results are noisy
490
+ Action: Exclude `.venv`, `venv`, `env`, `node_modules`, `__pycache__`, `dist`, `build`, and `.git`.
491
+ - Issue: Search still feels slow or cluttered
492
+ Action: Configure both `search.exclude` and `files.watcherExclude` in VS Code settings.
493
+
494
+ ______________________________________________________________________
495
+
496
+ ## 🔄 Workflow
497
+
498
+ ```mermaid
499
+ flowchart LR
500
+ A[Product intent] --> B["@product"]
501
+ B --> C["@architect"]
502
+ C --> D["@designer"]
503
+ D --> E["@engineer"]
504
+ E --> F["@tester"]
505
+ F --> G["@release"]
506
+ B -. focused procedure .-> H["requirements or vision"]
507
+ F -. focused procedure .-> I["verify, security, performance"]
508
+ ```
509
+
510
+ The exact deliverable can be a microservice, API, package, library, app, or broader
511
+ system. The product vision defines scope; vstack defines how the work is carried.
512
+
513
+ ______________________________________________________________________
514
+
515
+ ## 🧱 Building Blocks
516
+
517
+ | Artifact type | Purpose | Typical invocation |
518
+ | ------------- | ---------------------------------------------------------- | ---------------------- |
519
+ | Agents | Main operating interface for role-based work | `@product`, `@tester` |
520
+ | Skills | Reusable task procedures | `/verify`, `/security` |
521
+ | Instructions | Baseline policy and repository guardrails | auto-loaded by context |
522
+ | Prompts | Reusable prompt artifacts where direct prompting is useful | explicit prompt use |
523
+
524
+ Boundary rule:
525
+
526
+ - Policies belong in instructions.
527
+ - Procedures belong in skills.
528
+
529
+ See [docs/design/instructions.md](docs/design/instructions.md),
530
+ [docs/design/skills.md](docs/design/skills.md), and
531
+ [docs/architecture/adr/013-instructions-vs-skills-boundary.md](docs/architecture/adr/013-instructions-vs-skills-boundary.md).
532
+
533
+ ______________________________________________________________________
534
+
535
+ ## 🧠 Model Guidance
536
+
537
+ | Use case | Recommended model floor (or higher) |
538
+ | ------------------------ | ---------------------------------------------------- |
539
+ | `@product`, `@architect` | Claude Sonnet 4.6+, GPT-5.3-Codex+, Claude Opus 4.6+ |
540
+ | `@tester`, `@engineer` | Claude Sonnet 4.6+ or GPT-5.3-Codex+ |
541
+ | `@release` | Claude Sonnet 4.6+ |
542
+ | Complex debugging | GPT-5.3-Codex+ or Claude Opus 4.6+ |
543
+ | Quick tasks | Any model with tool and agent-mode support |
544
+
545
+ Why these version floors:
546
+
547
+ - Reliable tool use and structured instruction following in Agent Mode.
548
+ - Better multi-step planning and stronger handling of long procedural prompts.
549
+ - Better compatibility with subagent-style orchestration and role handoffs.
550
+ - More stable output quality for repository-scale reviews and verification loops.
551
+
552
+ Practical cost guidance:
553
+
554
+ - Use Claude Sonnet 4.6+ as the default for most runs (best speed/cost balance).
555
+ - Use GPT-5.3-Codex+ for deep code reasoning, debugging, and implementation-heavy tasks.
556
+ - Use Claude Opus 4.6+ selectively for high-ambiguity architecture tradeoffs where the extra cost is justified.
557
+
558
+ ______________________________________________________________________
559
+
560
+ ## 💡 Practical Tips
561
+
562
+ ### Give the agent project context
563
+
564
+ ```text
565
+ /verify Please first read CONTRIBUTING.md for test commands
566
+ ```
567
+
568
+ ### Scope the agent's focus
569
+
570
+ ```text
571
+ /code-review Review changes in src/api/ only
572
+ /security Audit the authentication module in src/auth/
573
+ ```
574
+
575
+ ### Control response verbosity
576
+
577
+ Every role agent supports the `concise` skill:
578
+
579
+ ```text
580
+ /concise normal - full explanations
581
+ /concise compact - shorter prose, same technical accuracy
582
+ /concise ultra - maximum brevity
583
+ /concise status - show active mode, session override, and agent default
584
+ /concise on - alias for compact
585
+ /concise off - alias for normal
586
+ ```
587
+
588
+ The mode is session-scoped. Security warnings and destructive action prompts always
589
+ use `normal` regardless of active mode.
590
+
591
+ ### Typical workflow for a new feature
592
+
593
+ ```text
594
+ 1. /vision
595
+ 2. /architecture
596
+ 3. (implement)
597
+ 4. /verify
598
+ 5. /release
599
+ ```
600
+
601
+ ______________________________________________________________________
602
+
603
+ More info: [docs/product/roadmap.md](docs/product/roadmap.md), [docs/architecture/architecture.md](docs/architecture/architecture.md)
604
+
605
+ ______________________________________________________________________
606
+
607
+ ## 🛠️ Development
608
+
609
+ Requires **Poetry** and **Python 3.11-3.14**.
610
+
611
+ ```bash
612
+ git clone git@github.com:eschaar/vstack.git
613
+ cd vstack
614
+ poetry install
615
+ ```
616
+
617
+ ### Common commands
618
+
619
+ ```bash
620
+ make help
621
+ make bootstrap
622
+ make install
623
+ make check
624
+ make vstack-install
625
+ make ci
626
+ poetry run vstack validate
627
+ poetry run vstack install
628
+ poetry run vstack verify
629
+ make test-local
630
+ make test
631
+ make tox
632
+ make tox-all
633
+ ```
634
+
635
+ ### Multi-version local testing with pyenv
636
+
637
+ ```bash
638
+ pyenv install 3.11.14
639
+ pyenv install 3.12.12
640
+ pyenv install 3.13.12
641
+ pyenv install 3.14.3
642
+ pyenv local 3.14.3 3.13.12 3.12.12 3.11.14
643
+ ```
644
+
645
+ ### Editing templates
646
+
647
+ Source of truth is always under `src/vstack/_templates/`. Do not edit generated
648
+ files in `.github/`.
649
+
650
+ ```bash
651
+ vim src/vstack/_templates/skills/verify/template.md
652
+ vim src/vstack/_templates/agents/engineer/template.md
653
+ vim src/vstack/_templates/instructions/python/template.md
654
+ poetry run vstack validate
655
+ poetry run pytest
656
+ poetry run vstack install
657
+ ```
658
+
659
+ ______________________________________________________________________
660
+
661
+ ## 🗂️ Repository Structure
662
+
663
+ ```text
664
+ vstack/
665
+ ├── src/vstack/ ← Python package and source of truth
666
+ │ ├── artifacts/ ← generic artifact generation and metadata
667
+ │ ├── frontmatter/ ← parser, serializer, schema
668
+ │ ├── agents/ ← agent configuration and wrappers
669
+ │ ├── skills/ ← skill configuration and wrappers
670
+ │ ├── instructions/ ← instruction configuration and wrappers
671
+ │ ├── prompts/ ← prompt configuration and wrappers
672
+ │ ├── cli/ ← install, verify, uninstall, parser
673
+ │ └── _templates/ ← hand-authored templates
674
+ ├── docs/
675
+ │ ├── architecture/ ← architecture docs and ADRs
676
+ │ ├── design/ ← design, workflow, skills, instructions
677
+ │ └── product/ ← vision, requirements, roadmap
678
+ ├── tests/ ← unit and integration coverage
679
+ ├── .github/ ← generated artifacts and repository automation
680
+ ├── pyproject.toml ← packaging and tooling config
681
+ └── Makefile ← local development tasks
682
+ ```
683
+
684
+ ______________________________________________________________________
685
+
686
+ ## 🚦 CI and Release Automation
687
+
688
+ | Workflow | Trigger | Purpose |
689
+ | -------------- | ----------------------------- | ----------------------------------------------------------- |
690
+ | `qa.yml` | Push to non-main branches | fast branch feedback for format, lint, typecheck, and tests |
691
+ | `commit.yml` | Push to non-main branches | commit and branch naming policy enforcement |
692
+ | `verify.yml` | Pull request to `main` | source validation plus install/verify flow checks |
693
+ | `security.yml` | Pull request to `main` | dependency audit and secret scanning |
694
+ | `release.yml` | Merged pull request to `main` | SemVer calculation, tag, release, and distributions |
695
+
696
+ Commit policy specifics:
697
+
698
+ - Type validation is configured via `CCHK_*` variables in `.github/workflows/commit.yml`.
699
+ - Commit subject length is limited to 100 characters.
700
+ - Branch names use the `type/description` convention.
701
+ - Allowed branch types are `feature`, `bugfix`, `hotfix`, `release`, `chore`, `feat`, `fix`, `docs`, `refactor`, `perf`, `test`, `ci`, `build`, `style`, `opt`, `patch`, and `dependabot`.
702
+
703
+ Recommended branch protection for `main`:
704
+
705
+ - Require PR before merge.
706
+ - Require status checks from `verify.yml` and `security.yml`.
707
+ - Disallow force pushes and branch deletion.
708
+
709
+ ______________________________________________________________________
710
+
711
+ ## 📚 Further Reading
712
+
713
+ - [docs/architecture/architecture.md](docs/architecture/architecture.md)
714
+ - [docs/design/design.md](docs/design/design.md)
715
+ - [docs/design/workflow.md](docs/design/workflow.md)
716
+ - [docs/design/skills.md](docs/design/skills.md)
717
+ - [docs/product/roadmap.md](docs/product/roadmap.md)
718
+ - [CONTRIBUTING.md](CONTRIBUTING.md)
719
+
720
+ ______________________________________________________________________
721
+
722
+ ## 📄 License
723
+
724
+ MIT. See [LICENSE](LICENSE).
725
+