If you are running AI coding agents on your repo, you are likely paying for context window bloat without getting the reliability you think you are. A new analysis of 1,866 active GitHub projects reveals that while 34% now ship instruction files like AGENTS.md, the vast majority of the rules inside them are unenforced suggestions rather than hard constraints. The data shows a critical gap: only 3.7% of rules explicitly name the script, linter, or CI job that would catch a violation, meaning the agent is expected to remember its constraints without automated backup.

The Adoption and Format Wars

AGENTS.md has emerged as the de facto standard, present in 78% of projects that use agent instructions, compared to 52% for CLAUDE.md and 20% for GitHub Copilot instructions. Adoption is heavily skewed by language ecosystem; TypeScript projects lead with 73% adoption, followed by Go (58%) and Rust (52%), while Perl sits at a negligible 4%. This suggests that the communities most aggressively adopting AI tooling are also those with the most rigid, scriptable build processes, yet they still fail to automate their agent guidelines.

The 100-Line Budget and Context Cost

The study highlights a tension between instruction detail and agent performance. Half of all main instruction files exceed 100 lines, with a median length of 106 lines (approx. 1,600 tokens). While OpenAI’s Codex team advises treating these files as a "map, not a 1,000-page instruction manual," many repos are ignoring this. An ETH Zurich study cited in the report found that while developer-written files raised success rates marginally, they added up to 19% to the agent's cost. The best-performing files, like Homebrew’s 72-line AGENTS.md, prioritize brevity and explicit enforcement mechanisms over exhaustive rule lists.

Enforcement is the Missing Link

The core finding is that most rules are technically checkable but practically ignored. In a hand-labeled sample of 257 rules, 61% could be checked by a script at least in part. However, only 8 of those 157 checkable rules named the specific check. Rules like "Don’t use empty destructuring patterns" or "File names should be lower case" are easily enforced by linting, yet they are left to the agent's memory. This creates a fragile system where an agent might follow style guides most of the time, but without a CI gate, the remaining violations become technical debt that humans must clean up manually.

Key Takeaways

  • 34% of popular GitHub projects now ship agent instruction files, with AGENTS.md being the dominant format (78% of those projects).
  • Only 3.7% of agent rules name the automated check (linter, test, or CI job) that enforces them.
  • TypeScript leads adoption at 73%, while Perl trails at 4%, correlating with ecosystem tooling maturity.
  • Half of all instruction files exceed the recommended 100-line budget, potentially increasing agent cost by up to 19%.
  • The best files, such as Homebrew’s, explicitly link rules to enforcement mechanisms like "Sorbet/ForbidTMust" or specific GitHub Actions workflows.

The Bottom Line

Stop writing instructions that rely on agent memory. If a rule can be checked by a script, name the script in the rule file; if it cannot, delete the rule. Unenforced guidelines are just expensive context padding that slows down every session.