| name | agent-first-repo |
| description | Structure a repository and its documentation so AI coding agents can work effectively. Covers knowledge hierarchy, progressive disclosure, mechanical enforcement of architecture, and entropy management. Use when setting up a new project for agent-first development, refactoring a repo to be more agent-friendly, designing documentation structure for AI consumption, or optimizing an existing codebase for agent throughput. Triggers on: "agent-first", "make repo agent-friendly", "agent legibility", "optimize for AI agents", "repo structure for agents", "agent-first development", "harness engineering", "codex workflow". |
Agent-First Repository Design
Patterns for structuring a repository so AI coding agents can do effective, autonomous work.
Based on OpenAI's harness engineering approach: https://openai.com/index/harness-engineering/
The core insight: if the agent can't see it in the repo, it doesn't exist. Knowledge in
Slack, Google Docs, or people's heads is invisible to agents. The repository must be the
single source of truth.
The Knowledge Hierarchy
A well-structured agent-first repo follows a layered documentation architecture:
AGENTS.md ~100 lines ā table of contents, dev commands
ARCHITECTURE.md codemap with boundaries and invariants
docs/
āāā design-docs/
ā āāā index.md catalogue of all design docs with status
ā āāā core-beliefs.md agent-first operating principles
ā āāā [feature-name].md individual design documents
āāā exec-plans/
ā āāā active/ in-progress execution plans
ā āāā completed/ finished plans (kept for context)
ā āāā tech-debt-tracker.md known debt, prioritized
āāā product-specs/
ā āāā index.md catalogue of product specs
ā āāā [feature-name].md individual specs with acceptance criteria
āāā references/
ā āāā [library]-llms.txt LLM-friendly reference docs for key deps
ā āāā [topic].md reference material agents may need
āāā generated/
ā āāā db-schema.md auto-generated from source of truth
āāā DESIGN.md design system and patterns
āāā FRONTEND.md frontend conventions
āāā PLANS.md current priorities and roadmap
āāā QUALITY_SCORE.md quality grades per domain/layer
āāā RELIABILITY.md uptime, error budgets, SLOs
āāā SECURITY.md security model and boundaries
Not every project needs all of this. Start with AGENTS.md + ARCHITECTURE.md and grow
the docs/ tree as the project demands it.
The Three Pillars
1. Agent Legibility
Optimize the codebase for the agent's ability to reason about it, not human aesthetics.
Prefer boring, composable technology. Technologies with stable APIs, good documentation,
and broad representation in training data are easier for agents to model. "Boring" is a
feature, not a limitation.
Inline over opaque. Sometimes reimplementing a small subset of functionality is better
than depending on an opaque library the agent can't reason about. If the agent can read,
test, and modify the code directly, it has more leverage than if it's calling into a black box.
Structured over unstructured. Typed boundaries, structured logging, schema-validated
configs. Everything the agent interacts with should be queryable and parseable.
Parse data at system boundaries into precise types ā don't let raw/untyped data flow
deep into business logic. For the full treatment, see the parse-dont-validate skill.
Everything in the repo. Design decisions, architectural rationale, product context,
quality assessments ā if it matters, it's a versioned markdown file checked into the repo.
The moment a Slack thread resolves an architectural question, the conclusion goes into a
design doc.
2. Progressive Disclosure
Agents should start with minimal context and drill deeper as needed. Don't dump everything
into one file or into the initial prompt.
See references/progressive-disclosure.md for the
full pattern, including directory structure, indexing, and cross-linking strategies.
3. Mechanical Enforcement
Encode architectural rules as linters and tests, not prose. Prose gets ignored; CI failures
don't. When documentation falls short, promote the rule into code.
See references/mechanical-enforcement.md for patterns
including custom linters with remediation messages, structural dependency tests, and layer
architecture enforcement.
Entropy Management
Agent-generated code drifts. Agents replicate existing patterns ā including bad ones. Without
active maintenance, the codebase accumulates inconsistency and technical debt faster than
a human-only codebase would.
See references/entropy-management.md for the golden
principles pattern, recurring cleanup cadence, and quality scoring approach.
Companion Skills
This skill focuses on repository structure and documentation architecture. For specific
topics, load these companion skills:
| Topic | Skill | What It Covers |
|---|
| Writing AGENTS.md | agents-md | Structure, sections, anti-patterns for the entry point file |
| Architecture docs | architecture-md | Codemap with boundaries, invariants, cross-cutting concerns |
| Type-driven boundaries | parse-dont-validate | Parsing at boundaries, making illegal states unrepresentable |
Quick Reference
Workflow: Setting Up an Agent-First Repo
For a new project:
- Create
AGENTS.md ā dev commands, repo structure, boundaries (~100 lines)
- Create
ARCHITECTURE.md ā bird's eye view, codemap, cross-cutting concerns
- Set up
docs/ with at minimum design-docs/index.md and core-beliefs.md
- Add mechanical enforcement ā linter for dependency directions, structural tests
- Establish quality scoring ā grade each domain/layer, track in
QUALITY_SCORE.md
- Set up entropy management ā recurring cleanup cadence, golden principles doc
For an existing project:
- Write
AGENTS.md starting from what's in CI config and CONTRIBUTING.md
- Write
ARCHITECTURE.md by exploring the codebase (use the architecture-md skill)
- Identify the top 3 architectural rules agents violate ā encode as lints or tests
- Move critical design context from Slack/docs/wikis into versioned repo files
- Start a
QUALITY_SCORE.md to track known gaps per module
Anti-Patterns
- Knowledge lives outside the repo ā Slack threads, Google Docs, wikis, Notion pages. If the agent can't
cat it, it doesn't exist.
- One giant AGENTS.md ā Monolithic instruction files crowd out actual task context. Use progressive disclosure.
- Rules as prose only ā "Don't import from the API layer in workers" is ignored. A lint that fails CI is not.
- No quality tracking ā Without explicit grades, drift is invisible until it's painful.
- Manual cleanup Fridays ā Doesn't scale. Encode golden principles and automate scanning.
- Opaque dependencies ā Libraries the agent can't read, test, or modify reduce leverage. Prefer transparent, in-repo code for critical paths.