- TypeScript + Fastify skeleton under project/ (src/modules, shared, infrastructure, app) - scripts/check-module-boundaries.mjs enforcing module public-API rules (tested with fixtures) - GET /health endpoint, error envelope without stack leakage - specs/F-001-scaffold (SPEC/DESIGN/TASKS/TESTS), spec/tech.md dependency justification - 30-ticket MercadoDeVida roadmap in backlog/features.json, spec/roadmap.md - All gates approved: reviewer, security, qa; verify.sh green
Adaptador Pi
Orquestra se ejecuta desde Pi como un solo parent session secuencial. No instala subagentes.
Requisitos obligatorios
pidebe existir enPATHantes de instalar Orquestra.- El proyecto instalado debe abrirse desde su raíz.
- Arrancar con
./scripts/pi_orquestra.sh, que ejecutapi --no-extensionsy 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.
Flujo secuencial
- Ejecutar
./scripts/verify.sh. - Abrir Pi limpio desde la raíz con
./scripts/pi_orquestra.sh. - Confirmar el widget con
/orquestra-status. - El mismo parent session cambia de rol siguiendo
harness/workflow.stages.yml. - Antes de cada stage, actualizar estado con
python3 scripts/agent_status.py set .... 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>