The role of AGENTS.md in a repo using .github/copilot-instructions.md as the…
The role of AGENTS.md in a repo using .github/copilot-instructions.md as the sole instructions source
- The Copilot CLI (v1.0.12, used in `research-loop.yml`) officially reads both `AGENTS.md` and `.github/copilot-instructions.md` when both are present, but a verified bug report (GitHub issue #489, filed against v0.0.353) documents that `AGENTS.md` is silently ignored in favour of `copilot-instructions.md` in at least one version; fix status in v1.0.12 is unconfirmed
- The Copilot Coding Agent (web, assigned via GitHub Issues) reads `AGENTS.md`, `.github/copilot-instructions.md`, `.github/instructions/*.instructions.md`, `CLAUDE.md`, and `GEMINI.md` as additive instruction sources; `AGENTS.md` support was added in the 2025-08-28 changelog entry
- The Claude iOS Code feature (dispatched via mobile app to Claude Code Desktop) reads `CLAUDE.md` only; it does not read `AGENTS.md` or `.github/copilot-instructions.md`, and there is an open GitHub issue (#6235 in `anthropics/claude-code`) requesting native `AGENTS.md` support that remains unresolved
- The `AGENTS.md` specification, stewarded by the Agentic AI Foundation under the Linux Foundation, supports both root-level and directory-scoped placement using a nearest-file-wins hierarchy, and has no native import, include, or file-reference syntax
- A thin pointer `AGENTS.md` (one line referencing `copilot-instructions.md`) is not a viable cross-tool compatibility solution because agents read instruction file content as context input, not as file-loading directives, making adherence to such a pointer unreliable and unverifiable
- ADR-0006 fully migrated all content from the previous `AGENTS.md` into `.github/copilot-instructions.md`; no instructions were lost in the deletion, meaning restoring `AGENTS.md` from scratch would require duplicating content already in `copilot-instructions.md`
- Of the five inspectable repos in the davidamitchell organisation, only `Personal-Assistant-` has `AGENTS.md` at root; `Latest-developments-`, `Agent-Evaluation`, `Policy-LSP`, and `Research` all lack it, making `Personal-Assistant-` the outlier rather than Research
- `.github/copilot-instructions.md` is the reliably read instruction file for the Copilot CLI regardless of whether a bug fix lands for `AGENTS.md` support, because the official documentation designates it as the always-used repository-wide instruction surface for the Copilot CLI
Research Question
AGENTS.md has emerged as the cross-tool convergence format for agent project instructions, supported by OpenAI Codex, GitHub Copilot, Claude Code, Cursor, Aider, Gemini Command Line Interface (CLI), and others. This repo deleted AGENTS.md in Architecture Decision Record (ADR)-0006 (2026-03-07) in favour of .github/copilot-instructions.md as the single source of truth. Is that the right call? What does each tool actually read, and should AGENTS.md be restored: as content, as a pointer, or not at all?
Q1: What tools read AGENTS.md vs .github/copilot-instructions.md
- For the tools used in this repo (Copilot coding agent via GitHub Issues, Claude iOS (Apple's mobile operating system)
codefeature, theresearch-loop.ymlCopilot CLI workflow): which of these readAGENTS.mdat the repo root? Which read.github/copilot-instructions.md? Do any read both? - Is there a confirmed loading order or priority between the two files for any of these tools?
- Does the
agents.mdspecification define a standard for where the file must live (root only, or directory-scoped)?
Q2: The pointer pattern vs content duplication
- If
AGENTS.mdneeds to exist for cross-tool compatibility but.github/copilot-instructions.mdholds the content, is the correct pattern a one-lineAGENTS.mdthat says "see.github/copilot-instructions.md"? - Do agents (Copilot, Claude) follow pointer/import patterns in instruction files, or do they treat the file content literally?
- What did the previous
AGENTS.mdcontain before ADR-0006 deleted it? Is any of that content now absent fromcopilot-instructions.md?
Q3: Consistency with other repos in the davidamitchell organisation
- Do
davidamitchell/Latest-developments-,davidamitchell/Agent-Evaluation,davidamitchell/Personal-Assistant-,davidamitchell/Memory-System, anddavidamitchell/Policy-LSPhave anAGENTS.mdat root? - Is the current Research repo setup (no
AGENTS.md, noCLAUDE.md) consistent with the rest of the organisation, or is it an outlier? - What is the correct organisation-wide standard:
AGENTS.mdas primary withcopilot-instructions.mdpointing to it, orcopilot-instructions.mdas primary withAGENTS.mdoptionally pointing to it?
Findings
Executive Summary
Deleting AGENTS.md in favour of .github/copilot-instructions.md as sole instructions source is the better-supported approach for this repo's two primary tools. [inference] The Copilot CLI (used in research-loop.yml) reads .github/copilot-instructions.md reliably; AGENTS.md support in the CLI exists in documentation but has a verified bug that may suppress it in practice. The Copilot Coding Agent (web, via GitHub Issues) reads both files, meaning restoring AGENTS.md would add additive but redundant context for that tool. The thin pointer pattern (a one-line AGENTS.md referencing copilot-instructions.md) is not viable because the AGENTS.md specification has no import syntax and agents read instruction files literally. The one genuine gap in the current setup is Claude iOS Code, which reads only CLAUDE.md and is served by neither existing file.
Key Findings
-
The Copilot CLI (v1.0.12, used in
research-loop.yml) officially reads bothAGENTS.mdand.github/copilot-instructions.mdwhen both are present, but a verified bug report (GitHub issue #489, filed against v0.0.353) documents thatAGENTS.mdis silently ignored in favour ofcopilot-instructions.mdin at least one version; fix status in v1.0.12 is unconfirmed. [confidence: high] -
The Copilot Coding Agent (web, assigned via GitHub Issues) reads
AGENTS.md,.github/copilot-instructions.md,.github/instructions/*.instructions.md,CLAUDE.md, andGEMINI.mdas additive instruction sources;AGENTS.mdsupport was added in the 2025-08-28 changelog entry. [confidence: high] -
The Claude iOS Code feature (dispatched via mobile app to Claude Code Desktop) reads
CLAUDE.mdonly; it does not readAGENTS.mdor.github/copilot-instructions.md, and there is an open GitHub issue (#6235 inanthropics/claude-code) requesting nativeAGENTS.mdsupport that remains unresolved. [confidence: high] -
The
AGENTS.mdspecification, stewarded by the Agentic AI Foundation under the Linux Foundation, supports both root-level and directory-scoped placement using a nearest-file-wins hierarchy, and has no native import, include, or file-reference syntax. [confidence: high] -
A thin pointer
AGENTS.md(one line referencingcopilot-instructions.md) is not a viable cross-tool compatibility solution because agents read instruction file content as context input, not as file-loading directives, making adherence to such a pointer unreliable and unverifiable. [confidence: high] -
ADR-0006 fully migrated all content from the previous
AGENTS.mdinto.github/copilot-instructions.md; no instructions were lost in the deletion, meaning restoringAGENTS.mdfrom scratch would require duplicating content already incopilot-instructions.md. [confidence: high] -
Of the five inspectable repos in the davidamitchell organisation, only
Personal-Assistant-hasAGENTS.mdat root;Latest-developments-,Agent-Evaluation,Policy-LSP, andResearchall lack it, makingPersonal-Assistant-the outlier rather than Research. [confidence: high] -
.github/copilot-instructions.mdis the reliably read instruction file for the Copilot CLI regardless of whether a bug fix lands forAGENTS.mdsupport, because the official documentation designates it as the always-used repository-wide instruction surface for the Copilot CLI. [confidence: high] -
If restoring
AGENTS.mdwith real content, it would need to be maintained in sync withcopilot-instructions.md; maintaining two parallel instruction files creates a divergence risk [inference], and the current single-file approach eliminates that maintenance surface. [confidence: medium] -
[inference] If instructions for the Claude iOS Code feature are desired, adding a
CLAUDE.md(not anAGENTS.md) is the appropriate action, becauseCLAUDE.mdis the only instruction file that Claude Code's read path includes. [confidence: high]
Assumptions
- Assumption: A thin pointer
AGENTS.mdis insufficient for cross-tool compatibility. Confirmed by investigation. TheAGENTS.mdspec has no import syntax; agents read files as context. The assumption was correct. - Assumption: Other repos in the organisation have
AGENTS.md. Partially confirmed. OnlyPersonal-Assistant-has it; three of four other repos do not, matching Research's current state.
Analysis
The evidence weighs in favour of the current setup on all three tested dimensions: tool coverage, maintenance cost, and organisation consistency.
The prior research item Research/completed/2026-03-22-using-awesome-copilot-across-repos.md recommended adding AGENTS.md to Research as a first-wave improvement. That recommendation was based on the Copilot Coding Agent (web) being able to read AGENTS.md directly and on Research lacking it while Personal-Assistant- had it. The present investigation refines that recommendation for this specific repo: copilot-instructions.md already holds the full instruction content; the Copilot CLI (the primary autonomous tool in research-loop.yml) has a documented bug that may suppress AGENTS.md; and restoring AGENTS.md would duplicate existing content without adding new tool coverage. The prior recommendation remains applicable to Latest-developments- and Agent-Evaluation, which lack equivalent copilot-instructions.md files and would gain first-time coverage from an AGENTS.md. .github/copilot-instructions.md is read reliably by both tools that matter for autonomous coding work in this repo (Copilot CLI and Copilot Coding Agent web). AGENTS.md is either redundant (Copilot Coding Agent, which reads both) or unreliable (Copilot CLI bug) for adding new coverage. The only tool not served by the current setup is Claude iOS Code, which would require CLAUDE.md, not AGENTS.md.
The maintenance-cost argument reinforces the status quo: copilot-instructions.md is already the complete and authoritative instructions source. Adding AGENTS.md creates a second copy to maintain; maintaining two parallel instruction files creates a divergence risk [inference].
The organisation-consistency argument also supports the status quo: three of four comparable repos lack AGENTS.md. Personal-Assistant- is the outlier, not Research.
Risks, Gaps, and Uncertainties
- The Copilot CLI
AGENTS.mdbug (issue #489) status in v1.0.12 is unconfirmed. If the bug is fixed, the Copilot CLI would read both files, makingAGENTS.mdharmless to restore (additive context). If unfixed,AGENTS.mdremains silently ignored. - The Claude iOS Code gap: no instruction file in this repo is read by Claude iOS Code. If the owner uses Claude iOS Code to work in this repo, it operates without project-specific instructions. This is a known gap, not a regression from ADR-0006 (the previous
AGENTS.mdwas also not on Claude's read path). Memory-Systemrepo status is unknown (404 on prior inspection); its instruction-file state could not be assessed.- The AGENTS.md specification's adoption rate (25+ tools, 60k+ open-source projects per agents.md) will increase over time. If new tools are adopted in this repo that read
AGENTS.mdbut notcopilot-instructions.md, the current setup would miss them.
Open Questions
- Is the Copilot CLI AGENTS.md bug (issue #489) fixed in v1.0.12? Direct test by creating a temporary
AGENTS.mdand verifying whether its content appears in a CLI session would confirm this. Out of scope for this item; could become a backlog item. - Should
CLAUDE.mdbe added to this repo? If Claude iOS Code is used for repo work, aCLAUDE.mdat root would be the correct file to add. This is a separate decision fromAGENTS.md. Out of scope. - Should
Personal-Assistant-be the pattern to follow or an exception? It is the only org repo with bothAGENTS.mdandcopilot-instructions.md. Whether to standardise on its pattern or keep it as an exception warrants an explicit org-level decision.
Output
- Type: knowledge
- Description: Confirmed that the current Research repo setup (
.github/copilot-instructions.mdonly, noAGENTS.md) is correct for its primary tools (Copilot CLI and Copilot Coding Agent web), with a documented gap for Claude iOS Code (requiresCLAUDE.md). Thin pointer pattern is not viable. Research is not an org outlier; three other repos also lackAGENTS.md. - Links:
Open Questions
- Does the Copilot coding agent read
AGENTS.mdat the repo root when assigned a GitHub issue? - Does Claude iOS
codefeature readAGENTS.md? - Do any of the other davidamitchell repos have
AGENTS.mdtoday?