--- id: "0121b" title: "audit_e2e_coverage_go_infra + fn doctor e2e-coverage subcmd" status: pendiente type: feature domain: - registry-quality scope: registry priority: alta depends: - "0120" blocks: [] related: - "0121" created: 2026-05-19 updated: 2026-05-19 tags: [doctor, coverage, e2e_checks, fn-constructor] --- # 0121b — fn doctor e2e-coverage ## Problema No hay forma de medir cuantas apps tienen `e2e_checks` declarado. Sin metrica, no se puede gatear coverage ni reportar progreso de 0121. ## Decision 1. Crear funcion del registry `audit_e2e_coverage_go_infra` que escanea `apps/`, `cpp/apps/`, `projects/*/apps/`, parsea frontmatter `app.md`, devuelve `{total, with_checks, missing[], coverage_pct}`. 2. Anadir subcomando `fn doctor e2e-coverage` en `cmd/fn/doctor.go` que invoca la funcion + formatea output (text + `--json`). ## Tareas 1. Crear funcion via `fn-constructor` (Go, domain `infra`). 2. Editar `cmd/fn/doctor.go` para anadir subcmd `e2e-coverage`. 3. Tests unitarios de la funcion. 4. `./fn doctor e2e-coverage` muestra reporte. ## Acceptance - [ ] `audit_e2e_coverage_go_infra` indexada en registry.db con `signature`, `params_schema`, tests >=1. - [ ] `fn doctor e2e-coverage --json` devuelve JSON con campos `{total, with_checks, missing, coverage_pct}`. - [ ] `fn doctor e2e-coverage` (text) muestra tabla legible. - [ ] Sin warnings en `fn doctor` global. ## DoD - **Donde**: terminal (`fn doctor e2e-coverage`). - **Latencia**: <2s. - **Como vuelve**: `fn doctor` rutinario tras editar `app.md`. - **Onboarding**: "Antes de cerrar issue que toca app, ejecuta `fn doctor e2e-coverage` para no bajar coverage." ## Tipo orquestador `feature_app_simple` (1 funcion + 1 subcmd, scope acotado, criterios verificables). Apto para `/autonomous-task 0121b`.