| Fase 1 — Pipeline tipado base | - ✓ Stages explore → snapshot → plan → run → learn → evolve implementados como comandos de Commander
- ✓ Schemas Zod en core/types.ts (ExploreOutput, PlanTask, RunOutput, etc.)
- ✓ JSON extraction fence-aware vía extractJson()
- ✓ Tests unitarios para plan, explore, chat
| - ○ Tests de integración para learn y evolve
- ○ Suite E2E que valide el pipeline completo sobre un repo sintético reproducible
- ○ Smoke test del binario slad
| Alta | Suite E2E con fixture de repo controlado que ejecute explore → run y valide artefactos en SessionState |
| Fase 2 — Multi-provider | - ✓ ModelProvider interface + factory
- ✓ Providers anthropic, openai, gemini, cli (codex/claude vía subprocess)
- ✓ Resolución por .env y CLI flags
- ✓ ProviderError con flag retryable (429/529/500)
| - ○ Backoff exponencial configurable
- ○ Fallback automático provider-to-provider
- ○ Token accounting + cost tracking por sesión
- ○ Soporte streaming para feedback en vivo
| Alta | Token accounting + fallback automático cuando el provider primario devuelve 5xx/429 |
| Fase 3 — Sesiones y HITL | - ✓ SessionState CRUD con appendArtifact()
- ✓ Loop HITL awaiting_human + questions[] con @inquirer/prompts
- ✓ AGENTS.md injection vía core/context.ts
- ✓ core/inventory.ts para describir proyecto
| - ○ Persistencia de robusta multi-proceso
- ○ Resumibilidad cross-session (session restore)
- ○ Diff entre sesiones
- ○ Branch/fork de sesión para experimentación
| Alta | Comando session restore <id> + session diff para comparar runs |
| Fase 4 — Cache & observabilidad | - ✓ Cache content-based en ~/.slad-os/cache/v1 (store.ts, keys.ts, invalidation.ts, reusable.ts) con tests
- ✓ Logger configurable (SLAD_LOG_LEVEL, SLAD_DEBUG)
- ✓ project-id determinista
| - ○ Métricas de hit rate
- ○ Instrumentación OTEL
- ○ Correlation IDs cross-stage
- ○ Dashboard CLI/web para visualizar runs
- ○ Export de trazas
| Media | Métricas básicas (cache hit, latencia por stage, tokens) emitidas en formato consumible |
| Fase 5 — Harness de seguridad | - ✓ Clasificador low/med/high (classifier.ts)
- ✓ AuditLogger LDJSON append-only (audit.ts)
- ✓ approval.ts HITL
- ✓ Modes off / on / strict vía flag --harness
- ✓ Loader .slad-os/harness.json
| - ○ Sandboxing real (no solo aprobación HITL)
- ○ DSL de políticas declarativas
- ○ Allowlist/blocklist por proyecto
- ○ Integración con firejail o contenedores
- ○ Tests de evasión
| Alta | Sandbox de ejecución (docker o firejail) + DSL de políticas en harness.json |
| Fase 6 — Evals de calidad | - ✓ Tests unitarios con node:test en cache, harness, core, commands, project, cli
- ✓ Template de snapshot
| - ○ Golden outputs por stage
- ○ Métricas de calidad (plan_completeness, run_success_rate, schema_pass_rate)
- ○ Regression suite
- ○ Benchmark dataset reproducible
- ○ Baseline contra el cual comparar runs
| Crítica | Benchmark dataset + script de evals reproducible con baseline versionado |
| Fase 7 — Distribución y producto | - ✓ Build TS a dist/
- ✓ prepublishOnly con typecheck
- ✓ bin/slad-os.js
- ✓ Package listo en npm (no publicado aún)
| - ○ CI/CD (GitHub Actions: typecheck + test + build matrix)
- ○ Changelog automatizado (changesets)
- ○ README robusto
- ○ Docs site
- ○ Primera release en npm
| Alta | Pipeline CI/CD + primera release pública slad-os@0.1.0 en npm + README completo |
| Fase 8 — Extensibilidad | - ✓ Estructura modular por carpetas (agents/, commands/, models/, harness/) con interfaces claras
| - ○ API de plugins para custom agents/commands
- ○ Hooks pre/post stage
- ○ Registry de skills
- ○ Soporte para lenguajes adicionales (no solo TS)
| Media (post-MVP) | API de plugins documentada + un plugin de referencia (e.g. slad-plugin-python) |