vgxness 1.9.2 → 1.9.4

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 (46) hide show
  1. package/README.md +12 -6
  2. package/dist/agents/agent-resolver.js +33 -3
  3. package/dist/agents/canonical-agent-manifest.js +68 -21
  4. package/dist/agents/canonical-agent-projection.js +46 -4
  5. package/dist/cli/cli-help.js +14 -3
  6. package/dist/cli/commands/index.js +1 -0
  7. package/dist/cli/commands/interactive-entrypoint-dispatcher.js +8 -0
  8. package/dist/cli/commands/mcp-dispatcher.js +49 -18
  9. package/dist/cli/commands/memory-sdd-dispatcher.js +71 -5
  10. package/dist/cli/commands/setup-dispatcher.js +22 -10
  11. package/dist/cli/commands/status-dispatcher.js +130 -0
  12. package/dist/cli/commands/workflow-dispatcher.js +11 -5
  13. package/dist/cli/dispatcher.js +9 -1
  14. package/dist/cli/product-resume-renderer.js +32 -0
  15. package/dist/cli/product-status-renderer.js +81 -0
  16. package/dist/cli/sdd-renderer.js +90 -7
  17. package/dist/cli/tui/main-menu/main-menu-read-model.js +8 -8
  18. package/dist/cli/tui/setup/setup-tui-services.js +27 -10
  19. package/dist/code/cli/code-command.js +7 -4
  20. package/dist/code/reporting/summary.js +4 -1
  21. package/dist/code/runtime/code-runtime.js +27 -4
  22. package/dist/code/runtime/sdd-context.js +18 -2
  23. package/dist/governance/governance-report-builder.js +18 -7
  24. package/dist/mcp/claude-code-agent-config.js +10 -4
  25. package/dist/mcp/client-install-opencode-contract.js +2 -2
  26. package/dist/mcp/client-install-opencode.js +10 -6
  27. package/dist/mcp/control-plane.js +56 -0
  28. package/dist/mcp/opencode-default-agent-config.js +7 -4
  29. package/dist/mcp/provider-status.js +86 -81
  30. package/dist/mcp/schema.js +25 -7
  31. package/dist/mcp/stdio-server.js +4 -0
  32. package/dist/mcp/validation.js +39 -3
  33. package/dist/resume/product-resume.js +166 -0
  34. package/dist/runs/repositories/runs.js +12 -1
  35. package/dist/runs/run-service.js +62 -5
  36. package/dist/sdd/schema.js +8 -0
  37. package/dist/sdd/sdd-continuation-plan.js +81 -0
  38. package/dist/sdd/sdd-workflow-service.js +103 -16
  39. package/dist/skills/skill-resolver.js +21 -4
  40. package/dist/status/product-status.js +121 -0
  41. package/docs/architecture.md +1 -1
  42. package/docs/cli.md +40 -12
  43. package/docs/code-runtime.md +3 -0
  44. package/docs/glossary.md +1 -1
  45. package/docs/mcp.md +18 -4
  46. package/package.json +1 -1
package/docs/cli.md CHANGED
@@ -49,7 +49,7 @@ Release defaults used by the guided setup are:
49
49
  - Install mode: MCP plus manager/SDD agents (`mcp-plus-agents`).
50
50
  - Public CLI language: English.
51
51
 
52
- Recommended user flow after `npm install -g vgxness`:
52
+ Recommended bootstrap and diagnostic flow after `npm install -g vgxness`:
53
53
 
54
54
  ```bash
55
55
  vgxness --help
@@ -59,14 +59,34 @@ vgxness setup plan # human-readable, read-only plan
59
59
  vgxness setup status # human-readable, read-only setup status
60
60
  vgxness setup apply --yes # writes OpenCode config only after explicit consent
61
61
  vgxness doctor # human-readable readiness checks
62
- vgxness sdd next --project <project> --change <change>
62
+ vgxness status --project <project> --change <change> # diagnostic cockpit
63
+ vgxness next --project <project> --change <change> # diagnostic/recovery next step
64
+ vgxness sdd continue --project <project> --change <change> # read-only manual continuation plan
65
+ vgxness resume --project <project> --run-id <id>
63
66
  vgxness setup rollback --backup <path>
64
67
  ```
65
68
 
69
+ Daily SDD phase progression is OpenCode-first: talk to OpenCode with the VGXNESS MCP server installed, and let the hidden SDD subagents use MCP tools for phase work. The CLI and TUI remain supported for bootstrap/setup, diagnostics, recovery, manual fallback, and scripting; they are not the primary daily surface.
70
+
66
71
  `setup plan`, `setup status`, and non-TTY `init` planning do not write provider config. Local VGXNESS store initialization may occur when the selected SQLite store is needed. They are human-readable by default; pass `--json` when you need parseable automation output. With the default global database, the OpenCode MCP command is `vgxness mcp start`; for custom/project-local DBs it includes `--db <path>`. The default OpenCode target is `$HOME/.config/opencode/opencode.json`; pass `--scope project` to opt into `<workspace>/.opencode/opencode.json`. `setup apply --yes` is the explicit OpenCode provider-config write path. `setup rollback --backup <path>` validates a VGXNESS/OpenCode backup such as `opencode.json.backup-<timestamp>`, creates a pre-rollback backup of the current target when present, restores the selected backup byte-for-byte, and recommends `vgxness doctor`.
67
72
 
68
73
  `vgxness init` prompts in English when stdin/stdout are TTYs: project name, DB location, provider, OpenCode scope, install mode, then shows the plan and asks `Apply this setup? Type "yes" to continue:`. Any answer other than `yes` exits successfully without writes. In CI/non-TTY without `--yes`, `init` returns the read-only plan and never waits for input. `vgxness doctor`, `vgxness sdd status`, `vgxness sdd next`, `vgxness sdd get-artifact`, and `vgxness sdd list-artifacts` are also human-readable by default; use `--json` for scripts.
69
74
 
75
+ ## Daily workflow front doors
76
+
77
+ Use OpenCode conversation + VGXNESS MCP + hidden SDD subagents for normal daily SDD work. Use these top-level commands when you need diagnostics, recovery, manual fallback, or scriptable state inspection:
78
+
79
+ | Question | Command | Purpose |
80
+ |---|---|---|
81
+ | Where am I? | `vgxness status --project <project> --change <change>` | Diagnostic cockpit state, blockers, next recommendation, and safety notes. |
82
+ | What should I do now? | `vgxness next --project <project> --change <change>` | Recovery/diagnostic next action and why it is safe or blocked. |
83
+ | How do I continue a change manually? | `vgxness sdd continue --project <project> --change <change>` | Builds a read-only continuation plan and manual fallback commands for the selected SDD change. |
84
+ | How do I continue interrupted work? | `vgxness resume --project <project> [--run-id <id>]` | Lists or inspects interrupted runs and suggests manual continuation commands without retrying anything. |
85
+
86
+ Without `--change`, `--project`, or `--run-id`, these commands stay orientation-only and do not open the local memory store. With a selected change, project, or run, top-level `status`, `next`, and `resume` inspect SQLite read-only; formal `sdd` commands are non-provider, non-run-executing planning/artifact commands that may use the normal local store path. Pass `--json` for automation.
87
+
88
+ The usual SDD operator loop happens inside OpenCode: continue the phase in conversation while VGXNESS MCP and hidden SDD subagents inspect readiness, persist artifacts, and report evidence. CLI commands remain fallback/recovery tools: inspect `status`, ask `next`, run `sdd continue` for a copyable manual continuation plan, then either run `vgxness code sdd ...` as an explicit fallback or `vgxness resume ...` for interrupted work. After a draft is ready, use `sdd accept-artifact` for explicit human acceptance; if an artifact was rejected, use `sdd reopen-artifact` before revising it. Related interrupted run hints in `status`, `next`, and `sdd continue` are advisory only; they help avoid duplicate work but do not retry or execute runs.
89
+
70
90
  ## Bun-first repository verification
