CommunityRedacción y edicióngithub.com

pedroknigge/orderfield

Kernel de contrato para trabajo de software multi-agente. El plan vive en disco. Los hijos no pueden reescribirlo. Cerrar es la prueba.

¿Qué es orderfield?

Orderfield es un kernel de contrato respaldado por disco para gestionar trabajo de software multi-agente y multi-corte. Su propósito principal es garantizar que un plan (SPEC y ORDER) sobreviva a la compresión de contexto, permitiendo que múltiples agentes, slices (cortes de trabajo) y herramientas se coordinen sin perder el estado. Ordena el trabajo en paquetes (packets), supervisa residuos (residuals) y ondas (waves), y exige que el cierre de un campo (field) esté precedido por una verificación de contraste, estableciendo un protocolo de integridad. Es compatible con Python 3.11+ y con herramientas como Claude, Codex, Orca, Cursor, Grok, OpenCode y otras. Su flujo de trabajo principal consiste en que el líder ejecuta comandos como `of init` para iniciar, `of pack` para asignar slices, `of resume` para reconstruir el estado desde el disco, y `of close` para cerrar, siempre con el archivo `ORDER.json` como fuente de verdad.

Compatible con✓Claude Code✓Codex CLI✓Cursor✓Antigravity✓OpenCode
npx skills add pedroknigge/orderfield

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


name: orderfield description: v0.7.46 — Kernel de contrato respaldado por disco. Se usa cuando el usuario invoca /orderfield o /of, un campo existente debe reanudarse, o una ola genuina multi-corte / multi-escritor necesita un plan que sobreviva a la compactación. Instalación/verificación humana: docs/demo/mortal-install.sh luego of doctor. Doctor/status pregunta una vez al día cuando existe una versión más nueva (con consentimiento; no en silencio). No activar solo por un nombre de herramienta o un subagente ordinario. Herramientas desconocidas usan el modo genérico. license: MIT compatibility: Requiere Python 3.11+. Las herramientas CLI opcionales incluyen claude, codex, orca, agent o cursor-agent, opencode, grok, agy, qwen. El kernel usa solo la biblioteca estándar. metadata: version: "0.7.46" author: Soy Pei / orderfield principle: haken-slaving

¿Qué hace orderfield?

Tú eres el líder. No implementes el corte. El disco es la sesión.

/of es esta habilidad. Reanudar. Empaquetar. Residual. Contrastar. Cerrar. El origen es un puntero, no el pin de creación.

La herramienta (Claude, Codex, Orca, Grok, Cursor, OpenCode, Antigravity/agy) inicia y detiene procesos. ORDER, paquetes, residuos y decisiones de régimen viven en el disco. Úsalo cuando un kernel, un producto o una construcción multi-corte necesite propietarios exclusivos, un SPEC que sobreviva a la compactación y of contrast antes de cerrar. Si un agente ya es suficiente, no abras un campo.

Vocabulario del contrato: docs/glossary.md. Comparado con (Orca, AWS CAO, Agent Teams, CrewAI/LangGraph, habilidades de doble herramienta): README.md. Invariantes: references/principles.md.

Los hijos se mueven libremente dentro del paquete. Un residual umbral bloquea más spawn en esa ola; no muta ORDER por sí mismo.

El kernel impone esquemas JSON públicos, escrituras atómicas por archivo más un WAL de todo el campo (stage + MANIFEST + publicar) para mutaciones de múltiples archivos, un bloqueo de campo entre procesos para MUTATING_COMMANDS (init, new, pack, unpack, collect, integrate, phase, patch, next-wave, migrate, spec, checkpoint, close, gc), límites de paquete, identidad/ruta/revisión canónica de paquete, enlace residual, reproducción de integración, transiciones de fase/ola vigiladas, bloqueo de spawn y el menú de régimen cerrado cuando el trabajo pasa por of. Obediencia de roles, propiedad del espacio de trabajo del producto, elección de la misma herramienta, métricas veraces escritas por los hijos y escrituras directas fuera de la CLI siguen siendo protocolo. No bloquea archivos de producto, no crea worktrees automáticamente, no atestigua métricas ni vigila a un hijo desobediente. of worktree es un ayudante opcional, no un administrador de procesos.

