Skip to content

Conversation

@crabhit
Copy link

@crabhit crabhit commented Dec 31, 2025

Summary

  • Adds GitHub Copilot Agent Mode support, following the same pattern as the Codex integration (AGENTS.md + CLI tool)
  • Creates .github-copilot/ directory with installation docs, bootstrap instructions, and CLI script
  • Supports both macOS/Linux (~) and Windows ($env:USERPROFILE) paths

Files Added

File Purpose
.github-copilot/INSTALL.md Installation instructions for both platforms
.github-copilot/superpowers-bootstrap.md Bootstrap text injected via AGENTS.md
.github-copilot/superpowers-copilot Node.js CLI (bootstrap, use-skill, find-skills)

How It Works

  1. User clones repo to ~/.copilot/superpowers/
  2. User adds bootstrap snippet to their project's AGENTS.md
  3. Copilot reads AGENTS.md and runs node superpowers-copilot bootstrap
  4. Skills are loaded via node superpowers-copilot use-skill <name>

The CLI reuses the shared lib/skills-core.js module for skill discovery.

Fixes #217

Summary by CodeRabbit

  • Documentation

    • Added comprehensive installation guide with prerequisites and step-by-step setup instructions for macOS, Linux, and Windows.
    • Added bootstrap rules and workflow documentation for GitHub Copilot Superpowers.
  • New Features

    • Introduced CLI tool with bootstrap, skill discovery, and skill loading commands.
    • Enabled personal skill creation and management with namespace handling.

✏️ Tip: You can customize this high-level summary in your review settings.

Add support for GitHub Copilot Agent Mode, following the same pattern
as the Codex integration (AGENTS.md + CLI tool).

Files added:
- .github-copilot/INSTALL.md - Installation instructions for both
  macOS/Linux and Windows
- .github-copilot/superpowers-bootstrap.md - Bootstrap instructions
  injected via AGENTS.md
- .github-copilot/superpowers-copilot - Node.js CLI for skill management
  (bootstrap, use-skill, find-skills)

The CLI reuses the shared lib/skills-core.js module for skill discovery.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@coderabbitai
Copy link

coderabbitai bot commented Dec 31, 2025

📝 Walkthrough

Walkthrough

Introduces GitHub Copilot Agent Skills support via a new Node.js CLI tool and comprehensive documentation. The CLI orchestrates skill discovery and loading from personal and superpowers directories, with bootstrap, use-skill, and find-skills commands. Includes installation guides for macOS/Linux and Windows, bootstrap instructions, and workflow rules.

Changes

Cohort / File(s) Summary
GitHub Copilot Superpowers CLI
.github-copilot/superpowers-copilot
New Node.js CLI entrypoint with three main commands: bootstrap (checks updates, prints bootstrap instructions, lists skills, auto-loads default skill), use-skill (loads specified skill with namespace resolution, reads SKILL.md frontmatter), and find-skills (enumerates personal and superpowers skills). Integrates with external skills-core module for metadata extraction and directory scanning.
Installation & Usage Documentation
.github-copilot/INSTALL.md
New guide covering prerequisites, installation steps (macOS/Linux and Windows), personal skills directory setup, AGENTS.md modification with bootstrap instructions, verification, usage commands, custom skill creation with SKILL.md structure, skill naming conventions, update management, troubleshooting (CLI existence, directory validation, tool mapping), and help resources.
Bootstrap Instructions & Rules
.github-copilot/superpowers-bootstrap.md
New documentation detailing bootstrap access and loading instructions, tool substitution guidance, naming conventions with override behavior for Superpowers and personal skills, critical workflow rules (mandatory skill review, load-skill command usage, explicit announcements, checklist tracking), storage locations for skill types, and directive that applicable skills must be used.

Sequence Diagram(s)

