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.
- vstack/__init__.py +5 -0
- vstack/__main__.py +5 -0
- vstack/_templates/agents/_partials/agent-skill-boundary.md +5 -0
- vstack/_templates/agents/architect/config.yaml +38 -0
- vstack/_templates/agents/architect/template.md +84 -0
- vstack/_templates/agents/designer/config.yaml +36 -0
- vstack/_templates/agents/designer/template.md +99 -0
- vstack/_templates/agents/engineer/config.yaml +36 -0
- vstack/_templates/agents/engineer/template.md +88 -0
- vstack/_templates/agents/product/config.yaml +37 -0
- vstack/_templates/agents/product/template.md +87 -0
- vstack/_templates/agents/release/config.yaml +35 -0
- vstack/_templates/agents/release/template.md +86 -0
- vstack/_templates/agents/tester/config.yaml +41 -0
- vstack/_templates/agents/tester/template.md +90 -0
- vstack/_templates/instructions/git/config.yaml +4 -0
- vstack/_templates/instructions/git/template.md +36 -0
- vstack/_templates/instructions/python/config.yaml +4 -0
- vstack/_templates/instructions/python/template.md +37 -0
- vstack/_templates/prompts/code-review/config.yaml +10 -0
- vstack/_templates/prompts/code-review/template.md +39 -0
- vstack/_templates/skills/_partials/base-branch.md +8 -0
- vstack/_templates/skills/_partials/observability-checklist.md +36 -0
- vstack/_templates/skills/_partials/run-tests.md +22 -0
- vstack/_templates/skills/_partials/skill-context.md +21 -0
- vstack/_templates/skills/adr/config.yaml +17 -0
- vstack/_templates/skills/adr/template.md +167 -0
- vstack/_templates/skills/analyse/config.yaml +16 -0
- vstack/_templates/skills/analyse/template.md +188 -0
- vstack/_templates/skills/architecture/config.yaml +18 -0
- vstack/_templates/skills/architecture/template.md +213 -0
- vstack/_templates/skills/cicd/config.yaml +16 -0
- vstack/_templates/skills/cicd/template.md +169 -0
- vstack/_templates/skills/code-review/config.yaml +16 -0
- vstack/_templates/skills/code-review/template.md +180 -0
- vstack/_templates/skills/concise/config.yaml +16 -0
- vstack/_templates/skills/concise/template.md +128 -0
- vstack/_templates/skills/consult/config.yaml +18 -0
- vstack/_templates/skills/consult/template.md +195 -0
- vstack/_templates/skills/container/config.yaml +17 -0
- vstack/_templates/skills/container/template.md +122 -0
- vstack/_templates/skills/debug/config.yaml +16 -0
- vstack/_templates/skills/debug/template.md +247 -0
- vstack/_templates/skills/dependency/config.yaml +18 -0
- vstack/_templates/skills/dependency/template.md +293 -0
- vstack/_templates/skills/design/config.yaml +16 -0
- vstack/_templates/skills/design/template.md +231 -0
- vstack/_templates/skills/docs/config.yaml +17 -0
- vstack/_templates/skills/docs/template.md +128 -0
- vstack/_templates/skills/explore/config.yaml +17 -0
- vstack/_templates/skills/explore/template.md +188 -0
- vstack/_templates/skills/guardrails/config.yaml +16 -0
- vstack/_templates/skills/guardrails/template.md +45 -0
- vstack/_templates/skills/incident/config.yaml +17 -0
- vstack/_templates/skills/incident/template.md +293 -0
- vstack/_templates/skills/inspect/config.yaml +16 -0
- vstack/_templates/skills/inspect/template.md +105 -0
- vstack/_templates/skills/migrate/config.yaml +17 -0
- vstack/_templates/skills/migrate/template.md +298 -0
- vstack/_templates/skills/onboard/config.yaml +18 -0
- vstack/_templates/skills/onboard/template.md +289 -0
- vstack/_templates/skills/openapi/config.yaml +17 -0
- vstack/_templates/skills/openapi/template.md +382 -0
- vstack/_templates/skills/performance/config.yaml +15 -0
- vstack/_templates/skills/performance/template.md +198 -0
- vstack/_templates/skills/pr/config.yaml +15 -0
- vstack/_templates/skills/pr/template.md +108 -0
- vstack/_templates/skills/refactor/config.yaml +18 -0
- vstack/_templates/skills/refactor/template.md +283 -0
- vstack/_templates/skills/release-notes/config.yaml +16 -0
- vstack/_templates/skills/release-notes/template.md +127 -0
- vstack/_templates/skills/requirements/config.yaml +17 -0
- vstack/_templates/skills/requirements/template.md +187 -0
- vstack/_templates/skills/security/config.yaml +17 -0
- vstack/_templates/skills/security/template.md +256 -0
- vstack/_templates/skills/verify/config.yaml +17 -0
- vstack/_templates/skills/verify/template.md +201 -0
- vstack/_templates/skills/vision/config.yaml +19 -0
- vstack/_templates/skills/vision/template.md +169 -0
- vstack/agents/__init__.py +5 -0
- vstack/agents/config.py +67 -0
- vstack/agents/constants.py +14 -0
- vstack/agents/generator.py +20 -0
- vstack/artifacts/__init__.py +17 -0
- vstack/artifacts/config.py +111 -0
- vstack/artifacts/constants.py +6 -0
- vstack/artifacts/generator.py +406 -0
- vstack/artifacts/models.py +55 -0
- vstack/artifacts/protocol.py +50 -0
- vstack/cli/__init__.py +3 -0
- vstack/cli/commands.py +596 -0
- vstack/cli/constants.py +33 -0
- vstack/cli/manifest.py +166 -0
- vstack/cli/parser.py +156 -0
- vstack/constants.py +84 -0
- vstack/frontmatter/__init__.py +8 -0
- vstack/frontmatter/parser.py +272 -0
- vstack/frontmatter/schema.py +142 -0
- vstack/frontmatter/serializer.py +208 -0
- vstack/instructions/__init__.py +5 -0
- vstack/instructions/config.py +21 -0
- vstack/instructions/constants.py +9 -0
- vstack/instructions/generator.py +13 -0
- vstack/main.py +71 -0
- vstack/models.py +35 -0
- vstack/prompts/__init__.py +5 -0
- vstack/prompts/config.py +21 -0
- vstack/prompts/constants.py +9 -0
- vstack/prompts/generator.py +13 -0
- vstack/skills/__init__.py +5 -0
- vstack/skills/config.py +58 -0
- vstack/skills/constants.py +17 -0
- vstack/skills/generator.py +20 -0
- vstack/skills/models.py +15 -0
- vstack-0.0.0.dist-info/METADATA +725 -0
- vstack-0.0.0.dist-info/RECORD +119 -0
- vstack-0.0.0.dist-info/WHEEL +4 -0
- vstack-0.0.0.dist-info/entry_points.txt +3 -0
- 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
|
+
[](https://pypi.org/project/vstack/)
|
|
22
|
+
[](pyproject.toml)
|
|
23
|
+
[](https://github.com/eschaar/vstack/actions/workflows/verify.yml)
|
|
24
|
+
[](https://github.com/eschaar/vstack/actions/workflows/security.yml)
|
|
25
|
+
[](pyproject.toml)
|
|
26
|
+
[](LICENSE)
|
|
27
|
+
[](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
|
+
|