The audit skill requires the findings artifact to be written after each layer, so an interrupted run keeps its completed layers (skills/audit/SKILL.md:155; skills/audit/context/surface-walk.md:101). It also allows a delegated executor to write to a neutral filename and then rename, for harnesses that refuse a report-shaped filename (SKILL.md:76-81). But it presents that route as a conditional fallback. It does not make it the default for unattended runs, even though line 77 names the unattended caller as exactly that case. It also does not say the route applies to every per-layer write, including the re-read-and-merge in SKILL.md:158-163. And nothing in "Before the walk" step 1 (SKILL.md:121-130) tests the write path, so a refusal first shows up at the first write.
Observed on 2026-09-27: an unattended run, dispatched as a general-purpose subagent against melodic-software/.github, was blocked by the harness from writing findings.md directly ("Subagents should return findings as text"). The subagent used the rename route but wrote the artifact once, at the end of the walk. The checkpoint guarantee was lost without anyone noticing.
Proposed fix:
- When
unattended is set, use the neutral-name-then-rename route from the first write.
- State that every per-layer write, including the re-read-and-merge, goes through that route.
- Add a write-path probe to "Before the walk" step 1, so a refusal shows up before any layer is walked.
Acceptance: a delegated unattended run leaves a partial artifact on disk after each completed layer, with scope naming only the layers walked so far.
Found in: overengineering 0.4.13.
🤖 Generated with Claude Code
https://claude.ai/code/session_01S5b57FoPJkJMe1BDwhExiG
The audit skill requires the findings artifact to be written after each layer, so an interrupted run keeps its completed layers (
skills/audit/SKILL.md:155;skills/audit/context/surface-walk.md:101). It also allows a delegated executor to write to a neutral filename and then rename, for harnesses that refuse a report-shaped filename (SKILL.md:76-81). But it presents that route as a conditional fallback. It does not make it the default forunattendedruns, even though line 77 names the unattended caller as exactly that case. It also does not say the route applies to every per-layer write, including the re-read-and-merge inSKILL.md:158-163. And nothing in "Before the walk" step 1 (SKILL.md:121-130) tests the write path, so a refusal first shows up at the first write.Observed on 2026-09-27: an
unattendedrun, dispatched as a general-purpose subagent against melodic-software/.github, was blocked by the harness from writingfindings.mddirectly ("Subagents should return findings as text"). The subagent used the rename route but wrote the artifact once, at the end of the walk. The checkpoint guarantee was lost without anyone noticing.Proposed fix:
unattendedis set, use the neutral-name-then-rename route from the first write.Acceptance: a delegated unattended run leaves a partial artifact on disk after each completed layer, with
scopenaming only the layers walked so far.Found in: overengineering 0.4.13.
🤖 Generated with Claude Code
https://claude.ai/code/session_01S5b57FoPJkJMe1BDwhExiG