Claude-skill-registry kirby-plugin-development
Builds or extends Kirby plugins using hooks, extensions, blocks, KirbyTags, and shared templates/controllers. Use when creating reusable features or integrating Panel customizations.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/kirby-plugin-development" ~/.claude/skills/majiayu000-claude-skill-registry-kirby-plugin-development && rm -rf "$T"
manifest:
skills/data/kirby-plugin-development/SKILL.mdsource content
Kirby Plugin Development
KB entry points
kirby://kb/scenarios/04-share-templates-controllers-via-pluginkirby://kb/scenarios/05-kirbytext-kirbytags-hookskirby://kb/scenarios/15-custom-blocks-nested-blockskirby://kb/scenarios/17-extend-kirbytagskirby://kb/scenarios/59-monolithic-plugin-setupkirby://kb/scenarios/60-plugin-workflow-local-testing
Required inputs
- Plugin id (vendor/name) and scope.
- Extension points (hooks/fields/tags/blocks/sections).
- Distribution plan (project-only or composer package).
Minimal plugin skeleton
Kirby::plugin('vendor/name', [ 'hooks' => [], 'blueprints' => [], 'snippets' => [], ]);
Local testing
- Use the local workflow guide to test without publishing.
- Render affected pages and verify plugin registration.
Common pitfalls
- Using inconsistent plugin ids or folder names.
- Registering hooks that assume Panel or API is always enabled.
Workflow
- Define the plugin id (vendor/name), feature scope, and whether it must be reusable across projects.
- Call
and readkirby:kirby_init
to locate plugin roots.kirby://roots - Inspect existing plugins to avoid duplication:
.kirby:kirby_plugins_index - Use extension and hook references:
andkirby://extensionskirby://extension/{name}
andkirby://hookskirby://hook/{name}
- Search the KB with
(examples: "kirbytext hooks", "extend kirbytags", "custom blocks", "share templates via plugin", "monolithic plugin setup").kirby:kirby_search - Implement the plugin with a minimal
registration, then add blueprints/snippets/assets as needed.index.php - Verify by rendering affected pages with
and confirming the plugin loads without errors.kirby:kirby_render_page