vgxness 1.13.0 → 1.14.0
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.
- package/dist/agents/canonical-agent-manifest.js +8 -7
- package/dist/cli/cli-flags.js +3 -3
- package/dist/cli/cli-help.js +4 -4
- package/dist/cli/commands/agent-skill-dispatcher.js +10 -1
- package/dist/mcp/control-plane.js +5 -0
- package/dist/mcp/schema.js +1 -0
- package/dist/mcp/validation.js +6 -0
- package/dist/memory/sqlite/migrations/017_intent_signal_skill_targets.sql +42 -0
- package/dist/orchestrator/natural-language-planner.js +53 -8
- package/dist/skills/boot-seed.js +42 -0
- package/dist/skills/skill-resolver.js +6 -0
- package/dist/skills/skill-seed-service.js +39 -16
- package/docs/sdd-flow.es.md +403 -0
- package/docs/sdd-flow.md +403 -0
- package/package.json +1 -1
- package/seeds/skills/skill-seed-v1.json +73 -1
package/docs/sdd-flow.md
ADDED
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
# SDD Flow
|
|
2
|
+
|
|
3
|
+
> Spanish version: [Flujo SDD](./sdd-flow.es.md).
|
|
4
|
+
|
|
5
|
+
> **Scope:** this document explains the practical end-to-end SDD flow in VGXNESS: from a human intent, through planning artifacts, implementation progress, verification, and archive. It is an operator-oriented companion to [Architecture](./architecture.md), [Safety](./safety.md), [CLI](./cli.md), and [MCP tools](./mcp.md).
|
|
6
|
+
|
|
7
|
+
VGXNESS treats SDD as product state, not just agent prompting. Each phase produces a local SQLite-backed artifact, and phase advancement is gated by explicit readiness and, where required, explicit human acceptance.
|
|
8
|
+
|
|
9
|
+
The canonical SDD phases are:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
explore → proposal → spec → design → tasks → apply-progress → verify → archive
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Mental model
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
Human intent
|
|
19
|
+
↓
|
|
20
|
+
OpenCode conversation / CLI operator action
|
|
21
|
+
↓
|
|
22
|
+
VGXNESS MCP or CLI surface
|
|
23
|
+
↓
|
|
24
|
+
Control plane services
|
|
25
|
+
↓
|
|
26
|
+
SQLite-backed SDD artifacts, runs, memory, and checkpoints
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The important separation is:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
Conversation ≠ state
|
|
33
|
+
Draft ≠ acceptance
|
|
34
|
+
Plan ≠ execution
|
|
35
|
+
Preflight ≠ automatic permission
|
|
36
|
+
Provider status ≠ provider config write
|
|
37
|
+
CLI/MCP surface ≠ duplicated business rules
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## 1. Human intent
|
|
41
|
+
|
|
42
|
+
The workflow starts when the human states an objective, usually inside OpenCode after VGXNESS MCP has been installed.
|
|
43
|
+
|
|
44
|
+
Example:
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
Improve the interrupted-run recovery flow so VGXNESS can suggest how to continue safely.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
VGXNESS should not jump straight to code for substantial changes. The safe path is to inspect the current SDD state and choose the next valid phase.
|
|
51
|
+
|
|
52
|
+
Useful surfaces include:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
sdd_status
|
|
56
|
+
sdd_next
|
|
57
|
+
sdd_continue
|
|
58
|
+
agent_resolve
|
|
59
|
+
agent_activate
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The CLI equivalents are useful for setup, diagnostics, recovery, and scripting:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
vgxness sdd status --project <project> --change <change>
|
|
66
|
+
vgxness sdd next --project <project> --change <change>
|
|
67
|
+
vgxness sdd continue --project <project> --change <change>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## 2. `explore`: understand before choosing a solution
|
|
71
|
+
|
|
72
|
+
Goal: investigate the problem, current code boundaries, prior decisions, risks, and possible approaches without committing to an implementation.
|
|
73
|
+
|
|
74
|
+
Typical questions:
|
|
75
|
+
|
|
76
|
+
- Where does the relevant logic live?
|
|
77
|
+
- Which CLI and MCP tools already exist?
|
|
78
|
+
- Which services own the domain rule?
|
|
79
|
+
- What safety or storage constraints apply?
|
|
80
|
+
- What risks would make the change hard to review?
|
|
81
|
+
|
|
82
|
+
For interrupted-run recovery, exploration might inspect:
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
src/runs/*
|
|
86
|
+
src/sdd/*
|
|
87
|
+
src/mcp/control-plane.ts
|
|
88
|
+
src/cli/commands/*
|
|
89
|
+
docs/*
|
|
90
|
+
test/*
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
The phase artifact is saved under the canonical topic key:
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
sdd/{change}/explore
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
An agent may mark the artifact ready, but readiness is not acceptance.
|
|
100
|
+
|
|
101
|
+
## 3. Human acceptance of `explore`
|
|
102
|
+
|
|
103
|
+
VGXNESS deliberately separates generated content from human approval:
|
|
104
|
+
|
|
105
|
+
```text
|
|
106
|
+
draft / ready ≠ accepted
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Only a human acceptance decision should advance governance-gated downstream work. This prevents an agent from silently approving its own direction.
|
|
110
|
+
|
|
111
|
+
CLI example:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
vgxness sdd accept-artifact --project <project> --change <change> --phase explore
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## 4. `proposal`: choose the product direction
|
|
118
|
+
|
|
119
|
+
Goal: define what change should happen and why.
|
|
120
|
+
|
|
121
|
+
A good proposal answers:
|
|
122
|
+
|
|
123
|
+
- What problem are we solving?
|
|
124
|
+
- Who benefits?
|
|
125
|
+
- What is in scope?
|
|
126
|
+
- What is explicitly out of scope?
|
|
127
|
+
- What risks or tradeoffs exist?
|
|
128
|
+
- How will success be recognized?
|
|
129
|
+
|
|
130
|
+
Example proposal summary:
|
|
131
|
+
|
|
132
|
+
```text
|
|
133
|
+
Add a read-only continuation surface for interrupted runs that combines failed/blocked/needs-human runs, the last checkpoint, the associated SDD phase, and a safe recommended next action.
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
This is still direction-setting, not implementation.
|
|
137
|
+
|
|
138
|
+
## 5. Human acceptance of `proposal`
|
|
139
|
+
|
|
140
|
+
The proposal is the main scope contract. If it is too broad, implementation and review become risky.
|
|
141
|
+
|
|
142
|
+
Recommended reviewer question:
|
|
143
|
+
|
|
144
|
+
```text
|
|
145
|
+
Can this be reviewed as one coherent slice, or should it be split?
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
For example, a safer first slice may be:
|
|
149
|
+
|
|
150
|
+
```text
|
|
151
|
+
Read-only interrupted-run diagnosis before any automatic recovery or provider execution.
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
After exact proposal acceptance, downstream draft planning can be generated, but those artifacts remain drafts until reviewed and accepted according to governance.
|
|
155
|
+
|
|
156
|
+
## 6. `spec`: define observable behavior
|
|
157
|
+
|
|
158
|
+
Goal: specify what the system must do without overfitting to implementation details.
|
|
159
|
+
|
|
160
|
+
For interrupted-run recovery, a spec might require:
|
|
161
|
+
|
|
162
|
+
- Runs with `failed`, `blocked`, or `needs-human` status are listed as recovery candidates.
|
|
163
|
+
- Each candidate includes run id, project, workflow, phase, status, latest checkpoint, failure or blocker reason, and a recommended next action.
|
|
164
|
+
- Empty state is explicit when no interrupted runs exist.
|
|
165
|
+
- The surface is read-only and does not resume providers or mutate run state.
|
|
166
|
+
|
|
167
|
+
Specs should include edge cases, for example:
|
|
168
|
+
|
|
169
|
+
- many interrupted runs;
|
|
170
|
+
- runs with no checkpoints;
|
|
171
|
+
- runs from another project;
|
|
172
|
+
- runs linked to already-accepted SDD phases;
|
|
173
|
+
- incomplete or inconsistent stored metadata.
|
|
174
|
+
|
|
175
|
+
## 7. `design`: decide how to build it
|
|
176
|
+
|
|
177
|
+
Goal: connect the spec to the existing architecture.
|
|
178
|
+
|
|
179
|
+
A useful design identifies:
|
|
180
|
+
|
|
181
|
+
- service boundaries;
|
|
182
|
+
- repository/query changes;
|
|
183
|
+
- CLI and MCP surfaces;
|
|
184
|
+
- schema additions;
|
|
185
|
+
- renderer behavior;
|
|
186
|
+
- tests;
|
|
187
|
+
- migration needs, if any;
|
|
188
|
+
- safety invariants.
|
|
189
|
+
|
|
190
|
+
Example design sketch:
|
|
191
|
+
|
|
192
|
+
```text
|
|
193
|
+
Add a run-resume candidate service backed by the runs repository.
|
|
194
|
+
Expose read-only MCP tools for candidate listing and inspection.
|
|
195
|
+
Expose a CLI recovery/status command that uses the same service.
|
|
196
|
+
Keep recommendation generation non-mutating.
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Architecture rules to preserve:
|
|
200
|
+
|
|
201
|
+
- CLI and MCP should share domain services.
|
|
202
|
+
- Renderers should not reimplement business rules.
|
|
203
|
+
- Read-only tools must remain non-mutating.
|
|
204
|
+
- Provider config writes require explicit human consent.
|
|
205
|
+
- SDD artifacts stay SQLite-backed; do not create `openspec/`.
|
|
206
|
+
|
|
207
|
+
## 8. `tasks`: make the design reviewable
|
|
208
|
+
|
|
209
|
+
Goal: break the design into small implementation steps.
|
|
210
|
+
|
|
211
|
+
Example task breakdown:
|
|
212
|
+
|
|
213
|
+
```text
|
|
214
|
+
1. Add repository query for interrupted runs.
|
|
215
|
+
2. Add a resume-candidate service.
|
|
216
|
+
3. Add MCP schema and read-only tools.
|
|
217
|
+
4. Add CLI command or extend the existing recovery/status surface.
|
|
218
|
+
5. Add renderer output for empty, single, and many-candidate states.
|
|
219
|
+
6. Add focused service tests.
|
|
220
|
+
7. Add CLI/MCP contract tests.
|
|
221
|
+
8. Update docs if user-facing behavior changes.
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Good tasks are small, testable, and easy to review.
|
|
225
|
+
|
|
226
|
+
## 9. `apply-progress`: implement with traceable progress
|
|
227
|
+
|
|
228
|
+
Goal: perform the code change while recording what changed, what remains, and what evidence exists.
|
|
229
|
+
|
|
230
|
+
Before implementation, check review size and risk:
|
|
231
|
+
|
|
232
|
+
- Does the change touch multiple subsystems?
|
|
233
|
+
- Does it alter storage or migrations?
|
|
234
|
+
- Does it change MCP schemas?
|
|
235
|
+
- Does it change safety behavior?
|
|
236
|
+
- Is the diff too large for one review?
|
|
237
|
+
|
|
238
|
+
If the change is too broad, split it before implementation.
|
|
239
|
+
|
|
240
|
+
During implementation, `apply-progress` should capture:
|
|
241
|
+
|
|
242
|
+
- completed work;
|
|
243
|
+
- changed files or modules;
|
|
244
|
+
- pending tasks;
|
|
245
|
+
- test results;
|
|
246
|
+
- known blockers;
|
|
247
|
+
- deviations from the accepted design.
|
|
248
|
+
|
|
249
|
+
`apply-progress` is a progress record, not proof that the implementation is correct.
|
|
250
|
+
|
|
251
|
+
## 10. Preflight for risky operations
|
|
252
|
+
|
|
253
|
+
VGXNESS uses preflight checks to keep risky operations explicit.
|
|
254
|
+
|
|
255
|
+
Examples of risky categories:
|
|
256
|
+
|
|
257
|
+
```text
|
|
258
|
+
implementation-edit
|
|
259
|
+
shell
|
|
260
|
+
test-run
|
|
261
|
+
install
|
|
262
|
+
git-write
|
|
263
|
+
provider-tool
|
|
264
|
+
secrets
|
|
265
|
+
external-directory
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
Conceptual MCP example:
|
|
269
|
+
|
|
270
|
+
```text
|
|
271
|
+
run_preflight({
|
|
272
|
+
category: "test-run",
|
|
273
|
+
operation: "bun run verify:test",
|
|
274
|
+
workflow: "sdd",
|
|
275
|
+
phase: "apply-progress"
|
|
276
|
+
})
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
Preflight is advisory/planning control. It does not mean the operation is automatically approved or executed.
|
|
280
|
+
|
|
281
|
+
## 11. `verify`: check the implementation independently
|
|
282
|
+
|
|
283
|
+
Goal: verify the implementation against the accepted spec and design, preferably with a fresh reviewer/agent context for non-trivial changes.
|
|
284
|
+
|
|
285
|
+
Verification should check:
|
|
286
|
+
|
|
287
|
+
- the spec is satisfied;
|
|
288
|
+
- design boundaries were respected or deviations are justified;
|
|
289
|
+
- relevant tests pass;
|
|
290
|
+
- read-only surfaces did not become mutating;
|
|
291
|
+
- provider setup/config writes still require explicit consent;
|
|
292
|
+
- storage, CLI, and MCP behavior remain consistent.
|
|
293
|
+
|
|
294
|
+
Typical repository verification commands include:
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
bun run verify:typecheck
|
|
298
|
+
bun run verify:test
|
|
299
|
+
bun run verify:bun-sqlite
|
|
300
|
+
bun run package:bun:evidence
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
Not every small docs or UI copy change needs the full suite. Storage, CLI/MCP schema, provider setup, or package changes deserve stricter verification.
|
|
304
|
+
|
|
305
|
+
## 12. `archive`: close the change with durable context
|
|
306
|
+
|
|
307
|
+
Goal: preserve what happened so future work can recover context without rereading the entire thread or diff.
|
|
308
|
+
|
|
309
|
+
An archive artifact should include:
|
|
310
|
+
|
|
311
|
+
- final outcome;
|
|
312
|
+
- user-visible behavior changed;
|
|
313
|
+
- key files or modules touched;
|
|
314
|
+
- verification performed;
|
|
315
|
+
- residual risks;
|
|
316
|
+
- follow-up work;
|
|
317
|
+
- rollback or recovery notes, if relevant.
|
|
318
|
+
|
|
319
|
+
Example archive summary:
|
|
320
|
+
|
|
321
|
+
```text
|
|
322
|
+
Change: recover-runs
|
|
323
|
+
Outcome: implemented a read-only interrupted-run recovery surface.
|
|
324
|
+
Verification: typecheck and focused service/CLI tests passed.
|
|
325
|
+
Residual risk: full package evidence was not run locally.
|
|
326
|
+
Follow-up: consider TUI integration after the CLI/MCP flow stabilizes.
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
## Tool-flow sketch
|
|
330
|
+
|
|
331
|
+
Inside OpenCode, the flow usually looks like this conceptually:
|
|
332
|
+
|
|
333
|
+
```text
|
|
334
|
+
sdd_status
|
|
335
|
+
↓
|
|
336
|
+
sdd_continue
|
|
337
|
+
↓
|
|
338
|
+
agent_activate(explore)
|
|
339
|
+
↓
|
|
340
|
+
sdd_save_artifact(explore)
|
|
341
|
+
↓
|
|
342
|
+
sdd_ready(explore)
|
|
343
|
+
↓
|
|
344
|
+
human accepts explore
|
|
345
|
+
↓
|
|
346
|
+
agent_activate(proposal)
|
|
347
|
+
↓
|
|
348
|
+
sdd_save_artifact(proposal)
|
|
349
|
+
↓
|
|
350
|
+
sdd_ready(proposal)
|
|
351
|
+
↓
|
|
352
|
+
human accepts proposal
|
|
353
|
+
↓
|
|
354
|
+
agent_activate(spec)
|
|
355
|
+
↓
|
|
356
|
+
agent_activate(design)
|
|
357
|
+
↓
|
|
358
|
+
agent_activate(tasks)
|
|
359
|
+
↓
|
|
360
|
+
human reviews/accepts gated artifacts
|
|
361
|
+
↓
|
|
362
|
+
agent_activate(apply)
|
|
363
|
+
↓
|
|
364
|
+
run_preflight(...)
|
|
365
|
+
↓
|
|
366
|
+
sdd_save_artifact(apply-progress)
|
|
367
|
+
↓
|
|
368
|
+
agent_activate(verify)
|
|
369
|
+
↓
|
|
370
|
+
sdd_save_artifact(verify)
|
|
371
|
+
↓
|
|
372
|
+
archive
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
## Why the flow exists
|
|
376
|
+
|
|
377
|
+
A naive agentic workflow is:
|
|
378
|
+
|
|
379
|
+
```text
|
|
380
|
+
read code → edit code → run tests → say done
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
VGXNESS uses SDD to make that safer:
|
|
384
|
+
|
|
385
|
+
```text
|
|
386
|
+
understand objective
|
|
387
|
+
↓
|
|
388
|
+
choose scope
|
|
389
|
+
↓
|
|
390
|
+
specify behavior
|
|
391
|
+
↓
|
|
392
|
+
design the change
|
|
393
|
+
↓
|
|
394
|
+
split into tasks
|
|
395
|
+
↓
|
|
396
|
+
implement with preflight and progress tracking
|
|
397
|
+
↓
|
|
398
|
+
verify independently
|
|
399
|
+
↓
|
|
400
|
+
archive durable context
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
The upfront structure costs a little time, but it reduces hidden scope creep, unreviewable diffs, unsafe automation, and lost context.
|
package/package.json
CHANGED
|
@@ -65,6 +65,48 @@
|
|
|
65
65
|
"version": "2026-05-20.v1",
|
|
66
66
|
"content": "# vgxness-sdd-archive\n\nRole: Archive the completed SDD change after verification and human-controlled acceptance flow.\n\nOutput: final outcome, changed files, verification evidence, decisions, follow-ups, and durable summary.\n\nConfirm before writes beyond requested archive artifacts. Do not mutate provider config or install provider-native skills.\n\nBoundary: This is VGXNESS registry/context skill content only. It is not a provider-native OpenCode skill, must not be installed into .opencode, must not require skills.paths, and must not load remote content.",
|
|
67
67
|
"metadata": { "ownedBy": "vgxness", "kind": "registry-context-skill", "nativeProviderSkill": false, "workflow": "sdd", "phase": "archive" }
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "vgxness-workflow-selection",
|
|
71
|
+
"description": "Chooses the lightest safe VGXNESS workflow for an operator intent.",
|
|
72
|
+
"version": "2026-06-16.v1",
|
|
73
|
+
"content": "# vgxness-workflow-selection\n\nRole: Choose the lightest workflow that safely matches the user's intent, risk, and review cost.\n\nUse explore for answers or investigation, debug for diagnosis, quickfix for small local low-risk edits, plan for non-mutating planning, build for clear scoped implementation, and SDD only for large, architectural, cross-surface, persistent, security-sensitive, provider-config, permission, or hard-to-review changes.\n\nOutput: recommended workflow, reason, risks, whether clarification is needed, and the smallest safe next step.\n\nBoundary: This is VGXNESS registry/context skill content only. It is not a provider-native OpenCode skill, must not be installed into .opencode, must not require skills.paths, and must not load remote content.",
|
|
74
|
+
"metadata": { "ownedBy": "vgxness", "kind": "registry-context-skill", "nativeProviderSkill": false, "category": "workflow-selection" }
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "vgxness-git-safety",
|
|
78
|
+
"description": "Protects user work and repository integrity during git-related operations.",
|
|
79
|
+
"version": "2026-06-16.v1",
|
|
80
|
+
"content": "# vgxness-git-safety\n\nRole: Keep git operations explicit, reviewable, and safe.\n\nBefore any git write, inspect and report working tree status, diff, and recent commits. Preserve unrelated user changes, stage only intended files, and stop on conflicts, detached HEAD, divergent branches, dirty base, untracked build artifacts, or unclear ownership.\n\nNever commit, amend, push, merge, rebase, reset, delete branches, delete worktrees, publish releases, or create PRs unless the human explicitly asks for that exact action.\n\nOutput: git state evidence, intended files, safety blockers, and the smallest safe decision needed from the human.\n\nBoundary: This is VGXNESS registry/context skill content only. It is not a provider-native OpenCode skill, must not be installed into .opencode, must not require skills.paths, and must not load remote content.",
|
|
81
|
+
"metadata": { "ownedBy": "vgxness", "kind": "registry-context-skill", "nativeProviderSkill": false, "category": "git" }
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"name": "vgxness-pr-prep",
|
|
85
|
+
"description": "Prepares concise pull request evidence and reviewer-ready summaries.",
|
|
86
|
+
"version": "2026-06-16.v1",
|
|
87
|
+
"content": "# vgxness-pr-prep\n\nRole: Prepare a pull request only after the human explicitly asks for PR work.\n\nBefore opening a PR, inspect branch status, upstream tracking, base branch, recent commits, and diff against base. Summarize included commits, files changed, verification, rollout risk, reviewer burden, and any follow-ups.\n\nDo not push, publish, or create the PR without explicit human approval for that action. Prefer a focused PR over a broad mixed change.\n\nOutput: PR title/body draft or PR readiness report with evidence, risks, and reviewer notes.\n\nBoundary: This is VGXNESS registry/context skill content only. It is not a provider-native OpenCode skill, must not be installed into .opencode, must not require skills.paths, and must not load remote content.",
|
|
88
|
+
"metadata": { "ownedBy": "vgxness", "kind": "registry-context-skill", "nativeProviderSkill": false, "category": "pull-request" }
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"name": "vgxness-stacked-prs",
|
|
92
|
+
"description": "Guides reviewable stacked PR slicing for dependent changes.",
|
|
93
|
+
"version": "2026-06-16.v1",
|
|
94
|
+
"content": "# vgxness-stacked-prs\n\nRole: Split dependent work into reviewable layers when one large PR would be hard to understand or risky to review.\n\nPrefer slices such as docs groundwork, tests/contracts, domain behavior, CLI/MCP surface, and follow-up polish. Keep each PR independently reviewable, explain dependencies, and avoid mixing unrelated fixes.\n\nDo not use stacked PRs for tiny fixes or emergency repairs unless the dependency structure is genuinely needed.\n\nOutput: proposed stack, branch/order guidance, reviewer burden tradeoffs, and cleanup notes.\n\nBoundary: This is VGXNESS registry/context skill content only. It is not a provider-native OpenCode skill, must not be installed into .opencode, must not require skills.paths, and must not load remote content.",
|
|
95
|
+
"metadata": { "ownedBy": "vgxness", "kind": "registry-context-skill", "nativeProviderSkill": false, "category": "pull-request" }
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "vgxness-strict-tdd",
|
|
99
|
+
"description": "Applies strict test-driven development for behavior-sensitive changes.",
|
|
100
|
+
"version": "2026-06-16.v1",
|
|
101
|
+
"content": "# vgxness-strict-tdd\n\nRole: Use strict TDD when changing behavior where regression risk matters.\n\nPreferred loop: write or identify a failing focused test, implement the smallest change, make the test pass, then refactor safely. Use especially for bug fixes, storage, permissions, workflow gates, MCP schemas, CLI contracts, and domain services.\n\nDo not force TDD ceremony onto docs-only, copy-only, or purely exploratory work. If a failing test cannot be created cheaply, explain why and choose focused verification instead.\n\nOutput: failing-test evidence when available, implementation notes, passing-test evidence, and residual risk.\n\nBoundary: This is VGXNESS registry/context skill content only. It is not a provider-native OpenCode skill, must not be installed into .opencode, must not require skills.paths, and must not load remote content.",
|
|
102
|
+
"metadata": { "ownedBy": "vgxness", "kind": "registry-context-skill", "nativeProviderSkill": false, "category": "testing" }
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"name": "vgxness-review-size-guard",
|
|
106
|
+
"description": "Keeps implementation slices small enough to review safely.",
|
|
107
|
+
"version": "2026-06-16.v1",
|
|
108
|
+
"content": "# vgxness-review-size-guard\n\nRole: Protect reviewer attention and product safety by challenging oversized or mixed-scope changes.\n\nBefore large implementation, estimate affected subsystems, files, schema/storage changes, provider/setup impact, docs/tests, and verification cost. If the change is cross-cutting or hard to review, stop and recommend splitting into smaller slices.\n\nPrefer one coherent behavior change plus its tests/docs over unrelated bundles. For high-risk work, ask whether to reduce scope, split, or proceed as one larger change.\n\nOutput: review-size assessment, recommended slices, tradeoffs, and the next smallest safe step.\n\nBoundary: This is VGXNESS registry/context skill content only. It is not a provider-native OpenCode skill, must not be installed into .opencode, must not require skills.paths, and must not load remote content.",
|
|
109
|
+
"metadata": { "ownedBy": "vgxness", "kind": "registry-context-skill", "nativeProviderSkill": false, "category": "review" }
|
|
68
110
|
}
|
|
69
111
|
],
|
|
70
112
|
"attachments": [
|
|
@@ -76,6 +118,36 @@
|
|
|
76
118
|
{ "workflow": "sdd", "phase": "apply-progress", "skill": "vgxness-sdd-apply", "order": 100 },
|
|
77
119
|
{ "workflow": "sdd", "phase": "apply", "skill": "vgxness-sdd-apply", "order": 100 },
|
|
78
120
|
{ "workflow": "sdd", "phase": "verify", "skill": "vgxness-sdd-verify", "order": 100 },
|
|
79
|
-
{ "workflow": "sdd", "phase": "archive", "skill": "vgxness-sdd-archive", "order": 100 }
|
|
121
|
+
{ "workflow": "sdd", "phase": "archive", "skill": "vgxness-sdd-archive", "order": 100 },
|
|
122
|
+
{ "workflow": "explore", "phase": "explore", "skill": "vgxness-workflow-selection", "order": 10 },
|
|
123
|
+
{ "workflow": "debug", "phase": "diagnose", "skill": "vgxness-workflow-selection", "order": 10 },
|
|
124
|
+
{ "workflow": "quickfix", "phase": "apply", "skill": "vgxness-workflow-selection", "order": 10 },
|
|
125
|
+
{ "workflow": "plan", "phase": "plan", "skill": "vgxness-workflow-selection", "order": 10 },
|
|
126
|
+
{ "workflow": "build", "phase": "apply", "skill": "vgxness-workflow-selection", "order": 10 },
|
|
127
|
+
{ "workflow": "sdd", "phase": "manager", "skill": "vgxness-workflow-selection", "order": 10 },
|
|
128
|
+
{ "workflow": "quickfix", "phase": "apply", "skill": "vgxness-git-safety", "order": 20 },
|
|
129
|
+
{ "workflow": "build", "phase": "apply", "skill": "vgxness-git-safety", "order": 20 },
|
|
130
|
+
{ "workflow": "sdd", "phase": "apply-progress", "skill": "vgxness-git-safety", "order": 20 },
|
|
131
|
+
{ "workflow": "plan", "phase": "pr", "skill": "vgxness-git-safety", "order": 20 },
|
|
132
|
+
{ "workflow": "plan", "phase": "pr", "skill": "vgxness-pr-prep", "order": 30 },
|
|
133
|
+
{ "workflow": "plan", "phase": "stacked-prs", "skill": "vgxness-stacked-prs", "order": 30 },
|
|
134
|
+
{ "workflow": "sdd", "phase": "tasks", "skill": "vgxness-stacked-prs", "order": 30 },
|
|
135
|
+
{ "workflow": "quickfix", "phase": "apply", "skill": "vgxness-strict-tdd", "order": 40 },
|
|
136
|
+
{ "workflow": "build", "phase": "apply", "skill": "vgxness-strict-tdd", "order": 40 },
|
|
137
|
+
{ "workflow": "sdd", "phase": "apply-progress", "skill": "vgxness-strict-tdd", "order": 40 },
|
|
138
|
+
{ "workflow": "plan", "phase": "plan", "skill": "vgxness-review-size-guard", "order": 50 },
|
|
139
|
+
{ "workflow": "build", "phase": "apply", "skill": "vgxness-review-size-guard", "order": 50 },
|
|
140
|
+
{ "workflow": "sdd", "phase": "tasks", "skill": "vgxness-review-size-guard", "order": 50 },
|
|
141
|
+
{ "workflow": "sdd", "phase": "apply-progress", "skill": "vgxness-review-size-guard", "order": 50 },
|
|
142
|
+
{ "targetType": "intent-signal", "targetKey": "workflow-selection", "skill": "vgxness-workflow-selection", "order": 10 },
|
|
143
|
+
{ "targetType": "intent-signal", "targetKey": "git", "skill": "vgxness-git-safety", "order": 20 },
|
|
144
|
+
{ "targetType": "intent-signal", "targetKey": "pull-request", "skill": "vgxness-git-safety", "order": 20 },
|
|
145
|
+
{ "targetType": "intent-signal", "targetKey": "stacked-prs", "skill": "vgxness-git-safety", "order": 20 },
|
|
146
|
+
{ "targetType": "intent-signal", "targetKey": "pull-request", "skill": "vgxness-pr-prep", "order": 30 },
|
|
147
|
+
{ "targetType": "intent-signal", "targetKey": "stacked-prs", "skill": "vgxness-stacked-prs", "order": 30 },
|
|
148
|
+
{ "targetType": "intent-signal", "targetKey": "tdd", "skill": "vgxness-strict-tdd", "order": 40 },
|
|
149
|
+
{ "targetType": "intent-signal", "targetKey": "strict-tdd", "skill": "vgxness-strict-tdd", "order": 40 },
|
|
150
|
+
{ "targetType": "intent-signal", "targetKey": "review-size", "skill": "vgxness-review-size-guard", "order": 50 },
|
|
151
|
+
{ "targetType": "intent-signal", "targetKey": "broad-change", "skill": "vgxness-review-size-guard", "order": 50 }
|
|
80
152
|
]
|
|
81
153
|
}
|