Two things happen as interface count rises: the quality gap widens (from 0.2 to 0.6 points) and the cost ratio drops (from 12× to 9×). The team's coordination overhead amortizes better when there's genuine architecture to coordinate.
The solo agent was surprisingly consistent across all 14 files — no wrong column names, no broken imports. But that consistency came at a cost. Keeping 17 cross-file contracts aligned consumed context budget that could have gone to edge cases and security.
12× on the calculator, 6× on the PM app, 9× on the expense tracker. It's not a clean downward trend — but the team is no longer burning 12× tokens for a worse result. The overhead starts buying something real.
Claude's scoring rubric flagged 3 critical bugs in the solo expense tracker: a date calculation that crashes in January, no XSS escaping, no CSRF protection. The team's QA caught all three. Specialization frees up working memory for quality.
Few interfaces? Ship solo — the overhead isn't worth it. Many interfaces? Specialize — not to prevent interface breaks, but to free up working memory for everything else.
An "interface" = a contract where two components must agree on a name, shape, or behavior. If one side changes and the other doesn't update, the app breaks.
Single namespace. All functions, variables, and DOM elements share the same scope. Nothing can get out of sync.
1. Task data schema (field names)
2. Kanban ↔ status mapping
3. Calendar ↔ date format
4. List ↔ sort/filter values
5. Modal form ↔ CRUD operations
6. Drag-and-drop ↔ state updates
7. localStorage ↔ serialization
8. Statistics ↔ computed aggregates
1. app.py ↔ config.py (settings) 2. app.py ↔ models.py (imports) 3. app.py ↔ auth.py (blueprint) 4. app.py ↔ api.py (blueprint) 5. models ↔ auth (User schema) 6. models ↔ api (column names) 7. API routes ↔ JS fetch URLs 8. API response JSON ↔ JS reads 9. API request body ↔ JS POST payloads 10. auth ↔ login form fields 11. auth ↔ register form fields 12. routes ↔ template variables 13. base.html ↔ child template blocks 14. CSS classes ↔ HTML 15. JS ↔ DOM element IDs 16. requirements.txt ↔ imports 17. API ↔ test assertions