Traditional repos are libraries built for human intuition. What if the codebase was an API — with schemas, contracts, and explicit side-effect declarations?
The traditional agent committed to an implementation after reading 4 files. It didn't know about session token invalidation. The agent-native agent read 19 files — including IMPACT_MAP and INVARIANTS — then made exactly the right changes across 5 files.
| Condition | Files | Pass Rate | Avg Tokens | Key change |
|---|---|---|---|---|
| Traditional | — | 55% | 189K | baseline control |
| AN-Baseline | 4 | 80% | 301K | MANIFEST + INVARIANTS + IMPACT_MAP + AGENT.md |
| AN-Extended | 11 | 80% | 343K | +7 files: file index, routes, patterns, concepts… regressions introduced |
| AN-Refined ✦ | 5 | 85% | 293K | baseline + TEST_CONTRACTS + step-by-step fix instructions |
user.create.handler.ts, user.get.handler.ts tells the agent: create a new isolated file, don't bloat the controller. Structure silently instructs the correct implementation pattern.TEST_CONTRACTS.yaml was identified in the ablation as the single highest-value addition.deleteByUserId()" causes agents to call a method that doesn't exist. Saying "Step 1: add this method — it does not exist yet. Step 2: call it." recovers 50pp. Implementation order is a first-class metadata concern.The original hypothesis was wrong: agent-native repos don't reduce tool calls — they increase them. But the increase is purposeful. Each extra read returns structured metadata with 5–10× more decision-relevant information than reading a source file. The result: correct first attempts, not fewer attempts.
One Claude Code skill generates the full .agent/ layer — MANIFEST, INVARIANTS, IMPACT_MAP — scaffolded to your project type.
Coming soon as a Claude Code skill · Based on experimental findings from 40 real agent runs