v1.36.0 ·
A pointer costs the file it lands on
The emitted .aidlc/skills/aidlc-overview.md had grown to 24,564 bytes. It was 22,902 when I filed the item a week earlier, and 18.6KB a week before that. Other skills send readers to it for one rule at a time: the always-read rule from 12 places, the context rule from 8, the constitution rule from 3, and three more rules from 3, 3 and 2. Following any one of those pointers cost the whole 24.5KB.
On Cursor it is worse. The overview is emitted with alwaysApply: true, so it is resident on every turn of every session. That is the cost a user feels, not only the lifecycle.
What changed
The overview skill no longer carries the six rules. Each one is its own file in .aidlc/resources/rules/: always-read.md, constitution.md, context.md, creating-an-instance.md, lifecycle-or-skill.md and question-protocol.md. aidlc init and aidlc update write them. Each is marked framework-owned. A marked file the package stops shipping is removed on the next update, and an unmarked one is left alone.
The emitted overview went from 24,564 bytes to 11,739. It keeps every heading, with one line under each moved rule naming its file. The 31 cross-references across 14 skills now name the file. The most cited one, the always-read rule, costs 1,643 bytes to follow instead of 24,564. The website's overview page renders all six rules after the overview, from the same files.
Why this way
The item suggested making each rule addressable inside the overview. That would have changed nothing. An agent following a pointer reads the file the pointer lands on, whole, so a heading inside a 24KB file still costs 24KB. The rules had to become files of their own, beside the question rendering file that set the precedent.
I also did not leave a short summary of each rule in the overview. It would have read nicely and been a second copy under another name, which is how the drift this project has paid for before starts. So the rule text moved without rewording, and a test fails if any sentence of a rule shows up in a skill. I checked it the only way that counts: I pasted three lines of a rule back into the overview and watched it fail.
For measuring, the item suggested aidlc cost context. That reports one session's whole carry, and a fair comparison needs two fresh sessions doing the same work. What a cross-reference costs is the size of the file it lands on, so the tests pin that: the overview under 12,000 bytes, every rule under 4,500.
What it costs
No state format or config key changes. The content package gains loadRules() and a Rule type, both additive. It is a minor release, not a patch, because every installing project gets a new directory and a rewritten overview on aidlc update. The size limits stop the next 18.6KB-to-24.5KB drift only where a test is watching.