agents-md-author
Generate cross-vendor project instruction files: AGENTS.md for Codex (and most other tools), CLAUDE.md for Claude Code, or both kept in sync. Load references/agents-md-spec.md if you need the cross-vendor convention details.
When to activate
- User asks to "write AGENTS.md", "create CLAUDE.md", or "set up project instructions for AI"
- User wants the same project doc to work in Codex, Claude Code, Cursor, or any tool that follows the AGENTS.md convention
- User mentions onboarding a new AI tool to an existing repo and wants conventions captured
Procedure
1. Detect project context (always do this first)
Read the project root and determine:
- Project name — from
package.json name, pyproject.toml [project].name, go.mod module, Cargo.toml [package].name, or fallback to repo dir name
- Language & runtime —
package.json (Node + lockfile flavor), requirements.txt / pyproject.toml (Python), go.mod (Go), Cargo.toml (Rust), pom.xml / build.gradle (JVM), *.csproj (.NET)
- Common scripts — Node
scripts.{dev,build,test,lint,typecheck}; Python tox.ini / Makefile; Go/Rust task tools
- Test framework — vitest, jest, pytest, go test, cargo test, etc.
- Repo conventions — existing
.editorconfig, .prettierrc, eslint.config.*, pre-commit-config.yaml
If the user provided context (e.g., "this is a Next.js + Prisma app"), use it; otherwise infer from files. Don't ask questions you can answer from disk.
2. Decide the target file(s)
| User wants |
Write |
| Codex / OpenAI tools only |
AGENTS.md |
| Claude Code only |
CLAUDE.md |
| Both, kept in sync |
AGENTS.md + CLAUDE.md (identical content), or AGENTS.md plus a one-line CLAUDE.md that says "See AGENTS.md" |
| Single source (recommended) |
AGENTS.md + CLAUDE.md symlink → AGENTS.md |
Default to "both, identical content" unless the user specifies — it's the lowest-risk option and works everywhere.
3. Compose content
Use this canonical structure (load references/agents-md-spec.md if you need the field-by-field rationale or cross-vendor details):
# <Project name>
<one-sentence description>
## Tech stack
- <language + version>
- <framework + version>
- <database / runtime / deployment>
## Dev commands
- Install: `<command>`
- Dev server: `<command>`
- Build: `<command>`
- Test: `<command>` (unit) / `<command>` (e2e)
- Lint / typecheck: `<command>`
## Code conventions
- <indent + line length>
- <import style>
- <naming conventions>
- <test colocation>
- <commit style>
## Architecture notes
<2-5 bullets on layout — where routes live, where business logic lives, what's shared>
## Out of scope for AI agents
<deliberate "don't touch" list — generated files, secrets, migrations, etc.>
Keep it under ~150 lines. AI agents skim — verbose docs are skipped or ignored.
4. Write files
- Use canonical line endings for the OS (LF on macOS/Linux)
- Don't add a trailing summary or "generated by" footer — the file is now the user's
- If a file already exists, read it first, propose a diff, and ask the user before overwriting
5. Verify
- Print the relative paths written
- If both
AGENTS.md and CLAUDE.md were written, confirm they're byte-identical (or show the symlink)
- Suggest the user commit the files
References
Source: anton-abyzov/vskill — distributed by TomeVault.
1---2name: anton-abyzov-vskill-agents-md-author3description: agents-md-author4---56# agents-md-author78Generate cross-vendor project instruction files: `AGENTS.md` for Codex (and most other tools), `CLAUDE.md` for Claude Code, or both kept in sync. Load `references/agents-md-spec.md` if you need the cross-vendor convention details.910## When to activate1112- User asks to "write AGENTS.md", "create CLAUDE.md", or "set up project instructions for AI"13- User wants the same project doc to work in Codex, Claude Code, Cursor, or any tool that follows the AGENTS.md convention14- User mentions onboarding a new AI tool to an existing repo and wants conventions captured1516## Procedure1718### 1. Detect project context (always do this first)1920Read the project root and determine:21- **Project name** — from `package.json` `name`, `pyproject.toml` `[project].name`, `go.mod` `module`, `Cargo.toml` `[package].name`, or fallback to repo dir name22- **Language & runtime** — `package.json` (Node + lockfile flavor), `requirements.txt` / `pyproject.toml` (Python), `go.mod` (Go), `Cargo.toml` (Rust), `pom.xml` / `build.gradle` (JVM), `*.csproj` (.NET)23- **Common scripts** — Node `scripts.{dev,build,test,lint,typecheck}`; Python `tox.ini` / `Makefile`; Go/Rust task tools24- **Test framework** — vitest, jest, pytest, go test, cargo test, etc.25- **Repo conventions** — existing `.editorconfig`, `.prettierrc`, `eslint.config.*`, `pre-commit-config.yaml`2627If the user provided context (e.g., "this is a Next.js + Prisma app"), use it; otherwise infer from files. Don't ask questions you can answer from disk.2829### 2. Decide the target file(s)3031| User wants | Write |32|---|---|33| Codex / OpenAI tools only | `AGENTS.md` |34| Claude Code only | `CLAUDE.md` |35| Both, kept in sync | `AGENTS.md` + `CLAUDE.md` (identical content), or `AGENTS.md` plus a one-line `CLAUDE.md` that says "See AGENTS.md" |36| Single source (recommended) | `AGENTS.md` + `CLAUDE.md` symlink → `AGENTS.md` |3738Default to "both, identical content" unless the user specifies — it's the lowest-risk option and works everywhere.3940### 3. Compose content4142Use this canonical structure (load `references/agents-md-spec.md` if you need the field-by-field rationale or cross-vendor details):4344```markdown45# <Project name>4647<one-sentence description>4849## Tech stack5051- <language + version>52- <framework + version>53- <database / runtime / deployment>5455## Dev commands5657- Install: `<command>`58- Dev server: `<command>`59- Build: `<command>`60- Test: `<command>` (unit) / `<command>` (e2e)61- Lint / typecheck: `<command>`6263## Code conventions6465- <indent + line length>66- <import style>67- <naming conventions>68- <test colocation>69- <commit style>7071## Architecture notes7273<2-5 bullets on layout — where routes live, where business logic lives, what's shared>7475## Out of scope for AI agents7677<deliberate "don't touch" list — generated files, secrets, migrations, etc.>78```7980Keep it under ~150 lines. AI agents skim — verbose docs are skipped or ignored.8182### 4. Write files8384- Use canonical line endings for the OS (LF on macOS/Linux)85- Don't add a trailing summary or "generated by" footer — the file is now the user's86- If a file already exists, **read it first**, propose a diff, and ask the user before overwriting8788### 5. Verify8990- Print the relative paths written91- If both `AGENTS.md` and `CLAUDE.md` were written, confirm they're byte-identical (or show the symlink)92- Suggest the user commit the files9394## References9596- `references/agents-md-spec.md` — full cross-vendor convention summary (Anthropic, OpenAI, Cursor, etc.) — load on demand for spec details, vendor matrix, and the AGENTS.md ≠ SKILL.md distinction97- Anthropic Agent Skills spec: https://github.com/anthropics/skills98- OpenAI Codex AGENTS.md guide: https://developers.openai.com/codex/guides/agents-md99- agents.md cross-vendor standard: https://agents.md100101---102> Source: [anton-abyzov/vskill](https://github.com/anton-abyzov/vskill) — distributed by [TomeVault](https://tomevault.io).103<!-- tomevault:4.0:skill_md:2026-05-23 -->