diff --git a/docs/v5.4.0-release-plan.md b/docs/v5.4.0-release-plan.md index aa70be8..3cad77d 100644 --- a/docs/v5.4.0-release-plan.md +++ b/docs/v5.4.0-release-plan.md @@ -94,7 +94,14 @@ must be pinned before coding). Checkpoint STATE + this plan after each feature. - **Tests:** fixture `skills: ["valid-dir", "points-to-file.md", "missing", "../escape"]` → one finding per bad entry, none for `valid-dir`; fixture with no `skills:` key → not flagged. -### Feature 3 — SET autoMode structure + dead-config (`CA-SET-NNN`) +### Feature 3 — SET autoMode structure + dead-config (`CA-SET-NNN`) ✅ DONE (commit `3633571`) +- **Premise CONFIRMED against primary source** (`code.claude.com/docs/en/auto-mode-config`) — the + plan was correct this time (unlike #1/#2). 4 sub-keys verbatim; `"$defaults"` valid; exact scope + exclusion quote confirmed. **Per-file-scope gate PASSED:** `ConfigFile` already carries `scope` + (`classifyScope` → `'project'` for shared `.claude/settings.json`), so the dead-config sub-check + shipped (no fallback to structure-only needed). SET is in the orchestrator → **SC-5 re-checked, + byte-equal** (snapshot fixture has no autoMode). +5 tests (944→949), suite green, self-audit A/A, + count 13, gitleaks clean. Fixtures force-added (`.claude/` gitignored). - **What (two sub-checks):** 1. **Structure validation** — `autoMode`, if present, must be an object whose only keys are `environment`, `allow`, `soft_deny`, `hard_deny`, each a **string array** (entries are prose