agent-files
SkillFiles & storageUse when adding or changing AGENTS.md files, CLAUDE.md links, skills, subagents, command guards, Serena memories, or Claude Code and Codex settings in clawker.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the agent-files skill
What this skill tells your AI
The instructions your AI receives, as published by schmitthub/clawker in .agents/skills/agent-files/SKILL.md and read by ahel’s review.
This directory contains harness-independent project content. Claude Code and
Codex use one set of project instructions. Start with the
root AGENTS.md; it names the rules, skills, and references
for the task. Each regular AGENTS.md has a sibling
CLAUDE.md link with the relative target AGENTS.md, including package instructions.
File ownership
- Project and package instructions: Root and package
AGENTS.md. Claude reads siblingCLAUDE.mdlinks; Codex readsAGENTS.md. - Conventions and design knowledge: Serena memories under
.serena/memories/. There is no rule directory; a mandatory constraint goes in the root or a packageAGENTS.md. - Skills:
skills/*/SKILL.md. Codex discovers the shared directory;.claude/skillslinks to it. - Development templates:
templates/. Both use the shared files. - Durable project memory:
../.serena/memories/. Both use Serena or read the shared memory files. - Command guards:
hooks/. Registered in both native configurations. - Subagents:
skills/<name>/agents/claude.md,skills/<name>/agents/codex.toml..claude/agents/<name>.mdlinks to the Claude file;.codex/config.tomlnames the Codex file. - GitHub PR review:
../.github/copilot-instructions.mdand../.github/skills/. GitHub review instructions use the same rule directory.
Use the initiative skill to plan development or
testing across conversations and resume one task at a time. Its reusable
template lives in the skill's assets/ directory. Plans and task results live
in the shared Serena memory graph.
Native configuration belongs to its harness:
.claude/settings.json,.claude/settings.local.json.example, and Claude-only.claude/hooks/files are regular native files..claude/agents/holds links to skill sidecars or Claude-only agents..codex/config.tomlcontains Codex settings and names the Codex subagent files.- Both native configurations call the shared command guards in
.agents/hooks/. - Harness metadata for a skill lives in that skill's
agents/directory:openai.yamlfor Codex skill policy,claude.mdandcodex.tomlfor subagent definitions.
Maintenance rules
- Add project requirements once, in a shared file. Link to that source from both tools.
- Keep required rules separate from optional skill procedures. A rule file is repository-wide; a requirement for one package tree goes in that tree's
AGENTS.md. - Keep the root brief. Put commands in the dev-checks skill, project details in the Serena
project-guidememory, and CP constraints in the control-plane instructions. - Keep native configuration and private state in
.claude/or.codex/. Do not store them in.agents/through copies or links. - When agents work at the same time, preserve current edits and use the shared memory graph for project knowledge.
- Read the compatibility sections below before changing loading conditions, hooks, or native reviewer settings.
Verification
The agent-compat commit hook and the PR lint workflow run
scripts/check-agent-compatibility.py. Do not run it by hand before a commit;
the hook reports layout problems at commit time and CI reports them on the
pull request. See the compatibility sections below
for what it checks.
For instruction changes, check files and formats with git diff --check. Do not run
application tests, install or run Claude Code, or make model API calls for
these checks.
Claude Code and Codex compatibility
Read this file when changing native settings or the shared file layout.
Project instructions must have one source that both tools can read.
.agents/ contains harness-independent content. Native settings, reviewer
definitions, and hooks specific to one tool stay in that tool's directory.
Instruction loading
Codex reads AGENTS.md from the repository root through its working directory.
Claude Code reads the sibling CLAUDE.md symbolic links. The shared root requires
both tools to read the Serena memories and package instructions along each
target file's path. This explicit requirement
also covers files outside the initial working directory.
Codex instructions,
Claude memory
Skills, references, and memory
Codex discovers repository skills under .agents/skills. Claude uses the same
files through .claude/skills. Add a skill once in the shared directory.
Required project rules must remain in the root or its required rule files;
optional skill discovery cannot be their only source.
Codex skills,
Claude skills
The audit-memory description and procedure require an explicit user request.
Both tools receive that same instruction. This is a shared instruction, not a
native loading restriction. Keep vendor-specific invocation metadata out of
shared skills.
Both tools use .agents/docs, .agents/templates, and the shared Serena
memory graph under .serena/memories. Memory links use mem: references.
The root memory is core. Keep durable project knowledge there or in shared
references; do not make required knowledge depend on one tool's private memory.
The CLI output and prompter references are files in .agents/docs, not memories.
Native hooks and reviewer settings
.claude/settings.json and .codex/config.toml are regular files in their
native directories. Both configurations register
one Git guard and one Go command guard from .agents/hooks. The Go guard reads
shell words and heredoc data without executing the supplied command. Python 3
is required for that guard; the structure checker requires Python 3.9 or later.
The Codex hooks use inline TOML. Do not add a .codex/hooks.json file: Codex
reads both sources and would register each guard twice. Project hook loading
requires a trusted project.
Codex hook loading
Claude's optional Serena hooks live in .claude/hooks/. Their registrations
are in .claude/settings.local.json.example.
The root AGENTS.md states the Serena procedure for both tools. Private
settings remain at their native paths and are not changed by this layout.
When updating private settings, remove duplicate Git or Go guard registrations;
the native project settings already register them.
A skill becomes a named subagent when its directory contains harness
definitions under agents/, next to the Codex skill policy file
agents/openai.yaml:
agents/claude.mdis a Claude Code subagent file. It preloads the skill withskills: [<name>]. Claude discovers subagents only in.claude/agents, so.claude/agents/<name>.mdis a symbolic link to this file.agents/codex.tomlis a Codex role file withdeveloper_instructionsthat read the skill. Codex loads it through[agents.<name>] config_filein.codex/config.toml; the path is relative to.codexand must be a regular file, because Codex rejects a symbolic link there.
Keep the procedure in SKILL.md. The harness files carry only the name, the
description, tool limits, and the instruction to read the skill. Skills without
an agents/ definition stay plain skills. Harness-only agents can still live in
.claude/agents or .codex as regular files.
Checks and limits
The agent-compat commit hook and the PR lint workflow run
scripts/check-agent-compatibility.py. Agents do not run it by hand. It reads
tracked and untracked entries that Git does not ignore, and it validates what
exists:
- Each
AGENTS.mdis a regular file with a siblingCLAUDE.mdsymbolic link whose target is exactlyAGENTS.md. - Each symbolic link under
.agents,.claude, and.codexis relative and resolves inside the repository. Links under.agentsnever resolve into a harness directory. - Each
config_filevalue in.codex/config.tomlis relative and resolves to a regular file inside the repository. - Relative links in the root
AGENTS.mdand.agents/skillsresolve.
The check does not require named directories, links, skills, or subagents.
The PR lint workflow also runs the checker's own tests in
scripts/test_agent_compatibility.py and the command-guard tests in
.agents/hooks/test_go_commands.py. None of these start an agent or run a
supplied shell command.
Static checks establish file structure. They do not prove runtime loading in a new Claude or Codex session. Personal settings, installed plugins, and available tools remain properties of the user's tool installation.
Signals
- GitHub stars
- 55
- Forks
- 6
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
agent-files- Source
- github.com/schmitthub/clawker