vgxness 1.13.0 → 1.14.1

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/docs/cli.md CHANGED
@@ -577,7 +577,7 @@ This seed file is repo-only in v1.3.0 package contents. If installed-package wor
577
577
 
578
578
  The command prints an `AgentSeedLoadSummary` JSON payload with `created`, `updated`, `agents`, `subagents`, and `warnings`. Re-running the same seed is safe: records are upserted by the current project, scope, and name, so existing seed records are updated in place instead of duplicated.
579
579
 
580
- The checked-in `vgxness-manager` and SDD subagents are self-contained: their seed instructions describe the MCP-first orchestration contract inline and do not require installing `~/.config/opencode/skills/sdd-*`. SDD skills can still be registered and attached as optional registry assets when a project wants extra reusable guidance.
580
+ The checked-in `vgxness-manager` and SDD subagents are self-contained: their seed instructions describe the MCP-first orchestration contract inline and do not require external provider-native skill directories. SDD skills can still be registered and attached as optional VGXNESS registry assets when a project wants extra reusable guidance.
581
581
 
582
582
  Seed loading preserves user-created agents that are absent from the manifest. It only writes to the selected local registry database (`--db`, `VGXNESS_DB_PATH`, or the global default); it does **not** create `.opencode/`, `.claude/`, provider config, or user/global OpenCode configuration.
583
583
 
@@ -592,20 +592,18 @@ The render command returns preview artifacts only and keeps provider config unto
592
592
 
593
593
  ## Skill examples
594
594
 
595
- Register an optional provider-agnostic skill, add an active version, attach it to a workflow phase, and record a simple run outcome. These examples are registry-managed enhancements, not requirements for the checked-in OpenCode manager/subagents:
595
+ Inspect the built-in VGXNESS registry/context skills and resolve the context that would be available to a workflow phase. These examples are registry-managed guidance only; they do not install provider-native OpenCode skills or write provider config:
596
596
 
597
597
  ```bash
598
- bun run cli:bun -- skills register --project vgxness --name sdd-apply --description "Applies focused SDD slices"
599
- bun run cli:bun -- skills add-version --project vgxness --name sdd-apply --version 1.0.0 --source-kind path --source-path .config/opencode/skills/sdd-apply/SKILL.md --activate
600
- bun run cli:bun -- skills attach --project vgxness --name sdd-apply --target-type workflow-phase --target-key sdd:apply
601
- bun run cli:bun -- skills record-usage --project vgxness --name sdd-apply --outcome helped --run-id <run-id> --target-type workflow-phase --target-key sdd:apply
598
+ bun run cli:bun -- skills get --project vgxness --name vgxness-sdd-apply
599
+ bun run cli:bun -- skills payload --project vgxness --workflow sdd --phase apply-progress --intent-signals git,tdd,review-size --provider opencode
602
600
  ```
603
601
 
604
602
  Resolve the skills that would be available to a runtime context:
605
603
 
606
604
  ```bash
607
- bun run cli:bun -- skills resolve --agent apply-agent --project vgxness --workflow sdd --phase apply --provider opencode
608
- bun run cli:bun -- skills resolve --agent apply-agent --project vgxness --phase apply --run <run-id> --record-usage selected
605
+ bun run cli:bun -- skills resolve --project vgxness --workflow sdd --phase apply-progress --intent-signals git,tdd,review-size --provider opencode
606
+ bun run cli:bun -- skills resolve --project vgxness --workflow plan --phase pr --intent-signals workflow-selection,pull-request --provider opencode
609
607
  ```
610
608
 
611
609
  `skills resolve` is read-only by default. It combines matching skill attachments plus the agent definition `skills` field, returns active/current versions only, and includes source metadata plus inline `summary`/`content` when available. It records `selected` or `injected` usage only when both `--run` and `--record-usage` are explicit.
