pikuri-skills
Agent Skills standard support for the pikuri AI-assistant toolkit.
Provides:
Pikuri::Skill::Catalog— discovery + validation of skill folders under.pikuri/skills,.claude/skills,.agents/skillsbeneath each search base you supply (typically the project root andDir.home).Pikuri::Skill::SkillTool— the loading tool the LLM uses to pull a skill's body into the conversation on demand.Pikuri::Skill::Extension— wires both into aPikuri::Agentvia thec.add_extension(...)block API.
Install
# Gemfile
gem 'pikuri-skills'
Usage
require 'pikuri-core'
require 'pikuri-skills'
# Pass the directories to search under. The catalog scans
# .pikuri/skills, .claude/skills and .agents/skills beneath each base;
# missing subdirs are skipped. Earlier bases beat later ones on a
# name collision.
catalog = Pikuri::Skill::Catalog::Bundled.new(
search_bases: [project_root, Dir.home]
)
agent = Pikuri::Agent.new(transport: ..., system_prompt: ...) do |c|
c.add_extension(Pikuri::Skill::Extension.new(catalog: catalog))
end
When the catalog is non-empty, the extension's configure appends
<available_skills> to the system prompt (listing every discovered
skill) and registers the skill tool. The LLM invokes skill with a
name; the tool returns the skill's body wrapped with its base
directory so the LLM can resolve sidecar files via read.
Further reading
- Narrative walkthrough:
chapter 12 of the pikuri guide —
how skill folders are discovered, the
SKILL.mdformat, and a worked drop-in example. (Currently a stub chapter; the API surface lives in the YARD docs below.) - API reference: browse the YARD docs at
https://rubydoc.info/gems/pikuri-skills (once published), or
run
bundle exec yardin this directory for a local copy.