2b5c30a022
0121 era scope demasiado grande para 1 orquestador (batch + new function +
new subcmd + N edits). Split:
- 0121a chore: design-e2e batch (Claude orquesta N fn-recopilador paralelos)
- 0121b feature: audit_e2e_coverage + fn doctor e2e-coverage subcmd
(tipo feature_app_simple, apto /autonomous-task)
- 0121c chore: aplicar propuestas via N /autonomous-task add_e2e_check
Cada hijo tiene Acceptance verificable + tipo orquestador declarado.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
67 lines
2.9 KiB
Markdown
67 lines
2.9 KiB
Markdown
---
|
|
id: "0121"
|
|
title: "EPIC: Cobertura e2e_checks masiva (design + doctor + apply)"
|
|
status: in-progress
|
|
type: epic
|
|
domain:
|
|
- registry-quality
|
|
- meta
|
|
scope: registry
|
|
priority: alta
|
|
depends:
|
|
- "0120"
|
|
blocks:
|
|
- "0122"
|
|
related:
|
|
- "0068"
|
|
created: 2026-05-18
|
|
updated: 2026-05-19
|
|
tags: [e2e_checks, recopilador, batch, coverage, epic]
|
|
---
|
|
|
|
# Sub-issues
|
|
|
|
- `0121a` — design-e2e batch (yo orquesto N fn-recopilador paralelos, propuestas en `dev/proposals_e2e_checks_0121/`)
|
|
- `0121b` — `audit_e2e_coverage_go_infra` + `fn doctor e2e-coverage` (via /autonomous-task, tipo feature_app_simple)
|
|
- `0121c` — aplicar propuestas: N `/autonomous-task add_e2e_check` (1 por app) en paralelo
|
|
|
|
Cierra el epic cuando los 3 hijos cierren + coverage >=80%.
|
|
|
|
|
|
# 0121 — Cobertura e2e_checks masiva via fn-recopilador batch
|
|
|
|
## Problema
|
|
|
|
Regla `e2e_validation.md` define el contrato `e2e_checks` en `app.md` para que `fn-analizador` (fase 4) pueda validar. Hoy solo ~12 apps lo declaran. >20 apps sin contrato hacen que el bucle reactivo opere amputado: fase 4 colapsa, fase 5 no recibe input. `/autonomous-task` no puede converger sobre la mayoria de apps por falta de gate.
|
|
|
|
## Decision
|
|
|
|
Lanzar `fn-recopilador` en modo `design-e2e <app>` en paralelo sobre TODAS las apps sin `e2e_checks` declarado. Cada output es propuesta de bloque YAML para anadir al `app.md` correspondiente. Humano (o `/autonomous-task` por app) aplica via PR.
|
|
|
|
Anadir subcomando `fn doctor e2e-coverage` que lista apps sin contrato y devuelve % de coverage.
|
|
|
|
## Tareas
|
|
|
|
1. Listar apps sin `e2e_checks:` con `grep -L`.
|
|
2. Spawn `fn-recopilador design-e2e <app>` en paralelo (1 mensaje, N tool_use blocks) para cada app sin contrato.
|
|
3. Recoger propuestas, una por app, en `dev/proposals_e2e_checks_0121/<app>.yaml` (carpeta efimera).
|
|
4. Implementar `fn doctor e2e-coverage` en `cmd/fn/doctor.go` + funcion auxiliar `audit_e2e_coverage_go_infra` via `fn-constructor`.
|
|
5. Aplicar propuestas: editar `app.md` de cada app (manual o autonomous-task por lote).
|
|
6. Re-ejecutar `fn doctor e2e-coverage` y validar coverage >=80%.
|
|
|
|
## Acceptance
|
|
|
|
- [ ] `fn doctor e2e-coverage --json` existe y reporta coverage actual.
|
|
- [ ] Coverage >=80% (>=80% de apps en `apps/`, `cpp/apps/`, `projects/*/apps/` con `e2e_checks` declarado).
|
|
- [ ] Para cada app con `e2e_checks` nuevo: `fn-analizador` corrida produce `e2e_runs` con `checks_total>0`.
|
|
- [ ] Funcion `audit_e2e_coverage_go_infra` indexada en registry.db con `uses_functions` declarado.
|
|
- [ ] PR mergeado a master con cambios en N `app.md` + nuevo doctor subcomando.
|
|
|
|
## DoD
|
|
|
|
User-facing surface:
|
|
- **Donde**: `fn doctor e2e-coverage` en terminal + tab Monitor del registry_dashboard (KPI coverage %).
|
|
- **Latencia**: report en <5s.
|
|
- **Como vuelve**: `fn doctor` rutinario tras cada deploy.
|
|
- **Onboarding**: "Antes de cerrar issue que toca app, comprobar `fn doctor e2e-coverage` para que la coverage no baje."
|