Aider loads a conventions file into context and keeps it there for the whole
session — that is what the file is for, and the docs say to load it with
--read so prompt caching can hold it. This integration concatenated every
agent body into it. At 279 agents that is 3,816,372 characters, roughly a
million tokens. No model takes that. Anyone who ran
./scripts/install.sh --tool aider
got a CONVENTIONS.md that either blows the context window on the first turn
or bills for a million tokens trying.
CONVENTIONS.md is now the roster index it was described as: one entry per
agent with the name, the description, the division, and the path to the
agent file. 96,823 characters, down from 3.8 million. The header explains
how to pull a single agent's full instructions into the session:
/read-only /path/to/agency-agents/engineering/engineering-frontend-developer.md
Naming an agent in a prompt still works the way it did — the description is
what the model needed for that, and it is still there.
test-convert-outputs.sh now holds the index to being an index: it fails if
CONVENTIONS.md grows past 250,000 characters, if it does not list exactly
one path per roster agent, or if any path it prints does not resolve. The
existing round-trip check on the accumulated file still covers the names and
descriptions.
The 250+ generated files in integrations/ were adding repo bloat and would
cause merge conflicts when agents change. Run scripts/convert.sh to
regenerate them locally.
What's committed:
- scripts/convert.sh and scripts/install.sh (the actual value)
- integrations/*/README.md (docs for each tool)
- integrations/README.md (overview)
- .gitignore updated to exclude all generated output dirs
What's excluded (add to .gitignore):
- integrations/antigravity/agency-*/
- integrations/gemini-cli/skills/ + gemini-extension.json
- integrations/opencode/agent/
- integrations/cursor/rules/
- integrations/aider/CONVENTIONS.md
- integrations/windsurf/.windsurfrules