Files
automaton/tasks/add-blast-radius-scheduler/VERDICT.md
T

45 lines
2.5 KiB
Markdown

# VERDICT: add-blast-radius-scheduler
**Status: PASS**
Task delivers per-loop git worktree creation in the runner, closing the last gap in the blast-radius enforcement chain. With this task, the runner ensures a worktree exists before spawning any role, the drift gate checks it, and `--can-edit --loop-worktree` scopes file edits to it.
## Requirement coverage
| Req | Status | Tests |
|-----|--------|-------|
| R1 _ensure_worktree | delivered | TestEnsureWorktree (4) |
| R2 graceful degradation | delivered | TestGracefulDegradation (3) |
| R3 cmd_tick integration | delivered | TestTickIntegration (3) |
| R4 branch already exists | delivered | TestBranchExists (1) |
| R5 state consistency | delivered | TestStateConsistency (2) |
| R6 platform paths | delivered | TestPlatformPaths (1) |
| R7 doc updates | delivered | technical.md + CHANGELOG |
| R8 tests | delivered | 15 tests + regression |
Tests: 15 new. Full suite: **369 passed** (was 354 + 15 new). No regressions.
## Blast-radius enforcement chain -- complete
1. **Worktree creation** (this task): runner creates `<loop>/worktree` on branch `loop/<name>`.
2. **Drift detection** (task 2): `--check-gate` runs `git diff --name-only main...HEAD` restricted to `file_scope`.
3. **File scope enforcement** (task 2): `--can-edit --loop [--loop-worktree]` checks paths against `blast_radius.file_scope`.
4. **Graceful fallback** (this task): non-git projects fall back to project root with WARNING; drift gate skips when `worktree_path` is null.
## Agnosticism preserved
- **Git-agnostic**: falls back gracefully when git is unavailable. Loops on non-git projects work (edits go to primary checkout).
- **Platform-agnostic**: `pathlib.Path` for all path construction. Git handles OS-specific path normalization.
- **Model-agnostic**: no model inspection. Worktree creation is infrastructure, not model behavior.
## Hardening items deferred
1. Worktree GC / pruning (BACKLOG `worktree-gc`) -> v1.1.
2. `--no-worktree` CLI flag for `--create-loop` -> v1.1 (convenience sugar).
3. `blast_radius.base_branch` parameterization -> v1.1.
4. fcntl lock on worktree creation (TOCTOU A4) -> v1.1 (same item as `add-status-brakes` A6).
## Resolution
**PASS -- proceed to `complete`.** Task 5 completes the blast-radius enforcement chain. The runner now creates worktrees, the drift gate checks them, and `--can-edit` scopes file edits. Remaining tasks: 6 (templates-onboarding), 7 (self-improvement-loop), 8 (install-update-flow), 9 (move-completed-tasks).