sequenceDiagram
    actor User
    participant CLI as superpowers-copilot<br/>CLI
    participant SkillsCore as skills-core<br/>Module
    participant PersonalDir as Personal Skills<br/>Directory
    participant SuperpowersDir as Superpowers Skills<br/>Directory

    rect rgb(240, 248, 255)
    Note over User,SuperpowersDir: Bootstrap Flow
    User->>CLI: bootstrap
    CLI->>SkillsCore: Check for updates
    SkillsCore-->>CLI: Update status
    CLI->>CLI: Read bootstrap.md
    CLI-->>User: Print bootstrap instructions
    CLI->>PersonalDir: Scan skills
    CLI->>SuperpowersDir: Scan skills
    SkillsCore-->>CLI: Skill list (personal + superpowers:)
    CLI-->>User: Display available skills & naming rules
    CLI->>SuperpowersDir: Load using-superpowers skill
    CLI-->>User: Auto-load complete
    end

    rect rgb(240, 255, 240)
    Note over User,SuperpowersDir: Use-Skill Flow
    User->>CLI: use-skill [skill-name]
    alt Namespaced skill (superpowers:)
        CLI->>SuperpowersDir: Resolve superpowers:skill-name
    else Plain skill name
        CLI->>PersonalDir: Try resolve skill
        alt Found in Personal
            CLI->>PersonalDir: Read SKILL.md
        else Not found, try superpowers
            CLI->>SuperpowersDir: Resolve skill-name
            CLI->>SuperpowersDir: Read SKILL.md
        end
    end
    SkillsCore-->>CLI: Extract frontmatter (name, description)
    CLI-->>User: Output formatted header + SKILL.md content
    end

    rect rgb(255, 250, 240)
    Note over User,SuperpowersDir: Find-Skills Flow
    User->>CLI: find-skills
    CLI->>PersonalDir: Enumerate skills
    CLI->>SuperpowersDir: Enumerate skills
    SkillsCore-->>CLI: Consolidated skill list
    CLI-->>User: Print personal skills + superpowers: prefixed skills
    CLI-->>User: Display usage & naming conventions
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • Add personal superpowers overlay system #2: Implements similar personal-vs-core skill discovery, find-skills command, and skill-shadowing behavior as the bootstrap/use-skill/find-skills flows in this PR, suggesting overlapping design patterns for skill management across different Agent environments.

Poem

🐰 A rabbit's song to skills anew—
Copilot gains superpowers too!
Bootstrap sparkles, skills take flight,
Personal and core, both shining bright.
Discovery, loading, naming with care—
Superpowers blooms everywhere! ✨

Pre-merge checks

✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'Add GitHub Copilot Agent Mode integration' accurately describes the main change: introducing GitHub Copilot support through Agent Mode with documentation and a CLI tool.
Linked Issues check ✅ Passed The PR directly addresses issue #217's objective to add GitHub Copilot Agent Skills support, implementing discovery and invocation of Superpowers skills via Copilot's Agent Mode.
Out of Scope Changes check ✅ Passed All changes are within scope: documentation for installation/bootstrap, a CLI script for skill management, and integration with the existing skills-core module—all directly supporting Copilot Agent Mode integration.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (4)
.github-copilot/superpowers-copilot (1)

172-199: Missing loading message when superpowers: namespace is explicitly used.

When forceSuperpowers is true (user explicitly specified superpowers: prefix), the code doesn't print the "Loading superpowers skill" message that appears in the non-forced path (lines 193-197). This creates inconsistent user feedback.

