Agent instruction loading and skills access

Agent instruction loading and skills access: Copilot coding agent, Claude iOS code feature, and the role of AGENTS.md

2026-03-29 · agentic-ai memory-context tools-infrastructure knowledge-management · medium · source → · wiki →
key claims
  1. The GitHub Copilot coding agent, when triggered by a GitHub issue assignment, reads `.github/copilot-instructions.md` automatically before starting work, as confirmed by GitHub's official documentation and the August 2025 coding agent changelog
  2. The Copilot coding agent has supported `AGENTS.md` at the repo root since August 2025, and when both `AGENTS.md` and `.github/copilot-instructions.md` exist, both files are loaded and provided to the agent as context -- the dual-loading behaviour is documented for the Copilot CLI and inferred to apply to the coding agent
  3. The Copilot coding agent does not initialise git submodules by default, meaning the `.github/skills/` submodule directory appears as an empty folder during all agent sessions unless a `copilot-setup-steps.yml` workflow is configured with `submodules: recursive` and a token with access to the submodule repository
  4. The Claude iOS app's `code` feature is Claude Code on the web: Anthropic's remote code execution environment where the user selects a GitHub repository and Claude works on tasks in a sandboxed cloud environment, creating a pull request (PR) when complete
  5. Claude Code on the web follows the same instruction file loading behaviour as Claude Code CLI: it reads `CLAUDE.md` and `AGENTS.md` at the repository root automatically, and does not read `.github/copilot-instructions.md` because that path is Copilot-specific and is not part of Claude Code's file discovery logic
  6. The current repo has no `CLAUDE.md` and no `AGENTS.md` at the root, which means Claude Code (in all surfaces including iOS) starts every session without any of the project's non-negotiable constraints, research workflow rules, coding standards, or session log requirements
  7. ADR-0006 (2026-03-07) removed `AGENTS.md` based on the incorrect assumption that `.github/copilot-instructions.md` was sufficient for all agents, leaving Claude Code without an instruction entry point; this is a documented gap in the ADR's reasoning that warrants an amendment
  8. Restoring `AGENTS.md` at the repo root resolves the Claude Code instruction gap without disrupting the Copilot coding agent setup, because the Copilot CLI documentation confirms both files are loaded when present and this behaviour is inferred to extend to the coding agent

Research Question

Given the current repo setup -- instructions in .github/copilot-instructions.md, skills submodule at .github/skills/, no AGENTS.md at root, no CLAUDE.md at root -- what does each agent actually load at the point it starts work, and does it have access to the skills?

Q1 -- GitHub Copilot coding agent (GitHub issue → assign to Copilot → draft pull request (PR))

Q2 -- Claude iOS app (code section / feature)

Q3 -- The role of AGENTS.md for both agents

Findings

Executive Summary

