Repair collisions without misattributing old progress
Use when
Multiple
Superpowers
plans
use
names
like
docs/alpha/plan.md
and
docs/beta/plan.md,
especially
when
resuming
older
workspaces.
Version
6.2.0
used
the
basename
alone;
6.4.1
records
a
normalized
plan-path
owner
and
disambiguates
conflicting
names.
Action
Stop
writers
and
preserve
existing
artifacts.
Before
invoking
the
resolver,
inspect
legacy
directories
without
plan-path.
Use
prior
ledgers
and
transcripts
to
establish
their
actual
owner;
ambiguous
ownership
blocks
dispatch.
Resolve
the
established
legacy
owner
first.
For
an
already
approved
6.4.1
checkout,
set
SP_ROOT
to
its
root
and
PLAN
to
the
intended
plan;
from
the
correct
worktree,
run:
bash "$SP_ROOT/skills/subagent-driven-development/scripts/sdd-workspace" "$PLAN"
Verify the returned directory’s marker against the expected normalized plan path before reading progress or writing briefs. Serialize workspace allocation; serialize same-plan writers or use separate worktrees. Do not hard-code the basename directory.
Acceptance check
In
an
authorized
disposable
fixture,
generate
task-one
briefs
for
both
same-basename
plans.
Require
different
workspace
paths
and
both
original
requirement
sentinels
intact.
Relative,
absolute,
and
../
spellings
of
alpha
must
resolve
identically.
A
conflicting
owner’s
marker
and
ledger
must
remain
unchanged.
Then
supply
an
ambiguous,
markerless
legacy
directory:
your
admission
procedure
must
stop
before
helper
invocation,
worker
dispatch,
or
mutation.
Retain
paths,
markers,
source
revision,
and
before/after
evidence.
Evidence
Issue 2045 provides an exact 6.2.0 reproduction where beta silently overwrites alpha’s requirements; maintainer-account triage confirms reproduction. Merged PR 2138 and the 6.4.1 tagged helper implement ownership comparison. Tagged tests cover same-basename brief preservation, path spellings, conflicting markers, and legacy adoption. The release reports deterministic suites passing, but excludes live-LLM batteries.
Caveat
The helper intentionally adopts unmarked directories; it does not infer their historical owner. Our pre-resume gate is an untested adaptation, not a shipped refusal. Allocation is check-then-write without locking, and brief writes remain nontransactional. Plan identity is not run identity, revision identity, or proof of completion. No script, fixture, installation, or skill change ran today. Keep independent task acceptance; never clean up scratch merely because a marker matches.