Registro de decisiones
El corolario de la sección 1 de ../arquitectura.md dice que, ante una pregunta cuya respuesta no está en la arquitectura, la respuesta por defecto no es preguntar sino decidir y dejar constancia. Esto es la constancia.
Solo se escala lo que contradiga una decisión cerrada o un invariante. Nada de lo registrado aquí lo hace.
Qué entra
Una decisión merece registro si se cumple alguna de estas condiciones:
- La arquitectura la dejó abierta y había más de una opción defendible.
- Alguien razonable la tomaría al revés.
- Se rechazó una alternativa que un implementador propondría por reflejo.
No entran las decisiones que solo tienen una respuesta sensata, ni las que el código explica mejor que un documento.
Formato
Contexto, decisión, motivo, consecuencias y alternativas descartadas. Breve. Un registro que nadie relee no sirve de nada.
Las decisiones no se borran ni se editan cuando cambian: se registra una nueva que sustituya a la anterior, y se marca la vieja como sustituida. Saber qué se creyó y por qué dejó de creerse vale más que un fichero limpio.
Índice
| # | Decisión | Estado |
|---|---|---|
| 0001 | TypeScript sobre el SDK oficial de MCP | Vigente |
| 0002 | El núcleo no llama a puertos: es una función | Vigente |
| 0003 | Cinco contextos delimitados | Vigente |
| 0004 | Ningún contexto importa a otro | Vigente |
| 0005 | La política solo concede; no hay denegaciones | Vigente |
| 0006 | Nomenclatura en inglés y diseño en varios documentos | Vigente |
| 0007 | Fase de sesiones: cuatro sesiones grandes, hito en la CLI | Vigente |
| 0008 | Workspace de pnpm, ESM y exports apuntando a lo compilado | Vigente |
| 0009 | La CLI vive en runtime/; el arnés, en verification/ | Vigente |
| 0010 | S1 declara dos puertos, no siete | Vigente |
| 0011 | El selector es una conjunción de igualdades sobre atributos de un solo valor | Vigente |
| 0012 | path es un puntero RFC 6901 resoluble a línea y columna | Vigente |
| 0013 | El techo más restrictivo se compara por ritmo | Vigente |
| 0014 | En seco, el uso por defecto es cero, y el listado no lo consulta | Vigente |
| 0015 | La pasarela se orquesta en runtime/; el protocolo MCP vive en adapters/ | Vigente |
| 0016 | El nombre expuesto de una tool es upstream__tool, siempre | Vigente |
| 0017 | El emisor static-key declara sujeto y referencia a la clave | Vigente |
| 0018 | Los fallos que access no ve envuelven la decisión; no amplían ReasonCode | Vigente |
| 0019 | El registro de decisiones va a stderr, porque stdout es el protocolo | Vigente |
| 0020 | Una sesión de upstream por (upstream, cuenta) | Vigente |
| 0021 | S2 no añade descubrimiento MCP al CatalogSource | Vigente |
| 0022 | El artefacto elige la periferia por elemento; el arranque elige la del proceso | Vigente |
| 0023 | El ciclo de vida de la periferia vive en un compositor, no en los puertos | Vigente |
| 0024 | Un claim multivaluado no produce atributo | Vigente |
| 0025 | El descubrimiento MCP ocurre una vez al arrancar, y sin credencial | Vigente |
| 0026 | jose sí; cliente de Redis y SDK de OpenTelemetry, no | Vigente |
| 0027 | Con HTTP la credencial del cliente llega por cabecera y por petición | Vigente |
| 0028 | PolicySource sobre git: la versión es el sha, y se lee sin copia de trabajo | Vigente |
| 0029 | discovery y audience los lee la cáscara del documento | Vigente |
| 0030 | El artefacto desplegable es runtime con su cierre, producido por pnpm deploy | Vigente |
| 0031 | El empaquetado vive en deployment/, un directorio sin manifiesto | Vigente |
| 0032 | La imagen es una envoltura, y el criterio de terminación no la necesita | Vigente |
| 0033 | TLS fuera, CORS ninguno, techo de petición dentro | Vigente |
| 0034 | La parada ordenada la conecta la cáscara; sin puerto de señales, salud ni configuración | Vigente |
| 0035 | Una versión para el producto; los siete paquetes siguen privados | Sustituida en parte por 0041 |
| 0036 | Lo que S4 no cierra, y por qué | Sustituida en parte por 0039 y 0040 |
| 0037 | La identidad de certificado la verifica el terminador TLS, y llega por cabecera | Vigente |
| 0038 | Ni el artefacto ni el secreto de un cliente viajan por canal abierto | Vigente |
| 0039 | El generador del catálogo declarado, y por qué aborta en vez de completar | Vigente |
| 0040 | Se escriben las cinco implementaciones previstas que faltaban | Vigente |
| 0041 | Se publican los siete, con una sola versión, y el que trae la CLI se llama mcpizer | Vigente |
| 0042 | Publicar exige una licencia, y elegirla no es una decisión de diseño | Vigente |
| 0043 | Lo publicado se comprueba instalándolo con el npm real | Vigente |
Importado de rflvz/mcpizer en bf25803. El cuerpo no se reescribe: sólo se reenlaza.