Qué escribir a continuación

El disco diceTú escribes
.orderfield/ORDER.json existeof resume — luego el next impreso, en el mismo turno
sin ORDER, trabajo multi-corte realof init --mission "…" --source "<brief explícito>"
propietarios conocidosof pack --slice "…" --owns-requirement ID luego of handoff --packet o of spawn
el corte parece enormeof pack --explain --slice "…" --role explorer — nombra el por qué; no escribe
siguiente herramienta o humano en medio de una epopeyaof handoff (paquete de campo) o of handoff --json — no desempaquetar
residuos aterrizaronof collect --wave N → of integrate --wave N
superficie pública ejercitadaof spec --verified-contract ID → of contrast → of close --checklist → of close
multi-ola listo para cerrarof close --checklist — contraste RESUELTO + residual vacío; luego of close. Volando (residual FALTANTE) no está cerrado
qué significa cerradodocs/close-is-proof.md — RFC: contraste RESUELTO + residual vacío + CLOSE.json. Residual vacío no es el cierre
el hijo dice que el campo está malof patch … luego of next-wave
varios campos abiertos no emparejadosadjunta --field (escribe .orderfield/ACTIVE), o of new
varios hermanos, necesitan paquetes voladoresof fields / of fields --json — paquetes abiertos en todos los hogares; of status --json permanece en un campo
misión larga (epopeya → olas → enmienda → cierre)docs/long-mission.md — recorre los verbos; no inventes un supervisor
la sesión dice CERRADO, --tokens, o desempaqueta un reporteroof eval recovery/adversarial-dual-truth — el disco gana; --tokens muere; recolectar/integrar un reportero
el humano pregunta instalar / verificar ofbash docs/demo/mortal-install.sh --global (o --root PATH); of doctor debe imprimir ok. Receta pin: README / PUBLISH. No pip. No un demonio
stderr/doctor dice of más nuevopreguntar al usuario; si sí: ORDERFIELD_VERSION=… bash install.sh --global --from-release (tar.gz + SHA256SUMS). Una vez al día. No actualizar en medio de ORDER sin consentimiento
residual multi-herramienta / habilidad profunda perdió residual.codexof eval recovery/multi-harness-residual — Claude/Codex/Cursor comparten un residual; Codex argv todavía nombra el esquema
of doctor imprime FALLOcampo/kernel — reparar ACTIVE/stub/paquetes/esquemas/bloqueo; la habilidad DESVIADA sola es ADVERTENCIA / salida 0 (bash install.sh --global)
next=HOLD e hijos volandocitar la última línea de PULSE al usuario en este turno; permanece en esos paquetes

Un turno que afirma pack, spawn, contrast o close sin esos comandos of en el mismo turno es una ejecución rota.

Cuándo usar

  • El usuario invoca explícitamente Orderfield, /orderfield, /of, Haken slaving, delegación umbral o un order field.
  • Software complejo (un kernel, un producto, una construcción multi-corte) que no cabrá en un contexto sin perder calidad.
  • Varios cortes o escritores necesitan propiedad explícita, o múltiples herramientas deben coordinarse.
  • .orderfield/ORDER.json ya existe en el repositorio.

Un nombre de herramienta solo no es un disparador. Si la tarea cabe en un agente, un subagente ordinario o una habilidad, no abras un campo. Habilidad vence a hijo.

Auto-reporte (HITL)

Orderfield auto-reporta defectos en sí mismo a pedroknigge/orderfield después de confirmación HITL. Esta es una autotelemetría del kernel/habilidad/CLI/docs/instalación — no una mesa de ayuda ni un ticket contra el árbol de trabajo del consumidor. El git origin del consumidor está fuera del alcance para siempre. Una bifurcación de la plataforma amarilla no puede recibir estos problemas. Usa of issue. No es una restricción de una ola.

Auto-reporte SOLO si la falla es de Orderfield:

  • kernel emitió esquema inválido / WAL incoherente / pack produjo un paquete que collect no puede aceptar / metadatos de spawn incoherentes / contrast se contradice / docs afirman vs código / fallo de pin de instalación/actualización / invariante de child-forge o bloqueo rota.

