What problem does it solve? Managing pi-coding-agent extensions in a Nix flake requires fetching npm metadata, computing tarball hashes, handling dependencies, and wiring extensions into wrapper derivations — a repetitive, error-prone process this Skill standardizes. ## Core Features & Use Cases - Declarative extension specs: Add npm-published extensions as pure data under pi.extensions.<name> with pname, version, and SRI hash, built lazily by flake.lib.buildPiExtension. - Dependency strategies: Choose between simple tarball unpacking, vendored tarballs for packages without lockfiles, or bespoke buildNpmPackage builds with fetched package-lock.json files. - Security audit workflow: Perform a mandatory supply-chain review of the npm package source before packaging, scanning for lifecycle scripts and risky API usage. - Use Case: When asked to "add the npm package @scope/pkg as a pi extension", fetch its registry metadata, audit the source, create modules/ai/extensions/<name>.nix, activate it in the pi-desktop or pi-wsl variant lists, and verify with nix build. ## Quick Start Add the npm package @scope/pkg-name as a pi extension and enable it in the pi-wsl wrapper.