pumuki 6.3.26 → 6.3.28
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/README.md +3 -1
- package/bin/pumuki-mcp-enterprise-stdio.js +5 -0
- package/bin/pumuki-mcp-evidence-stdio.js +5 -0
- package/core/gate/conditionMatches.ts +1 -21
- package/core/gate/evaluateGate.js +5 -0
- package/core/gate/evaluateRules.js +5 -0
- package/core/gate/evaluateRules.ts +1 -24
- package/core/gate/scopeMatcher.ts +84 -0
- package/docs/EXECUTION_BOARD.md +749 -376
- package/docs/MCP_SERVERS.md +41 -2
- package/docs/README.md +6 -2
- package/docs/REFRACTOR_PROGRESS.md +374 -6
- package/docs/validation/README.md +11 -1
- package/docs/validation/p9-ruralgo-bug-registry.md +607 -0
- package/docs/validation/p9-ruralgo-fork-validation-tracking.md +904 -0
- package/docs/validation/real-repo-manual-e2e-ruralgo-fork.md +372 -0
- package/integrations/config/skillsCompliance.ts +212 -0
- package/integrations/evidence/integrity.ts +352 -0
- package/integrations/evidence/rulesCoverage.ts +94 -0
- package/integrations/evidence/schema.test.ts +16 -0
- package/integrations/evidence/schema.ts +41 -0
- package/integrations/evidence/writeEvidence.test.ts +68 -0
- package/integrations/evidence/writeEvidence.ts +23 -2
- package/integrations/gate/evaluateAiGate.ts +382 -15
- package/integrations/gate/stagePolicies.ts +70 -15
- package/integrations/gate/waivers.ts +209 -0
- package/integrations/git/findingTraceability.ts +3 -23
- package/integrations/git/index.js +5 -0
- package/integrations/git/runCliCommand.ts +16 -0
- package/integrations/git/runPlatformGate.ts +53 -1
- package/integrations/git/runPlatformGateEvaluation.ts +13 -0
- package/integrations/git/stageRunners.ts +168 -5
- package/integrations/lifecycle/adapter.templates.json +72 -5
- package/integrations/lifecycle/adapter.ts +78 -4
- package/integrations/lifecycle/cli.ts +384 -14
- package/integrations/lifecycle/doctor.ts +534 -0
- package/integrations/lifecycle/hookBlock.ts +2 -1
- package/integrations/lifecycle/index.js +5 -0
- package/integrations/lifecycle/install.ts +115 -3
- package/integrations/lifecycle/openSpecBootstrap.ts +68 -8
- package/integrations/lifecycle/preWriteAutomation.ts +142 -0
- package/integrations/mcp/aiGateCheck.ts +6 -0
- package/integrations/mcp/aiGateReceipt.ts +188 -0
- package/integrations/mcp/enterpriseServer.ts +14 -1
- package/integrations/mcp/enterpriseStdioServer.cli.ts +315 -0
- package/integrations/mcp/evidenceStdioServer.cli.ts +342 -0
- package/integrations/mcp/index.js +5 -0
- package/integrations/sdd/index.js +5 -0
- package/integrations/sdd/index.ts +2 -0
- package/integrations/sdd/policy.ts +191 -2
- package/integrations/sdd/sessionStore.ts +139 -19
- package/integrations/sdd/syncDocs.ts +180 -0
- package/integrations/sdd/types.ts +4 -1
- package/integrations/telemetry/structuredTelemetry.ts +197 -0
- package/package.json +27 -8
- package/scripts/build-p9-validation-manifests.ts +53 -0
- package/scripts/check-p9-ruralgo-baseline-clean.ts +200 -0
- package/scripts/check-p9-ruralgo-baseline-versioned.ts +198 -0
- package/scripts/check-p9-ruralgo-branch-ready.ts +215 -0
- package/scripts/check-p9-ruralgo-install-health.ts +288 -0
- package/scripts/check-p9-ruralgo-runtime-ready.ts +188 -0
- package/scripts/check-package-manifest.ts +49 -0
- package/scripts/check-tracking-single-active.sh +40 -0
- package/scripts/framework-menu-consumer-preflight-lib.ts +31 -0
- package/scripts/framework-menu-consumer-runtime-lib.ts +3 -3
- package/scripts/framework-menu-legacy-audit-lib.ts +35 -7
- package/scripts/framework-menu-matrix-evidence-lib.ts +6 -2
- package/scripts/manage-library.sh +1 -1
- package/scripts/p9-ruralgo-baseline-clean-lib.ts +117 -0
- package/scripts/p9-ruralgo-baseline-versioned-lib.ts +119 -0
- package/scripts/p9-ruralgo-branch-ready-lib.ts +128 -0
- package/scripts/p9-ruralgo-install-health-lib.ts +121 -0
- package/scripts/p9-ruralgo-runtime-ready-lib.ts +149 -0
- package/scripts/p9-validation-manifests-lib.ts +366 -0
- package/scripts/package-manifest-lib.ts +9 -0
- package/skills.lock.json +1 -1
package/docs/MCP_SERVERS.md
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# MCP Servers (v2.x)
|
|
2
2
|
|
|
3
|
-
Pumuki expone dos servidores MCP HTTP opcionales:
|
|
3
|
+
Pumuki expone dos servidores MCP HTTP opcionales y bridges MCP stdio para IDEs:
|
|
4
4
|
|
|
5
5
|
- `pumuki-mcp-evidence`: API read-only para `.ai_evidence.json`.
|
|
6
6
|
- `pumuki-mcp-enterprise`: superficie enterprise consolidada (resources + tools) con guardrails fail-safe.
|
|
7
|
+
- `pumuki-mcp-evidence-stdio`: bridge MCP stdio para consumir evidencia desde clientes MCP de IDE/CLI.
|
|
8
|
+
- `pumuki-mcp-enterprise-stdio`: bridge MCP sobre stdio para clientes MCP de IDE/CLI (Windsurf/Codex/Cursor/Claude).
|
|
7
9
|
|
|
8
10
|
El enforcement de gates (`pre-commit`, `pre-push`, `ci`) no depende de MCP.
|
|
9
11
|
|
|
@@ -20,7 +22,8 @@ npm run mcp:enterprise
|
|
|
20
22
|
|
|
21
23
|
```bash
|
|
22
24
|
npx --yes pumuki-mcp-evidence
|
|
23
|
-
npx --yes pumuki-mcp-enterprise
|
|
25
|
+
npx --yes --package pumuki@latest pumuki-mcp-enterprise
|
|
26
|
+
npx --yes --package pumuki@latest pumuki-mcp-enterprise-stdio
|
|
24
27
|
```
|
|
25
28
|
|
|
26
29
|
## 1) Evidence Context Server (`pumuki-mcp-evidence`)
|
|
@@ -90,6 +93,32 @@ Variables de entorno:
|
|
|
90
93
|
- `PUMUKI_ENTERPRISE_MCP_HOST`
|
|
91
94
|
- `PUMUKI_ENTERPRISE_MCP_PORT`
|
|
92
95
|
|
|
96
|
+
Nota operativa:
|
|
97
|
+
|
|
98
|
+
- Si el host MCP (IDE/CLI) inicia múltiples instancias y aparece `EADDRINUSE`, usar `PUMUKI_ENTERPRISE_MCP_PORT=0` para puerto dinámico por proceso.
|
|
99
|
+
|
|
100
|
+
## 3) Enterprise MCP Stdio Bridge (`pumuki-mcp-enterprise-stdio`)
|
|
101
|
+
|
|
102
|
+
### Implementación
|
|
103
|
+
|
|
104
|
+
- `integrations/mcp/enterpriseStdioServer.cli.ts`
|
|
105
|
+
- `bin/pumuki-mcp-enterprise-stdio.js`
|
|
106
|
+
|
|
107
|
+
### Purpose
|
|
108
|
+
|
|
109
|
+
Exponer capacidades MCP por stdio para clientes MCP de IDE/CLI, reutilizando el servidor HTTP enterprise por debajo.
|
|
110
|
+
|
|
111
|
+
## 4) Evidence MCP Stdio Bridge (`pumuki-mcp-evidence-stdio`)
|
|
112
|
+
|
|
113
|
+
### Implementación
|
|
114
|
+
|
|
115
|
+
- `integrations/mcp/evidenceStdioServer.cli.ts`
|
|
116
|
+
- `bin/pumuki-mcp-evidence-stdio.js`
|
|
117
|
+
|
|
118
|
+
### Purpose
|
|
119
|
+
|
|
120
|
+
Exponer recursos de evidencia por stdio (`resources/list`, `resources/read`) para clientes MCP de IDE/CLI.
|
|
121
|
+
|
|
93
122
|
### Endpoints
|
|
94
123
|
|
|
95
124
|
- `GET /health`
|
|
@@ -171,8 +200,18 @@ URI no soportada devuelve `404`.
|
|
|
171
200
|
- `stage`
|
|
172
201
|
- `violations[]`
|
|
173
202
|
- `evidence` (kind + age/max-age)
|
|
203
|
+
- `mcp_receipt` (required/kind/path/age para enforcement de PRE_WRITE)
|
|
174
204
|
- `repo_state` (git + lifecycle snapshot)
|
|
175
205
|
|
|
206
|
+
Además, cada ejecución de `ai_gate_check` persiste un recibo auditable en:
|
|
207
|
+
|
|
208
|
+
- `.pumuki/artifacts/mcp-ai-gate-receipt.json`
|
|
209
|
+
|
|
210
|
+
Ese recibo se usa en `pumuki sdd validate --stage=PRE_WRITE` para enforcement no cosmético:
|
|
211
|
+
|
|
212
|
+
- sin recibo MCP válido/fresco: `BLOCK` (`MCP_ENTERPRISE_RECEIPT_*`);
|
|
213
|
+
- con recibo válido/fresco: evaluación PRE_WRITE continúa por gate/evidence normal.
|
|
214
|
+
|
|
176
215
|
### Guardrails enterprise (baseline fail-safe)
|
|
177
216
|
|
|
178
217
|
- Tools mutating (`validate_and_fix`, `sync_branches`, `cleanup_stale_branches`) fuerzan `dryRun=true` aunque se solicite `dryRun=false`.
|
package/docs/README.md
CHANGED
|
@@ -5,8 +5,9 @@ Canonical index for active Pumuki documentation.
|
|
|
5
5
|
## Ciclo Activo (Seguimiento Temporal)
|
|
6
6
|
|
|
7
7
|
- Seguimiento diario (único y simplificado): `docs/EXECUTION_BOARD.md`.
|
|
8
|
-
-
|
|
9
|
-
-
|
|
8
|
+
- Seguimiento simple de validación real en repo no-mock: `docs/validation/p9-ruralgo-fork-validation-tracking.md`.
|
|
9
|
+
- Cierre funcional previo: `P6` (verificación exhaustiva interna real/mock, `371/371`) consolidado en `docs/REFRACTOR_PROGRESS.md`.
|
|
10
|
+
- Alcance activo actual: `P9` (validación manual guiada en repo real externo `ruralgo-fork`) en `docs/validation/p9-ruralgo-fork-validation-tracking.md`.
|
|
10
11
|
- Ultimo cierre oficial previo: ciclo `022` consolidado en `docs/validation/c022-phase-acceptance-contract.md`.
|
|
11
12
|
- Politica: una sola tarea en construccion (`🚧`) en todo momento.
|
|
12
13
|
|
|
@@ -54,6 +55,9 @@ Canonical index for active Pumuki documentation.
|
|
|
54
55
|
- `docs/validation/c022-phase-acceptance-contract.md`
|
|
55
56
|
- `docs/validation/enterprise-consumer-isolation-policy.md`
|
|
56
57
|
- `docs/validation/mock-consumer-integration-runbook.md`
|
|
58
|
+
- `docs/validation/p9-ruralgo-bug-registry.md`
|
|
59
|
+
- `docs/validation/p9-ruralgo-fork-validation-tracking.md`
|
|
60
|
+
- `docs/validation/real-repo-manual-e2e-ruralgo-fork.md`
|
|
57
61
|
- `docs/validation/detection-audit-baseline.md`
|
|
58
62
|
- `docs/validation/skills-rollout-consumer-repositories.md`
|
|
59
63
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Estado operativo activo del repositorio.
|
|
4
4
|
|
|
5
5
|
## Leyenda
|
|
6
|
-
- ✅
|
|
6
|
+
- ✅ Cerrado
|
|
7
7
|
- 🚧 En construccion (maximo 1)
|
|
8
8
|
- ⏳ Pendiente
|
|
9
9
|
- ⛔ Bloqueado
|
|
@@ -16,7 +16,7 @@ Este archivo se mantiene como histórico auditable de fases y evidencias.
|
|
|
16
16
|
Fuente unica de seguimiento operativo. No se abren nuevos MDs temporales de tracking.
|
|
17
17
|
|
|
18
18
|
### Fase P0 — Cierre operativo externo
|
|
19
|
-
-
|
|
19
|
+
- ✅ `P0.T1` Frente externo cerrado administrativamente por decision operativa (sin dependencia de runner/billing/Snyk remoto).
|
|
20
20
|
- ✅ `P0.T1.a` Verificacion de provision de runners (GitHub-hosted/self-hosted) completada.
|
|
21
21
|
- `self-hosted` a nivel repo: `total_count=0` (`gh api /actions/runners`).
|
|
22
22
|
- workflows configurados con `runs-on` GitHub-hosted (`ubuntu-latest` y `macos-latest`).
|
|
@@ -34,6 +34,9 @@ Fuente unica de seguimiento operativo. No se abren nuevos MDs temporales de trac
|
|
|
34
34
|
- run `22461366992` (`CI`, `develop`) relanzado: jobs en `failure/cancelled` con `runner_id=0`, `steps=0`, `log not found`.
|
|
35
35
|
- job ejemplo: `Type Check` `65064931298` (`runner_id=0`).
|
|
36
36
|
- run `22461349641` (`CI`, `main`) mismo patron (`runner_id=0`, `steps=0`).
|
|
37
|
+
- cierre administrativo 2026-03-01:
|
|
38
|
+
- decision explicita del usuario: no continuar esperando capacidad externa.
|
|
39
|
+
- veredicto operativo: el bloqueo remoto deja de ser criterio de parada para ejecucion enterprise local.
|
|
37
40
|
- ✅ `P0.T2` Snyk excluido del flujo actual por decision operativa (post-MVP, sin reactivacion en este bloque).
|
|
38
41
|
- estado 2026-02-26: no hay checks `snyk/security` activos en el head actual (`f3d1c4b`) y no existe workflow local de Snyk en `.github/workflows`.
|
|
39
42
|
- reactivacion futura: mover a backlog post-MVP cuando se reabra seguridad SaaS.
|
|
@@ -310,7 +313,7 @@ Fuente unica de seguimiento operativo. No se abren nuevos MDs temporales de trac
|
|
|
310
313
|
- cobertura checklist:
|
|
311
314
|
- funcionalidades inventariadas: `136` (`bin=10`, `lifecycle_commands=20`, `scripts=98`, `exports=8`).
|
|
312
315
|
- reglas AST inventariadas: `235` (`core_rules + skills_rules` en catálogo único).
|
|
313
|
-
-
|
|
316
|
+
- ✅ `P6.T8` Ejecutar checklist completa en repo mock + repo real externo y rellenar evidencia item por item.
|
|
314
317
|
- progreso actual (mock):
|
|
315
318
|
- repo mock validado: `/Users/juancarlosmerlosalbarracin/Developer/Projects/pumuki-mock-consumer`.
|
|
316
319
|
- baseline sin SDD confirmado (`openspec/`, `.ai_evidence.json`, `.pumuki/`, `pumuki.rules.ts`, `skills.lock.json`, `skills.sources.json` ausentes).
|
|
@@ -327,9 +330,374 @@ Fuente unica de seguimiento operativo. No se abren nuevos MDs temporales de trac
|
|
|
327
330
|
- tests en verde (regresión legacy): `npx --yes tsx@4.21.0 --test integrations/lifecycle/__tests__/openSpecBootstrap.test.ts integrations/lifecycle/__tests__/install.test.ts integrations/lifecycle/__tests__/remove.test.ts`
|
|
328
331
|
- typecheck en verde: `npm run -s typecheck`
|
|
329
332
|
- evidencia: `/Users/juancarlosmerlosalbarracin/Developer/Projects/pumuki-mock-consumer/artifacts/pumuki-matrix-summary.json`
|
|
330
|
-
-
|
|
331
|
-
-
|
|
332
|
-
-
|
|
333
|
+
- cierre de `P6.T8`:
|
|
334
|
+
- cola ordenada activa:
|
|
335
|
+
- `P6.T8.2` (DONE): sub-task MCP explícita en entorno real (`Codex CLI + Windsurf`) ejecutada:
|
|
336
|
+
- `npx pumuki adapter install --agent=windsurf` (`.codeium/adapter/hooks.json` generado)
|
|
337
|
+
- `npx pumuki adapter install --agent=windsurf` ahora también registra `pumuki-enterprise` en `$HOME/.codeium/windsurf/mcp_config.json` preservando MCPs existentes (merge JSON).
|
|
338
|
+
- configuración global Codex CLI alineada (`~/.codex/config.toml`): `XcodeBuildMCP`, `cupertino`, `openaiDeveloperDocs`, `playwright`, `supabase`, `xcode`, `pumuki-enterprise` en `enabled=true` y verificados con `codex mcp list`.
|
|
339
|
+
- comando MCP enterprise endurecido para entornos sin `node_modules` local: `npx --yes --package pumuki@latest pumuki-mcp-enterprise-stdio` (elimina error `npm 404` por resolver `pumuki-mcp-enterprise` como paquete).
|
|
340
|
+
- mitigación `EADDRINUSE` aplicada: `PUMUKI_ENTERPRISE_MCP_PORT=0` para arranque con puerto dinámico en MCP `pumuki-enterprise` (config global + template windsurf).
|
|
341
|
+
- bridge stdio MCP corregido a transporte JSON-RPC por líneas (`\\n`) para compatibilidad real con clientes IDE (`initialize` + `tools/list` en verde).
|
|
342
|
+
- bridge stdio de evidencia añadido (`pumuki-mcp-evidence-stdio`) y conectado en config global Codex/Windsurf (`initialize` + `resources/list` en verde).
|
|
343
|
+
- `pumuki-mcp-evidence-stdio` amplía `tools/list` (6 tools) para evitar estado ambiguo en panel MCP de IDEs.
|
|
344
|
+
- `npx pumuki-mcp-evidence` + `npx pumuki-mcp-enterprise` en puertos default (`7341`/`7391`)
|
|
345
|
+
- validación endpoints: `/health`, `/status`, `/tools`, `/ai-evidence/summary` en verde
|
|
346
|
+
- `P6.T8.3` (DONE): completar checklist mock item-por-item.
|
|
347
|
+
- `P6.T8.3.a` (DONE): enforcement MCP no cosmético en `PRE_WRITE`:
|
|
348
|
+
- `evaluateAiGate` soporta `requireMcpReceipt=true` y bloquea con códigos `MCP_ENTERPRISE_RECEIPT_*` cuando falta/expira/incoherente.
|
|
349
|
+
- `runLifecycleCli sdd validate --stage=PRE_WRITE` activa `requireMcpReceipt=true`.
|
|
350
|
+
- `ai_gate_check` en enterprise MCP persiste recibo auditable `.pumuki/artifacts/mcp-ai-gate-receipt.json`.
|
|
351
|
+
- validación TDD en verde:
|
|
352
|
+
- `integrations/gate/__tests__/evaluateAiGate.test.ts` (nuevo coverage de missing/valid receipt).
|
|
353
|
+
- `integrations/mcp/__tests__/aiGateReceipt.test.ts` (roundtrip/missing/invalid).
|
|
354
|
+
- `integrations/mcp/__tests__/enterpriseServer.test.ts` (persistencia recibo).
|
|
355
|
+
- `integrations/lifecycle/__tests__/cli.test.ts` (PRE_WRITE con enforcement y recibo válido).
|
|
356
|
+
- `P6.T8.3.b` (DONE): restaurado recuadro legacy `PRE-FLIGHT CHECK` en salida no-json de `pumuki sdd validate --stage=PRE_WRITE`.
|
|
357
|
+
- panel incluye estado `ai_gate`, estado `evidence`, estado `mcp_receipt`, violaciones y hints accionables.
|
|
358
|
+
- evidencia de regresión: `integrations/lifecycle/__tests__/cli.test.ts` (`runLifecycleCli sdd validate PRE_WRITE sin --json renderiza panel legacy de pre-flight`).
|
|
359
|
+
- `P6.T8.3.c` (DONE): autocuración automática `PRE_WRITE` (sin intervención humana):
|
|
360
|
+
- `runLifecycleCli sdd validate --stage=PRE_WRITE` auto-refresca evidencia cuando detecta `EVIDENCE_*` corregibles.
|
|
361
|
+
- auto-emite/actualiza recibo MCP cuando detecta `MCP_ENTERPRISE_RECEIPT_*` corregibles.
|
|
362
|
+
- reevalúa gate tras cada autocuración y persiste traza `automation` en salida JSON/panel legacy.
|
|
363
|
+
- validación TDD en verde: `integrations/lifecycle/__tests__/cli.test.ts` (casos `autocura recibo MCP faltante` y panel PRE_WRITE en verde).
|
|
364
|
+
- `P6.T8.3.d` (DONE): continuar checklist funcional/reglas mock restante item-por-item.
|
|
365
|
+
- lote SDD mock verificado en repo consumidor:
|
|
366
|
+
- `node bin/pumuki.js sdd status --json` (`openspec.compatible=true` + estado de sesión reportado).
|
|
367
|
+
- `node bin/pumuki.js sdd session --open/--refresh/--close --json` en verde con `changeId=p6-t8-3d-sdd-session`.
|
|
368
|
+
- `node bin/pumuki-pre-write.js` ejecuta panel legacy + autocuración automática (`Auto-heal attempted=yes actions=2`).
|
|
369
|
+
- lote loop+analytics mock verificado:
|
|
370
|
+
- `loop run/status/list/export/stop/resume` en verde con sesión `loop-4d8345fd-d201-4952-845a-2c1d0a0d37ef`.
|
|
371
|
+
- `analytics hotspots report --json` en verde (`top=5`, `ranked=5`).
|
|
372
|
+
- `analytics hotspots diagnose --json` en verde (`status=degraded` esperado por `CONTRACT_MISSING`/`AUDIT_EMPTY` en mock sin ingesta SaaS).
|
|
373
|
+
- bins framework + update mock verificados:
|
|
374
|
+
- `ast-hooks`, `pumuki-ast-hooks`, `pumuki-framework` ejecutan menú y salen limpio (`option=10`).
|
|
375
|
+
- `pumuki update --latest` ejecutado en consumidor mock (`hooks changed: none`).
|
|
376
|
+
- scripts core de smoke/typecheck verificados:
|
|
377
|
+
- `npm run -s validation:package-smoke:minimal` en verde.
|
|
378
|
+
- `npm run -s validation:package-smoke` en verde.
|
|
379
|
+
- `npm run -s typecheck` en verde.
|
|
380
|
+
- suites core de validación ampliadas en verde:
|
|
381
|
+
- `npm run -s test:deterministic`, `test:evidence`, `test:heuristics`, `test:mcp`, `test:operational-memory`, `test:saas-ingestion`.
|
|
382
|
+
- remediación de guardrail `test:stage-gates`: extracción de autocuración PRE_WRITE a `integrations/lifecycle/preWriteAutomation.ts` para mantener `integrations/lifecycle/cli.ts` por debajo del límite de tamaño.
|
|
383
|
+
- `npm run -s test:stage-gates` nuevamente en verde (`915 pass / 0 fail / 4 skip`).
|
|
384
|
+
- preflight de repo real externo en clon temporal (`/tmp/pumuki-rgo-real-JHBF2h/repo`):
|
|
385
|
+
- verificados en verde: `pumuki status/doctor/sdd status/sdd validate PRE_COMMIT/loop list/analytics diagnose`.
|
|
386
|
+
- `pumuki install` y `npm uninstall pumuki` bloqueados por engine del repo real (`EBADENGINE`: requiere `node=20.20.0`, `npm=10.8.2`).
|
|
387
|
+
- bins y pre-hooks ejecutados en real-clone:
|
|
388
|
+
- `ast-hooks`, `pumuki-framework`, `pumuki-ast-hooks` en verde (`option=10`, menú renderizado).
|
|
389
|
+
- `pumuki-pre-commit`, `pumuki-pre-push`, `pumuki-pre-write` bloquean por `OPENSPEC_MISSING` (comportamiento esperado en baseline sin OpenSpec).
|
|
390
|
+
- `analytics hotspots report` ejecutado en real-clone y bloqueado por límite de buffer de `git` (`spawnSync git ENOBUFS`) en repo grande.
|
|
391
|
+
- lote scripts core A.3 validado:
|
|
392
|
+
- OK: `check-version`, `build:ts`, `lint`, `validation:architecture-guardrails`, `validation:package-manifest`, `validation:lifecycle-smoke`, `test`, `gitflow`, `framework:menu (exit=10)`.
|
|
393
|
+
- migrados con salida informativa: `validate:adapter-hooks-local`, `verify:adapter-hooks-runtime`.
|
|
394
|
+
- bloqueos esperados por SDD en repo core sin OpenSpec activo: `ast`, `audit`, `audit-library`, `violations`, `violations:list/show/summary/top` (`OPENSPEC_MISSING`).
|
|
395
|
+
- `validation:adapter-readiness` ejecuta contrato y devuelve `verdict=PENDING` (exit=1) con reporte en `.audit-reports/adapter/adapter-readiness.md`.
|
|
396
|
+
- lote scripts de reporting consumer/adapter validado:
|
|
397
|
+
- `validation:adapter-real-session-report` en verde y `validation:adapter-session-status` bloquea con `verdict=BLOCKED` (esperado por estado del entorno).
|
|
398
|
+
- reintento con argumentos completos:
|
|
399
|
+
- `validation:consumer-ci-artifacts -- --repo juancarlosmerlosalbarracin/ast-intelligence-hooks --limit 5` -> `gh run list` 404.
|
|
400
|
+
- `validation:consumer-ci-auth-check -- --repo juancarlosmerlosalbarracin/ast-intelligence-hooks` -> `verdict=BLOCKED`.
|
|
401
|
+
- `validation:consumer-startup-triage -- --repo ... --repo-path ... --skip-workflow-lint --skip-auth-check` -> bloquea por dependencia CI externa (`gh` 404) y dependencia de bundle.
|
|
402
|
+
- `validation:consumer-support-bundle -- --repo juancarlosmerlosalbarracin/ast-intelligence-hooks` -> `gh run list` 404.
|
|
403
|
+
- `validation:consumer-workflow-lint -- --repo-path /Users/juancarlosmerlosalbarracin/Developer/Projects/ast-intelligence-hooks` -> lint no exitoso.
|
|
404
|
+
- `validation:consumer-support-ticket-draft -- --repo juancarlosmerlosalbarracin/ast-intelligence-hooks` -> bloquea por falta de bundle previo.
|
|
405
|
+
- `validation:consumer-startup-unblock-status` devuelve `MISSING_INPUTS` y `validation:mock-consumer-ab-report` devuelve `READY`.
|
|
406
|
+
- `validation:clean-artifacts` y `validation:progress-single-active` en verde.
|
|
407
|
+
- lote alias/scripts adicionales A.3 ejecutado y trazado:
|
|
408
|
+
- `ast:audit` y `ast:refresh` bloquean por `OPENSPEC_MISSING` (esperado en repo core sin OpenSpec activo).
|
|
409
|
+
- `ast:check-version`, `ast:gitflow`, `ast:release`, `gitflow:status`, `gitflow:workflow` en verde.
|
|
410
|
+
- `ast:guard:start/stop/status/logs/restart` devuelven mensaje `Deprecated` (exit=0, comportamiento esperado).
|
|
411
|
+
- `validation:c020-benchmark` ejecutado (`parity_exit=1` esperado contra baseline legacy en `.audit-reports/c020-a-legacy-parity-menu1.md`).
|
|
412
|
+
- `skills:compile` + `skills:lock:check` en verde; `skills:import:custom` en verde (`sources_detected=6`, `imported_rules=728`).
|
|
413
|
+
- `adapter:install -- --agent=windsurf --dry-run` en verde (`written=false`, dry-run correcto).
|
|
414
|
+
- `pumuki:doctor` (`PASS`) y `pumuki:status` (`lifecycle installed=false`) en verde.
|
|
415
|
+
- lote scripts phase5/phase8 de diagnóstico también ejecutado:
|
|
416
|
+
- `validation:phase5-blockers-readiness` -> `verdict=BLOCKED` (exit=1).
|
|
417
|
+
- `validation:phase5-execution-closure-status` -> `verdict=BLOCKED` (exit=1).
|
|
418
|
+
- `validation:phase5-external-handoff` -> `verdict=MISSING_INPUTS` (exit=1).
|
|
419
|
+
- `validation:phase5-latest:ready-check` -> bloqueado por reporte faltante en `.audit-reports/phase5-latest`.
|
|
420
|
+
- `validation:phase8:doctor/next-step/status-pack/loop-guard/ready-handoff` -> bloqueados por `loop_guard` debido a handoff faltante (`docs/validation/consumer-startup-escalation-handoff-latest.md`).
|
|
421
|
+
- `validation:phase8:loop-guard-coverage` en verde (`PASS`).
|
|
422
|
+
- lote `exports` A.4 validado en mock consumidor:
|
|
423
|
+
- importados en verde con `node --import tsx`: `pumuki`, `core/gate/evaluateGate`, `core/gate/evaluateRules`, `integrations/git`, `integrations/lifecycle`, `integrations/mcp`, `integrations/sdd`.
|
|
424
|
+
- `pumuki/package.json` accesible y versión `6.3.26`.
|
|
425
|
+
- resultado global: `failed=0/8` en `/Users/juancarlosmerlosalbarracin/Developer/Projects/pumuki-mock-consumer`.
|
|
426
|
+
- lote `exports` A.4 también validado en repo real externo (clon temporal):
|
|
427
|
+
- se instaló temporalmente `pumuki@latest` + `tsx` en `/tmp/pumuki-rgo-real-JHBF2h/repo` con `npm_config_engine_strict=false` (solo warnings `EBADENGINE`).
|
|
428
|
+
- revalidación `node --import tsx` en verde para los 8 exports (`failed=0/8`).
|
|
429
|
+
- lote scripts `phase5-escalation` y `phase8` ejecutado y registrado en checklist A.3:
|
|
430
|
+
- bloqueos esperados por precondiciones faltantes (`consumer-startup-escalation-handoff-latest.md`, `loop_guard`, `chain not READY`) en `phase5-latest:*`, `phase5-post-support:refresh`, `phase8:autopilot/tick/resume-after-billing/close-ready`.
|
|
431
|
+
- scripts con parámetros obligatorios (`mark-submitted`, `close-submission`, `mark-followup-*`) verifican `Usage` correctamente (exit=1 sin args).
|
|
432
|
+
- `validation:phase5-execution-closure` valida contrato de entrada y falla con mensaje claro cuando falta `--repo`.
|
|
433
|
+
- lote scripts lifecycle/gitflow/mcp completado:
|
|
434
|
+
- `gitflow:reset` verificado como no destructivo (solo guidance).
|
|
435
|
+
- `install-hooks`, `pumuki:install`, `pumuki:update`, `pumuki:uninstall`, `pumuki:remove` ejecutados en core con salidas esperadas.
|
|
436
|
+
- `mcp:evidence` y `mcp:enterprise` validados levantando servidor en puertos dedicados (`7441`/`7491`) y `curl /health` en verde (`status=ok`).
|
|
437
|
+
- `pumuki:sdd:pre-write` ejecutado y bloquea correctamente en baseline sin proyecto OpenSpec (`OPENSPEC_PROJECT_MISSING` + panel `PRE-FLIGHT CHECK`).
|
|
438
|
+
- `maintenance:library -- update` ejecutado: falla controlada por ruta de trabajo interna (`grep: package.json: No such file or directory`), evidenciando comportamiento actual del script.
|
|
439
|
+
- suite integral de reglas re-ejecutada y usada como evidencia de Checklist B:
|
|
440
|
+
- `npm run -s test:stage-gates` en verde (`915 pass / 0 fail / 4 skip`).
|
|
441
|
+
- `Checklist B` marcado completo (`235` reglas) con evidencia de suite integral.
|
|
442
|
+
- cierre de gaps `real: ⏳` en real-clone para A.1/A.2:
|
|
443
|
+
- `pumuki-ci`, `pumuki-mcp-evidence`, `pumuki-mcp-enterprise` verificados en `R_GO` clon temporal.
|
|
444
|
+
- lifecycle/loop (`install/update/uninstall/remove`, `loop run/status/export/stop/resume`) ejecutados; `install/update` bloquean por `EBADENGINE` esperado en ese repo.
|
|
445
|
+
- `sdd session open/refresh/close` ejecutados con resultados esperados por precondiciones (change inexistente/no sesión activa/cierre inactivo).
|
|
446
|
+
- `P6.T8.4` (DONE): ejecutar lote equivalente en repo real externo y completar checklist item-por-item.
|
|
447
|
+
- `P6.T8.5` (DONE): consolidación de evidencia en `docs/EXECUTION_BOARD.md` y cierre operativo del bloque P6.T8.
|
|
448
|
+
- ✅ `P6.T9` Consolidar cierre final P6 en documentación estable.
|
|
449
|
+
- estado de consolidación actual:
|
|
450
|
+
- `docs/EXECUTION_BOARD.md` refleja `371/371` ítems cubiertos con evidencia (`mock=371`, `real=371`).
|
|
451
|
+
- sin items pendientes en checklist funcional (A) ni de reglas (B).
|
|
452
|
+
- veredicto enterprise P6:
|
|
453
|
+
- cobertura funcional + reglas cerrada en mock y real-clone.
|
|
454
|
+
- bloqueo residual no-funcional identificado y remediado en utilitario `maintenance:library` (root-path del script).
|
|
455
|
+
|
|
456
|
+
### Fase P7 — Hardening post-verificación
|
|
457
|
+
- ✅ `P7.T1` Estabilizar scripts utilitarios post-P6 y validar regresiones rápidas.
|
|
458
|
+
- TDD aplicado al fix de `maintenance:library`:
|
|
459
|
+
- RED: `scripts/__tests__/manage-library-script.test.ts` falla con `PROJECT_ROOT` mal resuelto.
|
|
460
|
+
- GREEN: `scripts/manage-library.sh` corrige `PROJECT_ROOT` a repo root (`.../scripts/..`).
|
|
461
|
+
- verificación:
|
|
462
|
+
- `npx --yes tsx@4.21.0 --test scripts/__tests__/manage-library-script.test.ts` (`1/1 PASS`).
|
|
463
|
+
- `npm run -s maintenance:library -- update` (`exit=0`).
|
|
464
|
+
- regresión rápida de cierre:
|
|
465
|
+
- `npm run -s typecheck` (`PASS`).
|
|
466
|
+
- `npx --yes tsx@4.21.0 --test integrations/mcp/__tests__/aiGateReceipt.test.ts integrations/mcp/__tests__/enterpriseStdioServer.cli.test.ts integrations/mcp/__tests__/evidenceStdioServer.cli.test.ts integrations/lifecycle/__tests__/adapter.test.ts integrations/lifecycle/__tests__/cli.test.ts integrations/gate/__tests__/evaluateAiGate.test.ts scripts/__tests__/manage-library-script.test.ts` (`40 pass / 0 fail`).
|
|
467
|
+
- `npm run -s test:stage-gates` (`916 pass / 0 fail / 4 skip`).
|
|
468
|
+
- `npm run -s validation:progress-single-active` (`in_progress_count=1`).
|
|
469
|
+
- ✅ `P7.T2` Consolidar cierre operativo post-hardening y preparar cierre de release.
|
|
470
|
+
- validación de cierre:
|
|
471
|
+
- `npm run -s validation:package-manifest` (`PASS`, `files scanned: 874`).
|
|
472
|
+
- `npm run -s validation:package-smoke:minimal` (`PASS`).
|
|
473
|
+
- `npm run -s validation:package-smoke` (`PASS`).
|
|
474
|
+
- `npm run -s pumuki:doctor` (`doctor verdict: PASS`).
|
|
475
|
+
- `npm run -s pumuki:status` (`lifecycle installed=false` en baseline de repo core sin hooks instalados).
|
|
476
|
+
- `npm run -s validation:progress-single-active` (`in_progress_count=1`).
|
|
477
|
+
- ✅ `P7.T3` Preparar cierre final de release (consolidación documental + verificación final de rama).
|
|
478
|
+
- validación de rama y flujo:
|
|
479
|
+
- `npm run -s gitflow:status` (`branch=release/6.3.26`, rama válida, worktree dirty esperado en fase activa).
|
|
480
|
+
- `npm run -s gitflow:workflow` (siguiente paso recomendado coherente con cierre incremental).
|
|
481
|
+
- consolidación documental:
|
|
482
|
+
- foco de fase mantenido en `docs/README.md` (`P7`).
|
|
483
|
+
- índice de validación alineado en `docs/validation/README.md`.
|
|
484
|
+
- ✅ `P7.T4` Cierre final del bloque P7 (validación integral final + preparación de cierre GitFlow).
|
|
485
|
+
- validación integral final:
|
|
486
|
+
- `npm run -s typecheck` (`PASS`).
|
|
487
|
+
- `npm run -s test` (`PASS`: `916 pass / 0 fail` + suites jest en verde).
|
|
488
|
+
- `npm run -s validation:progress-single-active` (`in_progress_count=1`).
|
|
489
|
+
- `npm run -s gitflow:status` (`branch=release/6.3.26`, worktree sucio esperado por fase activa).
|
|
490
|
+
- ✅ `P7.T5` Preparar paquete de cierre GitFlow (upstream/commits atómicos/checklist de cierre).
|
|
491
|
+
- paquete de cierre consolidado:
|
|
492
|
+
- `git status --short --branch` con inventario de cambios del bloque.
|
|
493
|
+
- `git diff --stat` (`20 files changed`, `1752 insertions`, `402 deletions`).
|
|
494
|
+
- `git rev-parse --abbrev-ref --symbolic-full-name @{u}` => `NO_UPSTREAM` (pendiente operativo explícito).
|
|
495
|
+
- `npm run -s validation:progress-single-active` (`in_progress_count=1`).
|
|
496
|
+
- ✅ `P7.T6` Ejecutar cierre operativo GitFlow del bloque P7 (upstream + commits atómicos + preparación de PR de release).
|
|
497
|
+
- cierre GitFlow de rama:
|
|
498
|
+
- commit atómico aplicado: `ee1a78c` (`feat(mcp): add stdio bridges, pre-write automation and hardening`).
|
|
499
|
+
- `git status --short --branch` en limpio tras commit.
|
|
500
|
+
- upstream configurado y rama publicada: `git push --set-upstream origin release/6.3.26`.
|
|
501
|
+
- ✅ `P7.T7` Abrir PR de release/6.3.26 y preparar cierre final del bloque P7.
|
|
502
|
+
- PR operativa publicada:
|
|
503
|
+
- `#475` `release/6.3.26` -> `develop`.
|
|
504
|
+
- URL: `https://github.com/SwiftEnProfundidad/ast-intelligence-hooks/pull/475`.
|
|
505
|
+
- estado remoto observado:
|
|
506
|
+
- `mergeStateStatus=UNSTABLE` por checks externos.
|
|
507
|
+
- jobs muestreados con patrón de infraestructura no asignada: `runner_id=0`, `steps_count=0` en `CI`, `android-gate`, `package-smoke minimal`.
|
|
508
|
+
- `security/snyk (swiftenprofundidad)` en `ERROR` (dependencia externa fuera de alcance MVP).
|
|
509
|
+
- ✅ `P7.T8` Preparar cierre final del bloque P7 con estrategia de merge según política remota (checks externos bloqueados).
|
|
510
|
+
- estrategia de cierre documentada:
|
|
511
|
+
- merge normal si checks remotos pasan.
|
|
512
|
+
- merge administrativo solo bajo instrucción explícita del usuario si se mantiene bloqueo externo.
|
|
513
|
+
- evidencia:
|
|
514
|
+
- `gh pr checks 475` con fallos/pending de corta duración.
|
|
515
|
+
- muestreo API job `65275754526` (`runner_id=0`, `steps_count=0`).
|
|
516
|
+
- ✅ `P7.T9` Ejecutar cierre final del bloque P7 según decisión de merge (normal o administrativa).
|
|
517
|
+
- bloqueo inicial documentado por política hard y checks externos.
|
|
518
|
+
- resolución completada en `P7.T12` tras instrucción explícita de merge (PR `#475` mergeada).
|
|
519
|
+
- ✅ `P7.T10` Mantener PR #475 monitorizada y lista para merge inmediato en cuanto llegue instrucción explícita.
|
|
520
|
+
- tick remoto de cierre:
|
|
521
|
+
- `gh pr checks 475`: fallos rápidos (2-4s) en CI/gates; `security/snyk` en fail por límite de tests privados.
|
|
522
|
+
- job `65275890393` (`Build Verification`) con `runner_id=0`, `steps_count=0`.
|
|
523
|
+
- `validation:progress-single-active` mantiene invariante (`in_progress_count=1`).
|
|
524
|
+
- ✅ `P7.T11` Espera operativa de instrucción explícita de merge para ejecutar cierre inmediato de PR #475.
|
|
525
|
+
- tick remoto de cierre:
|
|
526
|
+
- `gh pr view 475`: `state=OPEN`, `mergeStateStatus=UNSTABLE`.
|
|
527
|
+
- `gh pr checks 475`: fallos rápidos (2-4s) persistentes.
|
|
528
|
+
- job `65275945400` (`Build Verification`) con `runner_id=0`, `steps_count=0`.
|
|
529
|
+
- `validation:progress-single-active` mantiene invariante (`in_progress_count=1`).
|
|
530
|
+
- ✅ `P7.T12` Ejecutar merge final de PR #475 inmediatamente cuando llegue instrucción explícita del usuario.
|
|
531
|
+
- cierre ejecutado:
|
|
532
|
+
- PR `#475` (`release/6.3.26` -> `develop`) mergeada.
|
|
533
|
+
- `mergedAt=2026-03-01T01:29:26Z`.
|
|
534
|
+
- merge commit: `07c97f2433b3eb8ed12d33fecb9d9c37943453bc`.
|
|
535
|
+
- `origin/develop` alineado al merge commit.
|
|
536
|
+
- ✅ `P7.T13` Ejecutar promote final `develop -> main` para cerrar el bloque P7 en ramas protegidas.
|
|
537
|
+
- promote ejecutado:
|
|
538
|
+
- PR `#476` (`develop` -> `main`) mergeada.
|
|
539
|
+
- `mergedAt=2026-03-01T01:30:37Z`.
|
|
540
|
+
- merge commit: `8a2531da51524c92caa141b8a255c97b76f544eb`.
|
|
541
|
+
- ✅ `P7.T14` Sincronizar `main -> develop` post-promote para mantener ramas protegidas alineadas.
|
|
542
|
+
- sincronización ejecutada:
|
|
543
|
+
- PR `#477` (`main` -> `develop`) mergeada.
|
|
544
|
+
- `mergedAt=2026-03-01T01:32:18Z`.
|
|
545
|
+
- merge commit: `ef82f69083968fb6ba8fa9d186e97737d251db54`.
|
|
546
|
+
- paridad de contenido confirmada por árbol:
|
|
547
|
+
- `origin/develop^{tree} == origin/main^{tree}`.
|
|
548
|
+
- ✅ `P7.T15` Cierre administrativo final del bloque P7 y traspaso limpio al siguiente bloque.
|
|
549
|
+
- cierre administrativo validado:
|
|
550
|
+
- `validation:progress-single-active` en verde durante el cierre.
|
|
551
|
+
- `gitflow:status` en `release/6.3.26` con upstream y sin drift (`ahead=0`, `behind=0`).
|
|
552
|
+
- `origin/develop` y `origin/main` con paridad de contenido por árbol.
|
|
553
|
+
|
|
554
|
+
### Fase P8 — Post-P7
|
|
555
|
+
- ✅ `P8.T1` Preparar bloque siguiente post-P7 (cierre de release y definición de objetivo operativo siguiente).
|
|
556
|
+
- objetivo siguiente fijado:
|
|
557
|
+
- atacar deuda operativa residual en desbloqueo externo (`P0.T1`: runners/checks/Snyk remoto).
|
|
558
|
+
- ✅ `P8.T2` Preparar paquete de desbloqueo externo (`P0.T1`) con estado actual y ruta de rehabilitación.
|
|
559
|
+
- paquete de desbloqueo consolidado:
|
|
560
|
+
- `gh api /actions/runners` => `total_count=0`.
|
|
561
|
+
- patrón remoto repetido en `PR #477`: checks con fallos de 2-4s.
|
|
562
|
+
- muestras de jobs con `runner_id=0` y `steps_count=0`:
|
|
563
|
+
- `65276132628` (`Build Verification`)
|
|
564
|
+
- `65276132645` (`android-gate`)
|
|
565
|
+
- `65276132648` (`package-smoke minimal`)
|
|
566
|
+
- `security/snyk` en fail por límite de tests privados.
|
|
567
|
+
- plan listo:
|
|
568
|
+
- rehabilitar capacidad remota (runner/billing) y cuota/config Snyk.
|
|
569
|
+
- reintentar matriz mínima remota para cerrar `P0.T1`.
|
|
570
|
+
- ✅ `P8.T3` Mantener readiness para reintento remoto de `P0.T1` cuando se habilite infraestructura externa.
|
|
571
|
+
- readiness consolidada:
|
|
572
|
+
- `gh pr checks 477` mantiene patrón externo (fallos rápidos).
|
|
573
|
+
- `actions/runners total_count=0` en repo.
|
|
574
|
+
- `security/snyk` sigue bloqueado por límite de tests privados.
|
|
575
|
+
- paquete de comandos preparado para reintento inmediato:
|
|
576
|
+
- `gh workflow run CI --ref develop`
|
|
577
|
+
- `gh workflow run pumuki-platform-gates.yml --ref develop`
|
|
578
|
+
- `gh workflow run pumuki-package-smoke.yml --ref develop`
|
|
579
|
+
- `gh run list --branch develop --limit 10`
|
|
580
|
+
- `gh run view <run-id> --json jobs`
|
|
581
|
+
- ✅ `P8.T4` Ejecutar reintento remoto de `P0.T1` en cuanto haya runners/capacidad Snyk y consolidar cierre.
|
|
582
|
+
- reintento remoto ejecutado:
|
|
583
|
+
- `CI` run `22533289915` -> `attempt=2`, `failure`.
|
|
584
|
+
- `Pumuki Backend Gate` run `22533289937` -> `attempt=2`, `failure`.
|
|
585
|
+
- `Pumuki Package Smoke` run `22533289926` -> `attempt=2`, `failure`.
|
|
586
|
+
- bloqueo persistente validado:
|
|
587
|
+
- jobs del segundo intento sin runner y sin pasos (`runner=null`, `steps=0`), p. ej.:
|
|
588
|
+
- `65276351978` (`Build Verification`)
|
|
589
|
+
- `65276351958` (`backend-gate / Backend Gate`)
|
|
590
|
+
- `65276351949` (`package-smoke minimal`)
|
|
591
|
+
- ✅ `P8.T5` Mantener espera operativa hasta habilitación externa (runner/billing + cuota Snyk) para poder cerrar `P0.T1`.
|
|
592
|
+
- estado confirmado:
|
|
593
|
+
- `actions/runners total_count=0` se mantiene.
|
|
594
|
+
- últimos runs en `develop` continúan en `failure` sin mejora de infraestructura.
|
|
595
|
+
- conclusión operativa:
|
|
596
|
+
- bloqueo externo vigente, sin remediación local adicional viable por ahora.
|
|
597
|
+
- ✅ `P8.T6` Espera activa y monitorización ligera del desbloqueo externo (runner/billing + cuota Snyk) con ejecución inmediata en cuanto cambie el estado.
|
|
598
|
+
- monitorización actual:
|
|
599
|
+
- `actions/runners total_count=0`.
|
|
600
|
+
- runs recientes de `develop` siguen en `failure`.
|
|
601
|
+
- reintentos remotos previos se mantienen con `runner=null` y `steps=0`:
|
|
602
|
+
- `CI` (`run=22533289915`, `attempt=2`)
|
|
603
|
+
- `Pumuki Backend Gate` (`run=22533289937`, `attempt=2`)
|
|
604
|
+
- `Pumuki Package Smoke` (`run=22533289926`, `attempt=2`)
|
|
605
|
+
- ✅ `P8.T7` Mantener espera operativa y relanzar matriz mínima remota en cuanto haya señal de capacidad externa.
|
|
606
|
+
- reintento remoto de control ejecutado:
|
|
607
|
+
- `CI` (`run=22533289915`) -> `attempt=3`, `failure`.
|
|
608
|
+
- `Pumuki Backend Gate` (`run=22533289937`) -> `attempt=3`, `failure`.
|
|
609
|
+
- `Pumuki Package Smoke` (`run=22533289926`) -> `attempt=3`, `failure`.
|
|
610
|
+
- bloqueo sigue confirmado:
|
|
611
|
+
- jobs en `runner=null` y `steps=0` (`65276544612`, `65276550128`, `65276549789`).
|
|
612
|
+
- ✅ `P8.T8` Cerrar dependencia externa (runner/billing/Snyk remoto) por decision operativa y continuar en modo local-only.
|
|
613
|
+
- cierre aplicado:
|
|
614
|
+
- dependencia externa descartada por decision de negocio.
|
|
615
|
+
- tracking alineado para no mantener espera activa de infraestructura remota.
|
|
616
|
+
- ✅ `P8.T9` Continuar ejecucion del roadmap enterprise con criterio de cierre local (sin bloqueo por checks remotos).
|
|
617
|
+
- cierre aplicado:
|
|
618
|
+
- sin bloqueos tecnicos activos que impidan continuidad local.
|
|
619
|
+
- cierre confirmado por instruccion explicita del usuario.
|
|
620
|
+
- ✅ `P8.T10` Cierre administrativo final del bloque P8 y declaracion de tracker en estado estable sin deuda activa.
|
|
621
|
+
- cierre aplicado:
|
|
622
|
+
- bloque P8 consolidado en estado estable.
|
|
623
|
+
- cierre confirmado por instruccion explicita del usuario.
|
|
624
|
+
- ✅ `P9.T1` Preparar runbook manual de validacion end-to-end en repo real no-mock usando `ruralgo-fork`.
|
|
625
|
+
- cierre aplicado:
|
|
626
|
+
- runbook creado en `docs/validation/real-repo-manual-e2e-ruralgo-fork.md`.
|
|
627
|
+
- indice documental actualizado en `docs/validation/README.md` y `docs/README.md`.
|
|
628
|
+
- ✅ `P9.T2` Ejecutar validacion manual guiada por el usuario en repo real dentro de `ruralgo-fork` y consolidar veredicto.
|
|
629
|
+
- avance aplicado (fix en caliente):
|
|
630
|
+
- bootstrap OpenSpec ahora tolera fallo de `npm install` por engines y mantiene instalacion de hooks (modo standalone).
|
|
631
|
+
- cobertura de no-regresion añadida en `openSpecBootstrap/install` con pruebas en verde.
|
|
632
|
+
- avance aplicado (organización previa):
|
|
633
|
+
- plan detallado P9 alineado en `docs/validation/p9-ruralgo-fork-validation-tracking.md` con transición de `P9.F0.T2` a `P9.F0.T3` como siguiente `🚧`.
|
|
634
|
+
- nuevo control automático `validation:tracking-single-active` para garantizar exactamente una tarea en construcción en los tres MDs de seguimiento.
|
|
635
|
+
- registro paralelo de bugs reales detectados en RuralGO creado en `docs/validation/p9-ruralgo-bug-registry.md` (sin mezclar con checklist de ejecución).
|
|
636
|
+
- intake ampliado consolidado en bug registry (`RG-BUG-001..RG-BUG-011`) con separación explícita entre bugs confirmados, pendientes de repro y mejoras enterprise no-bug.
|
|
637
|
+
- fase de mejoras TODO añadida en el mismo bug registry (P0/P1/P2) con leyenda propia y transición de estado `P9.BUG.T2 => ✅`, `P9.BUG.T3 => 🚧`.
|
|
638
|
+
- cierre aplicado:
|
|
639
|
+
- veredicto final P9 consolidado en `GO`.
|
|
640
|
+
- espejo `ruralgo-fork/docs/strategy/ruralgo-tracking-hub.md` actualizado con `P9.T2 => ✅`.
|
|
641
|
+
- ✅ `P9.T3` Preparar bloque post-P9 (handoff final + definición del siguiente ciclo operativo).
|
|
642
|
+
- cierre aplicado:
|
|
643
|
+
- handoff final P9 consolidado entre tracking maestro, tracking detallado y espejo consumidor.
|
|
644
|
+
- trazabilidad final de cierre y backlog residual publicados en documentos oficiales de validación.
|
|
645
|
+
- ✅ `P10.T1` Definir alcance y criterios de entrada del ciclo post-P9.
|
|
646
|
+
- cierre aplicado:
|
|
647
|
+
- alcance inicial de `P10` definido sobre backlog residual de P9.
|
|
648
|
+
- criterios de entrada fijados (cierre `GO`, sincronía de tracking y control de una sola tarea activa).
|
|
649
|
+
- ✅ `P10.T2` Preparar paquete de ejecución inicial del ciclo P10.
|
|
650
|
+
- cierre aplicado:
|
|
651
|
+
- secuencia inicial del ciclo definida (`S1` -> `S2` -> `S3`).
|
|
652
|
+
- primer slice operativo seleccionado: `S1` sobre `RG-BUG-014`.
|
|
653
|
+
- ✅ `P10.T3` Ejecutar primer slice operativo P10 en repos reales (`RG-BUG-014`).
|
|
654
|
+
- cierre aplicado:
|
|
655
|
+
- `runLifecycleInstall` ahora bootstrappea paquete local en consumer cuando no está declarado y mantiene guardas para repos self-package.
|
|
656
|
+
- salida CLI de `install` incluye estado explícito de bootstrap consumer (`installed/reason/detail`).
|
|
657
|
+
- validación en verde (tests lifecycle + typecheck) y evidencia de campo en `ruralgo-fork` (`npm explore pumuki -- npm run -s check-version` ejecutable tras `install`).
|
|
658
|
+
- ✅ `P10.T4` Ejecutar segundo slice operativo P10 en repos reales (`RG-BUG-013` + `RG-BUG-015`).
|
|
659
|
+
- cierre aplicado:
|
|
660
|
+
- release candidate validado en clon real de `ruralgo-fork` con runtime `20.20.0`.
|
|
661
|
+
- bins stdio resueltos y ejecutables (`pumuki-mcp-evidence-stdio`, `pumuki-mcp-enterprise-stdio`).
|
|
662
|
+
- exports oficiales cargan en `require/import` en consumer (`pumuki`, `integrations/*`, `core/gate/*`).
|
|
663
|
+
- smoke de packaging en core en verde (`validation:package-manifest`, `validation:package-smoke:minimal`).
|
|
664
|
+
- ✅ `P10.T5` Ejecutar tercer slice operativo P10 en repos reales (estabilización de señal full-scope).
|
|
665
|
+
- cierre aplicado:
|
|
666
|
+
- reporte legacy diferencia explícitamente `scope vacío` (`STATUS: SCOPE EMPTY`, `COMMIT ALLOWED — SCOPE EMPTY (PARTIAL PASS)`).
|
|
667
|
+
- menú consumidor opciones `3/4` emite `PASS parcial` y ya no mezcla hint de `scope vacío` cuando hay violaciones.
|
|
668
|
+
- matriz de menú para CI endurecida con `outcome=PASS_SCOPE_EMPTY` en diagnóstico `scope-empty`.
|
|
669
|
+
- validación en verde:
|
|
670
|
+
- `framework-menu-consumer-runtime`, `framework-menu-legacy-audit`, `framework-menu-matrix-evidence`.
|
|
671
|
+
- `framework-menu-matrix-runner`, `framework-menu-matrix-baseline`, `framework-menu-matrix-canary`, `framework-menu-consumer-preflight`.
|
|
672
|
+
- `npm run -s typecheck`.
|
|
673
|
+
- ✅ `P10.T6` Ejecutar cuarto slice operativo P10 en repos reales (propagación release + revalidación @latest).
|
|
674
|
+
- cierre aplicado:
|
|
675
|
+
- publicación npm completada: `pumuki@6.3.27` en `dist-tag latest`.
|
|
676
|
+
- revalidación en `ruralgo-fork` (runtime `20.20.0`):
|
|
677
|
+
- `pumuki install` ejecuta correctamente en consumidor real con hooks gestionados.
|
|
678
|
+
- matiz de upgrade resuelto: cuando el consumer tenía `pumuki@6.3.26` declarado, `install` no actualiza versión por diseño (`already_declared`); cierre con `pumuki update --latest`.
|
|
679
|
+
- versión efectiva en `node_modules/pumuki`: `6.3.27`.
|
|
680
|
+
- `validation:p9:ruralgo-install-health` en verde (`ready=true`, `doctor PASS`).
|
|
681
|
+
- paridad runtime confirmada:
|
|
682
|
+
- bins stdio presentes en `node_modules/.bin`.
|
|
683
|
+
- exports oficiales (`pumuki`, `integrations/*`, `core/gate/*`) cargan en `require/import` sin errores.
|
|
684
|
+
- ✅ `P10.T7` Ejecutar quinto slice operativo P10 en repos reales (cierre post-propagación + backlog residual).
|
|
685
|
+
- cierre aplicado:
|
|
686
|
+
- baseline ejecutada en `R_GO` con `pumuki status --json`, `pumuki doctor --json`, `pumuki sdd status --json`.
|
|
687
|
+
- `R_GO` actualizado a `pumuki@6.3.27` vía `pumuki update --latest`; lifecycle reporta `installed=true`, `version=6.3.27`, hooks gestionados.
|
|
688
|
+
- backlog residual actualizado con repro de campo:
|
|
689
|
+
- `RG-BUG-003 => ✅` (instalación no bloquea en runtime no alineado; modo standalone/skip engine mismatch).
|
|
690
|
+
- `RG-BUG-011 => ✅` (`pumuki sdd sync-docs --dry-run --json` operativo en `R_GO` y `ruralgo-fork`).
|
|
691
|
+
- `RG-BUG-004 => ⏳` (`unknown-ruleset` persiste en `RULESET COVERAGE`).
|
|
692
|
+
- `RG-BUG-012 => ⏳` (full-audit sin falso positivo iOS sobre `.ts`; camino CI bloqueado antes por SDD/evidence).
|
|
693
|
+
- ✅ `P10.T8` Ejecutar sexto slice operativo P10 en repos reales (reducción de backlog residual activo).
|
|
694
|
+
- cierre aplicado:
|
|
695
|
+
- `RG-BUG-004` corregido en source con normalización de rulesets (`common/workflow/sdd/generic`) y test de no-regresión en verde.
|
|
696
|
+
- validación de campo en `R_GO` con bin local: `RULESET COVERAGE` sin `unknown-ruleset`.
|
|
697
|
+
- `RG-BUG-012` cerrado mediante repro CI controlada en clon temporal de `R_GO` con precondiciones SDD conformes (`validate CI ALLOWED`, `pumuki-ci PASS`, sin hits de `ios.no-force-unwrap` sobre `.ts` objetivo).
|
|
698
|
+
- 🚧 `P10.T9` Ejecutar séptimo slice operativo P10 en repos reales (propagación final de fixes residuales).
|
|
699
|
+
- foco:
|
|
700
|
+
- publicar en npm los fixes de `P10.T8` y revalidar en consumidores reales (`ruralgo-fork`/`R_GO`) la desaparición de `unknown-ruleset` en `RULESET COVERAGE`.
|
|
333
701
|
|
|
334
702
|
## Plan Por Fases (Ciclo 014)
|
|
335
703
|
Plan base visible para seguimiento previo y durante la implementacion.
|
|
@@ -9,11 +9,16 @@ Este directorio contiene solo documentación oficial y estable de validación pa
|
|
|
9
9
|
- `detection-audit-baseline.md`
|
|
10
10
|
- `enterprise-consumer-isolation-policy.md`
|
|
11
11
|
- `mock-consumer-integration-runbook.md`
|
|
12
|
+
- `p9-ruralgo-bug-registry.md`
|
|
13
|
+
- `p9-ruralgo-fork-validation-tracking.md`
|
|
14
|
+
- `real-repo-manual-e2e-ruralgo-fork.md`
|
|
12
15
|
- `skills-rollout-consumer-repositories.md`
|
|
13
16
|
|
|
14
17
|
## Estado operativo actual
|
|
15
18
|
|
|
16
|
-
-
|
|
19
|
+
- Seguimiento activo de validación real: `docs/validation/p9-ruralgo-fork-validation-tracking.md`.
|
|
20
|
+
- Registro paralelo de bugs detectados en RuralGO: `docs/validation/p9-ruralgo-bug-registry.md`.
|
|
21
|
+
- Seguimiento global diario: `docs/EXECUTION_BOARD.md`.
|
|
17
22
|
|
|
18
23
|
## Política de higiene
|
|
19
24
|
|
|
@@ -30,3 +35,8 @@ Este directorio contiene solo documentación oficial y estable de validación pa
|
|
|
30
35
|
- `docs/evidence-v2.1.md`
|
|
31
36
|
- El cierre de `C025` (auditoría exhaustiva de funcionalidades + reglas) quedó consolidado en:
|
|
32
37
|
- `docs/REFRACTOR_PROGRESS.md` (estado, evidencia y cierre del bloque P5).
|
|
38
|
+
- El cierre de `P6` (verificación exhaustiva real/mock interna) quedó consolidado en:
|
|
39
|
+
- `docs/EXECUTION_BOARD.md` (línea base histórica `371/371`).
|
|
40
|
+
- `docs/REFRACTOR_PROGRESS.md` (veredicto y transición a bloque `P7`).
|
|
41
|
+
- La validación activa en repositorio real externo está en:
|
|
42
|
+
- `docs/validation/p9-ruralgo-fork-validation-tracking.md` (plan vivo por fases y checklists P9).
|