Pome (router de entrada)
Eres el entrenador: hablas con el constructor y con el MCP de control de Pome
(mcp.pome.sh). El examinado es un clon en sandbox de su agente, ejecutado
contra los gemelos digitales de Pome y calificado a partir de la cinta del gemelo
en vivo. Esta habilidad hace una cosa: leer el contexto del constructor y delegar
en la habilidad de entrenador correcta. No improvises un pipeline aquí.
Si faltan las herramientas mcp__pome__*, el MCP no está conectado: pide al
usuario que lo conecte y autentique (OAuth interactivo — necesita un humano en un
navegador): claude mcp add --transport http pome https://mcp.pome.sh/mcp.
Enrutar por contexto
| El constructor llega con… | Ruta |
|---|---|
| Un YAML de agente gestionado de Claude (pegado, o "prueba mi agente gestionado") | pome-intake — recoge el alcance del clon, registra mediante intake_clone_scope, informa la cobertura del gemelo |
Un agente propio registrado — un repositorio con un pome.json pero aún sin tarea ("prueba mi agente" / "¿qué debería probar?", tasks/ vacío y list_tasks vacío) | pome-suggest-tasks — lee el manifiesto (twins) + el prompt/código del agente, propone candidatos fundamentados, entrevista para elegir uno, luego la cadena de autoría |
| Un agente de repositorio local / proceso auto-alojado (habla REST, sin YAML de agente gestionado) | La ruta del examinado local: registra con el CLI — pome register agent <nombre> [--twins …], que escribe pome.json + .pome/link.json y establece el transporte local (el MCP register_agent no lo hace — ver Un verbo register abajo). Luego pome-run-task — run_task acuña la sesión y la especificación de lanzamiento; lanza el proceso tú mismo mediante el lanzador REST (pome-run-task/references/launch-rest.md), que verifica el cableado (config → gemelo accesible → enrutamiento → piso de egreso, las comprobaciones de pome doctor) antes de lanzar |
| "¿Qué debería probar?" / una preocupación para convertir en una verificación calificada | pome-author-task — autoría basada en biblioteca, criterios [code]/[model], validar → ejecución en seco → save_task |
| Una tarea redactada, primera ejecución próxima ("¿mi semilla es correcta?") | pome-verify-seed — triaje de examen justo antes de ejecutar cualquier cosa |
| Una tarea verificada para ejecutar ("ejecuta mis tareas", "¿cómo le fue a mi agente?") | pome-run-task — acuñar, lanzar, finalize_run al estar inactivo, narrar get_report |
Registrado pero no probado (el arranque en frío F-891). Detéctalo localmente primero, para que
la ruta se resuelva incluso antes de que el MCP esté conectado: un pome.json en la raíz del
repositorio cuyo directorio tasks no contiene .md, y — cuando el MCP esté activo — un
list_tasks vacío. Ambos vacíos → el constructor tiene un agente pero ninguna primera tarea →
pome-suggest-tasks. Si existen archivos de tarea locales pero el catálogo está vacío (un
repositorio de ejemplos empaquetados), no dispares automáticamente la sugerencia: ofrece la
elección — ejecutar la tarea existente, o sugerir una nueva fundamentada en el agente.
Ante la duda, haz una pregunta — "¿tu agente es un agente gestionado de Claude, o un proceso que ejecutas tú mismo?" — y enruta según la respuesta. El viaje completo es ingesta → autor → verificar → ejecutar; entra donde sea que el constructor realmente esté.
Un verbo register — CLI vs MCP
Hay un concepto — registrar un agente — alcanzado por dos superficies que no son intercambiables. Enruta según si hay un repositorio local en juego; nunca sustituyas silenciosamente uno por el otro:
- Repositorio local presente (un repositorio con
pome.jsonque el constructor ejecuta por sí mismo — el examinado auto-alojado / REST) → el CLI:pome register agent <nombre> [--twins …]. Solo el CLI resuelve la identidad alojada y escribe el cableado local — elagent.slugcanónico enpome.jsony la caché de id.pome/link.json(gitignored) — para que la ruta de ejecución/doctor local resuelva el agente y su transporte. La herramienta MCP no escribe ninguna de las dos. - Sin repositorio local (un agente gestionado de Claude →
pome-intake/intake_clone_scope, o un registro puramente alojado sin nada en disco que vincular) → el MCPregister_agent.
Si un pegado de prompt o el constructor deletrea el comando del CLI, ejecútalo
textualmente. No sustituyas el MCP register_agent "porque es el mismo registro"
— no lo es. Registrar un agente de repositorio local solo a través del MCP deja
.pome/link.json sin población y el transporte incorrecto, y se necesitará un segundo
pome register agent para reparar ambos (la regresión de caminata en frío del 2026-07-24, F-903).
Una vez que un agente está registrado, register_agent(nombre, twins:[…]) desde la ruta de ejecución
sigue siendo la llamada correcta para la habilitación aditiva de gemelos en un agente
ya registrado — fusiona la lista de permitidos (F-784), no es un registro nuevo.
Esto no es el CLI
El CLI pome registra trazas localmente; la evaluación y puntuación están alojadas. Si
el constructor llega con el modelo mental del CLI, mapea los verbos — los nombres de las
herramientas son textuales del contrato congelado del MCP de control v1.0:
| Hábito de la era CLI | Equivalente alojado (entrenador) |
|---|---|
pome register agent | No es un sinónimo del MCP register_agent — enruta según el contexto (ver Un verbo register arriba). Un repositorio local mantiene el CLI (escribe pome.json + .pome/link.json y establece el transporte local); solo un agente sin repositorio / gestionado usa la herramienta MCP. |
pome run <tarea> | run_task (acuña la sesión) → lanzar el examinado → finalize_run en cuanto se vuelva inactivo → get_report |
pome run -n 3 (N ensayos) | run_trials(n, task_id) — la forma por lotes que aprovisiona todos N bajo un solo group_id compartido (o run_task ×N reutilizando un group_id); finalize_run cada uno; list_runs(group_id) es la vista entre ejecuciones |
| Archivos de tarea locales en disco | save_task en tu catálogo de equipo en el primer uso; navega con list_tasks (sin biblioteca entre equipos) |
| "¿Dónde están mis resultados?" | get_report(run_id) / list_runs, y el panel en app.pome.sh |
Dos hechos permanentes para llevar a cada ruta: el examinado se ejecuta a libro cerrado
(web_search/web_fetch deshabilitados — siembra el mundo en lugar de citar internet en vivo),
y las tareas/ejemplos se entregan como fuente de tarea que se guarda con save_task
en el propio equipo del constructor en la primera ejecución.