Agentic Markdowns
One library of plain-text files that gives every AI you run — local or cloud — the same personas, skills, and memory. Write it once, use it in every tool.
Why Markdown Won
Every AI platform began by inventing its own configuration: a settings page here, a JSON blob there, a "custom instructions" box with a character limit somewhere else. Those configurations share three fatal properties. They are trapped inside one vendor's product, so switching tools means starting over. They are invisible — you cannot diff them, review them, or roll them back. And they do not compose: there is no way to say "this agent gets these three abilities plus that personality" and have it mean the same thing on two platforms.
Plain-text files fix all three, for a boring reason: text files are the most portable technology in computing. A Markdown file written today will be readable by every tool you are likely to run in 2030, including tools that do not exist yet. It versions in Git, so every change has an author, a date, and a reason. It can be read by a human in an editor and by a model in a context window with equal ease — no parser, no SDK, no export wizard. And because it is just files in folders, pieces recombine freely: a skill written for a coding agent can be handed to a research agent by copying a directory.
This is not a theory about the future; it is what already happened. Two file conventions escaped their home products and became open standards in late 2025, and the rest of the industry adopted them within months. The library this book describes is built entirely on those two conventions, plus one older idea borrowed from how good teams have always worked: a short list of shared principles that every specialist inherits, so the whole fleet behaves consistently even though each agent has a different job.
- Platform settings are trapped, invisible, and non-composable; files are none of those.
- Markdown plus Git gives you portability, history, and review for free.
- The one-sentence version: an agent is a set of files — own the files and you own the agent, on any platform.
The Two Standards
AGENTS.md is the instruction standard. It began at OpenAI in mid-2025 as a simple idea — a README written for machines instead of humans, living at the root of a project — and governance moved to the Agentic AI Foundation under the Linux Foundation that December. It is deliberately format-less: plain Markdown, no required fields, no frontmatter. Tens of thousands of projects use it, and Codex, Gemini CLI, Copilot, Cursor, and most other serious tools read it natively. Its job is the standing context an agent needs before any task makes sense: what this is, how we work here, what the boundaries are.
Agent Skills are the capability standard. Anthropic published the format in October 2025 and released it as an open standard at agentskills.io that December. A skill is a folder containing one required file, SKILL.md: YAML frontmatter carrying a name and a description, then Markdown instructions. The description is the clever part — it states both what the skill does and when to use it, so an agent can scan hundreds of skills and load only the matching one. That yields the format's defining trick, progressive disclosure, in three levels:
- Level 1 — metadata (the name and description, roughly 100 tokens) is always in context. Routing costs almost nothing.
- Level 2 — the SKILL.md body (kept under about 5,000 tokens) loads only when a task matches the description.
- Level 3 — bundled resources (
references/,scripts/,assets/) load only when the procedure itself calls for them. A 40-item security checklist costs zero tokens until a review actually runs.
That economics lesson is why skills beat giant system prompts: expertise stops being a tax on every conversation and becomes a library the agent consults. Hermes, Claude, Codex, Gemini CLI, and other agent runtimes all speak this format now, so a skill written once genuinely runs everywhere.
Two neighboring standards complete the picture without competing. MCP standardizes how agents connect to tools and data; skills standardize what to do with those tools. A2A standardizes how agents talk to each other. Instructions, capabilities, connections, communication — four different layers, and this library deliberately lives in the first two, where portability is total and lock-in is zero.
CLAUDE.md, not AGENTS.md. The fix is the oldest trick in software: generate the dialect from the source and stamp it "generated, do not edit." The moment you hand-edit a generated file, you have forked your agent's brain.- AGENTS.md carries standing instructions; Agent Skills carry on-demand capabilities.
- Progressive disclosure makes expertise cheap: metadata always loaded, bodies on match, resources on need.
- Platform-specific files are build output. Fix the source, rebuild, never patch the copy.
Anatomy of a Persona
A persona in this library is a folder of five files, and the split is the design. Most agent setups cram everything into one system prompt, where personality, job description, rules, and facts blur into a single undifferentiated blob that nobody can maintain. Five files, five distinct jobs:
- persona.yaml — the manifest. A machine-readable card: the persona's id, a one-line description (which doubles as routing text — other agents decide whether to hand off based on it), target platforms, model hints, memory scope, and the list of skills this persona carries. This is the file tooling reads: a validator checks it, a bundle builder follows it.
- IDENTITY.md — who it presents as. Name, role, vibe, emoji. A small file with a real job: it is what the agent answers to and how it introduces its work.
- SOUL.md — how it talks. Tone, register, and character: what it always does, what it never does, what it finds boring. Personality lives here and only here, so you can change how an agent sounds without touching how it works.
- AGENTS.md — how it works. The operating manual: mission, expertise map, the working loop with its quality gates, doctrine, red flags, escalation rules, output contract. This is the file that makes an agent an expert rather than an impersonator — Chapter 5 is about what goes in it.
- MEMORY.md — what it starts out knowing. Seed facts, preferences, and open loops. Memory is a living file with its own rules, and it gets the next chapter.
Above the personas sits a shared core/: the principles every persona inherits — verify before claiming, confirm before irreversible actions, never write secrets into files, fix the source not the output. Inheritance is what keeps a fleet coherent. When the researcher's skepticism and the coder's rigor both trace back to the same "say what you could not verify" principle, the agents feel like one team with specializations instead of four strangers wearing the same logo.
Two design choices are worth naming because you will feel them later. First, one persona per job, not per mood — if two personas differ only in tone, that is one persona with a SOUL variant, because every real persona carries maintenance cost. Second, the manifest makes personas composable: a new agent for, say, homelab operations is mostly a new folder plus a skill list assembled from parts that already exist. The library's value is not any single persona; it is that the next persona costs an afternoon, not a month.
- Separate the five jobs: manifest, identity, personality, operating rules, memory.
- Personality changes in SOUL.md; behavior changes in AGENTS.md; never blur them.
- Shared principles are inherited from core, so a fleet of specialists still behaves like one team.
Memory and Skills: How an Agent Actually Learns
Strip the marketing away and an agent has two kinds of learning, matching the two kinds humans have. Declarative memory is facts: what is true. Procedural memory is skills: how to do things. The library keeps them in different files because they fail differently, age differently, and are written at different moments.
Declarative memory lives in MEMORY.md and is deliberately small and curated. Hermes, the strictest of the common runtimes, budgets roughly 2,200 characters for it in the always-loaded tier — and that constraint is a feature. Memory that tries to remember everything remembers nothing usefully; it bloats every context window and, worse, it gets believed when it goes stale. So the rules are strict: durable facts, preferences, decisions with their reasons, and dated lessons. Not transcripts, not status updates, not anything a live lookup answers better. And grown, personal memory stays on the machine that runs the agent — a shared library like this one holds seed memory only, because a Git repo, even a private one, is not a vault.
Procedural memory is the skills folder, and this is where self-improving runtimes like Hermes change the game: after a complex task, the agent writes its own SKILL.md capturing the procedure, the pitfalls, and the verification step. Read that again — the agent drafts its own training material from experience. Left alone, that produces drift and clutter. Run through a library, it produces a compounding asset: the agent experiments locally, the skills that prove themselves get reviewed, hardened, and promoted into the shared library, and from there they ship to every other platform in the next bundle build. One agent's hard lesson becomes every agent's standing knowledge. That promotion loop — local experiment, curation, shared library — is the closest thing in current tooling to how a good engineering team actually gets smarter.
- Facts go in MEMORY.md; procedures go in skills. Different files, different failure modes.
- Small curated memory is a feature — stale memory gets believed, which is worse than no memory.
- The compounding loop: agent learns locally, human curates, library promotes the lesson to every platform.
Making Them Experts
The first version of this library's personas was competent and shallow — the standard failure mode. They said things like "act as a senior engineer," which is an adjective, not an ability. The rebuild ran on a different principle: expertise is written as decision rules, checklists, and named traps, or it does not exist. Concretely, each persona now carries an expertise map (what it can defend, domain by domain), a working loop with a quality gate per step, doctrine stated as rules that fire identically every time — the researcher labels claims Confirmed, Corroborated, Single-source, Inference, or Unknown, and the words are not allowed to drift — red flags that make it stop and escalate instead of bluffing, and reference files that load on demand: a sizing checklist that forces the raw-to-usable capacity math into the open, an environment-ghosts table for the stale caches and phantom processes that mimic code bugs, a discovery question bank where each question states what its answer changes. That is the difference between a costume and a craft.
What is still weak (an honest audit)
- No evaluation yet. Nothing currently proves the coder persona writes better code with its skills than without. The fix is a small bench of test tasks per persona — debugging cases, research questions with known answers, sizing exercises — run after every major edit. Until that exists, "expert" is a design goal, not a measurement.
- The memory standard is the least settled layer. Instruction and skill formats converged; memory formats have not — every runtime budgets and structures it differently. A template-plus-budget approach is a reasonable bridge, but expect to revisit it.
- Dialect drift is managed, not solved. Generated per-platform files work, but platform-specific powers (path-scoped rules, custom command formats) sit unused. Adopt them only where a persona genuinely needs them — each one is a small fork in the "write once" promise.
- Skills need red-teaming. A skill is instructions an agent trusts. As a library grows — especially with agents auto-writing skills — a review habit matters: read new skills like code from a stranger, because functionally, that is what they are.
- Model variance is real. The same persona file behaves differently on a 20B local model than on a frontier model: shorter, more explicit procedures help small models most. A manifest's model hints are the seam where per-model tuning eventually lives.
None of these weaken the foundation; they are the roadmap of a system designed to be improved in the open, one dated changelog entry at a time. Start with the evaluation bench. A library you can measure is one you can trust — and trust, verified a little more each week, is the whole product.
- Expertise = decision rules + checklists + named traps. Adjectives do not survive contact with a hard task.
- Every persona needs red flags and an escalation rule — knowing when to stop is the expertise.
- Next frontier: an evaluation bench that proves the expert files outperform the shallow ones.
The Working Library
Standards and personas are the theory; this chapter is the daily practice — the three tools and one habit that keep a library like this true instead of merely tidy.
The validator: trust, but verify mechanically
A small script checks the whole library in one pass: every SKILL.md has valid frontmatter (name matches its folder, description present and sized for routing), every persona has its five files, every skill a persona claims actually exists — and a secret scan fails the build if anything credential-shaped sneaks into a file. Run it after every edit:
python3 tools/validate.py
# expect: ALL CHECKS PASSED
The scan matters more than it looks. Agent libraries invite pasted examples, real configs, real hostnames — the exact material that must never be committed. A mechanical gate beats a good intention every single time.
The builder: one source, every platform
When a persona changes, a builder script emits a per-platform bundle — the Hermes skill and memory folders, the generated CLAUDE.md, the GEMINI.md, the runtime-specific file sets — each with a manifest describing what goes where:
python3 tools/build.py coder --target hermes
python3 tools/build.py researcher --target claude
The habit: a changelog with teeth
Every change to the library gets a dated entry in the same commit — what changed, why, and anything parked or decided. Six months in, the changelog is the only honest history of why the fleet behaves the way it does, and it is where future-you finds out that a strange rule was a scar from a real incident, not a superstition. Write the scar tissue down; it is the cheapest expertise there is.
The dangerous checklist
- Define an agent as five files — manifest, identity, soul, operating rules, seed memory — in a Git repo you control.
- Write one skill in the open SKILL.md format and run it, unmodified, in two different AI tools.
- Give a persona a red-flags section and an escalation rule, then hand it a task designed to trigger them.
- Stand up the loop: let an agent draft a skill from a real task, curate it, and promote it into the shared library.
- Run a validator with a secret scan before every commit, and keep a dated changelog of every change.