¿Qué hace align?
Usa $align para igualar el contexto antes de la acción. Este skill existe para tareas donde
el humano, el agente del proyecto, WebGPT, $scillm, $ask, $dogpile, $memory o
$project-knowledge pueden tener información diferente. Produce un
alignment_lock.json que otros skills pueden usar para ejecutarse.
No uses $align para implementar, renderizar, refactorizar o revisar trabajo final. Es una
puerta de pre-ejecución. Ningún código, infografía, dashboard, fase de plan-iterate o
renderizado de project-infographic debe comenzar hasta que el lock de alineación indique
ready_for_execution: true.
Regla Fundamental
La alineación solo está completa cuando todas las preguntas bloqueantes están respondidas y el lock registra:
- objetivo acordado
- no-objetivos acordados
- contexto de origen
- hechos de los participantes
- supuestos y riesgos restantes
- forma de la salida
- criterios de aceptación
- decisión explícita de listo/no listo
Si persiste el desacuerdo, mantén el lock como ready_for_execution: false.
Participantes
Usa solo los participantes relevantes para la tarea:
| Participante | Rol |
|---|---|
human | Intención, preferencias, matices del dominio, nivel de aceptación |
project_agent | Estado local del repositorio, restricciones, siguientes pasos ejecutables |
project_knowledge | Historial duradero del proyecto y notas de transición |
memory | Lecciones previas y problemas similares resueltos |
scillm | Crítica directa del modelo a través del proxy LLM localhost |
ask | Entorno de ejecución de ask/oráculo/revisión profunda con artefactos; posee el enrutamiento a WebGPT |
dogpile | Investigación externa reciente cuando el contexto local es insuficiente |
webgpt | Contexto visible en el navegador/sesión y juicio orientado al humano |
Las llamadas a WebGPT deben enrutarse a través de $ask webgpt; $ask ya posee el backend
de oráculo WebGPT y usa surf webgpt.submit --no-activate en la pestaña autenticada de ChatGPT
del usuario. $align no llama a surf directamente. No envíes solicitudes de WebGPT a través
de $scillm; $scillm es para llamadas directas al modelo como
gpt-5.5, Gemini, Claude o OpenCode Go. Conserva el id de la pestaña cuando el humano lo
proporcione.
Usa $dogpile solo cuando la alineación esté bloqueada por falta de conocimiento
externo/actual. No lo uses para hechos que $project-knowledge o $memory
ya respondan.
Enrutamiento en Tiempo de Ejecución
+-----------------------+
| $align init |
| objetivo, salida, fuentes |
+-----------+-----------+
|
v
+-----------------+-----------------+
| Ronda N: alignment_brief |
| los participantes declaran hechos,|
| brechas, contradicciones y preguntas|
+-----------------+-----------------+
|
+-----------------+-----------------+
| compile-round extrae preguntas |
| Pregunta[bloqueante/no bloqueante]:|
+-----------------+-----------------+
|
¿preguntas bloqueantes abiertas?
| sí | no
v v
+----------------+----------------+ +-------+--------+
| enruta cada pregunta al dueño | | lock --ready |
| humano/proyecto/memoria/revisor | | escribe lock |
+----------------+----------------+ +----------------+
|
v
+----------------+----------------+
| add-response / answer-question |
| actualiza brief, incrementa ronda|
+----------------+----------------+
|
v
Ronda N+1
Las rutas de revisor son entradas opcionales a una ronda:
+----------------+
| Brief Ronda N |
+-------+--------+
|
+-----------------------------+-----------------------------+
| | |
v v v
+--------------------+ +--------------------+ +--------------------+
| WebGPT vía $ask | | $scillm directo | | $ask review/oracle |
| prepare-review | | prepare-review | | prepare-review |
| --reviewer webgpt | | --reviewer scillm | | --reviewer ask |
+---------+----------+ +---------+----------+ +---------+----------+
| | |
v v v
skills/ask/run.sh ask webgpt round-N-scillm-request.json round-N-ask-request.md
--webgpt-tab-id <id> modelo: gpt-5.5 skills/ask/run.sh ask
| razonamiento_effort: alto --deep-review
v prompt de personalidad opcional
$ask -> surf webgpt.submit |
--no-activate v
| POST localhost:4001/v1/chat/completions
v
pestaña autenticada de ChatGPT
Investigación externa/actual:
prepare-review --reviewer dogpile -> round-N-dogpile-request.md
Usar solo cuando la falta de hechos externos bloquee la alineación.
Bucle de Ronda
Cada ronda sigue la misma secuencia:
- Difundir el brief de alineación actual a los participantes seleccionados.
- Cada participante declara cuál cree que es la tarea.
- Cada participante enumera hechos que conoce y que otros podrían no conocer.
- Cada participante enumera supuestos, contradicciones y preguntas.
- Fusionar preguntas en conjuntos bloqueantes y no bloqueantes.
- Enrutar preguntas a la parte que pueda responderlas.
- Actualizar el brief.
- Detenerse solo cuando las preguntas bloqueantes estén resueltas o se alcance el máximo de rondas.
Si se alcanza el máximo de rondas con preguntas bloqueantes abiertas, detenerse con
ready_for_execution: false y mostrar la decisión humana más pequeña necesaria.
CLI
Vinculación de pestaña WebGPT (paridad CLI)
Prefiere sin banderas $ask webgpt desde un directorio de trabajo registrado. /ask compone
$browser-oracle automáticamente. init y prepare-review persisten las sugerencias de enlace en
.align/state.json y emiten las mismas banderas en los round-*-webgpt-ask-command.sh generados.
| Banderas | Cuándo usarlas |
|---|---|
| (ninguna) | cwd tiene registro walk-up + enlace — preferido |
--browser-oracle-from <dir> | Sobrescribir raíz walk-up (subdirectorio de monorepo) |
--webgpt-project <name> | Proyecto explícito; salta walk-up de yaml |
--webgpt-tab-id <id> | Sobrescritura única; salta walk-up |
--webgpt-url <url> | Resolver por URL de conversación; salta walk-up |
Orden de resolución (igual que $ask / $surf): --webgpt-tab-id → --webgpt-url →
$browser-oracle walk-up → --webgpt-project → una pestaña chatgpt.com (falla cerrado).
Configuración: $browser-oracle register + bind + doctor --from <dir>. Consulta las secciones de vinculación de pestaña WebGPT de los SKILL.md de $browser-oracle y $ask.
Ejecuta desde la raíz del repositorio o proyecto que posee la tarea:
skills/align/run.sh init \
--goal "Crear una solicitud clara de infografía plan-iterate" \
--output-shape "storyboard derivado de fuente y solicitud de infografía web" \
--participant human \
--participant project_agent \
--participant project_knowledge \
--participant scillm \
--participant ask \
--participant dogpile \
--participant webgpt
# Prefiere sin banderas desde un directorio registrado, o persiste la raíz walk-up:
# --browser-oracle-from skills/oc-subagent/personas/mathematics
# Sobrescritura explícita heredada:
# --webgpt-tab-id 837343529
Registrar respuestas de los participantes:
skills/align/run.sh add-response \
--participant project_agent \
--round 1 \
--text "Tarea: conciliar el flujo de trabajo antes de renderizar. Hecho: el visual anterior falló porque no había un storyboard aprobado. Pregunta[bloqueante]: ¿qué proyecto de muestra exacto debe anclar el visual?"
Compilar la ronda:
skills/align/run.sh compile-round --round 1
Bloquear solo después de que las preguntas bloqueantes estén resueltas:
skills/align/run.sh lock --ready --approved-by human
Generación de Solicitudes de Revisor
prepare-review crea artefactos de solicitud reproducibles para los revisores. No
llama al revisor por sí mismo.
skills/align/run.sh prepare-review --round 1 --reviewer scillm
skills/align/run.sh prepare-review --round 1 --reviewer ask
skills/align/run.sh prepare-review --round 1 --reviewer dogpile
skills/align/run.sh prepare-review --round 1 --reviewer webgpt --browser-oracle-from skills/oc-subagent/personas/mathematics
# o: --webgpt-tab-id 837343529
Usa WebGPT cuando la revisión necesite la sesión autenticada de ChatGPT del humano
en el navegador o contexto visible en el navegador. Usa $scillm cuando la revisión deba ser una
llamada directa y reproducible al modelo, por ejemplo GPT-5.5 con alto razonamiento y un
prompt de personalidad/sistema:
skills/align/run.sh prepare-review \
--round 1 \
--reviewer scillm \
--scillm-model gpt-5.5 \
--reasoning-effort high \
--persona-prompt "Eres un revisor de alineación de producto escéptico. Concéntrate en supuestos no coincidentes y criterios de aceptación faltantes."
Llamadas recomendadas después de prepare-review:
# revisión directa scillm
.align/reviews/round-001-scillm-command.sh
# revisión profunda ask u oráculo WebGPT
skills/ask/run.sh ask "Revisa la solicitud de alineación en .align/reviews/round-001-ask-request.md" \
--deep-review --deep-review-target .align/reviews/round-001-ask-request.md
skills/ask/run.sh ask webgpt "Revisa la solicitud de alineación en .align/reviews/round-001-webgpt-request.md" \
--browser-oracle-from skills/oc-subagent/personas/mathematics --oracle-iterations 1
# investigación dogpile solo si la alineación está bloqueada por hechos externos faltantes
skills/dogpile/run.sh search "hechos necesarios para desbloquear esta alineación" \
--context-file ".align/reviews/round-001-dogpile-request.md"
Almacena el texto resultante del revisor con add-response. Los recibos de los revisores son
entradas para la alineación; no son aprobación de ejecución por sí mismos.
Verificación de Cordura de Composición en Vivo
sanity.sh es la verificación local rápida. Prueba el bucle de rondas, la puerta de preguntas
bloqueantes, la generación de solicitudes de revisor y el esquema de bloqueo sin gastar
cuota externa.
sanity-live.sh es la puerta E2E obligatoria en el mundo real antes de afirmar que $align
está listo como skill compuesto. Es optativo porque llama a sistemas posteriores en vivo:
$memory recall --briefa través del skill real de memoria- Ingesta de respuesta del agente del proyecto a través de
$align add-response $dogpile searchcon la solicitud de alineación generada como contexto$ask webgptcontra la ruta WebGPT autenticada respaldada por el navegador- Creación final de
alignment_lock.jsonsolo después de que esos recibos se validen
Ejecútalo solo cuando la estación de trabajo local tenga memoria, credenciales/búsqueda de dogpile, Chrome y una sesión autenticada de ChatGPT:
ALIGN_LIVE_E2E=1 skills/align/sanity-live.sh
Controles opcionales:
ALIGN_LIVE_E2E=1 \
ALIGN_WEBGPT_TAB_ID=837343529 \
ALIGN_LIVE_OUTPUT_ROOT=/mnt/storage12tb/skills/align/live-e2e \
skills/align/sanity-live.sh
Si no se proporciona ALIGN_WEBGPT_TAB_ID o ALIGN_WEBGPT_PROJECT, la verificación
en vivo pasa --webgpt-create-tab a $ask; esto aún requiere una configuración local válida
de Chrome/WebGPT. El artefacto de prueba es
/mnt/storage12tb/skills/align/live-e2e/<timestamp>/report.json de forma predeterminada.
Las verificaciones en vivo omitidas no establecen la preparación.
Diseño de Artefactos
.align/
alignment_state.json
alignment_brief.md
alignment_lock.json
rounds/
round-001/
participant-human.md
participant-project_agent.md
participant-scillm.md
round_summary.md
questions.json
reviews/
round-001-scillm-request.json
round-001-scillm-command.sh
round-001-ask-request.md
round-001-dogpile-request.md
round-001-webgpt-request.md
round-001-webgpt-ask-command.sh
/mnt/storage12tb/skills/align/live-e2e/<timestamp>/
report.json
memory.stdout
dogpile.stdout
webgpt.stdout
ask-runs/<ask_id>/
Condiciones de Parada
Establece ready_for_execution: true solo cuando:
- no queden preguntas bloqueantes abiertas
- el objetivo acordado y los no-objetivos sean explícitos
- la forma de la salida sea concreta
- los criterios de aceptación sean comprobables o revisables
- el contexto de origen esté nombrado
- el humano o el dueño delegado haya aprobado el lock
Establece ready_for_execution: false cuando:
- queden preguntas bloqueantes
- WebGPT,
$scillm,$asko el conocimiento del proyecto contradigan el brief - la forma de la salida aún sea abstracta
- un participante haya expuesto evidencia faltante de origen
- el siguiente paso solicitado produzca un recibo en lugar de resolver la tarea real
Errores Comunes
- No uses
$aligncomo sustituto de$interview; usa entrevista cuando la información faltante sea puramente preferencia humana o criterios de aceptación. - No uses
$aligncomo sustituto de$review-code,$review-plano$plan-iterate; la alineación ocurre antes de esos skills. - No resumas WebGPT o
$askmanualmente. Usa sus entornos de ejecución reales y almacena rutas de artefactos o texto de revisor. - No des por completo un lock de alineación porque un revisor lo aprobó. El agente del proyecto debe fusionar el resultado y resolver las preguntas bloqueantes.