A test that could not tell the requirement from its violation
Every Assembly run gets its own copy of the repository to work in, and the specification is specific about how: it must come from git's own worktree command, never from copying or reusing the developer's actual checkout. There was already a test citing that requirement, and it looked thorough — it provisions a workspace, checks the directory exists, checks the expected file is in it, checks the commit is the pinned one. The problem is that all four of those things are also true of a copy. Someone replacing the worktree command with a plain directory copy, which is the kind of pragmatic fallback a person adds when the real thing fails on an unusual checkout, would leave that test green. This was verified rather than argued: the substitution was made, the test was run, and it passed. What a copy brings across that a worktree does not is the whole point of the rule. A worktree materialises a commit. A copy takes the developer's working directory as it stands right now — the edits they have not committed, the scratch files they never added, and everything their ignore file covers, which is exactly where environment files and local credentials live. So the copy shortcut does not just break this requirement; it silently breaks the separate rule that no credentials ever reach a workspace, and it breaks it by a route that rule's own test cannot see, because that one inspects git configuration rather than looking at what files are actually there. Four tests now cover it, and the split between them is deliberate. Three detect a copy, by putting an ignored environment file, an untracked scratch file, and an uncommitted edit into the source and asserting none of them crosses over. The fourth detects the other way the rule can break, which is cheaper and worse: handing back the developer's own directory as the workspace. Every file assertion would pass, because the files really are all there — and the agent would be writing into the human's working tree. The counterfactual was run against all four before committing. The copy fallback trips three of them; the fourth stays green, correctly, because a copy is not a reuse. That result is written into the test file itself, so the next person to wonder whether these tests actually bite does not have to find out the same way.