CI / build (push) Has been cancelled
- Archive 79 completed framework-dev tasks from tasks/ -> tasks/complete/ - status.py: add --cleanup-done and --install-cleanup-schedule commands - Add scripts/automaton-cleanup.sh for periodic task archiving - Dashboard: rename 'Background' tab -> 'Agent', 'Cleanup' agent -> 'Completed Task Archiver', remove redundant group headers and pill badges, dim inactive agent placeholders - .rules.md: add Self-Documenting UI Names rule - New tests: test_cleanup_done.py, expanded test_app.py and test_task.py
2.1 KiB
2.1 KiB
Implementation: Autopilot Gate Integration
Changes Made
1. Gate-between-phases in autopilot
The orchestrator prompt (prompts/orchestrate.md) now defines an explicit gate-check loop:
- Read
.state→ confirm current phase - Run
status.py --validate-folder→ check for out-of-order artifacts - If violations found → STOP and report
- Load phase prompt → confirm ALLOWED/FORBIDDEN boundaries
- Execute phase → produce required artifact
- If phase requires approval →
--transition {phase}:awaiting_approval, pause for user sign-off,--approve,--transition {next-phase} - If phase does NOT require approval →
--transition {next-phase}
2. Resumption from .state
- The orchestrator reads
.statefor each task, no artifact re-derivation needed - Approval sub-states are preserved across sessions
3. Persona switching
- Orchestrator loads the prompt for the current phase based on
.state - FORBIDDEN sections in phase prompts constrain what the orchestrator can do
- Orchestrator must NOT override phase-level FORBIDDEN rules
4. Approval gates in autopilot
- Research, decomposition, design, and test_design phases ALWAYS pause for user approval in autopilot
- The pause is enforced by
status.py --transitionrefusing past:awaiting_approval - After user says "APPROVED",
status.py --approveis called, then transition proceeds
5. Session break recovery
.statefile records the last completed phase (including approval sub-states)- Next session reads
.stateand resumes exactly where it left off - No phase progress is lost on session break
6. Manual mode coexistence
- Orchestrator reads
.stateand reports current phase - User triggers phases manually, orchestrator calls
status.py --transitionandstatus.py --approve
7. Periodic audit
- Orchestrator calls
status.py --auditat session start and after task completion - Catches violations that might slip through individual phase gates
Files Modified
prompts/orchestrate.md(rewritten, 143 lines with gate-check loop)prompts/workflow.md(referenced from orchestrate.md)