init — Claude Code skill: write and prune AGENTS.md
Builds AGENTS.md from what an agent cannot learn by reading the repo: odd commands, landmines, local conventions. Everything else gets cut.
npx skills add mcollina/skills --skill init -a claude-codeWhat init does
This skill treats AGENTS.md as a living list of non-discoverable landmines and workflow gotchas, not a codebase overview. Every candidate line faces one question: could an agent find this by reading the repo? If yes, it stays out. If no, and it changes task success, cost or safety, it goes in.
It reads the existing AGENTS.md first, along with README.md, PROJECT.md, Cursor rules in .cursor/rules/ or .cursorrules, Copilot instructions in .github/copilot-instructions.md, GEMINI.md, CI files and package manager config. An existing AGENTS.md gets improved in place rather than replaced. For large repos it suggests hierarchical files next to the relevant modules instead of one monolithic root file.
What earns a line: a non-standard tool where you would expect the usual one, caveats attached to a command, hidden constraints, conventions no linter or test encodes. Tech stack summaries, directory tours and generic advice get dropped. Before finishing, each line is checked for accuracy today and for whether it actually reduces mistakes. Anything that fails is deleted. That also means the skill is wasted on a repo where nobody maintains AGENTS.md — the file goes stale and the same agent mistakes come back.
What it helps with
- set up
AGENTS.mdfor a fresh repository - prune a bloated or stale
AGENTS.md - record command caveats the agent keeps missing
- flag directories the agent should not touch
- split instructions across modules in a large repo
Example prompts for the agent
- create an AGENTS.md for this repository
- clean up AGENTS.md, there is too much noise in it
- the agent keeps running tests without the required flag, add that to AGENTS.md
How to install init
1Skills CLI (Vercel)
npx skills add mcollina/skills --skill init -a claude-code2Manually: put the files in place
~/.claude/skills/init/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/init/
1Skills CLI (Vercel)
npx skills add mcollina/skills --skill init -a codex2Manually: put the files in place
.agents/skills/init/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add mcollina/skills --skill init -a cursor2Manually: put the files in place
.cursor/skills/init/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install mcollina/skills init2Manually: put the files in place
.github/skills/init/SKILL.md1Skills CLI (Vercel)
npx skills add mcollina/skills --skill init -a gemini-cli2Platform CLI
gemini skills install https://github.com/mcollina/skills --path skills/initManually: put the files in place
.devin/skills/init/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add mcollina/skills --skill init -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about init
How do I install init in Claude?
Run npx skills add mcollina/skills --skill init -a claude-code. The skill lands in ~/.claude/skills/init/SKILL.md.
What does init do?
It creates, updates or trims AGENTS.md, keeping only what an agent cannot infer from README, code, config or the directory tree.
How is it different from just generating an AGENTS.md?
It applies a discoverability filter and a quality gate to every line. Anything the agent can discover on its own, or that a linter or test already enforces, is left out.
Source text
SKILL.md · MIT
--- name: init description: Creates, updates, or optimizes an AGENTS.md file for a repository with minimal, high-signal instructions covering non-discoverable coding conventions, tooling quirks, workflow preferences, and project-specific rules that agents cannot infer from reading the codebase. Use when setting up agent instructions or Claude configuration for a new repository, when an existing AGENTS.md is too long, generic, or stale, when agents repeatedly make avoidable mistakes, or when repository workflows have changed and the agent configuration needs pruning. Applies a discoverability filter—omitting anything Claude can learn from README, code, config, or directory structure—and a quality gate to verify each line remains accurate and operationally significant. metadata: tags: initialization, agents, context-engineering, agents-md, maintenance --- ## When to use Use this skill when creating or updating `AGENTS.md` for a repository. Use it especially when: - the current `AGENTS.md` is long, generic, or stale - agents repeatedly make the same avoidable mistakes - repository workflows changed and agent guidance needs pruning ## Instructions Treat `AGENTS.md` as a **living list of non-discoverable landmines and workflow gotchas**, not a codebase overview. ### Core rule: discoverability filter Before adding any line, ask: > Can an agent discover this by reading the repo (`README`, code, config, scripts, directory tree)? - If **yes**: do **not** include it in `AGENTS.md`. - If **no**, and it materially affects task success/cost/safety: include it. ### What earns a line Include only guidance that is: 1. **Non-discoverable** from repository files alone 2. **Operationally significant** (changes commands, outcomes, or safety) 3. **Actionable** (specific enough to execute) Typical examples: - Non-standard tooling choices (e.g. use `uv` instead of `pip`) - Command caveats (e.g. tests must run with `--no-cache` due to fixture behavior) - Hidden constraints/landmines (deprecated directories still imported in production) - Critical local conventions that are not encoded in lint/tests/config ### What to remove or avoid Do **not** include: - Tech stack summaries - Directory structure overviews - Architecture descriptions agents can infer from code - Generic best-practice advice - Rules already enforced by tooling (linters, typecheck, tests, CI) - Mandatory boilerplate headers unless the repo explicitly requires one ### Recommended structure Prefer short, high-signal sections such as: - `Scope & routing` (which areas need separate/module-local AGENTS files) - `Non-discoverable commands` - `Landmines / do-not-touch areas` - `Task-specific constraints` For large repos, recommend **hierarchical AGENTS.md** files near relevant modules instead of one monolithic root file. ### Source files to check first - Existing `AGENTS.md` - `README.md` - `PROJECT.md` (if present) - Cursor rules (`.cursor/rules/` or `.cursorrules`) - Copilot instructions (`.github/copilot-instructions.md`) - `GEMINI.md` - CI/workflow files and package manager config (for command/tooling mismatches) If `AGENTS.md` exists, improve it incrementally instead of replacing it blindly. ### Maintenance mindset `AGENTS.md` is temporary guidance, not permanent configuration. When recurring issues appear: 1. Prefer fixing the root cause in code/tooling (lint rule, test, script, structure) 2. Keep only the minimum instruction needed until the root cause is solved 3. Prune stale instructions aggressively ### Quality gate before finalizing For each line in `AGENTS.md`, verify: - Is it non-discoverable? - Is it still accurate today? - Does it materially reduce mistakes/cost/time? Delete any line that fails one of these checks.
© mcollina · MIT · mcollina/skills