Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Skill Discovery Across AI Coding Platforms


title: Skill Discovery Across AI Coding Platforms authors:


Skill Discovery Across AI Coding Platforms

Source and Reproducibility

Repository: obra/superpowers Version analyzed: v5.0.7 (commit b7a8f76) Source directory: skills/ — 14 SKILL.md files plus supporting prompt templates Analysis date: April 2026

To reproduce this analysis, clone the repo at this version and examine the skill files directly:

git clone https://github.com/obra/superpowers.git
cd superpowers
git checkout v5.0.7
ls skills/*/SKILL.md

Key files referenced in this analysis:

FilePurpose
skills/using-superpowers/SKILL.mdBootstrap skill — skill invocation rules
skills/subagent-driven-development/SKILL.mdThree-role subagent orchestration
skills/subagent-driven-development/implementer-prompt.mdImplementer dispatch template
skills/subagent-driven-development/spec-reviewer-prompt.mdSpec compliance review template
skills/subagent-driven-development/code-quality-reviewer-prompt.mdCode quality review template
skills/verification-before-completion/SKILL.mdVerification enforcement
skills/writing-skills/SKILL.mdSkill creation methodology
skills/writing-skills/testing-skills-with-subagents.mdAdversarial testing methodology
skills/writing-skills/anthropic-best-practices.mdAnthropic’s official skill authoring guide
skills/dispatching-parallel-agents/SKILL.mdParallel dispatch pattern
.opencode/plugins/superpowers.jsOpenCode plugin — skill path registration
.claude-plugin/plugin.jsonClaude Code plugin metadata
.cursor-plugin/plugin.jsonCursor plugin — skills/agents/commands/hooks paths
hooks/session-startSession bootstrap hook — JSON output injection
gemini-extension.jsonGemini CLI plugin metadata
.codex/INSTALL.mdCodex installation via symlink
.github/PULL_REQUEST_TEMPLATE.mdPR template — contributor requirements
AGENTS.md / CLAUDE.mdContributor guidelines for AI agents

How Skills Are Indexed

Each platform handles discovery differently. There is no unified indexing layer across platforms:

PlatformMechanism
Claude CodeNative skill system. Scans skills/*/SKILL.md, parses YAML frontmatter, indexes name + description. Skills are loaded on-demand when the LLM invokes the Skill tool.
OpenCodePlugin pushes skills/ path into config.skills.paths. OpenCode scans that directory, parses frontmatter, and lazy-discovers skills.
CodexSymlink: ~/.agents/skills/superpowers → skills/. Codex’s native skill discovery handles the rest.
Cursorplugin.json points to "skills": "./skills/". Cursor’s plugin system discovers them.
Gemini CLIgemini-extension.json with contextFileName: "GEMINI.md". Skills load via activate_skill tool.
Qwen CodeScans ~/.qwen/skills/*/SKILL.md and <project>/.qwen/skills/*/SKILL.md — immediate subdirectories only, no nested skills/ layout. Each skill directory must contain SKILL.md with name + description frontmatter. Symlinks supported (tested: valid dirs, broken links, file targets). Precedence: project > user > extension > bundled.

Superpowers just puts SKILL.md files in a directory with YAML frontmatter and trusts each platform to find them.

The Discovery Chain

User input: "help me plan this feature"
         ↓
Platform skills engine searches indexed descriptions
         ↓
Finds: brainstorming SKILL.md description mentions "building features"
         ↓
Loads full SKILL.md content into context (or presents as option)
         ↓
LLM invokes skill via Skill tool

The name becomes the skill identifier (used as superpowers:brainstorming). The description is what the LLM reads to decide whether to invoke the skill.

Token-Efficient Loading

From Anthropic’s best practices guide:

“Not every token in your Skill has an immediate cost. At startup, only the metadata (name and description) from all Skills is pre-loaded. Claude reads SKILL.md only when the Skill becomes relevant, and reads additional files only as needed.”

This is a platform-specific guarantee (Claude Code), not universal across all platforms. Once a skill is loaded, it competes with conversation history, code context, and other skills. Skills are aggressively trimmed for token efficiency: <150 words for frequently-loaded, <500 for others.

Setting Up Superpowers Skills for Qwen Code

The superpowers repo uses a nested skills/ subdirectory layout (superpowers/skills/<skill-name>/SKILL.md) that Qwen Code cannot discover directly — it expects skills at the immediate level of the base directory.

Recommended layout:

/ai_agents/research/ai_coding_agents/superpowers/          ← git repo (update with git pull)
  skills/
    brainstorming/SKILL.md
    using-superpowers/SKILL.md
    ...

~/.qwen/skills/                                  ← symlinks to each skill
  brainstorming -> /ai_agents/research/ai_coding_agents/superpowers/skills/brainstorming
  using-superpowers -> /ai_agents/research/ai_coding_agents/superpowers/skills/using-superpowers
  ...

Setup commands:

# Clone the superpowers repo into research/
git clone https://github.com/obra/superpowers.git /ai_agents/research/ai_coding_agents/superpowers

# Create symlinks for each skill (run from ~/.qwen/skills/)
cd ~/.qwen/skills/
for skill in brainstorming dispatching-parallel-agents executing-plans \
  finishing-a-development-branch receiving-code-review requesting-code-review \
  subagent-driven-development systematic-debugging test-driven-development \
  using-git-worktrees using-superpowers verification-before-completion \
  writing-plans writing-skills; do
  ln -sfn -r \
    /home/commi/Yandex.Disk/it_working/projects/soviar-systems/ai_engineering_book//ai_agents/research/ai_coding_agents/superpowers/skills/$skill \
    /home/commi/.qwen/skills/$skill
done

Update skills anytime with cd /ai_agents/research/ai_coding_agents/superpowers && git pull — the symlinks follow automatically.