@@ -619,10 +617,13 @@ bun run cli:bun -- skills status --project vgxness --scope project --provider op
619
617
 
620
618
  `skills status` prints deterministic JSON with `kind: "skills-status"` and `version: 1`. It includes project/scope/provider context, registry skill counts and current-version status, declared/resolved/missing skills for matching agents or subagents, resolver diagnostics, and safety markers. The command is read-only: it does not repair, install, or write provider configuration and does not record skill usage. A missing `--agent` match returns valid JSON with a warning diagnostic instead of crashing.
621
619
 
622
- Create and review a skill improvement proposal without activating it:
620
+ Register and review an optional project-local registry skill without activating provider-native OpenCode skill loading:
623
621
 
624
622
  ```bash
625
- bun run cli:bun -- skills propose --project vgxness --name sdd-apply --proposed-version 1.1.0 --source-kind inline --inline-metadata '{"content":"Updated skill body"}' --rationale "Repeated correction from trace" --source-signal '{"kind":"trace-failure"}'
623
+ bun run cli:bun -- skills register --project vgxness --name team-review-guidance --description "Team-specific review guidance"
624
+ bun run cli:bun -- skills add-version --project vgxness --name team-review-guidance --version 1.0.0 --source-kind inline --inline-metadata '{"content":"Check product risk, review size, and rollback notes."}' --activate
625
+ bun run cli:bun -- skills attach --project vgxness --name team-review-guidance --target-type intent-signal --target-key review-size
626
+ bun run cli:bun -- skills propose --project vgxness --name team-review-guidance --proposed-version 1.1.0 --source-kind inline --inline-metadata '{"content":"Revised team guidance."}' --rationale "Repeated correction from trace" --source-signal '{"kind":"trace-failure"}'
626
627
  bun run cli:bun -- skills proposals --status draft
627
628
  bun run cli:bun -- skills get-proposal --proposal <proposal-id>
628
629
  ```
@@ -640,7 +641,7 @@ Rejected or cancelled proposals cannot be applied. These commands store reviewab
640
641
  Build an injection-ready payload without mutating provider config:
641
642
 
642
643
  ```bash
643
- bun run cli:bun -- skills payload --agent apply-agent --project vgxness --workflow sdd --phase apply --provider opencode
644
+ bun run cli:bun -- skills payload --project vgxness --workflow sdd --phase apply-progress --intent-signals git,tdd,review-size --provider opencode
644
645
  ```
645
646
 
646
647
  `skills payload` resolves the same active skills and returns payload v1 JSON: skill identity/version, source kind, available content or an unavailable reason, attachment reasons, and ordering metadata. Inline `content` is included directly. Local `path` sources are loaded read-only only when they resolve inside the current workspace root. URL sources are never fetched in v1 and return `url_fetch_disabled`. The command does **not** write `.opencode/`, `.claude/`, provider prompts, or external skill files.
@@ -648,7 +649,7 @@ bun run cli:bun -- skills payload --agent apply-agent --project vgxness --workfl
648
649
  `skills get` returns the current version, all versions, attachments, and usage records:
649
650
 
650
651
  ```bash
651
- bun run cli:bun -- skills get --project vgxness --name sdd-apply
652
+ bun run cli:bun -- skills get --project vgxness --name vgxness-sdd-apply
652
653
  bun run cli:bun -- skills list --project vgxness
653
654
  ```
654
655
 
@@ -676,7 +677,7 @@ Use `--file` when a definition has permissions, memory, workflows, skills, or ad
676
677
  "permissions": { "read": "allow", "edit": "ask", "shell": "ask" },
677
678
  "memory": { "scopes": ["project"] },
678
679
  "workflows": ["sdd"],
679
- "skills": ["sdd-apply"],
680
+ "skills": ["vgxness-sdd-apply"],
680
681
  "adapters": { "opencode": { "model": "openai/gpt-5.5" } }
681
682
  }
682
683
  ```
@@ -1,5 +1,7 @@
1
1
  # Auditoría de salud del proyecto VGXNESS v1.10.x
2
2
 
3
+ > Historical snapshot: this document records the v1.10.x health review and should not be treated as current status. See [Project health audit v1.14.x](./project-health-audit-v1.14.x.md) for the current system snapshot.
4
+
3
5
  ## Resumen ejecutivo
4
6
 
5
7
  VGXNESS v1.10.x está en un punto avanzado como **CLI/MCP control plane local-first** para SDD, memoria, runs, permisos, agentes, skills y setup de OpenCode. La base de producto es sólida: hay workflow SDD canónico, storage SQLite local, superficies read-only/advisory, provider doctor, agent manifest canónico y verificación Bun-first.
@@ -0,0 +1,79 @@
1
+ # Auditoría de salud del proyecto VGXNESS v1.14.x
2
+
3
+ ## Resumen ejecutivo
4
+
5
+ VGXNESS v1.14.x está avanzado como **CLI/MCP control plane local-first** para SDD, memoria, runs, permisos, agentes, skills y setup de OpenCode. La base de producto es sólida: el flujo SDD canónico existe como estado SQLite-backed, OpenCode es el provider primario, los drafts y la aceptación humana están separados, y la ruta oficial de verificación es Bun-first.
6
+
7
+ No debe tratarse como “versión final cerrada” hasta resolver la brecha de ejecución/recovery productiva. El sistema gobierna, audita, planea y guía mejor de lo que ejecuta efectos reales de forma autónoma: el executor real, `resume-after-approval`, materialización de sandbox/worktree y evidencia integrada en cockpit siguen siendo trabajo planificado.
8
+
9
+ Esta auditoría es una foto de release-readiness v1.14.x basada en inspección del repositorio, subauditorías internas y verificación local de release candidate. No publica artefactos ni sustituye la aprobación humana explícita de publicación.
10
+
11
+ ## Evidencia observada
12
+
13
+ | Área | Evidencia | Estado |
14
+ |---|---|---|
15
+ | Package | `package.json` declara `version: 1.14.1` y expone los binarios `vgxness`/`vgx` desde `dist/cli/bun-bin.js`. | Implementado |
16
+ | Release history | `CHANGELOG.md` contiene `v1.14.1 — 2026-06-17` para el cierre de release-readiness posterior al tag `v1.14.0`. | Implementado |
17
+ | Runtime/tooling | `package.json` codifica la ruta oficial `bun run verify`: typecheck, tests Node, tests Bun storage-backed, Bun SQLite y evidencia de paquete. | Implementado |
18
+ | Release candidate verification | La ruta completa `verify:typecheck`, `verify:test`, `verify:test:bun-storage`, `verify:bun-sqlite` y `package:bun:evidence -- --require-pass` pasó localmente; package evidence reportó `releaseReadiness.status: pass` y `publicationAttempted: false`. | Validado |
19
+ | CI | `.github/workflows/node22.yml` ahora ejecuta también `bun run verify:test:bun-storage`, alineando el gate principal con `package.json`. | Alineado |
20
+ | CLI/MCP | README y docs describen CLI para bootstrap/diagnóstico/recovery y MCP para trabajo diario dentro de OpenCode. | Implementado |
21
+ | SDD | Fases canónicas `explore → proposal → spec → design → tasks → apply-progress → verify → archive`; aceptación humana separada de presencia de artifact. | Implementado |
22
+ | Providers | OpenCode es primario; Claude es secundario/guarded; Antigravity/custom son placeholder/extensión. | Implementado con límites |
23
+ | Code runtime | El runtime experimental `vgxness code` y la superficie principal OpenTUI están removidos temporalmente. | Fuera de release |
24
+ | Docs | README, architecture, providers, roadmap y auditorías históricas apuntan a este snapshot v1.14.x como actual. | Alineado |
25
+
26
+ ## Estado por superficie
27
+
28
+ ### CLI y MCP
29
+
30
+ La CLI está madura para setup, status, recuperación, SDD, runs, permisos, agentes, skills, MCP y verificación. La superficie MCP es la ruta diaria recomendada para trabajar desde OpenCode con subagentes SDD ocultos. Los comandos preview/status/plan mantienen el contrato no mutante respecto a provider config; las escrituras de config requieren consentimiento explícito.
31
+
32
+ ### SDD governance
33
+
34
+ La fortaleza principal del producto es que SDD no depende solo de prompts: fases, artifacts, readiness, aceptación humana, runs y eventos viven como estado consultable. La aceptación humana sigue siendo un gate separado; guardar drafts no implica aceptación.
35
+
36
+ ### Release y paquete
37
+
38
+ El release gate debe ser Bun-first:
39
+
40
+ ```bash
41
+ bun run verify:typecheck
42
+ bun run verify:test
43
+ bun run verify:test:bun-storage
44
+ bun run verify:bun-sqlite
45
+ bun run package:bun:evidence -- --require-pass
46
+ ```
47
+
48
+ CI debe permanecer alineado con esa ruta. La publicación sigue siendo una operación separada, explícita y humana; esta auditoría no aprueba ni intenta publicación.
49
+
50
+ ### Ejecución y recovery
51
+
52
+ El mayor gap de producto sigue siendo operacional: `docs/roadmap.md` marca como pendiente el executor real, `resume-after-approval`, materialización sandbox/worktree y mejores resúmenes de evidencia de verificación. Hasta cerrar eso, VGXNESS es muy fuerte como control plane y guía de workflow, pero no como runtime autónomo final.
53
+
54
+ ## Riesgos principales
55
+
56
+ | Riesgo | Impacto | Recomendación |
57
+ |---|---|---|
58
+ | Release tag pendiente | Riesgo de publicar contenido sin tag/release note correspondiente. | Taggear/publicar solo después de revisar diff final y con aprobación humana explícita. |
59
+ | Execution/resume gap | El producto puede dejar al usuario en recuperación manual para runs complejos. | Priorizar executor real, checkpoints útiles y `resume-after-approval`. |
60
+ | Cockpit sin evidencia rica | “Por qué está bloqueado” puede requerir inspección adicional. | Integrar pass/fail/skipped, timestamp y evidencia por fase. |
61
+ | Provider wording drift | Usuarios pueden asumir paridad completa fuera de OpenCode. | Mantener OpenCode como primario y Claude/otros con límites explícitos. |
62
+ | TUI/code-runtime removidos | Puede haber expectativas viejas de `vgxness code`. | Mantener docs claras: la ruta diaria es OpenCode + MCP; CLI es fallback/diagnóstico. |
63
+
64
+ ## Próximo paso recomendado
65
+
66
+ Para cerrar un release candidate v1.14.x:
67
+
68
+ 1. Revisar el diff final y commit/tag de release si corresponde.
69
+ 2. Confirmar que CI reproduce la cadena oficial completa en la rama remota.
70
+ 3. No publicar hasta que la evidencia de paquete reporte `releaseReadiness.status: pass` y exista aprobación humana explícita.
71
+
72
+ Para avanzar hacia “versión final” de producto, abrir un cambio SDD separado para **final-product readiness hardening** con foco en executor/recovery/cockpit evidence.
73
+
74
+ ## Fuera de alcance de esta auditoría
75
+
76
+ - No se publicó ni se contactó un registry.
77
+ - No se mutó provider config.
78
+ - No se aceptó ningún artifact SDD.
79
+ - No se creó tag de release.
@@ -1,6 +1,6 @@
1
1
  # Auditoría de salud del proyecto VGXNESS v1.9.1
2
2
 
3
- > Historical snapshot: this document records validated v1.9.1 evidence and should not be treated as current v1.10.x status. See [Project health audit v1.10.x](./project-health-audit-v1.10.x.md) for the current system snapshot.
3
+ > Historical snapshot: this document records validated v1.9.1 evidence and should not be treated as current status. See [Project health audit v1.14.x](./project-health-audit-v1.14.x.md) for the current system snapshot.
4
4
 
5
5
  ## Resumen v1.9.1
6
6
 
package/docs/providers.md CHANGED
@@ -4,7 +4,7 @@ VGXNESS is provider-agnostic at the core: the registry stores provider-neutral d
4
4
 
5
5
  ## Status
6
6
 
7
- Current as of the v1.10.x documentation snapshot.
7
+ Current as of the v1.14.x documentation snapshot.
8
8
 
9
9
  | Provider | Control plane | Workspace runtime | Notes |
10
10
  |---|---|---|---|
package/docs/roadmap.md CHANGED
@@ -41,7 +41,7 @@ SQLite, scopes, migrations, and the run snapshot export are in.
41
41
 
42
42
  ## TUI
43
43
 
44
- The principal code surface is in via OpenTUI. The legacy interactive setup surfaces and dashboard directory are absent in the current tree.
44
+ The previous principal OpenTUI code surface is temporarily unavailable. The legacy interactive setup surfaces and dashboard directory are absent in the current tree; future TUI work should be rebuilt around the current MCP/CLI control-plane boundaries rather than the removed runtime.
45
45
 
46
46
  - **TUI dashboard screen.** Real-time view of active runs, pending approvals, and SDD blockers. Should match the cockpit surface from MCP.
47
47
  - **TUI runs screen.** Run list, drill into a run, see events/approvals/attempts, with read-only safe actions.
@@ -0,0 +1,403 @@
1
+ # Flujo SDD
2
+
3
+ > Versión en inglés: [SDD Flow](./sdd-flow.md).
4
+
5
+ > **Alcance:** este documento explica el flujo SDD completo en VGXNESS: desde una intención humana, pasando por artefactos de planeación, progreso de implementación, verificación y archivo. Es una guía práctica para operadores y acompaña a [Architecture](./architecture.md), [Safety](./safety.md), [CLI](./cli.md) y [MCP tools](./mcp.md).
6
+
7
+ VGXNESS trata SDD como estado real del producto, no solo como instrucciones para agentes. Cada fase produce un artefacto guardado localmente en SQLite, y el avance entre fases se controla mediante readiness explícito y, cuando aplica, aceptación humana explícita.
8
+
9
+ Las fases canónicas de SDD son:
10
+
11
+ ```text
12
+ explore → proposal → spec → design → tasks → apply-progress → verify → archive
13
+ ```
14
+
15
+ ## Modelo mental
16
+
17
+ ```text
18
+ Intención humana
19
+
20
+ Conversación en OpenCode / acción del operador por CLI
21
+
22
+ Superficie VGXNESS MCP o CLI
23
+
24
+ Servicios del control plane
25
+
26
+ Artefactos SDD, runs, memoria y checkpoints en SQLite
27
+ ```
28
+
29
+ La separación importante es:
30
+
31
+ ```text
32
+ Conversación ≠ estado
33
+ Draft ≠ aceptación
34
+ Plan ≠ ejecución
35
+ Preflight ≠ permiso automático
36
+ Provider status ≠ escritura de config del provider
37
+ CLI/MCP ≠ reglas de negocio duplicadas
38
+ ```
39
+
40
+ ## 1. Intención humana
41
+
42
+ El flujo empieza cuando el humano expresa un objetivo, normalmente dentro de OpenCode después de instalar el MCP de VGXNESS.
43
+
44
+ Ejemplo:
45
+
46
+ ```text
47
+ Mejorar el flujo de recuperación de runs interrumpidos para que VGXNESS sugiera cómo continuar de forma segura.
48
+ ```
49
+
50
+ Para cambios sustanciales, VGXNESS no debería saltar directo al código. El camino seguro es inspeccionar el estado SDD actual y elegir la siguiente fase válida.
51
+
52
+ Superficies útiles:
53
+
54
+ ```text
55
+ sdd_status
56
+ sdd_next
57
+ sdd_continue
58
+ agent_resolve
59
+ agent_activate
60
+ ```
61
+
62
+ Equivalentes por CLI para setup, diagnóstico, recuperación y 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`: entender antes de elegir solución
71
+
72
+ Objetivo: investigar el problema, los límites actuales del código, decisiones previas, riesgos y posibles enfoques sin comprometerse todavía con una implementación.
73
+
74
+ Preguntas típicas:
75
+
76
+ - ¿Dónde vive la lógica relevante?
77
+ - ¿Qué herramientas CLI y MCP ya existen?
78
+ - ¿Qué servicio es dueño de la regla de dominio?
79
+ - ¿Qué restricciones de safety o storage aplican?
80
+ - ¿Qué riesgos harían difícil revisar el cambio?
81
+
82
+ Para recuperación de runs interrumpidos, la exploración podría revisar:
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
+ El artefacto de fase se guarda con el topic key canónico:
94
+
95
+ ```text
96
+ sdd/{change}/explore
97
+ ```
98
+
99
+ Un agente puede marcar el artefacto como ready, pero readiness no es aceptación.
100
+
101
+ ## 3. Aceptación humana de `explore`
102
+
103
+ VGXNESS separa deliberadamente contenido generado y aprobación humana:
104
+
105
+ ```text
106
+ draft / ready ≠ accepted
107
+ ```
108
+
109
+ Solo una decisión humana de aceptación debería avanzar trabajo posterior que esté gobernado por gates. Esto evita que un agente apruebe silenciosamente su propia dirección.
110
+
111
+ Ejemplo CLI:
112
+
113
+ ```bash
114
+ vgxness sdd accept-artifact --project <project> --change <change> --phase explore
115
+ ```
116
+
117
+ ## 4. `proposal`: elegir dirección de producto
118
+
119
+ Objetivo: definir qué cambio debe hacerse y por qué.
120
+
121
+ Una buena propuesta responde:
122
+
123
+ - ¿Qué problema estamos resolviendo?
124
+ - ¿Quién se beneficia?
125
+ - ¿Qué está dentro del alcance?
126
+ - ¿Qué queda explícitamente fuera del alcance?
127
+ - ¿Qué riesgos o tradeoffs existen?
128
+ - ¿Cómo sabremos que funcionó?
129
+
130
+ Ejemplo de resumen de propuesta:
131
+
132
+ ```text
133
+ Agregar una superficie read-only de continuación para runs interrumpidos que combine runs failed/blocked/needs-human, el último checkpoint, la fase SDD asociada y una siguiente acción recomendada segura.
134
+ ```
135
+
136
+ Esto sigue siendo definición de dirección, no implementación.
137
+
138
+ ## 5. Aceptación humana de `proposal`
139
+
140
+ La propuesta es el contrato principal de alcance. Si es demasiado amplia, la implementación y la revisión se vuelven riesgosas.
141
+
142
+ Pregunta recomendada para revisión:
143
+
144
+ ```text
145
+ ¿Esto puede revisarse como un slice coherente o deberíamos dividirlo?
146
+ ```
147
+
148
+ Por ejemplo, un primer slice más seguro puede ser:
149
+
150
+ ```text
151
+ Diagnóstico read-only de runs interrumpidos antes de cualquier recuperación automática o ejecución de provider.
152
+ ```
153
+
154
+ Después de aceptar exactamente la propuesta, se pueden generar borradores downstream de planeación, pero esos artefactos siguen siendo drafts hasta que se revisen y acepten según la gobernanza.
155
+
156
+ ## 6. `spec`: definir comportamiento observable
157
+
158
+ Objetivo: especificar qué debe hacer el sistema sin sobreadaptarse a detalles de implementación.
159
+
160
+ Para recuperación de runs interrumpidos, una spec podría requerir:
161
+
162
+ - Runs con estado `failed`, `blocked` o `needs-human` aparecen como candidatos de recuperación.
163
+ - Cada candidato incluye run id, proyecto, workflow, fase, estado, último checkpoint, razón de fallo o bloqueo y siguiente acción recomendada.
164
+ - El estado vacío es explícito cuando no existen runs interrumpidos.
165
+ - La superficie es read-only y no reanuda providers ni muta estado de runs.
166
+
167
+ La spec debe incluir casos límite, por ejemplo:
168
+
169
+ - muchos runs interrumpidos;
170
+ - runs sin checkpoints;
171
+ - runs de otro proyecto;
172
+ - runs ligados a fases SDD ya aceptadas;
173
+ - metadata incompleta o inconsistente.
174
+
175
+ ## 7. `design`: decidir cómo construirlo
176
+
177
+ Objetivo: conectar la spec con la arquitectura existente.
178
+
179
+ Un buen diseño identifica:
180
+
181
+ - límites de servicio;
182
+ - cambios de repository/query;
183
+ - superficies CLI y MCP;
184
+ - agregados de schema;
185
+ - comportamiento de renderers;
186
+ - tests;
187
+ - necesidad de migraciones, si aplica;
188
+ - invariantes de safety.
189
+
190
+ Ejemplo de diseño:
191
+
192
+ ```text
193
+ Agregar un servicio de candidatos de resume respaldado por el repositorio de runs.
194
+ Exponer herramientas MCP read-only para listar e inspeccionar candidatos.
195
+ Exponer un comando CLI de recuperación/status que use el mismo servicio.
196
+ Mantener la generación de recomendaciones como no-mutante.
197
+ ```
198
+
199
+ Reglas arquitectónicas que preservar:
200
+
201
+ - CLI y MCP deben compartir servicios de dominio.
202
+ - Los renderers no deben reimplementar reglas de negocio.
203
+ - Las herramientas read-only deben seguir siendo no-mutantes.
204
+ - Las escrituras de configuración de provider requieren consentimiento humano explícito.
205
+ - Los artefactos SDD siguen respaldados por SQLite; no crear `openspec/`.
206
+
207
+ ## 8. `tasks`: hacer el diseño revisable
208
+
209
+ Objetivo: dividir el diseño en pasos pequeños de implementación.
210
+
211
+ Ejemplo de desglose:
212
+
213
+ ```text
214
+ 1. Agregar query de repositorio para runs interrumpidos.
215
+ 2. Agregar servicio de candidatos de resume.
216
+ 3. Agregar schema MCP y herramientas read-only.
217
+ 4. Agregar comando CLI o extender la superficie existente de recovery/status.
218
+ 5. Agregar salida de renderer para estados vacío, único candidato y múltiples candidatos.
219
+ 6. Agregar tests enfocados de servicio.
220
+ 7. Agregar tests de contrato CLI/MCP.
221
+ 8. Actualizar docs si cambia comportamiento visible para el usuario.
222
+ ```
223
+
224
+ Buenas tasks son pequeñas, testeables y fáciles de revisar.
225
+
226
+ ## 9. `apply-progress`: implementar con progreso trazable
227
+
228
+ Objetivo: hacer el cambio de código mientras se registra qué cambió, qué falta y qué evidencia existe.
229
+
230
+ Antes de implementar, revisar tamaño y riesgo:
231
+
232
+ - ¿El cambio toca varios subsistemas?
233
+ - ¿Altera storage o migraciones?
234
+ - ¿Cambia schemas MCP?
235
+ - ¿Cambia comportamiento de safety?
236
+ - ¿El diff es demasiado grande para una sola revisión?
237
+
238
+ Si el cambio es demasiado amplio, hay que dividirlo antes de implementar.
239
+
240
+ Durante la implementación, `apply-progress` debería capturar:
241
+
242
+ - trabajo completado;
243
+ - archivos o módulos modificados;
244
+ - tareas pendientes;
245
+ - resultados de tests;
246
+ - blockers conocidos;
247
+ - desviaciones del diseño aceptado.
248
+
249
+ `apply-progress` es un registro de progreso, no prueba de que la implementación sea correcta.
250
+
251
+ ## 10. Preflight para operaciones riesgosas
252
+
253
+ VGXNESS usa preflight checks para mantener explícitas las operaciones riesgosas.
254
+
255
+ Ejemplos de categorías riesgosas:
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
+ Ejemplo conceptual MCP:
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 es control consultivo/de planeación. No significa que la operación esté automáticamente aprobada o ejecutada.
280
+
281
+ ## 11. `verify`: comprobar la implementación independientemente
282
+
283
+ Objetivo: verificar la implementación contra la spec y el design aceptados, idealmente con contexto fresco de revisor/agente para cambios no triviales.
284
+
285
+ La verificación debe revisar:
286
+
287
+ - que la spec se cumpla;
288
+ - que los límites del diseño se respeten o las desviaciones estén justificadas;
289
+ - que los tests relevantes pasen;
290
+ - que superficies read-only no se hayan vuelto mutantes;
291
+ - que setup/config de providers sigan requiriendo consentimiento explícito;
292
+ - que storage, CLI y MCP sigan siendo consistentes.
293
+
294
+ Comandos típicos de verificación del repo:
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
+ No todo cambio pequeño de docs o copy necesita la suite completa. Cambios de storage, schema CLI/MCP, setup de providers o packaging merecen verificación más estricta.
304
+
305
+ ## 12. `archive`: cerrar el cambio con contexto durable
306
+
307
+ Objetivo: preservar qué ocurrió para que trabajo futuro pueda recuperar contexto sin releer todo el hilo o diff.
308
+
309
+ Un artefacto de archive debería incluir:
310
+
311
+ - resultado final;
312
+ - comportamiento visible que cambió;
313
+ - archivos o módulos clave tocados;
314
+ - verificación realizada;
315
+ - riesgos residuales;
316
+ - trabajo de seguimiento;
317
+ - notas de rollback o recuperación, si aplica.
318
+
319
+ Ejemplo de resumen archive:
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
+ ## Boceto del flujo de herramientas
330
+
331
+ Dentro de OpenCode, el flujo normalmente se ve así conceptualmente:
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
+ humano acepta explore
345
+
346
+ agent_activate(proposal)
347
+
348
+ sdd_save_artifact(proposal)
349
+
350
+ sdd_ready(proposal)
351
+
352
+ humano acepta proposal
353
+
354
+ agent_activate(spec)
355
+
356
+ agent_activate(design)
357
+
358
+ agent_activate(tasks)
359
+
360
+ humano revisa/acepta artefactos con gate
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
+ ## Por qué existe este flujo
376
+
377
+ Un flujo agentic ingenuo sería:
378
+
379
+ ```text
380
+ leer código → editar código → correr tests → decir terminado
381
+ ```
382
+
383
+ VGXNESS usa SDD para hacerlo más seguro:
384
+
385
+ ```text
386
+ entender objetivo
387
+
388
+ elegir alcance
389
+
390
+ especificar comportamiento
391
+
392
+ diseñar el cambio
393
+
394
+ dividir en tareas
395
+
396
+ implementar con preflight y tracking de progreso
397
+
398
+ verificar independientemente
399
+
400
+ archivar contexto durable
401
+ ```
402
+
403
+ La estructura inicial cuesta un poco de tiempo, pero reduce scope creep oculto, diffs imposibles de revisar, automatización insegura y pérdida de contexto.