71
91
 
72
92
  VGXNESS uses Bun as the canonical installed runtime and verification path for repository development and CI. Node.js `>=22` remains development/build/test tooling for TypeScript, `node:test`, and helper scripts. npm package consumer metadata remains supported, but the product runtime engine is `engines.bun`.
@@ -220,13 +240,15 @@ bun run cli:bun --
220
240
 
221
241
  The installed `vgxness`/`vgx` binary opens the OpenTUI main menu when run with no arguments in a TTY. With no TTY, no-args prints deterministic safe setup guidance, exits 0, and does not infer a project, open project state, toggle raw mode, or write provider/config artifacts. Use `vgxness --help` or `vgxness -h` to print command help without starting the main menu; explicit subcommands keep their normal behavior.
222
242
 
223
- The top-level menu is: **Installation, Doctor / recovery, SDD / workflow guidance, Advanced CLI, Exit**. Terminal controls are `↑/↓` or `j/k` to move, `Enter` to open the focused item, `?` for help, and `q` to quit.
243
+ The top-level menu is: **Installation, Doctor / recovery, SDD / workflow guidance, Advanced CLI, Exit**. It is a read-only setup, diagnostics, recovery, and fallback surface; daily SDD progression stays in OpenCode with VGXNESS MCP. Terminal controls are `↑/↓` or `j/k` to move, `Enter` to open the focused item, `?` for help, and `q` to quit.
224
244
 
225
245
  For scriptable status, use explicit read-only commands:
226
246
 
227
247
  ```bash
228
248
  bun run cli:bun -- setup status --project vgxness
229
- bun run cli:bun -- sdd status --project vgxness --change my-change
249
+ bun run cli:bun -- status --project vgxness --change my-change
250
+ bun run cli:bun -- next --project vgxness --change my-change
251
+ bun run cli:bun -- resume --project vgxness --run-id <id>
230
252
  ```
231
253
 
232
254
  Provider support shown in the Installation surface is:
@@ -236,7 +258,7 @@ Provider support shown in the Installation surface is:
236
258
  - **Antigravity** — placeholder/coming-soon guidance only.
237
259
  - **Custom/future** — extension point with safe manual/default unsupported behavior.
238
260
 
239
- Setup and main-menu TUI surfaces do **not** silently write OpenCode or other provider config, do **not** call provider executables, and do **not** approve/reject preflights. Any operational next action is copied for explicit execution outside the TUI.
261
+ Setup and main-menu TUI surfaces do **not** silently write OpenCode or other provider config, do **not** call provider executables, and do **not** approve/reject preflights. They print diagnostics, recovery hints, and manual fallback commands; daily SDD work should continue in OpenCode.
240
262
 
241
263
  ## Natural-language orchestrator preview
242
264
 
@@ -283,7 +305,7 @@ vgxness code inspect "<question>" \
283
305
  --memory off|ask|auto
