- Context isolation: fresh Pi process per stage (run_stage.py) - Gate enforcement: blocks close without approved gates - Auto commit/push on feature close (close_feature.py) - Write restrictions: only allowed directories (ALLOWED_WRITE_DIRS) - Pi extension: orquestra-status with /orquestra-stage command - Documentation: context-handoff.md, updated README - Scripts: agent_status.py, verify.sh, install.sh updated
31 lines
1.2 KiB
Markdown
31 lines
1.2 KiB
Markdown
# Handoff Contract
|
|
|
|
## Regla anti teléfono-descompuesto
|
|
Los agentes **no** devuelven código en chat. Deben escribir a disco y responder solo:
|
|
- `done -> <ruta>`
|
|
- `blocked -> <ruta>`
|
|
|
|
## Contexto mínimo por stage
|
|
Cada stage recibe solo:
|
|
1. Los archivos listados en `harness/workflow.stages.yml` como `input`.
|
|
2. El artefacto del stage anterior cuando el workflow lo declare.
|
|
3. La memoria Engram que el leader seleccione explícitamente para ese stage.
|
|
|
|
No se considera válido pasar todo el chat anterior como contexto operativo. Si un stage necesita más información, debe pedir una ruta o artefacto concreto y bloquear hasta tenerlo.
|
|
|
|
## Rutas estándar por feature
|
|
- `work/artifacts/<feature_id>/implementer.md`
|
|
- `work/artifacts/<feature_id>/reviewer.json`
|
|
- `work/artifacts/<feature_id>/security.json`
|
|
- `work/artifacts/<feature_id>/qa.json`
|
|
- `work/artifacts/<feature_id>/documenter.md` (opcional; requerido solo si cambiaron docs/API/contratos/comportamiento user-facing)
|
|
- `work/artifacts/<feature_id>/leader-close.json`
|
|
|
|
## Campos mínimos de artefactos JSON de gate
|
|
- `feature_id` (string)
|
|
- `agent` (reviewer|security|qa|leader)
|
|
- `verdict` (APPROVED|CHANGES_REQUESTED)
|
|
- `summary` (string)
|
|
- `evidence` (array de comandos/salidas/rutas)
|
|
- `timestamp` (ISO 8601)
|