pi-skillrefs

内容来源:README.md(说明文档) · 原始地址 · 查看安装指南

原始内容

pi-skillrefs

pi-skillrefs screenshot

pi-skillrefs adds $skill autocomplete to Pi and injects referenced skill bodies as visible turn context.

Install

pi install npm:pi-skillrefs

Or add it directly to Pi settings:

{
  "packages": ["npm:pi-skillrefs"]
}

What it does

  • Autocompletes discovered skills when you type $ in the editor, with fuzzy matching across separators.
  • Colors known inline $skill refs in the editor with the active theme accent color.
  • Keeps the $skill-name token in the user prompt.
  • Injects one visible pi-skillrefs custom message per turn immediately after the referenced user message.
  • Stores compact content like $day, $night so /tree rows stay short.
  • Renders chat messages as skill summaries with token counts, while sending the model the full referenced skill bodies inside one <environment_context> wrapper.
  • Strips YAML frontmatter from full skill injections without requiring strict YAML metadata.
  • Resolves every skill path to an absolute symlink-resolved path.
  • Sends a reminder block instead of reinjecting the full body when that skill is already on the active session path.

Injected model context shape

<environment_context>
<skill ref="$day" path="/absolute/resolved/path/to/day/SKILL.md" mode="full">
# Day Skill

...
</skill>

<skill ref="$night" path="/absolute/resolved/path/to/night/SKILL.md" mode="full">
# Night Skill

...
</skill>
</environment_context>

Reminder injections use mode="reminder" and replace the body with a short reminder string.

Transcript behavior

  • The user-visible prompt text stays unchanged.
  • /tree navigation to a referenced user message excludes that turn's skill injection until the prompt is submitted again.
  • The chat transcript shows one compact aside summary per visible referenced skill, with token counts.
  • /tree shows the stored compact row: [pi-skillrefs]: $skill.
  • Expanding the custom message reveals the raw injected XML.

Compatibility

  • Composes with pi-fzfp through its editor handshake.
  • Uses Pi package metadata in package.json, so it loads through pi install and appears in the Pi package gallery contract for npm packages tagged with pi-package.

Development

pnpm test
pnpm typecheck
pnpm lint
gate