Nobody opened the library.
I built the shared asset library that is supposed to stop me rewriting the same code, described it in the exact words of the task, and put it in front of four fresh agents. Every one of them wrote the code again from scratch.
--glass-edge --ink-soft --accent-2
--bg --fg-muted --glass-bg-strongTwo agents, one prompt, one ready-made token file sitting a directory away. Both pages are good. Neither shares a single variable name with the other, or with the library.
The moment it clicked
For code it has seen ten thousand times, a capable model is confident, and confident generation beats retrieval. Opening a file first is an extra step with no obvious payoff, so it does not take the step, no matter how precisely the file is described. The library was never the bottleneck. The decision to look was.
What I measured first
Before building anything I scanned every source file under my home directory and counted how many separate projects contain each recurring pattern.
8,505 source files, backups and mirrors excluded
a :root full of custom properties, each one different
a backdrop-filter and a hand-tuned recipe around it
start a prediction, poll it, hope it ends
The experiment
One skill with three ready-made assets. Then four agents with no memory of it, each in an empty directory, each given a task that matched the skill's description almost word for word. Nobody was told the library existed. The verdict came from the files they wrote, not from anything they said.
The result
Two tasks, two rounds. The second round rewrote the skill's description to contain the exact phrases from the prompts. It changed nothing.
Read the skills list, cited a different skill by name, ignored this one.
wrote its own tokens and glassHand-rolled a polling loop with a timeout and a canceled check of its own.
wrote its own loopDifferent palette, different prefix, same gotchas rediscovered.
wrote its own tokens and glassUsed the official SDK, which polls internally. A better answer than my asset.
skipped the runner, and was right toSame prompt, three vocabularies
Each rewrite was fine on its own. Put them next to the library and you see what forty token blocks are actually costing: forty prefixes, forty slightly different greys, forty opinions on a dark theme.
Merging my existing Replicate loops into one found three real bugs. One copy checked only succeeded and failed, so a canceled prediction would spin forever. The same copy had no wall-clock timeout. Several polled at a fixed one second, hammering the API for video jobs that run minutes. The canonical version fixed all three. Then run 4 used the official SDK and made it irrelevant.
The decision
If the agent will not fetch the file, the file has to already be there. I deleted the library the same afternoon, kept the token file, and wrote my first global instruction for Claude Code: one rule, read by every session in every project, that the agent is told to follow rather than offered.
That is an untested assumption too. A description was a suggestion declined four times; a mandatory rule is a different mechanism, but it has not yet been proven to beat the same instinct. The next new project is the test. No --ds- in it means the next step is a hook that enforces it in code.
Two things I did not expect
Both Replicate agents needed a token I had not given them. Both found a credentials file in my home directory, read it, and ran a paid generation. A third of a cent each. The behaviour is the point: any agent with a shell has every secret on the machine and will use them to finish the job.
I wanted fully cold command-line sessions. That login had expired, and the CLI ignored the API key in every form I offered it. The one flag that accepts a key also turns off automatic skill loading, the exact thing under test. Fresh sub-sessions inside a live one were the compromise, and the honest caveat.