PI PACKAGE EXTENSION

Skills Bridge

Auto-discovers Claude Code plugin skills from plugins/*/skills/ directories and registers them as pi skills. One install bridges all 19+ plugin skills into pi.

Overview

Auto-discovers Claude Code plugin skills from plugins/*/skills/ directories and registers them as pi skills. One install bridges all 19+ plugin skills into pi.

Package docs also remain available on the package summary page at /docs/skills-bridge, but this page focuses on the Pi-native extension surface: commands, tools, environment variables, packaged skills, and extension files.

Extension Files

Primary extension path: pi-packages/skills-bridge/extensions/skills-bridge

  • index.ts

Installation

bash
# From the monolith root
pi install "$PWD/agent-skills-marketplace/pi-packages/skills-bridge"

Local test or verification snippet:

bash
cd /path/to/monolith
node -e "
const { existsSync, readdirSync, statSync } = require('node:fs');
const { join } = require('node:path');
function findSkillDirs(root, depth=0) {
  const results = [];
  if (depth > 5) return results;
  let entries;
  try { entries = readdirSync(root); } catch { return results; }
  for (const entry of entries) {
    const full = join(root, entry);
    let isDir;
    try { isDir = statSync(full).isDirectory(); } catch { continue; }
    if (!isDir) continue;
    if (existsSync(join(full, 'SKILL.md'))) { results.push(full); continue; }
    results.push(...findSkillDirs(full, depth+1));
  }
  return results;
}
const pluginsDir = 'agent-skills-marketplace/plugins';
const plugins = readdirSync(pluginsDir);
let total = 0;
for (const p of plugins) {
  const sd = join(pluginsDir, p, 'skills');
  if (!existsSync(sd)) continue;
  const found = findSkillDirs(sd);
  total += found.length;
}
console.log('Skills discovered:', total);
"

What it does

The Diversio team has 21 Claude Code skills (release-manager, monty-code-review, backend-atomic-commit, etc.) in the shared repo. Claude Code and Codex users see them automatically. Pi users don't — pi only discovers skills from ~/.pi/agent/skills/ and pi-packages//skills/, not from plugins//skills/.

This extension bridges that gap. It uses pi's resources_discover hook to scan the plugins directory and register skill paths. One pi install per team member, then /reload, and all 21 skills appear.

Context safety: The extension only exposes skill names + descriptions (~5-10KB total) at startup. Full SKILL.md bodies load on demand when a skill is invoked. No context bloat.

How it finds the skills

The extension uses three-tier resolution to find the agent-skills-marketplace root:

for a plugins/ directory (repo-agnostic) or an agent-skills-marketplace/plugins/ child (monolith submodule convenience).

For most developers in the monolith, tier 3 works automatically. No config needed.

For developers who keep skills at a non-standard path or want extra skill sources:

Create ~/.config/pi/skills-bridge.json:

  • skillsPath — primary skills root (optional; falls through to cwd walk-up if absent)
  • additionalPaths — extra skills roots to also scan (optional)
  • Both fields are optional; an empty file {} means "use cwd walk-up only"
  • The config file lives outside the package repo, so updating the repo never overwrites local config
  • When PI_SKILLS_PATH env var is set, the config file is ignored (env var is an explicit override)
bash
mkdir -p ~/.config/pi
json
{
  "skillsPath": "/absolute/path/to/agent-skills-marketplace",
  "additionalPaths": [
    "/another/checkout/agent-skills-marketplace",
    "/path/to/experimental-skills"
  ]
}

Skills bridged

The extension discovers all 21 skills from these plugins:

release-manager, monty-code-review, backend-atomic-commit, backend-pr-workflow, plan-directory, backend-ralph-plan, pr-description-writer, process-code-review, bruno-api, code-review-digest-writer, mixpanel-analytics, clickup-ticket, github-ticket, repo-docs-generator, visual-explainer, dependabot-remediation, terraform-atomic-commit, terraform-pr-workflow, login-cta-attribution-skill, monolith-review-orchestrator, frontend

Troubleshooting