Especificación Gate 0 — Viabilidad técnica MCP
GATE-0: Especificación de Gate 0 (viabilidad técnica)
Sección titulada «GATE-0: Especificación de Gate 0 (viabilidad técnica)»Fuente de verdad de criterios: MASTER-00 §5.1. Este documento no sustituye el catálogo de producto (MCP-SPEC); fija el subconjunto implementable y evaluable antes de PoC/MVP.
1. Objetivo
Sección titulada «1. Objetivo»Comprobar que DocuGraph puede recuperar contexto mediante MCP sin aplicación móvil ni backend cloud:
- Servidor MCP en Kotlin (
:docugraph-mcp) sobre núcleo documental (:docugraph-core). - Repositorio demo + gold standard definidos para EXP-01.
- Tools:
get_task_context,validate_traceability. - Transporte STDIO únicamente (DEC-003).
- Un cliente MCP real y tarea demo
BE-02(identidad distinta del catálogodocs/backend/BE-02_*).
2. No-goals (explícitos)
Sección titulada «2. No-goals (explícitos)»| Fuera de Gate 0 | Motivo |
|---|---|
| App Mobile/Desktop UI | PoC / MVP / Fase D |
| RevenueCat, identidad, Pro entitlements | MVP+ |
| Transporte HTTP/SSE | PoC/Producto; alcance Gate 0 limitado a STDIO (DEC-003/DEC-004) |
Tool get_dependency_graph |
Catálogo; no criterio §5.1 |
Resources docugraph://*, prompts MCP de catálogo |
Opcional post-Gate 0 |
PostgreSQL / Ktor / :docugraph-backend |
POST_MVP |
| PoC multi-tarea y métricas de línea base completa | Fase B |
| Afirmar H01–H14 como APOYADA/REFUTADA sin evidencia | Gobernanza §0 |
3. Componentes lógicos mínimos
Sección titulada «3. Componentes lógicos mínimos»| Componente | Módulo | Responsabilidad Gate 0 |
|---|---|---|
| Document Loader | :docugraph-core |
Descubrir .md bajo workspace; leer texto |
| Metadata Parser | :docugraph-core |
YAML frontmatter → nodo (META-01) |
| Graph Resolver | :docugraph-core |
Grafo depends_on; recorrido upstream; orden topológico; determinismo |
| Bundle Builder | :docugraph-core |
Markdown bundle + justificación de cada inclusión |
| Traceability Validator | :docugraph-core |
Links rotos, frontmatter inválido, ciclos (Tarjan) |
| MCP Tools + STDIO | :docugraph-mcp |
Exponer tools vía Kotlin MCP SDK 0.15.0 (DEC-004) |
Regla KMP (DEC-002 / RES-00): parser, grafo y bundle sin APIs de UI ni de SO; el servidor MCP solo adapta transporte e I/O de proceso.
Contratos detallados: META-01, MCP-G0.
4. Checklist MASTER-00 §5.1 — estado de gobernanza (post EXP-01, 2026-08-11)
Sección titulada «4. Checklist MASTER-00 §5.1 — estado de gobernanza (post EXP-01, 2026-08-11)»| # | Criterio de aprobación | Estado documental | Estado runtime |
|---|---|---|---|
| 1 | El cliente se conecta correctamente | Spec STDIO en MCP-G0 | Cumplido — 4/4 PASS con cliente MCP externo real (JetBrains Junie) vía STDIO (2026-08-11); corrida inicial con Client+ChannelTransport en memoria (DEC-005) |
| 2 | BE-02 demo devuelve el conjunto esperado | Gold standard en GOLD_STANDARD_BE-02.md |
Cumplido — cobertura 100%, 0 omisiones críticas, 0 irrelevantes (EXP-01 Resultados) |
| 3 | Las referencias rotas se detectan | validate_traceability en MCP-G0 |
Cumplido — LINK_BROKEN_DEPENDS y LINK_CYCLE detectados en fixtures negativos |
| 4 | La salida explica cada inclusión | Bundle contract en META-01 / MCP-G0 | Cumplido — sección ## Inclusion report con depth y razón por nodo |
| 5 | La ejecución es reproducible | Determinismo + mismo workspace | Cumplido — orden reverse-postorder determinista; verificado en pruebas automatizadas |
| 6 | No se requieren documentos ajenos a la tarea | Alcance del resolver + gold | Cumplido — bundle de BE-02 no incluye IRRELEVANT-01 ni fixtures negativos |
Alcance declarado en gobernanza (hechos de repo, actualizado 2026-08-11):
| Ítem alcance §5.1 | Estado |
|---|---|
| Servidor MCP Kotlin | Implementado en :docugraph-mcp (Main.kt) sobre kotlin-sdk 0.15.0 |
| Repo demo | Creado en research/evidence/demo-repo/ (+ negativos en demo-repo-negatives/) |
| Document Loader / Metadata Parser / Graph Resolver | Implementados en :docugraph-core (12 pruebas unitarias en verde) |
get_task_context / validate_traceability |
Implementados y probados vía cliente MCP real del SDK (3 pruebas de integración en verde) |
| Cliente MCP real | Verificado en memoria (ChannelTransport); pendiente verificación STDIO con cliente externo |
| Ejecución BE-02 demo | Ejecutada — ver resultados en EXP-01 |
5. Repositorio demo y gold standard (requisitos, no resultados)
Sección titulada «5. Repositorio demo y gold standard (requisitos, no resultados)»5.1 Repo demo (DOC02)
Sección titulada «5.1 Repo demo (DOC02)»Debe existir un workspace separado del catálogo de producto (p. ej. research/evidence/demo-repo/ o path fijado en EXP-01) que contenga:
- Nodos Markdown con frontmatter válido (
META-01). - Una tarea objetivo con
id: BE-02solo en el demo (no confundir con BE-02 de producto). - Cadena
depends_onrealista (historia → contrato/spec → tarea) y al menos un documento irrelevante no enlazado (para precisión). - Al menos un caso de link roto y, si se prueba el validador en aislamiento, un fixture de ciclo opcional en subcarpeta de negativos.
- Sin dependencia de PostgreSQL ni de módulos app.
5.2 Gold standard
Sección titulada «5.2 Gold standard»Antes de correr EXP-01, un revisor humano define (archivo bajo research/evidence/):
- Lista de recursos obligatorios (IDs) para
get_task_context("BE-02"). - Lista de recursos opcionales/aceptables.
- Recursos que no deben aparecer (irrelevantes conocidos).
- Criterio de “omisión crítica”.
El gold no puede copiarse ciegamente del primer output del resolver (evitar circularidad). Se fija por lectura manual de la tarea demo.
6. Definición de done (Gate 0 implementación + evaluación)
Sección titulada «6. Definición de done (Gate 0 implementación + evaluación)»Done de implementación (desbloquea EXP-01):
- Código mínimo en
:docugraph-corey:docugraph-mcpsegún META-01 y MCP-G0. ./gradlew :docugraph-mcp:run(o equivalente) sirve STDIO.- Cliente MCP real invoca ambos tools contra el demo.
- Fixtures demo + gold standard versionados en
research/evidence/.
Done de evaluación (cierre formal Gate 0):
- EXP-01 ejecutado; evidencia en
research/evidence/. - Checklist §5.1 evaluada con veredicto CONTINUAR / AJUSTAR / REPETIR / DETENER (§15 MASTER-00).
- Hipótesis solo cambian de estado con evidencia (no en este documento de spec).
7. P0 vs diferible
Sección titulada «7. P0 vs diferible»| Prioridad | Ítem |
|---|---|
| P0 | META-01 + MCP-G0 + este GATE-0; parser; grafo; tools STDIO; demo+gold; cliente; EXP-01 |
| P1 | PoC 3 tareas; métricas línea base; get_dependency_graph; núcleo KMP multiplatform targets si aún JVM-only |
| P2 | MVP Mobile, RevenueCat, Desktop UI, backend cloud |
8. Decisión y trazabilidad
Sección titulada «8. Decisión y trazabilidad»- Veredicto pre-experimental (solo diseño/gobernanza): ver FIND-01.
- Veredicto post-EXP-01 (2026-08-11): CONTINUAR — ver Resultados y Decisión de EXP-01, DEC-004 y DEC-005. Gate 0 formalmente APROBADO el 2026-08-11: el criterio §5.1.1 se cerró con cliente MCP externo real (JetBrains Junie, 4/4 PASS) vía STDIO.
9. Traceability
Sección titulada «9. Traceability»- Upstream: MASTER-00 §5.1, RES-00, EXP-01, META-01, MCP-G0.
- Related catalog (no alcance runtime Gate 0 completo): MCP-SPEC.