diff --git a/.claude/skills/implementer/SKILL.md b/.claude/skills/implementer/SKILL.md index 41f9df5..364d7d2 100644 --- a/.claude/skills/implementer/SKILL.md +++ b/.claude/skills/implementer/SKILL.md @@ -39,6 +39,19 @@ a worker made all 59 of its edits in the primary's tree and never noticed. test "$(git rev-parse --show-toplevel)" = "$PWD" || cd "$(git rev-parse --show-toplevel)" ``` +**Never run `git stash` (or `git stash pop`/`apply`/`drop`).** Your worktree is isolated, but the +stash is **not**: `refs/stash` is one stack shared by the primary's checkout and every other +worker's worktree of this repo. Measured on 2026-09-04 — `git stash list` from a worker's worktree +and from the primary's tree returned byte-identical output. So a `git stash` you run can be popped +into someone else's tree, and a `git stash pop` you run can drop **another worker's** uncommitted +edits on top of yours. This has already happened here: two workers were running in parallel and one +of them had its in-progress edit silently overwritten by the other's stash. + +The branch is your isolation, so use it instead. To set work aside, commit it on your own branch +(`git commit -m "wip: ..."`) and carry on; to try something and back out, use +`git diff > /tmp/.patch` then `git checkout -- `. Both stay inside your worktree. +If you find a stash entry you did not create, leave it alone and say so in your report. + ## 2. Implement - Implement exactly the scope the lead named. Keep the diff focused; note anything out of scope