Skip to content

codex-cli and github-copilot share .agents/skills, which blocks per-platform skill content #101

Closed

Description

@ilkemerol

skern platform list reports these project paths:

claude-code     .claude\skills
codex-cli       .agents\skills
cursor          .agents\skills
gemini-cli      .agents\skills
github-copilot  .agents\skills

Verified on skern 0.3.1 by installing one skill to claude-code, codex-cli and github-copilot and inspecting the tree — only .claude/skills/ and .agents/skills/ exist afterward.

Two problems:

1. GitHub Copilot's project skill path is .github/skills/, not .agents/skills/. Copilot's project-scope skill discovery reads .github/skills/; .copilot/skills/ is a personal-scope path valid only under $HOME. skern's user path for github-copilot (~/.copilot/skills) is right; the project path is not.

2. Four platforms sharing one directory makes per-platform skill content impossible. Codex CLI invokes skills as $name, Claude and Copilot as /name. A toolchain that ships the same skill to Codex and Copilot needs two different bodies in two different directories. With a shared .agents/skills/, whichever install runs last wins and the other platform gets the wrong invocation syntax.

Requested behavior: distinct project directories per platform, or a documented per-platform destination override. If .agents/skills/ is a deliberate convergence on the AGENTS.md convention, an opt-out flag would be enough.

Definition of Done

  • github-copilot project path corrected to .github/skills/, or the current value documented with rationale
  • A supported way to install the same skill to codex-cli and github-copilot with different content

Activity

  1. devrimcavusoglu commented on Aug 19, 2026

    @devrimcavusoglu
    Owner

    Triage after checking this against the code and GitHub's docs:

    Claim 1 — .github/skills/ vs .agents/skills/: no path change needed. Copilot discovers project skills from any of .github/skills/, .claude/skills/, or .agents/skills/, and personal skills from ~/.copilot/skills/ or ~/.agents/skills/ (About agent skills — GitHub Docs). skern's values are valid Copilot paths; .agents/skills/ is deliberately the cross-agent convention shared with Codex CLI, Cursor, and Gemini CLI. That rationale is now documented with the citation on the Copilot platform page and in the shared-directory section (#107), in addition to AGENTS.md (#105). Keeping the current value avoids a breaking disk-layout change for existing users. → DoD item 1 satisfied via the "documented with rationale" branch.

    Claim 2 — per-platform content in a shared directory: real, and bigger than a path tweak. "Same skill name, different body on codex-cli vs github-copilot" needs two things:

    1. a per-platform destination override so the two installs land in different directories (design decision 3 in AGENTS.md now allows a Spec to carry this; the coherent shape is a project-level setting the Detector reads, so install/uninstall/status/diff/list --with-platforms all agree — a one-off --dir flag on install would leave the rest of the CLI blind to it), and
    2. platform-specific skill variants (Platform-specific skill variants #47) so one registry skill can carry a per-platform body.

    Neither is a bugfix-sized change, so this stays open under the "Adapter model" roadmap group with #47 and #99, to be designed together rather than special-cased. If you only need Copilot-specific placement today, a manual copy into .github/skills/ works since Copilot reads it.

  2. ilkemerol commented on Aug 20, 2026

    @ilkemerol
    Author

    Update from the AURA side — we have settled the downstream question this issue was filed against, and it changes what we need from skern.

    Decision: AURA installs skills to .claude/skills/ for Claude Code and to .agents/skills/ for every other platform we support (Codex CLI, GitHub Copilot). We are adopting skern's existing convergence rather than asking for it to be undone.

    This withdraws both halves of the request:

    1. github-copilot project path. We no longer ask for it to move to .github/skills/. Copilot reads the .agents/ convention, and having one shared directory for all non-Claude hosts is the better contract for a multi-platform toolchain — a single install serves Codex, Copilot, Cursor and Gemini instead of AURA maintaining a per-host destination map. skern's current value stands.

    One caveat we own, not skern: .github/skills/ is the path GitHub documented for project-scope Copilot skill discovery (that is why AURA moved there in OBSS-AI/aura#563). We will verify discovery from .agents/skills/ on a real Copilot CLI run as part of our migration. If it turns out Copilot does not discover them there, that is new evidence and we will come back with it rather than reopening on the documentation alone.

    2. Per-platform skill content. This was the structural blocker we described — AURA ships a Codex-specific body that rewrites /aura.<skill> to $aura.<skill>, so Codex and Copilot could not share one directory. We are removing that divergence on our side: AURA will ship one invocation-neutral body to .agents/skills/ instead of two bodies to two directories. With that, a shared .agents/skills/ is no longer a conflict for us and skern does not need distinct per-platform project directories on our account.

    Net effect: no skern change is required for AURA here. From our side this issue can be closed — we are not aware of another consumer blocked by it, so we are leaving the close decision to you rather than assuming it.

    For sequencing context: this was listed as a hard blocker for OBSS-AI/aura#849 (AURA delegating platform skill installation to skern skill install --platform). With the decision above it no longer is, and #100 / #102 / #103 are already closed — so #849 is unblocked on the design side and now waits only on a skern release carrying those three fixes (latest tag is still v0.3.1, which predates them).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestneeds-discussionRequires design discussion before implementation

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions