Context
Surfaced while re-syncing a derived repo (ptr727/LanguageTags) against the template (downstream heads-up issue ptr727/LanguageTags#176).
Gap
The verbatim-carry guidance in AGENTS.md ("Files and Sections Derived Repos Must Carry Verbatim") describes .github/copilot-instructions.md as a narrow drop-in ("the whole file is a drop-in ... drop language-specific style pointers that don't apply"), but it does not say where project-specific conventions should live instead.
A derived repo had accumulated its API-design rules and public-API contract notes (factory-only construction, immutability, parse/validate/normalize semantics, normalization casing, grandfathered-tag handling) inside .github/copilot-instructions.md. That file is read by GitHub Copilot / VS Code generators specifically. When a different agent (Claude Code, Codex, Cursor, ...) reviews a PR it reads AGENTS.md and never sees those rules - so provider choice silently changes which project rules an agent honors.
Suggested clarification
State explicitly in the template that:
- Project-specific conventions and API/behavioral contracts belong in
AGENTS.md (the agent-agnostic canonical file every coding agent reads).
.github/copilot-instructions.md stays narrow - provider-specific mechanics (the Copilot review runbook) plus the inline commit/PR-title summary - and is not a home for project rules.
- Rationale: non-Copilot agents only read
AGENTS.md, so any rule a reviewer must follow has to live there to be provider-independent.
This keeps the "copilot-instructions.md is narrow" contract meaningful by answering the natural follow-up ("then where do my project rules go?").
Resolution in the derived repo
LanguageTags moved its API rules into AGENTS.md ("Library API Conventions") and slimmed .github/copilot-instructions.md back to the narrow template shape.
Context
Surfaced while re-syncing a derived repo (ptr727/LanguageTags) against the template (downstream heads-up issue ptr727/LanguageTags#176).
Gap
The verbatim-carry guidance in
AGENTS.md("Files and Sections Derived Repos Must Carry Verbatim") describes.github/copilot-instructions.mdas a narrow drop-in ("the whole file is a drop-in ... drop language-specific style pointers that don't apply"), but it does not say where project-specific conventions should live instead.A derived repo had accumulated its API-design rules and public-API contract notes (factory-only construction, immutability, parse/validate/normalize semantics, normalization casing, grandfathered-tag handling) inside
.github/copilot-instructions.md. That file is read by GitHub Copilot / VS Code generators specifically. When a different agent (Claude Code, Codex, Cursor, ...) reviews a PR it readsAGENTS.mdand never sees those rules - so provider choice silently changes which project rules an agent honors.Suggested clarification
State explicitly in the template that:
AGENTS.md(the agent-agnostic canonical file every coding agent reads)..github/copilot-instructions.mdstays narrow - provider-specific mechanics (the Copilot review runbook) plus the inline commit/PR-title summary - and is not a home for project rules.AGENTS.md, so any rule a reviewer must follow has to live there to be provider-independent.This keeps the "copilot-instructions.md is narrow" contract meaningful by answering the natural follow-up ("then where do my project rules go?").
Resolution in the derived repo
LanguageTags moved its API rules into
AGENTS.md("Library API Conventions") and slimmed.github/copilot-instructions.mdback to the narrow template shape.