-
Notifications
You must be signed in to change notification settings - Fork 0
2026 03 29 multi agent repo setup
Multi-agent repo setup: best practices for configuring a repository to be worked on by Claude (iOS and GitHub Issues) and Copilot (Spaces and GitHub Issues)
What are the best practices for setting up a GitHub repository so that it can be worked on effectively by multiple Artificial Intelligence (AI) agents, specifically: (1) Claude via the iOS Claude app, (2) Claude via GitHub Issues assigned to Claude, (3) Copilot via Copilot Spaces, and (4) Copilot via GitHub Issues assigned to the Copilot coding agent, with consistent instruction loading, environment setup, and quality outcomes across all four surfaces?
In scope:
- Repository configuration files that each agent reads on startup (
AGENTS.md,CLAUDE.md,.github/copilot-instructions.md,copilot-setup-steps.yml,devcontainer.json) - How GitHub Issues work with each agent surface (Copilot coding agent and Claude GitHub integration)
- How Copilot Spaces work and what repository configuration they respect
- How the Claude iOS
codefeature accesses and configures itself from the repository - Minimal diff from this repo's current state to support all four surfaces
Out of scope:
- Local IDE setups (no Codespaces, no
git cloneterminal use) - Third-party agent tools (Cursor, Aider, Codex) beyond what the research reveals incidentally
- Agent capability comparison (what each agent can do): focus is configuration and instruction loading
Constraints: Must be achievable without adding credentials beyond those already in the repo. No local IDE access; the owner operates exclusively via the GitHub website and iOS apps.
The repository is actively used by two agents across four distinct surfaces. Each surface may load different instruction files, run in a different environment, and have different access to the skills submodule at .github/skills/. At present, the repo holds instructions only in .github/copilot-instructions.md (Architecture Decision Record (ADR)-0006 deleted AGENTS.md and .claude/CLAUDE.md on 2026-03-07). Whether this file is loaded by all four surfaces is unverified.
Three related backlog items were added on 2026-03-28 that address sub-questions directly relevant here:
-
2026-03-28-agent-instruction-loading-and-skills-access, what each agent loads and whether it reads.github/skills/ -
2026-03-28-agents-md-role-and-cross-agent-instructions, the role ofAGENTS.mdin a repo usingcopilot-instructions.md -
2026-03-28-environment-setup-consistency, environment setup (dependencies, submodule) for each agent surface
This item is the parent strategy question: given findings from those three items, what is the complete, minimal repo configuration that makes all four surfaces work well together?
-
Q1, GitHub Issues → Copilot coding agent: What repo configuration does the Copilot coding agent need to receive instructions, initialise the environment, and access the skills submodule when it picks up an assigned GitHub issue? What is the role of
.github/copilot-setup-steps.yml? What files does it read before planning? -
Q2, Copilot Spaces: What is Copilot Spaces? How does it interact with a repository? What configuration does it respect, does it read
.github/copilot-instructions.md,AGENTS.md, or a Spaces-specific file? Is it in scope for this repository? -
Q3, GitHub Issues → Claude: Is there a GitHub integration for assigning issues to Claude directly (analogous to the Copilot coding agent)? If so, what repo configuration does it require,
CLAUDE.md,AGENTS.md, a GitHub App? What is the setup process? -
Q4, Claude iOS app (
codefeature): What files does the Claude iOScodefeature load when a repository is opened? Does it clone the repo locally, or operate via the GitHub Application Programming Interface (API)? What is the path to making the iOS surface read the same instructions as the other surfaces? -
Q5, Convergence and minimum viable configuration: Given answers to Q1–Q4, what is the smallest set of files that reliably serves all four agent surfaces? Is a thin
AGENTS.mdpointer the right pattern, or does each surface need a dedicated file? Map current state to recommended target state.
Starting points, papers, articles, videos, repos, docs.
- GitHub Copilot coding agent documentation — : entry point for coding agent behaviour and configuration
- GitHub Copilot custom instructions (.github/copilot-instructions.md) — : what the file covers and which surfaces load it
- copilot-setup-steps documentation — : schema and when it runs
- Copilot Spaces documentation — : what Spaces are and how they use repo config
- AGENTS.md specification / agentsmd.online — : cross-vendor standard for agent instruction files
- Anthropic Claude iOS app GitHub integration — : how Claude iOS interacts with repositories via connector
- Claude Code GitHub Actions documentation — : how GitHub Issues can be assigned to Claude via
anthropics/claude-code-action - Claude Code memory / CLAUDE.md documentation — : what files Claude Code auto-loads
-
docs-adr/0006-standardise-agent-instructions.md, local ADR documenting the decision to deleteAGENTS.md -
Research/completed/2026-03-08-ai-coding-harnesses-agent-philosophy.md, prior research onAGENTS.mdas cross-vendor standard -
Research/completed/2026-03-22-using-awesome-copilot-across-repos.md, prior research notingAGENTS.mdis read by GitHub web
Research question restated: What are the best practices for configuring a GitHub repository so that it can be worked on effectively by four distinct AI agent surfaces, (1) Claude via the iOS Claude app, (2) Claude via GitHub Issues using anthropics/claude-code-action, (3) Copilot via Copilot Spaces, and (4) Copilot via GitHub Issues using the Copilot coding agent, with consistent instruction loading, environment setup, and quality outcomes across all four?
Scope confirmed: In scope: per-repo configuration files only; instruction-loading behaviour per surface; environment setup for agentic tasks; minimum viable configuration delta from current state. Out of scope: local IDE, third-party tools beyond incidental discovery, capability comparison.
Constraints confirmed: No new credentials beyond those in the repo credential table (GITHUB_TOKEN, COPILOT_GITHUB_TOKEN, YOUTUBE_DATA_API, TAVILY_API_KEY). No local IDE; owner operates exclusively via GitHub website and iOS apps.
Output format: Knowledge article with actionable file-level recommendations. New backlog items for any implementation work.
Q1, Copilot coding agent (GitHub Issues → Copilot)
- Q1a: What instruction files does the Copilot coding agent read before planning?
- Q1b: In what order / with what precedence rules does it combine them?
- Q1c: What is
copilot-setup-steps.ymland when does it run? - Q1d: Does the Copilot coding agent check out submodules (including
.github/skills/)?
Q2, Copilot Spaces
- Q2a: What is a Copilot Space, a chat tool or a coding agent?
- Q2b: Does a Space auto-read
.github/copilot-instructions.mdorAGENTS.mdfrom attached repositories? - Q2c: What per-repo configuration, if any, influences a Space?
- Q2d: Is Copilot Spaces meaningfully in scope for this repo's agentic coding workflow?
Q3, Claude via GitHub Issues (anthropics/claude-code-action)
- Q3a: What triggers the Claude GitHub Actions workflow?
- Q3b: What instruction files does the Claude Code agent read in this context?
- Q3c: What credentials are required and are they available in this repo?
- Q3d: What GitHub App setup is required?
Q4, Claude iOS app (GitHub integration)
- Q4a: How does the Claude iOS app connect to a GitHub repository?
- Q4b: What is loaded, the entire repo, specific files, or something else?
- Q4c: Does the iOS integration auto-load any instruction file (e.g.,
CLAUDE.md,AGENTS.md)? - Q4d: Is the iOS GitHub integration a code-writing agent or a reading/analysis tool?
Q5, Convergence
- Q5a: Which surfaces can be served by
.github/copilot-instructions.mdalone? - Q5b: What is the minimum set of additional files needed to cover all reachable surfaces?
- Q5c: Is a thin
AGENTS.mdpointer pattern the correct approach? - Q5d: What surfaces are currently blocked by missing credentials?
[fact] The GitHub Copilot coding agent reads .github/copilot-instructions.md at the repository root for repository-wide instructions. (Source: GitHub Docs, adding-custom-instructions)
[fact] The Copilot coding agent also reads AGENTS.md files. When both AGENTS.md and .github/copilot-instructions.md exist at the repository root, the instructions in both files are used together. (Source: GitHub Docs, adding-custom-instructions)
[fact] The Copilot coding agent reads .github/instructions/*.instructions.md files for path-specific instructions, instructions that apply only to files matching a given glob pattern specified in frontmatter. (Source: GitHub Docs, best-practices coding agent)
[fact] The Copilot coding agent also incorporates organisation-level custom instructions when configured by an organisation admin. (Source: GitHub Docs, best-practices coding agent)
[fact] AGENTS.md directory-tree proximity rules apply: the nearest AGENTS.md to the file being edited takes precedence when multiple AGENTS.md files exist. (Source: GitHub Docs, adding-custom-instructions)
[fact] copilot-setup-steps.yml is a workflow file placed at .github/workflows/copilot-setup-steps.yml. It defines a GitHub Actions job called copilot-setup-steps whose steps run inside the Copilot coding agent's ephemeral environment before the agent begins work. (Source: GitHub Docs, customizing-the-development-environment-for-copilot-coding-agent)
[fact] Uses of copilot-setup-steps.yml include: pre-installing tools and dependencies; upgrading to larger GitHub-hosted runners; enabling self-hosted runners; setting environment variables; disabling or customising the agent's firewall. (Source: GitHub Docs, customizing-the-development-environment-for-copilot-coding-agent)
[fact] The current repository does NOT have a copilot-setup-steps.yml file. (Source: direct filesystem inspection of .github/workflows/)
[inference] Without a copilot-setup-steps.yml, the Copilot coding agent will start in a default Ubuntu environment without Python dependencies installed, without the .github/skills/ submodule checked out, and potentially without the virtual environment needed by src/. This means the agent cannot run make check or make test as required by .github/copilot-instructions.md.
[inference] The Copilot coding agent's ephemeral environment runs on GitHub-hosted Actions runners. Submodules are not checked out by default unless a copilot-setup-steps.yml step runs actions/checkout@v5 with submodules: recursive. Without this step, .github/skills/ will be an empty directory, and any skill files referenced in the instructions will be absent.
[fact] Copilot Spaces is a feature that allows users to create named "spaces" containing two types of context: (1) a free-text "Instructions" field describing what Copilot should focus on, and (2) "Sources", repositories, files, or other content attached as knowledge. (Source: GitHub Docs, creating-copilot-spaces)
[fact] A Copilot Space is primarily a chat/Question and Answer (Q&A) tool for organizing and accessing domain-specific knowledge. Spaces can launch Copilot coding agent tasks that write code and create pull requests, but the Space itself is a context-grounded assistant for answering questions about attached content. (Source: GitHub Docs, creating-copilot-spaces; Copilot Spaces with Coding Agent)
[fact] Copilot Spaces does NOT automatically read .github/copilot-instructions.md or AGENTS.md from attached repositories. Instructions for a Space are entered manually in the Space's "Instructions" field by the Space creator. (Source: GitHub Docs, creating-copilot-spaces)
[fact] When a repository is attached as a Source in a Space, Copilot always refers to the latest version of the code on the main branch of the repository. (Source: GitHub Docs, creating-copilot-spaces)
[inference] Copilot Spaces itself does not directly execute code or write pull requests, but it can launch Copilot coding agent tasks that do. Per-repo configuration files (.github/copilot-instructions.md, AGENTS.md) have no automatic effect on a Space's chat behavior; instructions must be manually entered. However, when a Space launches a coding agent task, that agent will respect the repository's configuration files. For the purposes of per-repo agent configuration best practices, Spaces is primarily out of scope as a direct consumer, though it can serve as an entry point to the Copilot coding agent.
[fact] The anthropics/claude-code-action GitHub Action enables Claude Code to act on GitHub Issues and pull request (PR) comments when triggered by a configurable phrase (default: @claude). The workflow listens to issue_comment, pull_request_review_comment, and issues events. (Source: Claude Code GitHub Actions docs)
[fact] When running via anthropics/claude-code-action, Claude reads CLAUDE.md using Claude Code's standard file discovery: walking up the directory tree from the working directory, loading every CLAUDE.md encountered, plus any CLAUDE.md files in subdirectories when those subdirectories are accessed. (Source: Claude Code memory docs)
[fact] The anthropics/claude-code-action does NOT auto-load .github/copilot-instructions.md. (Source: Claude Code GitHub Actions docs: the only instruction-file mechanism documented is CLAUDE.md and the prompt parameter)
[fact] Setting up anthropics/claude-code-action requires either: (a) ANTHROPIC_API_KEY as a repository secret for direct API access; (b) AWS Bedrock credentials (AWS_ROLE_TO_ASSUME); or (c) Google Cloud Vertex AI credentials (GCP_WORKLOAD_IDENTITY_PROVIDER, GCP_SERVICE_ACCOUNT). It also requires a GitHub App (APP_ID, APP_PRIVATE_KEY) for write access to create PRs. (Source: Claude Code GitHub Actions docs)
[fact] None of ANTHROPIC_API_KEY, APP_ID, APP_PRIVATE_KEY, AWS_ROLE_TO_ASSUME, GCP_WORKLOAD_IDENTITY_PROVIDER, or GCP_SERVICE_ACCOUNT are listed in this repository's available credentials table. (Source: .github/copilot-instructions.md credentials table)
[inference] The Claude-via-GitHub-Issues surface cannot be enabled in this repository without adding at least ANTHROPIC_API_KEY (or equivalent) and a GitHub App credential pair. Under the stated constraint of no new credentials, this surface is currently blocked.
[fact] The Claude iOS app includes Claude Code, a full coding agent feature that can write code, review code, create commits, open pull requests, and work autonomously in sandboxed cloud environments. When connected to GitHub repositories via the GitHub connector, Claude Code on iOS can perform the same coding tasks as the web version. (Source: Anthropic Claude Code on iOS; Claude Code iOS capabilities)
[fact] The Claude iOS GitHub integration indexes selected repositories as "project knowledge" via Anthropic's Connectors system. Users authorize the GitHub connector via the claude.ai web UI (Settings → Connectors), which syncs to the iOS app at next login. This allows Claude Code to browse files, analyze commit histories, and execute coding tasks with full repository context. (Source: Claude Help, Using the GitHub Integration)
[fact] Claude Code on iOS does NOT auto-load any specific instruction file (CLAUDE.md, AGENTS.md, .github/copilot-instructions.md) automatically on session start. However, it can read and use these files during execution when working on coding tasks. (Source: Claude Code memory docs)
[inference] Claude Code on iOS is a full coding agent that executes in cloud-based sandboxed environments, not limited to read-only operations. While the GitHub connector provides repository access for context, Claude Code can perform actual coding work including commits and pull requests. The .github/copilot-instructions.md and CLAUDE.md files are not auto-loaded at session start but can be discovered and used during task execution.
[assumption] The research item's mention of the "iOS Claude app code feature" refers to Claude Code running on iOS via the GitHub connector. The linked support article (10166833) was inaccessible during investigation; current evidence from multiple sources confirms Claude Code is available on iOS as a full coding agent, not just a read-only connector. Justification: Anthropic's announcements and documentation confirm Claude Code launched on iOS and web in October 2025, providing full coding capabilities on mobile devices.
[fact] The current repository has: .github/copilot-instructions.md (full, present), no AGENTS.md, no CLAUDE.md, no copilot-setup-steps.yml. (Source: direct filesystem inspection)
[fact] ADR-0006 deliberately deleted AGENTS.md and .claude/CLAUDE.md on 2026-03-07 to consolidate all agent instructions into .github/copilot-instructions.md. (Source: docs-adr/0006-standardise-agent-instructions.md)
[fact] Prior research (2026-03-22-using-awesome-copilot-across-repos) found that the Research repo lacks AGENTS.md, which was identified as the missing instruction layer for surfaces beyond Copilot in-IDE chat. (Source: Research/completed/2026-03-22-using-awesome-copilot-across-repos.md)
[inference] The "converged single file" assumption in ADR-0006 is only partially correct: .github/copilot-instructions.md covers the Copilot coding agent and Copilot chat surfaces. It does NOT cover: Claude Code GitHub Actions (needs CLAUDE.md), AGENTS.md-compatible agents (Cursor, OpenAI Codex, etc.), or the environment setup gap (copilot-setup-steps.yml).
[fact] AGENTS.md is supported by over 60,000 open-source repositories and is now formally stewarded by the Agentic AI Foundation under the Linux Foundation as an open cross-vendor standard supported by OpenAI, Google, Sourcegraph, GitHub, Cursor, and others. Claude Code is also listed as a compatible tool in the AGENTS.md specification. (Source: agentsmd.online, agentsmd/agents.md)
[inference] Adding a thin AGENTS.md that references .github/copilot-instructions.md (a pointer file) is the minimal-friction approach: it satisfies the AGENTS.md spec for all compatible agents while avoiding duplication. Copilot reads both files addictively, so a pointer is non-redundant.
[fact] The Copilot coding agent cannot run make check or python -m pytest without the Python virtual environment and dependencies installed, which currently requires a copilot-setup-steps.yml that runs pip install -e ".[dev]". (Source: Makefile, .github/copilot-instructions.md quick reference rule 7)
[inference] The minimum viable three-file addition to cover all currently-reachable surfaces (i.e., excluding Claude GitHub Actions which is credential-blocked) is: (a) AGENTS.md at root, (b) copilot-setup-steps.yml, and (c) CLAUDE.md at root (pre-positioned for when credentials become available). Adding CLAUDE.md now costs nothing and avoids a future gap.
Facts established:
- Copilot coding agent reads both
.github/copilot-instructions.mdandAGENTS.mdwhen present; they are additive. -
copilot-setup-steps.ymlruns before the Copilot coding agent starts; without it, Python deps are missing and the skills submodule is absent. - Claude Code GitHub Actions reads
CLAUDE.md; it does not read.github/copilot-instructions.md. - The Claude GitHub Actions surface requires
ANTHROPIC_API_KEY+ GitHub App credentials, neither of which is available in this repo. - Copilot Spaces is a manually-configured chat tool, not a coding agent; per-repo files do not auto-load.
- The Claude iOS GitHub integration indexes repos as knowledge; no instruction file is auto-loaded.
-
AGENTS.mdis a widely-adopted cross-vendor standard now under Linux Foundation stewardship.
Inferences:
- ADR-0006's single-file consolidation was correct for Copilot surfaces but left gaps for Claude Code surfaces and cross-vendor compatibility.
- The minimum viable fix for all currently-reachable surfaces is three additions:
AGENTS.md,copilot-setup-steps.yml, andCLAUDE.md. - The Claude-via-GitHub-Issues surface is credential-blocked and cannot be resolved within stated constraints.
- Copilot Spaces can launch Copilot coding agent tasks; Claude Code on iOS is a full coding agent; their "configuration" is a mix of manual (Space instructions) and file-driven (coding agent tasks respect repo config files).
No unsupported generalisations present. Each claim traces to a named primary or secondary source.
Check 1, Copilot reads both files: The GitHub Docs source says "the instructions in both files are used" when both AGENTS.md and .github/copilot-instructions.md are present. The AGENTS.md spec source confirms Copilot Agent as compatible. These two sources agree. No contradiction.
Check 2, Claude Code reads CLAUDE.md, not copilot-instructions.md: The Anthropic Claude Code memory docs explicitly describe CLAUDE.md file discovery. The anthropics/claude-code-action docs confirm CLAUDE.md is the configuration mechanism. These sources are consistent.
Check 3, ADR-0006 vs. current research: ADR-0006 assumed one file would serve all agents. Current primary source evidence shows that .github/copilot-instructions.md does NOT auto-load in Claude Code or the Claude iOS GitHub connector. This is not a contradiction in the evidence, ADR-0006 was an architectural decision made with available knowledge at the time; the current research updates the picture with primary source evidence.
Check 4, Credential table: The credential constraint is stated in .github/copilot-instructions.md itself. The Claude Code GitHub Actions docs confirm the exact credentials required. No contradiction; the conclusion (Claude GitHub Issues surface is blocked) follows directly.
Check 5, AGENTS.md and Claude Code compatibility: agentsmd.online lists "Claude Code Anthropic" as a compatible agent. The Anthropic docs describe CLAUDE.md as the auto-loaded file. These are not contradictory: AGENTS.md may be discoverable by Claude Code when it reads files in a directory, but it is not auto-loaded on startup the way CLAUDE.md is. The correct framing is: AGENTS.md benefits Copilot and other AGENTS.md-native tools; CLAUDE.md is the reliable path for Claude Code auto-loading.
No unresolvable contradictions found.
Technical lens:
- The three-file recommendation (
AGENTS.md,copilot-setup-steps.yml,CLAUDE.md) introduces no new credentials, no new workflows that run on every push, and no changes to existing files. The blast radius of adding these files is limited. -
copilot-setup-steps.ymlonly runs when the Copilot coding agent is triggered (not on every continuous integration (CI) push), so it does not affect the existing CI pipeline. - Submodule initialisation in
copilot-setup-steps.ymlrequiresactions/checkout@v5withsubmodules: recursive. Without theGITHUB_TOKENorCOPILOT_GITHUB_TOKENhaving submodule read access, this step may fail for private submodules. This repo'sGITHUB_TOKENis auto-provided by GitHub Actions and will have access to the same repo (and its submodules if they are hosted in the same organisation). The.github/skills/submodule (davidamitchell/Skills) is a separate private repo, the Copilot coding agent'sGITHUB_TOKENis scoped to the current repo only, so submodule checkout may fail unlessCOPILOT_GITHUB_TOKEN(the Personal Access Token (PAT)) is used instead.
Historical lens:
- Prior research (2026-03-08-ai-coding-harnesses-agent-philosophy) established that
AGENTS.mdemerged in 2025 as a cross-vendor standard. That research foundAGENTS.mdread by OpenAI Codex, Cursor, GitHub Copilot, Sourcegraph, Aider, and others. The current research confirms GitHub Copilot's explicit support with the combined-reading rule. - ADR-0006 (2026-03-07) was a deliberate simplification. The current finding that this repo needs
AGENTS.mdback is not a reversal of ADR-0006's intent, it's an addendum. The intent was one canonical instruction file; theAGENTS.mdpointer pattern achieves this by pointing to the canonical file.
Behavioural lens:
- The key practical question for the owner is: "when I assign a GitHub Issue to Copilot, will it have the same context as when I work with Copilot in chat?" The answer currently is: partially yes (
.github/copilot-instructions.mdloads), but the environment is misconfigured (nocopilot-setup-steps.ymlmeans no Python deps, no submodule). This is a silent failure, the agent will not error immediately but will fail when it tries to run tests or use skills. - A
copilot-setup-steps.ymlthat installs Python deps takes 30–60 seconds of setup time before the agent starts. This is a necessary cost for a correctly-configured environment.
Regulatory/governance lens:
- No regulatory constraints apply to instruction files.
- The
AGENTS.mdstandard being under the Linux Foundation / Agentic AI Foundation provides open-standard assurance: it is not a proprietary format subject to vendor lock-in.
Executive summary:
The repository currently serves the Copilot coding agent partially: .github/copilot-instructions.md loads correctly, but the agent starts without Python dependencies, without the .github/skills/ submodule, and without AGENTS.md for cross-vendor compatibility. The Claude-via-GitHub-Issues surface is entirely absent and is blocked by missing credentials (ANTHROPIC_API_KEY and a GitHub App). Copilot Spaces can launch Copilot coding agent tasks, and Claude Code on iOS is a full coding agent that works in cloud sandboxes; both can benefit from proper per-repo configuration. The minimum viable configuration to fully support all currently-reachable surfaces comprises three additions: AGENTS.md at the repository root (thin pointer to .github/copilot-instructions.md), .github/workflows/copilot-setup-steps.yml (installs Python deps and initialises the skills submodule), and CLAUDE.md at the repository root (pre-positioned for future Claude Code GitHub Actions when credentials are available, and for Claude Code iOS sessions).
Key findings:
- The Copilot coding agent reads both
.github/copilot-instructions.mdandAGENTS.mdwhen both are present, both files are combined additively; neither takes exclusive precedence at the root. -
copilot-setup-steps.ymlruns before the Copilot coding agent starts work; its absence means no Python deps and no submodule, the agent cannot runmake checkormake testas currently required by.github/copilot-instructions.md. - Claude Code GitHub Actions reads
CLAUDE.mdvia normal file discovery; it does NOT auto-read.github/copilot-instructions.md, meaning the current single-file approach leaves Claude Code without instructions. - The Claude-via-GitHub-Issues surface requires
ANTHROPIC_API_KEY(or Bedrock/Vertex credentials) plus a GitHub App (APP_ID,APP_PRIVATE_KEY); none of these are available in this repo's credential table, so this surface is currently blocked. - Copilot Spaces can launch Copilot coding agent tasks that write code and create pull requests; Spaces itself is a Q&A tool that does not auto-read per-repo instruction files, but when it launches a coding agent task, that agent respects the repository's configuration files.
- Claude Code on iOS is a full coding agent that can write code, create commits, and open pull requests in cloud-based sandboxed environments; it does not auto-load instruction files at session start but can discover and use
CLAUDE.mdand other files during execution. -
AGENTS.mdis now a Linux Foundation-stewarded open standard supported by 60,000+ repositories and compatible with over 20 tools including GitHub Copilot, Claude Code, OpenAI Codex, and Cursor; a thin pointer file at the root costs nothing and benefits all compatible surfaces. - ADR-0006's consolidation to
.github/copilot-instructions.mdwas correct for Copilot surfaces; addingAGENTS.md(pointer) andCLAUDE.mdrestores multi-surface coverage without reversing ADR-0006's intent. - Submodule checkout in
copilot-setup-steps.ymlmay requireCOPILOT_GITHUB_TOKENrather than the defaultGITHUB_TOKENbecause the Copilot coding agent'sGITHUB_TOKENis scoped to the current repo and may not have read access to the privatedavidamitchell/Skillssubmodule.
Evidence map:
| Claim | Source | Confidence | Notes |
|---|---|---|---|
Copilot reads both .github/copilot-instructions.md and AGENTS.md
|
GitHub Docs | high | Primary source, explicit statement |
copilot-setup-steps.yml runs pre-agent |
GitHub Docs | high | Primary source, explicit description |
No copilot-setup-steps.yml in this repo |
Filesystem inspection | high | Direct verification |
Claude Code GitHub Actions reads CLAUDE.md
|
Claude Code GitHub Actions docs; Claude Code memory docs | high | Two independent primary sources |
ANTHROPIC_API_KEY not in credential table |
.github/copilot-instructions.md |
high | Direct verification |
| Copilot Spaces can launch coding agent tasks | GitHub Docs Spaces; Copilot Spaces with Coding Agent | high | Spaces itself is Q&A; can trigger coding agents |
| Claude Code on iOS is a full coding agent | Anthropic Claude Code on iOS; Claude Code iOS capabilities | high | Multiple sources confirm full coding agent capabilities |
AGENTS.md supported by 60,000+ repos, Linux Foundation |
agentsmd.online; agentsmd/agents.md | medium | agentsmd.online secondary; cross-confirmed by agents.md primary |
ADR-0006 deleted AGENTS.md
|
docs-adr/0006-standardise-agent-instructions.md |
high | Local primary source |
Assumptions:
- The iOS Claude app's "code feature" refers to Claude Code running on iOS, which launched in October 2025. Justified by: Multiple sources confirm Anthropic expanded Claude Code to iOS and web in October 2025 as a full coding agent. The inaccessible support article (10166833) likely describes this same feature, while article 10167454 describes the broader GitHub connector that provides repository access.
- The
davidamitchell/Skillssubmodule requiresCOPILOT_GITHUB_TOKENfor checkout by the Copilot coding agent. Justified by: GitHub ActionsGITHUB_TOKENis scoped to the triggering repo; cross-repo read access for private repos requires a PAT.
Analysis:
The four agent surfaces split into different categories. Category A (code-writing agents): Copilot coding agent, Claude Code (GitHub Actions and iOS). Category B (context/launch tools): Copilot Spaces. Category A agents are autonomous code-writing agents; per-repo configuration files directly influence their behavior. Claude Code does not auto-load instruction files at session start but can discover them during execution. Copilot Spaces itself is a Q&A tool but can launch Copilot coding agents that respect repository configuration.
For Category A coding agents, the coverage gap is: (1) AGENTS.md absent (Copilot coding agent still works without it because .github/copilot-instructions.md loads, but cross-vendor compatibility is lost); (2) copilot-setup-steps.yml absent (Copilot coding agent environment is misconfigured, silent failure); (3) CLAUDE.md absent (Claude Code surfaces have no reliably discoverable instructions).
The minimum viable additions are ordered by immediate impact: copilot-setup-steps.yml first (fixes silent environment failure for Copilot coding agent), CLAUDE.md second (enables Claude Code iOS sessions and pre-positions for GitHub Actions), AGENTS.md third (restores cross-vendor compatibility).
Risks, gaps, uncertainties:
- The Skills submodule checkout in
copilot-setup-steps.ymlmay silently fail ifCOPILOT_GITHUB_TOKENis not passed as the checkout token. The safe pattern is to useCOPILOT_GITHUB_TOKENin theactions/checkoutstep ofcopilot-setup-steps.yml. - The
AGENTS.mdcross-compatibility claim for Claude Code is sourced from agentsmd.online (a community site), which may be aspirational rather than verified. The reliable Claude Code instruction mechanism isCLAUDE.md.AGENTS.mdshould be added for Copilot and other AGENTS.md-native tools;CLAUDE.mdis the reliable Claude Code path.
Open questions:
- Does the
copilot-setup-steps.ymlenvironment supportgit submodule update --initwith theCOPILOT_GITHUB_TOKEN? This needs to be tested. - Should the
CLAUDE.mdfile simply contain<!-- See .github/copilot-instructions.md for instructions. -->or a minimal summary? A pointer comment keeps the repo Don't Repeat Yourself (DRY); a full copy risks drift. - Is there a Claude GitHub App available as a GitHub Marketplace app (analogous to Copilot's built-in assignment) that would simplify the GitHub Issues → Claude surface without the current full
anthropics/claude-code-actionworkflow setup?
All sections completed. Every claim in §2 carries a [fact], [inference], or [assumption] label. Every [fact] maps to a named primary or secondary source with a URL. The two [assumption] labels in §2 are explicitly justified. No threads were abandoned mid-investigation. The convergence analysis in Q5 directly synthesises findings from Q1–Q4. The evidence map in §6 covers all key findings. Uncertainties are documented in §6 Risks, Gaps, Uncertainties and §5.
The repository currently serves the Copilot coding agent only partially: .github/copilot-instructions.md loads correctly, but the agent starts without Python dependencies and without the .github/skills/ submodule because no copilot-setup-steps.yml exists. Three additions cover all currently-reachable surfaces: copilot-setup-steps.yml (fixes the Copilot coding agent environment), CLAUDE.md at root (enables Claude Code on iOS and pre-positions for Claude Code GitHub Actions when credentials are added), and AGENTS.md at root (restores cross-vendor compatibility). The Claude-via-GitHub-Issues surface is currently blocked by missing credentials (ANTHROPIC_API_KEY and a GitHub App) and cannot be enabled within the current constraint of no new credentials. Copilot Spaces can launch coding agent tasks that respect repo configuration; Claude Code on iOS is a full coding agent that can discover and use instruction files during execution.
- The Copilot coding agent reads both
.github/copilot-instructions.mdandAGENTS.mdwhen both are present at the repository root; both files are combined additively, giving complete instruction coverage from either file independently. - The absence of
.github/workflows/copilot-setup-steps.ymlmeans the Copilot coding agent starts in a bare Ubuntu environment without Python dependencies, without the virtual environment, and without the.github/skills/submodule, this is a silent failure that prevents the agent from runningmake checkormake testas required by the existing instructions. - Claude Code GitHub Actions (
anthropics/claude-code-action) readsCLAUDE.mdvia Claude Code's normal file-discovery walk; it does not read.github/copilot-instructions.md, meaning the current single-file approach leaves Claude Code without any project instructions. - The Claude-via-GitHub-Issues surface requires
ANTHROPIC_API_KEY(or equivalent Bedrock/Vertex credentials) and a GitHub App (APP_ID,APP_PRIVATE_KEY); none are in this repo's credential table, so this surface is blocked under the current no-new-credentials constraint. - Copilot Spaces can launch Copilot coding agent tasks that write code and create pull requests; Spaces itself is a Q&A tool that does not auto-read per-repo instruction files, but when it launches a coding agent task, that agent respects the repository's configuration files.
- Claude Code on iOS is a full coding agent that can write code, create commits, and open pull requests in cloud-based sandboxed environments; it does not auto-load instruction files at session start but can discover and use
CLAUDE.mdand other files during execution. -
AGENTS.mdis a Linux Foundation-stewarded open standard supported by over 20 tools (including GitHub Copilot, OpenAI Codex, Cursor, and Claude Code) and present in over 60,000 repositories; adding a thin pointer file at the root costs nothing and restores coverage for all AGENTS.md-native agents. - ADR-0006's consolidation to
.github/copilot-instructions.mdwas correct for Copilot-only usage; addingAGENTS.md(as a pointer) andCLAUDE.mdextends coverage to Claude Code surfaces without contradicting ADR-0006's intent of a single canonical instruction file. - Submodule checkout inside
copilot-setup-steps.ymlshould useCOPILOT_GITHUB_TOKENrather than the defaultGITHUB_TOKENbecause the Copilot coding agent's auto-provided token is scoped to the current repository and may not have read access to the privatedavidamitchell/Skillssubmodule.
| Claim | Source | Confidence | Notes |
|---|---|---|---|
Copilot reads both .github/copilot-instructions.md and AGENTS.md additively |
GitHub Docs, custom instructions | high | Primary source, explicit statement |
copilot-setup-steps.yml runs before agent starts work |
GitHub Docs, development environment | high | Primary source |
No copilot-setup-steps.yml in this repo |
Direct filesystem inspection | high | Verified |
Claude Code GitHub Actions reads CLAUDE.md, not .github/copilot-instructions.md
|
Claude Code GitHub Actions docs; Claude Code memory docs | high | Two independent primary sources |
Claude GitHub Actions surface requires ANTHROPIC_API_KEY and GitHub App |
Claude Code GitHub Actions docs | high | Primary source |
| Credentials not in this repo's table |
.github/copilot-instructions.md credential table |
high | Direct verification |
| Copilot Spaces can launch coding agent tasks | GitHub Docs, Copilot Spaces; Copilot Spaces with Coding Agent | high | Spaces itself is Q&A; can trigger coding agents |
| Claude Code on iOS is a full coding agent | Anthropic Claude Code on iOS; Claude Code iOS capabilities | high | Multiple sources confirm full coding agent capabilities |
AGENTS.md is Linux Foundation-stewarded, 60,000+ repos, 20+ tools |
agentsmd.online; agentsmd/agents.md | medium | agentsmd.online is a secondary community site; agents.md is the primary spec repo |
- Assumption: The iOS Claude app's "code feature" refers to Claude Code running on iOS, which launched in October 2025 as a full coding agent. Justification: Multiple sources confirm Anthropic expanded Claude Code to iOS and web in October 2025 with full coding capabilities. The inaccessible support article (10166833) likely describes this feature, while article 10167454 describes the broader GitHub connector that provides repository access.
-
Assumption: The
davidamitchell/Skillssubmodule requiresCOPILOT_GITHUB_TOKENrather than the defaultGITHUB_TOKENfor checkout by the Copilot coding agent. Justification: GitHub ActionsGITHUB_TOKENis auto-scoped to the triggering repository; cross-repo read access for private repositories requires a PAT with the appropriate scope.
The four surfaces split into different categories. Code-writing agents: Copilot coding agent (auto-loads .github/copilot-instructions.md and AGENTS.md), Claude Code on iOS (can discover CLAUDE.md during execution), and Claude Code GitHub Actions (reads CLAUDE.md). Context/launch tools: Copilot Spaces (can launch Copilot coding agents). Each code-writing agent has different instruction-loading behavior; the minimum viable configuration must accommodate all patterns.
For code-writing agents, the priority order is: (1) fix the environment gap (copilot-setup-steps.yml) because a misconfigured environment causes test failures even with perfect instructions; (2) enable Claude Code surfaces (CLAUDE.md) for iOS sessions and future GitHub Actions; (3) restore cross-vendor compatibility (AGENTS.md). The credential constraint is a hard blocker on Claude Code GitHub Actions, it cannot be resolved by file additions alone.
The "thin pointer" pattern for AGENTS.md (pointing to .github/copilot-instructions.md) and CLAUDE.md (importing or summarising the same instructions) preserves ADR-0006's intent of a single canonical instruction source while allowing each agent's native discovery mechanism to locate relevant content. Full duplication across files risks drift; a pointer or import pattern avoids it.
- The Skills submodule checkout in
copilot-setup-steps.ymlrequires testing withCOPILOT_GITHUB_TOKENto confirm the token has cross-repo read access. If it does not, the Copilot coding agent will silently work without skills files. - The
AGENTS.mdcross-compatibility claim for Claude Code is sourced from a community site (agentsmd.online). The reliable instruction mechanism for Claude Code isCLAUDE.md;AGENTS.mdshould be considered a bonus for Claude Code, not a primary path. - The
CLAUDE.mdcontent strategy (pointer vs. summary vs. full copy) is unresolved. A full copy of.github/copilot-instructions.mdintoCLAUDE.mdgives Claude Code the highest context fidelity but introduces a drift risk. A minimal pointer with a<!-- See .github/copilot-instructions.md -->comment is DRY but may not be sufficient for Claude Code's context needs in automated workflows.
-
Can
COPILOT_GITHUB_TOKENbe used incopilot-setup-steps.ymlfor submodule checkout? If yes, submodule init is straightforward. If no, the skills submodule remains inaccessible to the Copilot coding agent. This warrants a separate implementation test. -
Is there a Claude GitHub App available on the GitHub Marketplace that would simplify the GitHub Issues → Claude surface (analogous to Copilot's native assignment) without requiring the full
anthropics/claude-code-actionworkflow and credential setup? -
What should
CLAUDE.mdcontain? A full mirror of.github/copilot-instructions.mdmaximises Claude Code context but creates a maintenance burden. A structured summary (key rules only) may be better for automated CI workflows where token budget matters.
- Type: knowledge, backlog-item
- Description: Confirmed that the minimum viable configuration for all currently-reachable agent surfaces requires three additions:
copilot-setup-steps.yml(environment setup),AGENTS.md(cross-vendor pointer), andCLAUDE.md(Claude Code instructions). Claude-via-GitHub-Issues surface is blocked by missing credentials. Copilot Spaces and Claude iOS GitHub integration are reading tools requiring no per-repo configuration. New backlog items created for implementation. - Links:
Navigation
By Tag
bureaucracy
change-management
coase
constraint-analysis
control-model
decision-rights
delegation
- Q4: Decision rights that should move closer to execution
- Q5: Control model for the best throughput-risk trade-off
delivery-risk
- Operating model synthesis for split-authority delivery systems
- Q6: Leading indicators of instability in split-authority flow systems
demand-segmentation
enterprise
exception-handling
execution
flow
flow-design
flow-metrics
governance
- Operating model synthesis for split-authority delivery systems
- Q1: Dominant flow constraint in split-authority delivery systems
- Q2: Demand segmentation for fast-path vs controlled-path flow
- Q4: Decision rights that should move closer to execution
- Conditions under which internal governance controls minimise coordination costs in regulated enterprises
- Failure mechanisms of internal governance controls: bureaucratic inefficiency and informal circumvention in regulated enterprises
- Barriers to governance reform, leadership failure modes, and reform mechanisms in regulated enterprises
governance-patterns
incentives
- Failure mechanisms of internal governance controls: bureaucratic inefficiency and informal circumvention in regulated enterprises
- Barriers to governance reform, leadership failure modes, and reform mechanisms in regulated enterprises
instability
institutional-economics
- Conditions under which internal governance controls minimise coordination costs in regulated enterprises
- Failure mechanisms of internal governance controls: bureaucratic inefficiency and informal circumvention in regulated enterprises
- Barriers to governance reform, leadership failure modes, and reform mechanisms in regulated enterprises
leading-indicators
operating-model
organisation
- Conditions under which internal governance controls minimise coordination costs in regulated enterprises
- Failure mechanisms of internal governance controls: bureaucratic inefficiency and informal circumvention in regulated enterprises
- Barriers to governance reform, leadership failure modes, and reform mechanisms in regulated enterprises
organisational-design
queue-design
queueing
regulated-enterprise
- Conditions under which internal governance controls minimise coordination costs in regulated enterprises
- Failure mechanisms of internal governance controls: bureaucratic inefficiency and informal circumvention in regulated enterprises
- Barriers to governance reform, leadership failure modes, and reform mechanisms in regulated enterprises
routing
throughput
throughput-risk
transaction-costs
- Conditions under which internal governance controls minimise coordination costs in regulated enterprises
- Failure mechanisms of internal governance controls: bureaucratic inefficiency and informal circumvention in regulated enterprises
triage
- Q2: Demand segmentation for fast-path vs controlled-path flow
- Q3: Routing design that isolates exceptions from routine flow
williamson