Status: Accepted Scope: Documentation and examples only — zero schema or runtime changes Author: Prime Vector / Open Agent Spec maintainers
Since OA was designed, two markdown-based patterns have gained significant mindshare in agentic engineering:
- AGENTS.md — a prose file at a repository root giving interactive coding agents (Cursor, Claude Code, Codex, etc.) ambient instructions: conventions, build commands, style rules.
- Skills (SKILL.md folders) — prose instructions with name/description frontmatter, optionally bundled with loose scripts, progressively disclosed to an agent when the description matches the task at hand.
Stripped of hype, both are the same thing: natural-language instructions that a model may or may not follow. Neither has a schema. Neither is validated, versioned, mechanically enforceable, or conformance-testable. When a skill "breaks", you find out by watching an agent do the wrong thing.
Should OA engage with these patterns, and if so, how — without inheriting their weaknesses?
Two real risks argue against ignoring them entirely:
- Discoverability collision. People searching "agent spec" increasingly land on AGENTS.md content. Some will assume Open Agent Spec is a competing "agent file" format. Silence lets others define the relationship for us.
- Distribution channel. Skills are becoming how people share agent capabilities. Ignoring that channel means OA specs lose a growing on-ramp.
OA and the markdown patterns are not competitors. They operate at different layers:
| AGENTS.md / Skills | Open Agent Spec | |
|---|---|---|
| Layer | Guidance (how an interactive agent behaves) | Execution contract (what an agent task is) |
| Format | Prose | Declarative YAML, JSON-Schema validated |
| Enforcement | Model goodwill | Runner-enforced (sandbox, schemas, structured errors) |
| Portability | Per-tool conventions | Conformance-tested across runtimes |
| Failure mode | Silent drift | Structured error codes |
The industry has discovered that agents need shared, distributable definitions — and reached for the weakest possible format first. OA's answer is not to join the trend or to buck it, but to be the thing the markdown eventually points at.
Markdown patterns may point at OA specs. OA specs never point at markdown patterns.
All interop happens one layer above the spec. Nothing enters the schema.
This is consistent with every prior boundary decision: no skill: task type
(rejected), no orchestration, no prose-as-contract.
Three artifacts, all documentation/examples:
-
examples/skill-wrapper/— a SKILL.md that wraps an OA spec. The skill provides discovery (name + description an agent can match on) and instructs the agent to execute viaoa runrather than improvising. The OA spec provides the actual contract: typed inputs/outputs, pinned model, validated output. This turns the skills ecosystem into a distribution channel for OA specs — a skill wrapping a spec is strictly better than a skill wrapping a loose script. -
Root
AGENTS.md— dogfoods the coexistence pattern in this repo: tells coding agents that agent behaviour here is defined as OA specs, points them atoa run/oa validate/ the conformance harness, and instructs them not to hand-roll agent logic. Doubles as genuinely useful contributor guidance. -
README positioning section — "How OA relates to AGENTS.md and Skills". Defines the relationship publicly before someone else does.
To keep the line bright, the following are out of scope permanently unless revisited by a future proposal:
- ❌ A
skill:task type or any skill reference inside a spec - ❌ Markdown-file prompt references inside specs (kills single-file portability)
- ❌ Any schema-level claim of AGENTS.md/skills "compatibility"
- ❌ Runtime awareness of SKILL.md or AGENTS.md files
The moment prose instructions become load-bearing inside a spec, OA inherits every problem it is currently immune to.
If the skills channel proves sticky, an oa skill package CLI command could
generate a SKILL.md wrapper from a spec's existing metadata (agent name,
description, task inputs). This is tooling on top of the boundary, not a
schema change — and should not be built until someone asks for it.
- These artifacts ship as docs/examples in a normal PR; no version bump required beyond a changelog note.
- The bright-line rule above gets cited in future feature discussions the same way "no orchestration" and "no skills task type" are today.
- If the AGENTS.md/skills patterns evolve into something schema'd and enforceable, we reassess via a new proposal — from a position of interop rather than dependence.