284
306
  ```
285
307
 
286
- SDD-aware mode is exposed through `vgxness code sdd <change> <phase>`; pass `--save-artifact` only when persistence is intended, and pass `--change-id`/`--phase` to scope work. Read-only phases stay artifact-oriented; `apply-progress` may expose edit and shell tools; `verify` may expose verification shell tools.
308
+ SDD-aware mode is exposed through `vgxness code sdd <change> <phase>`; pass `--save-artifact` only when persistence is intended, and pass `--change-id`/`--phase` to scope work. Read-only phases stay artifact-oriented; `apply-progress` may expose edit and shell tools; `verify` may expose verification shell tools. `--draft-run` lets planning phases use draft prerequisites for planning only; human acceptance is still required, and `apply-progress` remains gated. `apply` is accepted as a user-facing alias for `apply-progress`.
287
309
 
288
310
  Useful events-only output for piping into the OpenTUI shell or your own tooling:
289
311
 
@@ -433,7 +455,7 @@ A rejected approval is recorded in the run audit trail and prevents the matching
433
455
 
434
456
  ### SDD workflow commands vs formal SDD commands
435
457
 
436
- `sdd preview`, `sdd run`, and `sdd execute` are workflow commands and use the three-mode workflow contract above. `sdd status`, `sdd ready`, `sdd save-artifact`, `sdd accept-artifact`, `sdd get-artifact`, `sdd list-artifacts`, and `sdd next` are formal SDD artifact/status commands. Formal SDD commands read or write SDD artifact state in the selected local SQLite store; they do not execute providers or continue workflow runs.
458
+ `sdd preview`, `sdd run`, and `sdd execute` are workflow commands and use the three-mode workflow contract above. `sdd status`, `sdd ready`, `sdd continue`, `sdd save-artifact`, `sdd accept-artifact`, `sdd reopen-artifact`, `sdd get-artifact`, `sdd list-artifacts`, and `sdd next` are formal SDD artifact/status commands. Formal SDD commands read or write SDD artifact state in the selected local SQLite store; they do not execute providers or retry workflow runs. `sdd continue` is read-only and returns a continuation plan; it does not create runs, mutate artifacts, or call providers.
437
459
 
438
460
  ## MCP setup preview and doctor
439
461
 
@@ -543,24 +565,30 @@ Manual/opt-in runtime validation checklist (not normal CI):
543
565
 
544
566
  ## SDD workflow examples
545
567
 
546
- Use `sdd` commands to inspect local SDD artifact state and save, read, or list phase artifacts. These commands read and write only the selected `vgxness` local SQLite memory store: `--db <path>` when passed, `VGXNESS_DB_PATH` when set, or the global default database when neither override is present.
568
+ Use OpenCode conversation with VGXNESS MCP and hidden SDD subagents for normal daily SDD progression. Use `sdd` commands to inspect local SDD artifact state and save, read, or list phase artifacts for diagnostics, recovery, scripting, or manual fallback. These commands read and write only the selected `vgxness` local SQLite memory store: `--db <path>` when passed, `VGXNESS_DB_PATH` when set, or the global default database when neither override is present.
547
569
 
548
570
  ```bash
549
571
  bun run cli:bun -- sdd status --project vgxness --change sdd-workflow-engine --db /tmp/vgxness-memory.sqlite
550
572
  bun run cli:bun -- sdd ready --project vgxness --change sdd-workflow-engine --phase spec --db /tmp/vgxness-memory.sqlite
551
573
  bun run cli:bun -- sdd save-artifact --project vgxness --change sdd-workflow-engine --phase proposal --content "# Proposal" --db /tmp/vgxness-memory.sqlite
574
+ bun run cli:bun -- sdd continue --project vgxness --change sdd-workflow-engine --db /tmp/vgxness-memory.sqlite
575
+ bun run cli:bun -- code sdd sdd-workflow-engine spec --project vgxness --draft-run --save-artifact --db /tmp/vgxness-memory.sqlite
552
576
  bun run cli:bun -- sdd accept-artifact --project vgxness --change sdd-workflow-engine --phase proposal --actor user --note "Approved for spec" --db /tmp/vgxness-memory.sqlite
577
+ bun run cli:bun -- resume --project vgxness --db /tmp/vgxness-memory.sqlite
553
578
  bun run cli:bun -- sdd get-artifact --project vgxness --change sdd-workflow-engine --phase proposal --db /tmp/vgxness-memory.sqlite
554
579
  bun run cli:bun -- sdd list-artifacts --project vgxness --change sdd-workflow-engine --db /tmp/vgxness-memory.sqlite
555
580
  bun run cli:bun -- sdd next --project vgxness --change sdd-workflow-engine --db /tmp/vgxness-memory.sqlite
581
+ bun run cli:bun -- sdd reopen-artifact --project vgxness --change sdd-workflow-engine --phase design --actor user --note "Revise rejected design" --db /tmp/vgxness-memory.sqlite
556
582
  VGXNESS_DB_PATH=/tmp/vgxness-memory.sqlite bun run cli:bun -- sdd list-artifacts --project vgxness --change sdd-workflow-engine
