In the rapidly evolving landscape of AI-assisted development, the agents.md
file has emerged as a critical tool for guiding AI agents to produce high-quality, consistent code. Think of it as your project's instruction manual that tells AI exactly how you want things done. This comprehensive guide will walk you through the best practices for creating an effective agents.md
file that transforms your AI coding experience.
What is agents.md and Why It Matters
An agents.md
file is a markdown document that serves as a configuration guide for AI coding agents. It contains specific rules, preferences, and constraints that help AI understand your project's coding standards, architectural patterns, and development workflows. Unlike generic AI prompts, agents.md
provides persistent, project-specific guidance that ensures consistency across all AI-generated code.
The beauty of agents.md
lies in its simplicity and power. By providing clear, actionable instructions, you can dramatically improve the quality of AI-generated code while reducing the time spent on corrections and refactoring. It's like having a senior developer constantly mentoring your AI assistant.
Core Best Practices for Creating Effective agents.md Files
Start with Clear Dos and Don'ts
The foundation of any effective agents.md
file begins with explicit dos and don'ts. This section should be as specific and nitpicky as possible—AI agents thrive on clear guidelines and feedback.
Here's an example of an effective dos and don'ts section:
1### Do
2- use MUI v3. make sure your code is v3 compatible
3- use emotion `css={{}}` prop format
4- use mobx for state management with `useLocalStore`
5- use design tokens from `DynamicStyles.tsx` for all styling. no hard coding
6- use apex charts for charts. do not supply custom html
7- default to small components. prefer focused modules over god components
8- default to small files and diffs. avoid repo wide rewrites unless asked
9
10### Don't
11- do not hard code colors
12- do not use `div`s if we have a component already
13- do not add new heavy dependencies without approval
14
This level of specificity prevents common issues like version conflicts, inconsistent styling approaches, and architectural drift. When you specify exact versions and libraries, you eliminate the guessing game that AI agents often play.
Configure File-Scoped Commands
One of the most frustrating aspects of working with AI agents is their tendency to run full project-wide build commands for every small change. In large codebases, these commands can take minutes to complete and are usually unnecessary.
Instead, configure your agents.md
with file-scoped commands that allow agents to validate changes efficiently:
1### Commands
2
3# Type check a single file by path
4npm run tsc --noEmit path/to/file.tsx
5
6# Format a single file by path
7npm run prettier --write path/to/file.tsx
8
9# Lint a single file by path
10npm run eslint --fix path/to/file.tsx
11
12# Unit tests - pick one
13npm run vitest run path/to/file.test.tsx
14
15# Full build when explicitly requested
16yarn build:app
17
18Note: Always lint, test, and typecheck updated files. Use project-wide build sparingly.
19
This approach provides several benefits: faster feedback loops, reduced computational overhead, and more efficient use of AI tokens. When validation is fast and cheap, you can instruct AI to run checks more frequently, resulting in higher quality code.
Establish Safety and Permission Boundaries
Clearly define what your AI agent can and cannot do without explicit permission. This prevents unexpected changes and maintains security across your project:
1### Safety and permissions
2
3Allowed without prompt:
4- read files, list files
5- tsc single file, prettier, eslint,
6- vitest single test
7
8Ask first:
9- package installs,
10- git push
11- deleting files, chmod
12- running full build or end to end suites
13
Setting these boundaries creates a safer development environment and prevents those "why did it npm install that package?" moments that can derail your project.
Advanced Configuration Strategies
Provide Project Structure Hints
While AI agents can search through your codebase, providing strategic pointers saves time and improves accuracy. Include a project structure section that acts as a quick reference guide:
### Project structure
- see `App.tsx` for routes
- see `AppSideBar.tsx` for the sidebar
- components live in `app/components`
- design tokens live in `app/lib/theme/tokens.ts`
This guidance helps agents start in the right places and understand your project's organization without extensive exploration.
Use Concrete Examples
Examples are far more effective than abstract descriptions. Point to real files that demonstrate your best patterns, and explicitly call out legacy code to avoid:
### Good and bad examples
- avoid class-based components like `Admin.tsx`
- prefer functional components with hooks like `Projects.tsx`
- forms: copy `app/components/DashForm.tsx`
- charts: copy `app/components/Charts/Bar.tsx`
- data grids: copy `app/components/Table.tsx`
- data layer: use `app/api/client.ts` for HTTP. do not fetch directly inside components
This approach reduces code drift and ensures that AI agents mirror your established patterns rather than inventing new ones.
Include API Documentation References
If you want AI-generated screens to work with real data on the first attempt, provide clear guidance on where to find API documentation and typed clients:
### API docs
- docs live in `./api/docs/*.md`
- list projects - `GET /api/projects` using the typed client in `app/api/client.ts`
- update project name - `PATCH /api/projects/:id` via `client.projects.update`
- use the Builder.io MCP server to look up docs on Builder APIs
This information helps agents integrate with your backend services correctly without making assumptions about API structures.
Scaling and Maintenance Strategies
Implement Hierarchical agents.md Files
For large repositories, consider using nested agents.md
files in different directories. This allows different parts of your project to have specific rules while maintaining overall consistency:
1# In the root directory
2### Global rules
3- use TypeScript for all new files
4- prefer functional components over class components
5- follow the existing code style in each directory
6
7# In specific package directories
8### Package-specific rules
9- this package uses React 17
10- use class components for legacy compatibility
11- follow the Material-UI v4 styling approach
12
This hierarchical approach enables different packages to evolve independently while maintaining clean, focused guidance.
Create a PR Checklist
Be explicit about what constitutes a "ready" change. Include a mechanical checklist that ensures consistency across all contributions:
### PR checklist
- title: `feat(scope): short description`
- lint, type check, unit tests - all green before commit
- diff is small and focused. include a brief summary of what changed and why
- remove any excessive logs or comments before sending a PR
This checklist creates consistency and speeds up the review process by setting clear expectations.
Plan for Uncertainty
Give your AI agent an escape hatch for when it's unsure about requirements. This prevents large, speculative changes that could introduce bugs:
### When stuck
- ask a clarifying question, propose a short plan, or open a draft PR with notes
- do not push large speculative changes without confirmation
This approach trades potentially wrong turns for small clarifications, saving time and reducing rework.
Testing and Iteration
Implement Test-First Mode
For complex features, consider implementing a test-first approach in your agents.md
:
### Test first mode
- when adding new features: write or update unit tests first, then code to green
- prefer component tests for UI state changes
- for regressions: add a failing test that reproduces the bug, then fix to green
This enforces correctness and helps lock in behavior before code has a chance to drift.
Continuous Refinement
Creating an effective agents.md
is an iterative process. Start small and expand based on your experiences:
- Begin with the most critical dos and don'ts
- Add file-scoped commands for faster feedback
- Include project structure hints as patterns emerge
- Add concrete examples when you notice drift
- Refine safety permissions based on incidents
Remember, your agents.md
should evolve with your project. Regular updates ensure it remains relevant and effective.
Common Pitfalls to Avoid
When creating your agents.md
file, watch out for these common mistakes:
- Being too vague: "Write clean code" is less helpful than "Use functional components with hooks"
- Over-engineering: Start with essential rules and expand gradually
- Conflicting rules: Ensure guidance in one section doesn't contradict another
- Stagnation: Update your
agents.md
as your project evolves - Ignoring context: Tailor rules to your specific project needs, not generic best practices
Conclusion
An effectively crafted agents.md
file is a powerful tool for harnessing the full potential of AI-assisted development. By providing clear, specific guidance, you can ensure that AI agents produce code that aligns with your project's standards and architectural vision.
The key to success lies in starting small, being specific, and iterating based on results. Begin with the fundamental dos and don'ts, add file-scoped commands for efficiency, and gradually build out more sophisticated guidance as patterns emerge.
Remember, your agents.md
is not just documentation—it's an active configuration file that directly impacts the quality of AI-generated code. Invest time in crafting it well, and you'll reap the benefits of more consistent, higher-quality code that requires less review and rework.
As AI coding assistants become increasingly sophisticated, the projects with well-crafted agents.md
files will have a significant advantage in terms of development velocity and code quality. Start building yours today, and transform how your team collaborates with AI.