Milpa no promete ahorrarte pensar. Milpa promete enseñarte a pensar mientras construyes.

Imaginá que le pides lo mismo a tres mensajeros distintos — una línea de comandos, un asistente de IA, un formulario web — y cada uno lo resuelve un poco distinto: uno te pide confirmar antes de actuar, otro revisa primero si tienes permiso, el tercero todavía no revisa nada. Es la misma orden, dicha de tres formas, con tres niveles de cuidado distintos. Eso es lo que vas a ver acá, ya con su nombre técnico: una Operación, proyectada a tres puertas.

Artifact 09 Ingeniería · inspeccionar

El átomo y sus puertas

Una operación se declara una vez. coa, MCP y HTTP son adaptadores del mismo handler — pero cambiar de puerta puede cambiar la política.

crear:tarea

  • mutating
  • requiresConfirmation
  • scopes: tarea:crear
  • handler: TaskService::create

Hueco de cobertura honesto: Esto no es una garantía deseable de HTTP. Es una radiografía de la implementación actual. MCP aplica scopes hoy; HTTP todavía no lee scopes de Operation. Este hueco debe cerrarse en runtime/policy antes de producción. Ver Radiografía del runtime. Fuente: Operation.php.

coa · CLI

coa crear:tarea --titulo=… --yes

resolver

validar

autorizar

ejecutar

auditar

Elige una puerta para proyectar.

MCP · agente

tools/call · crear:tarea

resolver

validar

autorizar

ejecutar

auditar

Elige una puerta para proyectar.

POST · HTTP

POST /crear/tarea

resolver

validar

autorizar

ejecutar

auditar

Elige una puerta para proyectar.

Garantías por superficie
SuperficieConfirmScopes aplicados
coaflag --yesno (local/confiable)
MCPgate heredado (tool-runtime) (PolicyGate)
POSTtoken 428→201no (pendiente · middleware)

El handler nunca cambió. Cambiaste de puerta y el framework sintetizó la invocación — pero la puerta puede cambiar la política, y hoy no todas aplican los mismos scopes.

Evidencia y alcance

Modelo didáctico sobre implementación auditada. Este artifact no afirma que HTTP aplique scopes ni que el token store in-memory sea de producción.

Fuentes auditadas

  • Contrato publicado milpa/command: getmilpa-command/src/Operation.php, CommandProvider.php, SurfaceProjector.php.
  • Proyectores de referencia (skeleton, ns App\Command, no parte del paquete): getmilpa-skeleton/src/Command/{CliProjector,McpProjector,HttpProjector}.php.
  • Stand-ins didácticos: ConfirmTokenStore.php (in-memory, single-process — no producción), SchemaCoercer.php.
  • Semilla junior: docs/GUION-WEBINAR-JUNIORS.md (Artifact 2).