The GitHub Copilot coding agent reads .github/copilot-instructions.md automatically when assigned a GitHub issue, and since August 2025 also reads AGENTS.md, CLAUDE.md, and GEMINI.md when present. Claude Code on the web (the Claude iOS app's code feature) reads CLAUDE.md automatically and is inferred to read AGENTS.md based on cross-tool documentation patterns, but does NOT read .github/copilot-instructions.md -- this path is Copilot-specific. The current repo has neither CLAUDE.md nor AGENTS.md at root, meaning every Claude Code session starts without project instructions, context, or research workflow guidance. The fix is to create AGENTS.md at the repo root pointing to or containing the instructions; this single change closes the Claude Code instruction gap without disrupting the Copilot coding agent setup. ADR-0006's stated assumption that .github/copilot-instructions.md was "sufficient for all agents" was incorrect and must be amended.

Key Findings

  1. The GitHub Copilot coding agent, when triggered by a GitHub issue assignment, reads .github/copilot-instructions.md automatically before starting work, as confirmed by GitHub's official documentation and the August 2025 coding agent changelog. (high confidence)

  2. The Copilot coding agent has supported AGENTS.md at the repo root since August 2025, and when both AGENTS.md and .github/copilot-instructions.md exist, both files are loaded and provided to the agent as context -- the dual-loading behaviour is documented for the Copilot CLI and inferred to apply to the coding agent. (medium confidence -- coding-agent-specific dual-loading confirmation not in primary source)

  3. The Copilot coding agent does not initialise git submodules by default, meaning the .github/skills/ submodule directory appears as an empty folder during all agent sessions unless a copilot-setup-steps.yml workflow is configured with submodules: recursive and a token with access to the submodule repository. (high confidence)

  4. The Claude iOS app's code feature is Claude Code on the web: Anthropic's remote code execution environment where the user selects a GitHub repository and Claude works on tasks in a sandboxed cloud environment, creating a pull request (PR) when complete. (high confidence)

  5. Claude Code on the web follows the same instruction file loading behaviour as Claude Code CLI: it reads CLAUDE.md and AGENTS.md at the repository root automatically, and does not read .github/copilot-instructions.md because that path is Copilot-specific and is not part of Claude Code's file discovery logic. (medium confidence -- AGENTS.md reading is inferred from VS Code docs and cross-tool patterns, not from a primary Anthropic statement)

  6. The current repo has no CLAUDE.md and no AGENTS.md at the root, which means Claude Code (in all surfaces including iOS) starts every session without any of the project's non-negotiable constraints, research workflow rules, coding standards, or session log requirements. (high confidence)

  7. ADR-0006 (2026-03-07) removed AGENTS.md based on the incorrect assumption that .github/copilot-instructions.md was sufficient for all agents, leaving Claude Code without an instruction entry point; this is a documented gap in the ADR's reasoning that warrants an amendment. (high confidence)

  8. Restoring AGENTS.md at the repo root resolves the Claude Code instruction gap without disrupting the Copilot coding agent setup, because the Copilot CLI documentation confirms both files are loaded when present and this behaviour is inferred to extend to the coding agent. (medium confidence -- follows from the same dual-loading inference as KF2)

  9. The practitioner-recommended approach for multi-agent instruction sharing is to keep .github/copilot-instructions.md as the Copilot-specific file and to place AGENTS.md (or symlink it) at the repo root as the cross-agent entry point read by Claude Code, Cursor, Aider, Codex, Gemini CLI, and others. (medium confidence -- well-supported by practitioner evidence but not explicitly stated in any single official source)

  10. Enabling submodule access for the Copilot coding agent requires creating .github/workflows/copilot-setup-steps.yml with an actions/checkout@v4 step using submodules: recursive and a PAT stored as a secret in the copilot GitHub Actions environment with read access to davidamitchell/Skills. (high confidence)

Assumptions

Analysis

How evidence was weighed: Primary sources (GitHub official documentation, Anthropic official documentation) provided the foundational facts. Community discussion threads provided confirmation for the submodule gap -- an area where official documentation is silent. Practitioner articles (symlink patterns) confirmed the Claude Code file-loading behaviour by demonstrating the workaround that would be unnecessary if Claude Code read .github/copilot-instructions.md natively.

Trade-offs:

Recommended resolution: Option A (restore AGENTS.md with full instructions content, or content that references and supplements copilot-instructions.md). [Opinion] This is the most direct solution with the best-confirmed loading behaviour across both agents.

ADR-0006 assessment: [Opinion] The decision's intent (a single unified instruction source) was sound. The execution was incomplete: the assumption that .github/copilot-instructions.md covers all agents was not verified at the time. The right outcome is not to reverse ADR-0006 but to amend it: .github/copilot-instructions.md is the canonical content file; AGENTS.md is the cross-agent entry point that makes the content accessible to non-Copilot tools.

Risks, Gaps, and Uncertainties

Open Questions

  1. Does Claude Code on the web initialise git submodules, or does it also see .github/skills/ as an empty directory? If so, skills are inaccessible from both primary entry points. (Proposed backlog item: 2026-03-29-claude-code-web-submodule-access.md)
  2. Does creating AGENTS.md as a thin pointer to .github/copilot-instructions.md work, or does Claude Code require the content to be directly in the file it loads?
  3. Does the Copilot coding agent's instruction loading behaviour differ between plan tiers (Copilot Pro, Business, Enterprise)?
  4. What is the correct ADR amendment format for updating ADR-0006 to reflect the Claude Code gap?

Output

Open Questions


Connected items

Loading…

View full knowledge graph →