Skip to content

[FEATURE] Promote sub-skills inside packages to top-level .github/skills/ entries #101

@sergio-sisternes-epam

Description

@sergio-sisternes-epam

Feature

Allow APM packages to ship multiple independently-discoverable skills within a single package. Sub-skills placed under .apm/skills/<name>/SKILL.md should be promoted to top-level entries in .github/skills/<name>/ during apm install, so that Copilot can discover and invoke each one independently.

Motivation

Copilot only scans direct children of .github/skills/ for SKILL.md files — it does not recurse into nested directories. Today, if a package contains sub-skills (e.g., a monorepo package shipping both modernization agents and an Azure naming skill), only the parent package's SKILL.md is discoverable. The sub-skills are buried inside the parent tree and invisible to the IDE.

Proposed behavior

Given a package with this structure:

agent-library/
└── acme-bookstore/
    ├── SKILL.md
    ├── apm.yml
    └── .apm/
        └── skills/
            └── azure-naming/
                └── SKILL.md

After apm install org/agent-library/acme-bookstore, the resulting layout should be:

.github/skills/
├── acme-bookstore/          # Parent skill
│   └── SKILL.md
└── azure-naming/            # Promoted sub-skill
    └── SKILL.md

This way Copilot discovers both skills and can invoke azure-naming independently.

Design notes

  • Sub-skills live under .apm/skills/ to match the existing authoring convention (all primitives under .apm/).
  • Only directories containing a SKILL.md are promoted — other files/dirs are ignored.
  • Name collisions with existing top-level skills produce a warning and overwrite.
  • Promoted sub-skills are also synced to .claude/skills/ when a .claude/ directory exists.
  • apm deps sync preserves promoted sub-skills (does not mark them as orphaned).

Context

Per the VS Code agent skills spec, skill discovery scans .github/skills/<name>/SKILL.md — only direct children. This feature closes the gap for monorepo-style agent libraries shipping multiple skills per package.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions