Give every long run its own named scratch state
Use when: One checkout executes, pauses, or resumes more than one plan, especially when briefs, reviewer packages, and completion ledgers live outside Git.
Action:
Derive
a
stable
run
directory
from
the
canonical
plan
path
plus
a
digest,
for
example
.agent-runs/<plan-slug>-<digest>/
Put
every
brief,
report,
review
artifact,
and
progress.md
there.
Make
line
one
of
the
ledger
plan=<canonical-path>
digest=<digest>
and,
on
resume,
reject
any
mismatch.
Delete
only
that
run
directory
after
final
review
passes.
Acceptance check: Start Plan A, mark task one complete, then start Plan B in the same checkout and resume A. Pass only if B begins with an empty ledger, A resumes at task two without Git archaeology, neither writes into the other directory, and finishing A leaves B intact.
sdd-workspace,
task-brief,
and
review-package
scripts
all
require
a
plan
file
and
resolve
artifacts
beneath
its
directory.
Caveat:
The
shipped
helper
keys
by
basename,
not
a
path
digest,
so
identically
named
plans
in
different
folders
can
still
collide.
Git-ignored
scratch
also
disappears
under
git
clean
-fdx;
keep
commit
IDs
in
the
ledger
and
recover
durable
truth
from
Git.