- verify.sh: validate prohibited dirs, gate nomenclature, feature schema, runtime consistency - orquestra-status: block direct writes to backlog/features.json - install.sh: add build artifacts to .gitignore template - AGENTS.md: document prohibited dirs, gate nomenclature, feature schema - Reset runtime-status to idle state
Adaptador Pi
Orquestra se ejecuta desde Pi como un solo parent session secuencial. No instala subagentes.
Requisitos obligatorios
pidebe existir enPATHantes de instalar Orquestra.gentle-engramdebe estar instalado: Orquestra usa Engram como memoria durable externa; no escribe memoria propia.- El proyecto instalado debe abrirse desde su raíz.
- Arrancar con
./scripts/pi_orquestra.sh, que ejecutapi --no-extensions, carga Engram explícitamente y carga solo extensiones Orquestra. - Extensiones project-local declaradas:
.pi/extensions/orquestra-status/y.pi/extensions/orquestra-web-fetch.ts. - El código de producto vive en
project/; archivos de código en la raíz son inválidos.
Instalación esperada
Cuando Orquestra se instala en un repo de proyecto, el instalador debe copiar:
platforms/pi/extensions/orquestra-status/->.pi/extensions/orquestra-status/platforms/pi/extensions/orquestra-web-fetch.ts->.pi/extensions/orquestra-web-fetch.ts
No debe crear .pi/subagents/ ni .pi/subagents.json.
Técnica de memoria
- Engram es la única memoria persistente del harness.
verify.shfalla si~/.pi/agent/npm/node_modules/gentle-engram/index.tsno existe.pi_orquestra.shcarga Engram con-eaunque Pi arranque con--no-extensions; así se evita cargar extensiones globales no declaradas sin perder memoria.- Cada rol trabaja desde los
inputdeclarados enharness/workflow.stages.yml; el chat completo no es un handoff válido. - Para aislamiento real desde la sesión Pi, ejecutar cada stage con
/orquestra-stage <stage> [feature_id]; internamente usarun_stage.py,pi --no-session --no-context-filesy carga solo Engram + extensiones Orquestra. - Detalle completo del handoff:
docs/context-handoff.md.
Flujo secuencial
- Ejecutar
./scripts/verify.sh. - Abrir Pi limpio desde la raíz con
./scripts/pi_orquestra.sh. - Confirmar el widget con
/orquestra-status. - Ejecutar cada stage como proceso fresco desde Pi:
/orquestra-stage <stage> [feature_id]. run_stage.pygenera un prompt mínimo con las rutasinput/outputdel stage y no hereda la sesión anterior.agent_status.pyrechaza saltos de stage sin artefactos previos obligatorios.- Durante
build, escribir producto enproject/y tests entests/; requierefeature_id,stage=build,agent=implementerystate=runningenwork/runtime-status.json. - Al terminar cada stage, escribir el artefacto esperado en
work/artifacts/<feature_id>/. - Ejecutar
document/documenter.mdsolo si cambiaron docs/API/contratos/comportamiento user-facing; no es gate obligatorio de cierre. - Recién después empieza el siguiente rol/stage.
Modelos por rol
Si querés modelos distintos por etapa, se eligen secuencialmente antes de cada stage según harness/model-routing.yml. No hay ejecución paralela.
Respuesta estándar por etapa
done -> <ruta>blocked -> <ruta>