refactor(core): retrofit provider-adapter-author to the ADR-0020 contract
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
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
---
|
||||
source_keys:
|
||||
- adr-0002-0003-two-tier-claude-md
|
||||
---
|
||||
|
||||
# Known provider instruction files
|
||||
|
||||
Which files to look for when detecting a provider-specific instruction file, whether each provider
|
||||
resolves a cross-file import, and what a thin adapter therefore looks like for it.
|
||||
|
||||
| Provider | File(s) | Import syntax | Thin adapter shape | Validator flag |
|
||||
|---|---|---|---|---|
|
||||
| Claude Code | `CLAUDE.md` at the repo root, plus any deployed copies | Yes — `@path` lines, e.g. `@AGENTS.md` | One or more `@` import lines; no other content is required | none |
|
||||
| Cursor | `.cursor/rules/*.mdc` | No | A short sentence pointing at `AGENTS.md`, plus the rule's own frontmatter and provider-specific body | `--no-import-syntax` |
|
||||
| GitHub Copilot | `.github/copilot-instructions.md` | No | A short sentence pointing at `AGENTS.md`, plus Copilot-only instructions | `--no-import-syntax` |
|
||||
| Anything else | tool-specific instruction file at whatever path the tool documents | Assume no | Text pointer, as above | `--no-import-syntax` |
|
||||
|
||||
A provider not listed here is not evidence it has an import mechanism. Confirm against that tool's
|
||||
own documentation before emitting an `@`-style line; an unresolved import reads as literal text and
|
||||
silently drops every rule the adapter was supposed to defer to.
|
||||
|
||||
Detection is a search, not a lookup: a repo may hold more than one of these, and each one converts
|
||||
independently against the same `AGENTS.md`.
|
||||
@@ -5,5 +5,5 @@
|
||||
- **URL:** (in-repo precedent — not an external source or plugin research corpus entry)
|
||||
- **Description:** This repo's own two-tier CLAUDE.md/AGENTS.md pattern: AGENTS.md is the provider-agnostic source of always-on rules; provider-specific files (CLAUDE.md) become thin adapters that import it (`@AGENTS.md` plus provider-specific additions). Grounds this skill's entire adapter-conversion design — the "thin adapter" shape, the `@`-import convention, and the size/duplication expectations enforced by `scripts/validate-adapter.sh`.
|
||||
- **Research doc:** docs/adr/0002-two-tier-claude-md.md, docs/adr/0003-agents-md-provider-agnostic-entry-point.md, providers/claude-code/CLAUDE.md (in-repo ADRs and a live example, not a plugin research corpus entry; referenced here since this skill's design is modeled directly on an existing implementation rather than external research)
|
||||
- **Contributing files:** SKILL.md
|
||||
- **Contributing files:** SKILL.md, references/provider-matrix.md
|
||||
- **Status:** `extracted`
|
||||
|
||||
Reference in New Issue
Block a user