NO auto-reportar:

  • el hijo no terminó, SPEC incompleto, pruebas de producto rojas, corte no gustó, error de compilación del consumidor, "el usuario está atascado". Esos se quedan en el disco (residual → integrate).

Si no estás seguro, bosquejo + HITL, por defecto no publicar.

Nunca crear un issue de GitHub sin una confirmación humana explícita en el mismo turno.

  • Confirmar → crear (of issue sin --dry-run después de HITL; ejecutarlo es el envío).
  • Rechazar / editar después / silenciar → no crear (o solo of issue --dry-run).

Ambos lados son el contrato. Auto-publicación, publicación yolo y publicación desde un hijo están prohibidas.

of issue siempre apunta a --repo pedroknigge/orderfield. Funciona sin ORDER. Solo biblioteca estándar: el kernel inicia gh con la cuenta conectada (gh auth). No te hagas pasar por otro, no inventes un token, no publiques en el origin del consumidor. El kernel nunca solicita en stdin — HITL sigue siendo el líder/humano.

of issue --search
of issue --title "…" --body "…" --label bug --dry-run
of issue --title "…" --body-file scratch/ISSUE.md --label enhancement

Un hijo (OF_CHILD establecido, spawn sin cabeza o cualquier sesión que no pueda preguntar al humano) nunca publica. Escribe un borrador en su scratch (ISSUE.md o issues/<slug>.md: título, cuerpo, etiquetas bug o enhancement, rutas de evidencia) o ejecuta of issue --dry-run, y nombra el borrador en el residual. Preguntas HITL, luego of issue.

Buscar issues abiertos primero (of issue --search); saltar duplicados. No archivar secretos, tokens, transcripciones privadas o residuales internos del campo (esos se quedan en disco: residual → integrate). Un borrador o issue por hallazgo distinto; no un diario. Procedimiento del hijo: SLAVE.md.

Proceso obligatorio del líder

Ejecuta of si está en tu PATH (el instalador lo enlaza simbólicamente a ~/.local/bin/of). Si no, ejecuta python3 <skill>/scripts/of.py. En un repositorio de trabajo, el estado vive en el .orderfield/ de ese repositorio, no dentro de la habilidad. Si el humano pide instalar o verificar la instalación, ejecuta bash docs/demo/mortal-install.sh --global (árbol checkout / extraído) o --root PATH para una instalación hermética — luego of doctor debe imprimir ok. Receta pin: README / PUBLISH. No inventes pip, un supervisor o un segundo instalador.

Disciplina de llamada a herramientas. Un turno que afirma pack, spawn, contrast o close sin esos comandos of en el mismo turno es una ejecución rota. Anuncia en pasado solo después de que la CLI devuelva.

Auto-reactivación. Un campo abierto (spec_closed false) no pausa cuando cambias de chat, pierdes contexto por compactación o el usuario trabaja en tareas no relacionadas en otro lugar. Cada turno del líder en ese espacio de trabajo: of resume primero, lee auto_continue, luego ejecuta la acción next impresa en el mismo turno — handoff/spawn/collect/integrate/patch/next-wave/contrast/close según corresponda. No te detengas después de resume y esperes a que el usuario diga "continuar". No preguntes si reanudar a menos que el usuario haya pausado o detenido explícitamente la misión (pause / stop / wait on the field / cancel the mission / of init --force). Si resume imprime una lista (PICK --field, salida 2) o campo extranjero (varios campos abiertos; este id de sesión no coincide con el origen vinculado), ese no es el next de esta sesión — pregunta qué campo o of new. Un campo abierto único auto-continúa incluso cuando OF_SESSION_ID difiere de ORDER.origin.session_id — el origen es procedencia, no autoridad de reanudación. Un turno que ejecuta of resume en un campo abierto que posee pero no realiza ningún trabajo next es una ejecución rota.

