The queue is a working plan, not a record: git log already carries what landed on each step, so committing the plan duplicates it and invites the two to disagree. .scratch/ is gitignored and skipped by the gate the way ideas/ and reference/ are, so exploratory files there need not compile. state.md keeps a conditional pointer rather than a path it cannot promise: if the scratch file is absent, the log is the plan.