CommunityRedacción y edicióngithub.com

Pome: Gemelos Digitales Auto-alojados

Crea gemelos digitales auto-alojados de diferentes APIs para pruebas E2E y simulación de agentes.

¿Qué es Pome: Gemelos Digitales Auto-alojados?

Pome es un router de entrada para un conjunto de habilidades que permiten a los desarrolladores probar sus agentes de IA (tanto agentes gestionados de Claude como procesos auto-alojados) contra gemelos digitales de APIs. El flujo principal guía al usuario desde la ingesta inicial del agente (intake), la sugerencia o autoría de tareas de prueba, la verificación de semillas, hasta la ejecución completa y la obtención de informes. Pome se apoya en un MCP de control (mcp.pome.sh) para la evaluación y puntuación, mientras que el trazado local se realiza mediante su CLI. Es especialmente útil para pruebas E2E y de simulación donde se necesita un entorno cerrado (closed-book) que replique APIs sin depender de internet en vivo. La habilidad distingue cuidadosamente si el agente bajo prueba es un agente gestionado de Claude (sin repositorio local) o un proceso auto-alojado con un repositorio local (que requiere el CLI para el registro y cableado correcto, incluyendo la escritura de pome.json y .pome/link.json). Una vez registrado, el sistema permite habilitar gemelos digitales adicionales de forma aditiva.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add pome-sh/digital-twins

Installed? Explore more Redacción y edición skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

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 calificadapome-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.json que 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 — el agent.slug canónico en pome.json y 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 MCP register_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 CLIEquivalente alojado (entrenador)
pome register agentNo 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 discosave_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.

Skills relacionados