557
583
  ```
558
584
 
559
- Current phases are `explore`, `proposal`, `spec`, `design`, `tasks`, `apply-progress`, `verify`, and `archive`. Each artifact is stored under `sdd/{change}/{phase}` in the local SQLite memory store. `sdd status` reports which phase artifacts are present and the next ready missing phase. `sdd next` reports the next SDD action for a project/change. `sdd status`, `sdd next`, `sdd get-artifact`, and `sdd list-artifacts` are human-readable by default; pass `--json` for automation/stable structured output. `sdd ready` reports satisfied prerequisites and missing artifact topic keys for one phase. `sdd get-artifact` shows artifact metadata and then full content after `--- Content ---`; `sdd list-artifacts` shows one compact row for every canonical SDD phase in phase order and does not print full artifact content.
585
+ Current canonical phases are `explore`, `proposal`, `spec`, `design`, `tasks`, `apply-progress`, `verify`, and `archive`. `apply` is accepted as a user-facing input alias, but artifacts, topic keys, readiness/status/cockpit JSON, and internal metadata continue to use canonical `apply-progress`. Each artifact is stored under `sdd/{change}/{phase}` in the local SQLite memory store. `sdd status` reports which phase artifacts are present, blocker-specific next actions, and related interrupted run hints when available. `sdd next` reports the next SDD action for a project/change and frames runnable phase work as OpenCode-first while preserving fallback command fields. `sdd continue` turns that state into a read-only continuation plan, including manual fallback commands, draft-run suggestions for planning phases, and related interrupted run context when a matching stopped run exists. `sdd status`, `sdd next`, `sdd continue`, `sdd get-artifact`, and `sdd list-artifacts` are human-readable by default; pass `--json` for automation/stable structured output. `sdd ready` reports satisfied prerequisites and missing artifact topic keys for one phase. `sdd get-artifact` shows artifact metadata and then full content after `--- Content ---`; `sdd list-artifacts` shows one compact row for every canonical SDD phase in phase order and does not print full artifact content.
586
+
587
+ `sdd accept-artifact` records explicit human-only acceptance of an existing artifact through the same SDD workflow service used by MCP. It requires `--project`, `--change`, `--phase`, and `--actor`; `--display-name` defaults to the actor id. `--accepted-at` is optional, but when supplied it must be an ISO date-time with an explicit timezone (`Z` or offset) and is normalized to UTC `toISOString()` output. The default output is a human-readable confirmation with a JSON hint; `--json` returns a content-free success object with project/change/phase/topic key/artifact id/status/acceptedBy/acceptedAt and optional note. `save-artifact` creates or updates draft content only and does not imply acceptance. `sdd reopen-artifact` moves a rejected artifact back to draft after an explicit human decision, so the artifact can be revised and accepted again.
560
588
 
561
- `sdd accept-artifact` records explicit human-only acceptance of an existing artifact through the same SDD workflow service used by MCP. It requires `--project`, `--change`, `--phase`, and `--actor`; `--display-name` defaults to the actor id. `--accepted-at` is optional, but when supplied it must be an ISO date-time with an explicit timezone (`Z` or offset) and is normalized to UTC `toISOString()` output. The default output is a human-readable confirmation with a JSON hint; `--json` returns a content-free success object with project/change/phase/topic key/artifact id/status/acceptedBy/acceptedAt and optional note. `save-artifact` creates or updates draft content only and does not imply acceptance.
589
+ Use `resume --project <project>` when you do not know the run id. It lists recent interrupted candidates for that project from the selected database. Use `resume --project <project> --run-id <id>` to inspect one candidate; this is still read-only and advisory.
562
590
 
563
- The SDD CLI is status/persistence only. It does **not** execute providers, continue workflows, create `openspec/`, or write `.opencode/`, `.claude/`, or user/global provider config.
591
+ The SDD CLI is status, planning, artifact persistence, diagnostics, recovery, scripting, and manual fallback only. It does **not** execute providers, retry workflow runs, create `openspec/`, or write `.opencode/`, `.claude/`, or user/global provider config.
564
592
 
565
593
  ## Agent resolution
566
594
 
@@ -953,7 +981,7 @@ For more on schema, scopes, and lifecycle, see [Storage](./storage.md).
953
981
 
954
982
  - [Architecture](./architecture.md) — current-state architecture and core domain model.
955
983
  - [Code runtime](./code-runtime.md) — `vgxness code` modes, tools, providers, and approval flow.
956
- - [MCP tools](./mcp.md) — full reference for the 38 MCP tools exposed to agents.
984
+ - [MCP tools](./mcp.md) — full reference for the 41 MCP tools exposed to agents.
957
985
  - [Safety model](./safety.md) — permission categories, approval flow, redactors, and runtime gates.
958
986
  - [Storage](./storage.md) — SQLite schema, scopes, and lifecycle.
959
987
  - [Providers](./providers.md) — adapter contract and how to add a new provider.
@@ -35,6 +35,7 @@ Common flags across modes:
35
35
  | Flag | Effect |
36
36
  |---|---|
37
37
  | `--save-artifact` | Persist the phase artifact when explicit persistence is intended. |
38
+ | `--draft-run` | Let planning phases use draft prerequisites for planning only; human acceptance is still required and `apply-progress` remains gated. |
38
39
  | `--change-id <id>` | Override change id. |
39
40
  | `--approval-policy`, `--approval-channel`, `--memory` | Same as the other modes. |
40
41
 
@@ -172,6 +173,8 @@ Prompts, reports, checkpoints, transcripts, and memory saves redact secret-like
172
173
 
173
174
  `vgxness code sdd <change> <phase>` loads existing artifacts for the requested change/phase and exposes phase-appropriate tools. Non-implementation phases stay read/artifact oriented. `apply-progress` may expose edit and shell tools. `verify` may expose verification shell tools. Artifact saves require explicit `--save-artifact` (or the equivalent runtime flag); passing it is the only way persistence is triggered.
174
175
 
176
+ Use `vgxness sdd continue --project <project> --change <change>` first when you want the read-only continuation plan. It may suggest `vgxness code sdd ... --draft-run --save-artifact` for planning phases when draft prerequisites exist. `--draft-run` does not accept a value, does not weaken human acceptance, and does not unblock `apply-progress`; it only lets planning phases produce or revise draft artifacts before a human accepts them.
177
+
175
178
  ## Project detection
176
179
 
177
180
  `detectProject()` (in `src/code/runtime/project-detection.ts`) reports repository root, stack hints, config files, and verification presets such as `npm run typecheck` or `npm run test` when package scripts exist. The fake provider is deterministic for local tests.
package/docs/glossary.md CHANGED
@@ -80,7 +80,7 @@ A redacted, structured report over SDD state, runs, and approvals. Surfaced thro
80
80
 
81
81
  ## MCP
82
82
 
83
- Model Context Protocol. The agent-facing transport. VGXNESS exposes 38 typed tools over stdio through `vgxness mcp start`. The tool list lives in `SUPPORTED_VGX_MCP_TOOL_NAMES` (`src/mcp/schema.ts`) and is documented in [MCP tools](./mcp.md).
83
+ Model Context Protocol. The agent-facing transport. VGXNESS exposes 41 typed tools over stdio through `vgxness mcp start`. The tool list lives in `SUPPORTED_VGX_MCP_TOOL_NAMES` (`src/mcp/schema.ts`) and is documented in [MCP tools](./mcp.md).
84
84
 
85
85
  ## Memory observation
86
86
 
package/docs/mcp.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # MCP tools
2
2
 
3
- VGXNESS exposes 38 typed MCP tools over stdio through `vgxness mcp start`. The canonical list is the `SUPPORTED_VGX_MCP_TOOL_NAMES` array in `src/mcp/schema.ts` — treat that as the source of truth. The list below mirrors it; if a tool appears here that is not in the array, or vice versa, the array wins.
3
+ VGXNESS exposes 41 typed MCP tools over stdio through `vgxness mcp start`. The canonical list is the `SUPPORTED_VGX_MCP_TOOL_NAMES` array in `src/mcp/schema.ts` — treat that as the source of truth. The list below mirrors it; if a tool appears here that is not in the array, or vice versa, the array wins.
4
4
 
5
5
  Tools are exposed under the `vgxness_*` prefix. Some MCP hosts strip the prefix and accept the short form (`sdd_status`, `memory_save`, etc.). The schema accepts both.
6
6
 
@@ -11,16 +11,18 @@ All tools:
11
11
  - Return either a typed result or a `VgxMcpError` with a `code` and `message`.
12
12
  - Do not require the agent to import or instantiate anything; pass JSON, get JSON.
13
13
 
14
- ## SDD workflow (10)
14
+ ## SDD workflow (12)
15
15
 
16
16
  | Tool | Purpose | Required inputs | Notes |
17
17
  |---|---|---|---|
18
18
  | `vgxness_sdd_status` | Report per-phase artifact presence and the next ready missing phase. | `project`, `change` | |
19
19
  | `vgxness_sdd_next` | Recommend the next phase decision for a change. | `project`, `change` | |
20
+ | `vgxness_sdd_continue` | Build a read-only continuation plan for a blocked or interrupted SDD change. | `project`, `change`; optional `payloadMode` (`compact`/`verbose`) | Complements `vgxness_sdd_next` and `vgxness_sdd_cockpit` with copyable next steps. Does not mutate artifacts or runs, execute providers, write provider config, create `openspec/`, or bypass human acceptance. |
20
21
  | `vgxness_sdd_ready` | Check whether a specific phase is ready. | `project`, `change`, `phase`; optional `runId`, `agentId` | Returns structured `SddReadiness` with `blockedPrerequisites`. |
21
22
  | `vgxness_sdd_get_readiness` | Same as `ready` with explicit output shape. | same as `ready` | |
22
23
  | `vgxness_sdd_save_artifact` | Persist phase content under canonical topic key `sdd/{change}/{phase}`. | `project`, `change`, `phase`, `content` | Saving does not imply acceptance. |
23
24
  | `vgxness_sdd_accept_artifact` | Record explicit human acceptance for a phase. | `project`, `change`, `phase`, `acceptedBy` (`{type:"human", id, displayName?}`); optional `acceptedAt`, `note`, `runId`, `agentId` | `acceptedBy.type` must be `"human"`. Runtime rejects agent or anonymous acceptance. Only `note` is accepted; `notes` and `rationale` are rejected as unexpected fields. |
25
+ | `vgxness_sdd_reopen_artifact` | Move a rejected artifact back to draft for revision. | `project`, `change`, `phase`, `reopenedBy` (`{type:"human", id, displayName?}`); optional `reopenedAt`, `note`, `runId`, `agentId` | Human-only recovery path. Does not imply acceptance or bypass downstream gates. |
24
26
  | `vgxness_sdd_get_artifact` | Read one full artifact. | `project`, `change`, `phase`; optional `payloadMode` (`compact`/`verbose`) | |
25
27
  | `vgxness_sdd_list_artifacts` | List all artifacts for a change in canonical phase order. | `project`, `change`; optional `payloadMode` | |
26
28
  | `vgxness_sdd_cockpit` | Aggregate per-phase status, blockers, and recommended next action. | `project`, `change` | Returns `SddCockpit` with `aggregateBlockers` of kinds `missing-topic-key`, `unaccepted-phase`, `legacy-artifact`, `readiness`. |
@@ -64,7 +66,7 @@ All tools:
64
66
  | `vgxness_opencode_manager_payload` | Build the OpenCode manager payload envelope. | `OpenCodeManagerPayloadInput` shape (project, scope, agent, workflow/phase, workspaceRoot, maxSourceBytes, payloadMode) | `installable: false`, `readOnly: true`. |
65
67
  | `vgxness_opencode_handoff_preview` | Compose a full handoff preview: provider artifacts + skill diagnostics + SDD status + provider status + safety flags. | `project`; optional `scope`, `agentId`, `agentName`, `workspaceRoot`, `maxSourceBytes`, `change`, `phase` | Read-only preview. Does not execute OpenCode, install hooks, or write provider config. |
66
68
 
67
- ## Runs (8)
69
+ ## Runs (9)
68
70
 
69
71
  | Tool | Purpose | Required inputs | Notes |
70
72
  |---|---|---|---|
@@ -74,6 +76,7 @@ All tools:
74
76
  | `vgxness_run_checkpoint` | Append a resumable JSON state. | `AppendRunCheckpointInput` shape | |
75
77
  | `vgxness_run_finalize` | Finalize a run with `outcome` and `outcomeReason`. | `FinalizeRunInput` shape | `outcome` must match a terminal `status`. Re-finalization is rejected. |
76
78
  | `vgxness_run_preflight` | Run policy evaluation and return the decision + planned execution isolation strategy. | `PreflightRunOperationInput` shape | May create a pending approval when the decision is `ask`. Does not invoke an executor. |
79
+ | `vgxness_run_resume_candidates` | List recent interrupted runs for a project when the run id is unknown. | `project`; optional `limit` (1-100, default 5) | Returns failed, blocked, and needs-human candidates with `inspectInput` for `run_resume_inspect`. Does not retry, resume, mutate runs, create sandboxes/worktrees, invoke providers, or write artifacts/config. |
77
80
  | `vgxness_run_resume_inspect` | Plan-only resume advisory. | `runId` | Returns `RunResumeOrchestrationPlan` with blockers and `nextAction` (`resolve-approval`/`inspect-run`/`retry-check`/`manual-recovery`/`no-action`). |
78
81
  | `vgxness_run_resume_gate` | Evaluate retry policy for an approval without executing. | `approvalId`; optional `policy` | Default policy is `never`. See [Safety model](./safety.md) for the policy table. |
79
82
 
@@ -107,10 +110,11 @@ Inspecting SDD before doing any work:
107
110
 
108
111
  ```text
