Claude-skill-registry kirby-scaffold-page-type
Scaffolds a new Kirby page type (blueprint + template, optional controller/model) using project roots, index tools, and Panel field/section references. Use when creating a new page type or extending an existing blueprint/template.
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-scaffold-page-type" ~/.claude/skills/majiayu000-claude-skill-registry-kirby-scaffold-page-type && rm -rf "$T"
manifest:
skills/data/kirby-scaffold-page-type/SKILL.mdsource content
Kirby Scaffold Page Type
Quick start
- Follow the workflow below to scaffold a new page type safely.
KB entry points
kirby://kb/scenarios/01-scaffold-page-typekirby://kb/scenarios/22-custom-post-typeskirby://kb/scenarios/30-create-a-blog-sectionkirby://kb/scenarios/31-one-pager-site-sectionskirby://kb/scenarios/06-blueprints-reuse-extends
Required inputs
- Page type name and required fields.
- Panel UX expectations and any reuse/extends needs.
- Template/controller/model naming preferences.
Minimal scaffold
Blueprint:
title: Example fields: title: type: text
Template:
<?php snippet('header') ?> <?php snippet('footer') ?>
Default controller/model
Controller:
return function ($page) { return ['page' => $page]; };
Model:
class ExamplePage extends Page { }
Naming checklist
- Template filename matches blueprint id.
- Controller filename matches template name.
- Model class name matches template name in StudlyCase.
Common pitfalls
- Mismatched template, blueprint, and controller names.
- Creating a Panel type without a matching blueprint.
Workflow
- Ask for page type name, required fields, Panel UX expectations, and whether to extend an existing type.
- Call
and readkirby:kirby_init
to locate templates, blueprints, controllers, models, and snippets.kirby://roots - Check for name collisions and existing patterns:
kirby:kirby_templates_indexkirby:kirby_blueprints_indexkirby:kirby_controllers_indexkirby:kirby_models_index
- If extending an existing type, read it with
before generating new files.kirby:kirby_blueprint_read - Use Panel reference resources for field and section choices:
kirby://fieldskirby://sections
- Search the KB with
(examples: "scaffold page type", "blueprints reuse extends", "custom post types", "create a blog section", "one pager site sections").kirby:kirby_search - Create minimal, convention-aligned files; prefer snippets for reusable view logic.
- Verify with
when runtime is available; otherwise runkirby:kirby_render_page(noCache=true)
andkirby:kirby_runtime_status
first.kirby:kirby_runtime_install - Optionally run
andkirby:kirby_ide_helpers_status
(dry-run first) to keep IDE types in sync.kirby:kirby_generate_ide_helpers