---
name: optimize-agents-md
description: Optimize AGENTS.md and rules for token efficiency. Auto-invoked when user asks about improving agent instructions, compressing AGENTS.md, or making rules more effective.
license: ISC
enabled: false
source: github:youdotcom-oss/agent-skills
imported-from: github:youdotcom-oss/agent-skills
---

# Optimize AGENTS.md

Apply Boris Cherny's compression principles to AGENTS.md and rules files.

**Target**: ~2.5k tokens (most are 10k+ unnecessarily)

## When to Use

- User wants to improve their AGENTS.md or CLAUDE.md
- Agent instructions feel verbose or redundant
- Rules exist but lack verification patterns
- Setting up a new project's agent configuration

## Anti-Patterns to Fix

| Anti-Pattern | Problem | Fix |
|--------------|---------|-----|
| Context stuffing | Repeating info agents already know | Delete obvious instructions |
| Static memory | No learnings section | Add `## Learnings` with dates |
| Format drift | Inconsistent structure | Use consistent headers |
| Missing verification | No way to check work | Add `*Verify:*` patterns to rules |
| Verbose rules | Paragraphs instead of patterns | Compress to pattern + verify + fix |

## Workflow

### Phase 1: Analyze Current State

```bash
# Count tokens (rough estimate: words × 1.3)
wc -w AGENTS.md

# Find redundancy with project files
grep -l "bun test" AGENTS.md package.json
```

Look for:
- Instructions duplicating package.json scripts
- Explanations of common tools (git, npm, bun)
- Verbose descriptions that could be tables
- Rules without verification patterns

### Phase 2: Compress AGENTS.md

**Structure target:**

```markdown
# AGENTS.md

## Overview
[1-2 sentences: what this project is]

## Capabilities  
[Bullet list of key features/commands]

## Structure
[Brief file tree of key paths]

## Commands
[Essential commands only - not everything in package.json]

## Verification
[How to check work is correct]

## Workflow
[Key constraints: plan first, verify incrementally]

## Rules
[Links to rule files or inline compressed rules]

## Learnings
[Dated entries from actual issues encountered]
```

**Compression techniques:**
- Tables over paragraphs
- Bullets over sentences
- Delete anything in package.json
- Delete tool explanations (agents know git, npm, bun)
- Merge related sections

### Phase 3: Optimize Rules

Transform verbose rules into verification patterns:

**Before (verbose):**
```markdown
## Type Aliases Over Interfaces

In this codebase, we prefer using TypeScript type aliases 
instead of interfaces. This provides better consistency 
and flexibility when working with unions and intersections.

Example:
// Good
type User = { name: string }

// Bad  
interface User { name: string }
```

**After (compressed with verification):**
```markdown
**Type over interface** - `type User = {` instead of `interface User {`
*Verify:* `grep 'interface [A-Z]' src/`
*Fix:* Replace `interface X {` with `type X = {`
```

**Pattern format:**
```
**Rule name** - Brief description with example
*Verify:* Command or tool to check compliance
*Fix:* How to resolve violations
```

### Phase 4: Add Living Document Features

**Learnings section:**
```markdown
## Learnings
- 2024-01-15: Skills use CLI tools, never duplicate logic
- 2024-01-20: Rules need verification patterns for self-checking
```

**Update trigger:** Add learnings when:
- A mistake required correction
- A pattern was discovered
- A constraint was clarified

## Verification

After optimization:

1. **Token count**: `wc -w AGENTS.md` × 1.3 ≈ tokens (target: <2.5k)
2. **No redundancy**: `grep` for duplicated info in package.json
3. **Rules have patterns**: Each rule has `*Verify:*` line
4. **Learnings exist**: `## Learnings` section present

## Example Transformations

### Commands Section

**Before (340 words):**
```markdown
## Development Commands

To install dependencies, run the following command...
[lengthy explanation of bun install]

To run tests, you can use...
[explanation of test runner]
```

**After (40 words):**
```markdown
## Commands
```bash
bun install    # Setup
bun run check  # Lint/format
bun test       # Unit tests
```
```

### Capability Description

**Before:**
```markdown
This package provides TypeScript Language Server Protocol 
integration that allows you to get type information, find 
symbols across your workspace, locate references to symbols,
and perform batch analysis of files.
```

**After:**
```markdown
**LSP** (`lsp-*`): Type-aware hover, symbol search, references, batch analysis
```

## Related Skills

- **scaffold-rules** - Install optimized rules with verification patterns
- **validate-skill** - Validate skill structure
