Description 833 -> 239 chars, body 370 -> 387 words, Gotchas 41% -> 20%. The file-type enumeration moves to a new references/provider-matrix.md; the composition note was already in README.md. Three defects a clean-context audit found, all fixed: The 'never edits AGENTS.md' prohibition had become a justification clause on the false branch of a conditional, so the common path never read a sentence binding it. That matters because the bundled validator's own remediation text tells the agent to move content into AGENTS.md, so a size FAIL actively invited the prohibited edit. Restored as a standing imperative, plus a counter at the step where the trap fires. A Gotcha asserted that validate-adapter.sh fails without --no-import-syntax. The flag is a no-op -- both branches reduce to the same expression. Reverted to an instruction; the script defect is #115. The boundary clauses used pronouns to dodge the #110 regex, and 'Not auditing it' resolved to CLAUDE.md as readily as to AGENTS.md -- routing 'audit my CLAUDE.md' to a skill whose own description declines it. Refs #99
2.9 KiB
name, description, allowed-tools, metadata
| name | description | allowed-tools | metadata | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| provider-adapter-author | Use when a provider file (CLAUDE.md, .cursor rules, copilot-instructions) duplicating the repo's AGENTS.md should be cut to a thin adapter. Not writing the AGENTS file -> `agentsmd-author`. Not auditing the AGENTS file -> `agentsmd-audit`. | Bash Read Edit Write |
|
Gotchas
- Assume a provider has no cross-file import mechanism until you have confirmed it has one. Claude Code is the exception, not the rule: a
CLAUDE.mdmay consist of nothing but@pathlines, while the same@AGENTS.mdline in a Cursor rule or a Copilot instructions file is inert text no tool resolves. Pass--no-import-syntaxtoscripts/validate-adapter.shfor those providers. - Works standalone or composed-into by
agentsmd-author— behave identically either way; don't assume a caller skill exists.
Step 1 — Detect
Find the provider instruction file to convert. Before searching, read references/provider-matrix.md — skip it only when the target is already a known root CLAUDE.md, which is the common case.
Then confirm AGENTS.md exists at the repo root. If it does not, stop and tell the user to run agentsmd-author first — there is nothing to adapt to.
Step 2 — Diff and rewrite
Read the provider file and AGENTS.md side by side. Separate the provider file's content into two buckets: lines that restate what AGENTS.md already owns (universal rules, conventions, project overview) versus lines that are genuinely provider-specific (tool syntax, IDE behavior, model-specific instructions). Rewrite the provider file:
- Providers with import syntax (Claude Code): replace the redundant bucket with an
@AGENTS.md(or correct relative path) import line, keep the provider-specific bucket below it. - Providers without import syntax (Cursor, Copilot, etc.): replace the redundant bucket with a short pointer sentence mentioning
AGENTS.md, keep the provider-specific bucket.
The provider file is the only file this skill ever writes. Never create or edit AGENTS.md — not in this step, not in any step, whatever the payoff looks like.
Strip only what is genuinely redundant. Provider-specific material stays even when it is short — the goal is thin, not empty.
Step 3 — Self-validate
Run the bundled check before finishing — this is the skill's own closeout gate; there is no separate paired audit skill for this concern:
bash scripts/validate-adapter.sh [--no-import-syntax] [--max-lines N] <adapter-file> <agents-md-file>
Fix any FAIL by editing the provider file, and re-run until it exits 0. The size FAIL advises moving provider-agnostic content into AGENTS.md; disregard that half of its wording and delete the redundant lines instead.
Step 4 — Report
State which file was converted, what was removed versus kept, and the validator's final result.