109
112
  vgxness_sdd_cockpit { project: "vgxness", change: "new-flow" }
113
+ vgxness_sdd_continue { project: "vgxness", change: "new-flow" }
110
114
  vgxness_sdd_get_readiness { project: "vgxness", change: "new-flow", phase: "proposal" }
111
115
  ```
112
116
 
113
- The cockpit returns `aggregateBlockers`; if any are `unaccepted-phase`, the agent should not run the next phase until a human accepts the prerequisite.
117
+ The cockpit returns `aggregateBlockers`; if any are `unaccepted-phase`, the agent should not run the next phase until a human accepts the prerequisite. `vgxness_sdd_continue` uses the same SDD state to explain how to continue; it is advisory only.
114
118
 
115
119
  Recording a phase with explicit human acceptance:
116
120
 
@@ -130,6 +134,16 @@ vgxness_run_checkpoint { runId, label: "after-step-1", state: {...} }
130
134
  vgxness_run_finalize { runId, outcome: "success", outcomeReason: "..." }
131
135
  ```
132
136
 
137
+ Finding interrupted runs when the run id is unknown:
138
+
139
+ ```text
140
+ vgxness_run_resume_candidates { project: "vgxness", limit: 5 }
141
+ vgxness_run_resume_inspect { runId }
142
+ vgxness_run_resume_gate { approvalId, policy }
143
+ ```
144
+
145
+ `vgxness_run_resume_candidates` is discovery only. It points to `run_resume_inspect` for a selected candidate and does not admit a retry or resume execution; `run_resume_gate` remains the advisory retry-policy check for a known approval id.
146
+
133
147
  ## Safety boundary
134
148
 
135
149
  MCP tools do not:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vgxness",
3
- "version": "1.9.2",
3
+ "version": "1.9.4",
4
4
  "description": "CLI and MCP control plane for guided AI-agent workflows, SDD, memory, and OpenCode setup.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "repository": {