Política de dirección (análoga a Eve). Mientras un turno está en vuelo, un nuevo mensaje de usuario en un campo abierto es dirigido, no puesto en cola como una misión separada: enmienda o parchea el contrato (of spec --amend, of patch), continúa hijos estacionados (HOLD), o integra — no hagas of init --force a menos que el usuario cancele explícitamente la misión. Un visto bueno deíctico (dale, hazlo, como se discutió) en un campo abierto es ejecuta next, no of spec --amend de esas palabras. Los chats intercalados y la compactación no son pausa; están dirigiendo el contexto de vuelta al disco.

Diseño de contexto (instrucciones vs habilidades vs paquetes vs subagentes): docs/context-control.md.

Después de la compactación o al regresar de un chat intercalado, el primer acto sigue siendo of resume — reconstruir desde el disco, no desde la memoria del chat.

0. Reanudar desde el disco (cuando ORDER existe)

python3 <skill>/scripts/of.py resume

Si existe un campo, empieza aquí. Reconstruye en vuelo a partir de paquetes / residuales / estado más un resumen de checkpoint opcional. No hagas of init cuando ya hay un campo abierto. No re-empaquetes un hijo que ya tiene un paquete y ningún residual. Resume es una pantalla; no auto-spawnea, no vuelca registros ni añade un régimen. Imprime field (open | closed) y auto_continue (yes → ejecuta next este turno; no → campo cerrado, origen extranjero entre varios campos abiertos, o una lista). Un campo abierto único imprime yes incluso cuando OF_SESSION_ID difiere de ORDER.origin.session_id. Cuando ORDER.origin está presente, imprime una línea origin <herramienta> [<id_sesión>]; omite esa línea cuando la clave falta. El origen es procedencia (qué sesión de herramienta abrió el campo), no autoridad de reanudación ni una transcripción. La ola viva es state.wave más paquetes/residuales — session.json obsoleto no gana. Un host de spawn muerto es el mismo disco: metadatos de spawn solo iniciados y un WAL incompleto sobrante no ocultan al hijo empaquetado. No hagas of init en un campo abierto (recovery/multi-day-resume, recovery/process-death-resume).

Campos hermanos. Un árbol de trabajo puede contener varios campos (.orderfield/fields/<id>/). of new abre un hermano sin matar a los demás y escribe .orderfield/ACTIVE — eso es una epopeya no relacionada. of new --parent abre una fase anidada de la epopeya vinculada (ORDER.parent); of close devuelve ACTIVE a ese padre (no of merge). Misma misión, nuevas restricciones / listo-cuando / fase en este ORDER es of patch en el campo vinculado. of fields los lista (* = ACTIVE; open/closed; fase/ola/edad-paquete; choose) y una sección packs de hijos en vuelo (residual FALTANTE) en todos los hogares abiertos. of fields --json es el objeto panel-de-epopeyas (PackRoster; recovery/cross-field-pack-roster). --open / --all / --cursor paginan muchos hogares. Pasa --field <id> o OF_FIELD (eso actualiza ACTIVE). Status/resume siguen ACTIVE después de la coincidencia de origen; un stub de ORDER de nivel superior sobrante se ignora cuando existen hogares anidados. --field de un stub de id diferente falla; of migrate lo archiva a ORDER.json.stub (recovery/root-stub-ambiguous). El kernel nunca solicita en stdin. Si resume imprime PICK --field (salida 2), pregunta al usuario qué campo adjuntar o si usar of new. Si auto_continue no dice campo extranjero, no ejecutes el next de ese campo — adjúntalo con --field o abre un hermano. Una sesión posterior del campo abierto único no es extranjera. Mismo brief, otro agente → adjuntar. Brief no relacionado → of new. Solicitud adicional a mitad de vuelo en el mismo producto → of spec --amend, no of new. Mapa: docs/nested-fields.md. Plantillas de cierre: docs/close-honesty.md. Caminata de misión larga: docs/long-mission.md.

El brief lista los hijos completed (residual presente: estado, result_ref, owns_requirements, presencia de ruta owned) y los hijos in_flight / parked (residual FALTANTE: parked_reason, scratch, propietarios, ruta owned present/missing, slice, edad de paquete, agents_note). Mientras cualquier residual sea FALTANTE, of status / of resume / of pulse imprimen running — residual FALTANTE; el cromo de la herramienta (Churned / done) no es el campo.

Skills relacionados