Mirror, don't ask
- Why LLMKIT: sharing what works across five stacks
- Context is the hard part
- The fourth and fifth stack
- The boring 20% that made it stick
- One view across Claude Code, Codex and Copilot
- Copy, never move
- Normalize once, at the end
- Windows 11, and an honest scorecard
- Shippable, with findings
- Mirror, don't ask
- A name isn't enough
- A footer means it finished
The team dashboard’s first unattended run reported “0 developers found” — against a folder holding 1,251 files.
The guard was right, the message was wrong
The dashboard declined to overwrite a complete team page with an empty one — the guard did exactly its job. But the message it gave pointed at the wrong cause.
What was actually happening
A scheduled background job can’t read a macOS-protected folder the way an interactive session can. A basic directory check returns true; listing the folder throws a permission error; and the check meant to catch that quietly swallowed the error and returned empty. Every cheap check passed, and the count came back zero.
The fix we didn’t pick
The textbook fix needs Full Disk Access, which needs admin credentials the operator running this doesn’t have. So we didn’t fix it that way.
Instead, a process that already has the right access — one that runs from inside the editor session — mirrors the data out to a location the background job can read freely. The background job never touches the protected folder at all.
The lesson
It’s not the fix I’d have picked on a whiteboard. It’s the one that actually ships, because it works with the permissions we’re allowed to have instead of the ones we’d need to ask for.