skills/pi-extension-intake/SKILL.md
Evaluate, import, vendor, fork, and harden third-party pi extensions. Use when copying a pi extension into a repo, choosing vendoring vs internal fork vs patch-package vs direct dependency, auditing weakly maintained extension code, removing self-install or network-install behavior, or analyzing wrapper-package and npm package trust boundaries.
npx skillsauth add sjunepark/custom-skills pi-extension-intakeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Help the user choose the right ownership model for a third-party pi extension, then give a concrete intake plan that matches their control, maintenance, and security goals.
Default bias: if the extension is small, weakly maintained, likely to be customized, or raises trust concerns, prefer vendoring the source into the user's repo over patching a published package.
Do three things well:
A copied wrapper is not the same as owned behavior. If an extension shells out to another CLI, downloads binaries, auto-installs npm packages, or fetches code at runtime, that downstream tool is part of the real trust boundary and must be analyzed explicitly.
extensions/ directory or equivalent local source path.Use this default decision order:
When inspecting a pi extension, explicitly check for:
pi.exec(...) calls and any other process-spawn paths such as child_process, spawn, execFile, execa, Bun process helpers, or wrapper scripts that shell out to external toolsIf the extension wraps a separate CLI, say so clearly: the wrapper may be easy to vendor, but the wrapped CLI is still the real operational dependency.
When the recommendation is to vendor the extension, follow this checklist:
When advising on a third-party pi extension, prefer this structure:
development
Long-running systematic codebase review with a persistent ledger in reviews/. Use to plan review areas, continue the next review pass, check campaign status, triage findings with the user, or apply auto-tier fixes. Modes: plan, continue, status, triage, fix (default continue).
development
Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, empty states, UX review, visual hierarchy, information architecture, accessibility, performance, responsive behavior, theming, typography, spacing, layout, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, design systems, tokens, live browser iteration, and ambitious visual effects. Not for backend-only or non-UI tasks.
development
Manually integrate Git branch work without blind mechanical merges. Use when merging, transplanting, or refactoring branch work; resolving conflicts; preserving source-branch intent in a clean current-branch structure; or auditing that source additions, removals, tests, and docs landed intentionally.
testing
Prepare, audit, set up, and guide Release Please releases. Use when releasing, preparing or reviewing a release PR, adding Release Please, classifying SemVer impact or breaking changes, writing Release Please-compatible Conventional Commit guidance, or documenting release criteria. Release work requires existing Release Please config; setup requires an explicit setup request.