🔎 Proposed fix to add loading message for forced superpowers lookup
     // If superpowers: namespace was used, only check superpowers skills
     if (forceSuperpowers) {
         if (fs.existsSync(superpowersSkillsDir)) {
             const superpowersPath = path.join(superpowersSkillsDir, actualSkillPath);
             skillFile = findSkillFile(superpowersPath);
+            if (skillFile) {
+                console.log(`# Loading superpowers skill: superpowers:${actualSkillPath}`);
+                console.log(`# Source: ${skillFile}`);
+                console.log('');
+            }
         }
     } else {
.github-copilot/INSTALL.md (3)

14-28: Inconsistent step numbering.

The installation steps use numbered list items starting at "2." (line 28) and "3." (line 40), but the first step (git clone) at lines 14-26 is not numbered. This creates a formatting inconsistency.

🔎 Proposed fix to add consistent numbering
 ## Installation

+1. **Clone the superpowers repository**:
+
 **On macOS/Linux:**
 ```bash
 mkdir -p ~/.copilot/superpowers

81-90: Add language specifier to fenced code blocks.

Per static analysis, these code blocks are missing language identifiers. Since the Usage section mentions using $env:USERPROFILE on Windows, consider using bash for Unix commands.

🔎 Proposed fix
 Ask Copilot to run (use `$env:USERPROFILE` instead of `~` on Windows):
-```
+```bash
 node ~/.copilot/superpowers/.github-copilot/superpowers-copilot find-skills

Loading a Skill

Ask Copilot to run (use $env:USERPROFILE instead of ~ on Windows):
- +bash
node ~/.copilot/superpowers/.github-copilot/superpowers-copilot use-skill superpowers:brainstorming


149-152: Format bare URLs as Markdown links.

Per static analysis, bare URLs should be formatted as proper Markdown links for better rendering and accessibility.

🔎 Proposed fix
 ## Getting Help

-- Report issues: https://github.com/obra/superpowers/issues
-- Documentation: https://github.com/obra/superpowers
+- Report issues: <https://github.com/obra/superpowers/issues>
+- Documentation: <https://github.com/obra/superpowers>
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b9e1649 and 6b0a713.

📒 Files selected for processing (3)
  • .github-copilot/INSTALL.md
  • .github-copilot/superpowers-bootstrap.md
  • .github-copilot/superpowers-copilot
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
.github-copilot/INSTALL.md

81-81: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


88-88: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


151-151: Bare URL used

(MD034, no-bare-urls)


152-152: Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (7)
.github-copilot/superpowers-copilot (5)

1-14: LGTM!

Path definitions are well-organized and clearly documented. The relative import to skills-core correctly resolves from the .github-copilot/ directory to the shared lib/ module at repository root.


16-34: LGTM!

The function correctly handles path normalization for cross-platform consistency by replacing backslashes with forward slashes. The namespace prefixing logic for personal vs. superpowers skills is clear.


37-70: LGTM!

The skill discovery logic correctly prioritizes personal skills over superpowers skills when names match, and the Set prevents duplicate listings. The different depth parameters (2 vs 1) allow for flexible skill organization.


72-124: LGTM!

The bootstrap flow is well-structured: update check → bootstrap instructions → skill listing → auto-load default skill. Error handling for file reads is appropriate, and the auto-loading of using-superpowers gracefully falls back to listing available skills if not found.


241-267: LGTM!

The CLI entry point is clean and straightforward. The switch-based command dispatch with a helpful default message follows standard CLI patterns.

.github-copilot/superpowers-bootstrap.md (1)

1-34: LGTM!

The bootstrap instructions are comprehensive and well-structured. The tool mapping section effectively bridges the gap between Claude Code tools and Copilot's native capabilities. The emphatic directives are appropriate for ensuring consistent AI behavior.

.github-copilot/INSTALL.md (1)

1-152: LGTM!

The installation guide is comprehensive with excellent cross-platform coverage. The troubleshooting section anticipates common issues and provides clear solutions. The documentation aligns well with the CLI implementation and bootstrap instructions.

@julioocamargoo
Copy link

julioocamargoo commented Jan 2, 2026

Hi!

I'm new to the "skills" ecosystem, but a friend recommended Superpowers and here I am.

As far as I understand, in this PR you're configuring Copilot to use Superpowers skills via the AGENTS.md file at the project root.
What I'm still unclear about is how a skill is actually invoked after that.

I initially thought I could call it directly from the IDE chat with something like:

superpowers:brainstorm some prompt asking for something or even don't mention superpowers on my prompt

I've tested and when I prompt especifically including, for example, "superpowers:brainstorm" it works for this prompt but don't use superpowers anymore, any others skills are invoked... Even if I start a new chat context, it won't call superpowers:brainstorm anymore. When I saw on README the basic workflow, I thought it should calls next skill on "pipe" automatically...

Just want to make sure I understand the expected workflow correctly.

@julioocamargoo
Copy link

I've tested superpowers using opencode (LLM copilot), it works completely different from my experience with copilot IDE, calling automatically each step of "planning" flow. Maybe this PR isn't working as expected. I'm using vscode insiders with experimental flag enabled

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Can superpowers support GitHub Copilot?

2 participants