COVENANT · executor capabilities  ·  ← api docs

The Capabilities page is a viewer/editor of the real files each executor reads on disk — not a uniform abstraction. So the sections it shows mirror each tool's native model and differ per executor. There is no universal "agent" standard; each tool realizes overlapping concepts differently.

The matrix

✓ = a native file/dir Covenant can list and edit for that tool.

SectionClaudeopencodeCodexCopilotPiHermes
Skills
.claude/skills

~/.pi/skills
Agents
.claude/agents

.opencode/agent
—¹—¹—²
Commands
.claude/commands

~/.codex/prompts

~/.pi/prompts
Hooks
settings.json
MCPs
opencode.json

config.toml
Memory
CLAUDE.md

AGENTS.md

AGENTS.md

copilot-instructions.md

.hermes.md

Project scope mirrors the same paths under the repo root (e.g. <repo>/.claude/agents, <repo>/CLAUDE.md).

Only Claude Code supports all six — it is the richest native model. Every other executor supports a subset.

Notes on "Agents"

The Agents section means a multi-agent directory (one .md per subagent). That exists natively only for Claude (.claude/agents) and opencode (.opencode/agent).

Why CDLC projection exists

Because the same concept maps onto a different native shape per tool, you author once in .covenant/cdlc/ and project to every executor. One authored agent becomes a file in .claude/agents and .opencode/agent, a managed block in AGENTS.md for codex/copilot, and a skill in ~/.pi/skills.

AGENT_DIRS = .claude/agents, .opencode/agent
SKILL_DIRS = .claude/skills, ~/.pi/skills
memory     = AGENTS.md (codex/opencode/hermes),
             copilot-instructions.md (copilot),
             .hermes.md (hermes, only if it already exists)

The Covenant tool in the Capabilities page exposes this via Project to executors, which runs the same export engine.

Source of truth for this page: docs/executor-capabilities.md in the desktop repo, and the projection map in crates/cdlc/src/project.rs.