# CLAUDE.md vs AGENTS.md vs SKILL.md: How to Combine All Three

> How CLAUDE.md vs AGENTS.md vs SKILL.md split by loading model — decide where every instruction goes, protect your context budget, and cut agent runtime.

Source: https://camnangai.com/en/for/developers/claude-md-vs-agents-md-vs-skill-md  
Published: 2026-07-12

**CLAUDE.md vs AGENTS.md vs SKILL.md** is not a fight over which standard wins — it is a question
  of how each file is *loaded* into the agent's context, and that loading model is what decides
  where a given instruction belongs.

It is a decision you make once. `CLAUDE.md` and `AGENTS.md` provide "always-on" injected context,
concatenated into the system prompt at the start of every session, while `SKILL.md` uses a gated
"progressive disclosure" model that only opens when its description matches the task in front of
you.

Use **AGENTS.md** as the universal standard every tool reads, **CLAUDE.md** as the
Claude-Code-specific layer, and **SKILL.md** as the packaged unit for complex, conditional workflows
(procedural memory). Put an instruction in the wrong file and you do not just pay in tokens: you dilute
the model's attention and invite reasoning noise between sessions.

![Three config files CLAUDE.md, AGENTS.md and SKILL.md with their three context-loading models: always-on injection versus a gated model.](https://camnangai.com/articles/claude-md-vs-agents-md-vs-skill-md/01-infographic-en.webp)

## Three files, three context-loading models

The current split came together over the second half of 2025. In August 2025, the
`AGENTS.md` specification launched as a tool-agnostic "README for agents" — one place to define build
commands, testing rules, and architecture that Cursor, Copilot, and independent agents could all read.
Two months later, in October 2025, Anthropic introduced Agent Skills, shifting from a flat instruction
file to modular directories with their own metadata, scripts, and reference documents. By December
2025 both formats had become open standards: the skills standard was published at agentskills.io, and
`AGENTS.md` moved under the Linux Foundation to anchor the Agentic AI Foundation.

That history created a technical split: injected context (always-on) versus gated context
(just-in-time). Injected files like `CLAUDE.md` and `AGENTS.md` are automatically concatenated into the
system prompt at the start of every session. They are foundational, but they carry a fixed operational
overhead on every turn. Gated context stays dormant until a user's intent matches a skill's metadata, at
which point the full instructions are loaded. More than 60,000 repositories now manage tiered standards
this way.

Without these files, an agent is a fresh hire every time you press Enter. They provide a
machine-readable map that stops the agent from hallucinating library usage or running the wrong test
runner. But dumping everything into a single always-on file triggers "context saturation," where the
agent spends attention complying with a wall of instructions instead of resolving the actual bug.

One gap still stands: as of today, Claude Code does **not** read `AGENTS.md` natively,
despite more than 4,300 engineers requesting it. Anthropic's own documentation ships the workaround, a
symlink that keeps a single source of truth without duplicating content:

```bash
ln -s AGENTS.md CLAUDE.md
```

_The rest of this article is for members. Read it at https://camnangai.com/en/for/developers/claude-md-vs-agents-md-vs-skill-md_
