skill_manage for Pi: create, inspect, patch, update, list, and delete reusable Agent Skills without installing a memory or session-indexing subsystem.
This project is a standalone adaptation of the skill-management subsystem from Chandra Teja's pi-hermes-memory, specifically v0.9.7 at commit 671a27f.
The original project designed and implemented the skill_manage contract, skill store, structured Markdown rendering, duplicate and similarity checks, content scanner, project identity handling, and result renderer used here. This repository extracts and adapts that work into one extension that does not start the rest of the Hermes memory runtime.
Changes in this adaptation include removing memory, SQLite, session-search, review, correction, consolidation, and flush wiring; making the extension independently installable as a Pi package; using Pi's file-mutation queue; and adding contract-level compatibility tests.
Original work: Copyright (c) 2025 Chandra Teja. Adaptation: Copyright (c) 2026 JinJieBeWater. Both are licensed under MIT. See THIRD_PARTY_NOTICES.md for the upstream notice and full license text.
Install from GitHub:
pi install git:github.com/JinJieBeWater/pi-skill-manager@v0.1.1Then start a new Pi session or run /reload.
To try it without changing settings:
pi -e git:github.com/JinJieBeWater/pi-skill-manager@v0.1.1Pi packages execute with full system access. Review the extension before installing it.
The extension registers one agent-callable tool:
skill_manage
├── create
├── view
├── patch
├── update
├── edit
└── delete
It retains the pi-hermes-memory input fields, storage layout, and CRUD behavior, including structured Markdown rendering, stable skill IDs, duplicate and similarity guards, content safety checks, atomic writes, and project identity across Git worktrees. Tool guidance and incomplete-body diagnostics are maintained independently.
It does not start memory storage, SQLite indexing, session search, background review, correction detection, consolidation, or flush hooks.
create: provide non-emptycontent, or all three structured fields:when_to_use,procedure_steps, andverification_steps.pitfallsis optional.update/edit: changing onlydescriptionneeds no body. Replacing the body requirescontentor all three structured fields.patch: provide the target section'scontentor matching structured field; other body fields are not required.
Required body strings must contain non-whitespace text, and required lists must contain at least one non-blank item. Non-empty content takes precedence over structured fields for create, update, and edit.
Incomplete structured bodies return success: false, an error, and a missing_fields list containing every missing required body field. Rejected calls do not write files. Supply all listed fields and retry the same action; the tool does not invent missing content.
Existing paths are retained for drop-in compatibility:
global ~/.pi/agent/pi-hermes-memory/skills/<skill>/SKILL.md
project ~/.pi/agent/projects-memory/<project>/skills/<skill>/SKILL.md
The package does not depend on pi-hermes-memory at runtime. The directory name only preserves existing data and skill IDs.
- Back up
~/.pi/agent/extensionsand both skill roots above. - Remove or disable the old adapter so only one extension registers
skill_manage. - Install this package.
- Run
/reload. - Confirm a fresh Pi process discovers existing global and project skills.
Do not delete pi-hermes-memory skill directories during migration.
Requirements: Bun and Pi 0.84.3 or newer.
bun install
bun run checkParity tests compare parameter structure, CRUD results, filesystem behavior, and safety checks against pi-hermes-memory@0.9.7. Separate regression checks cover incomplete-body diagnostics and repair without partial writes. Tests do not require model-facing guidance to match upstream wording. The upstream dependency lives in an isolated nested test package, so Pi Git installs never install it.
MIT. This distribution retains the upstream copyright and license notice in THIRD_PARTY_NOTICES.md.