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.
Scanned 2/10/2026
Install to Claude Code
npx -y skills add bnomei/kirby-mcp --skill kirby-scaffold-page-type --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Kirby Scaffold Page Type?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/bnomei-kirby-scaffold-page-type)More formats (shields.io, HTML) on the badges page.
---
name: kirby-scaffold-page-type
description: 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.
---
# 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-type`
- `kirby://kb/scenarios/22-custom-post-types`
- `kirby://kb/scenarios/30-create-a-blog-section`
- `kirby://kb/scenarios/31-one-pager-site-sections`
- `kirby://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:
```yaml
title: Example
fields:
title:
type: text
```
Template:
```php
<?php snippet('header') ?>
<?php snippet('footer') ?>
```
## Default controller/model
Controller:
```php
return function ($page) {
return ['page' => $page];
};
```
Model:
```php
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
1. Ask for page type name, required fields, Panel UX expectations, and whether to extend an existing type.
2. Call `kirby:kirby_init` and read `kirby://roots` to locate templates, blueprints, controllers, models, and snippets.
3. Check for name collisions and existing patterns:
- `kirby:kirby_templates_index`
- `kirby:kirby_blueprints_index`
- `kirby:kirby_controllers_index`
- `kirby:kirby_models_index`
4. If extending an existing type, read it with `kirby:kirby_blueprint_read` before generating new files.
5. Use Panel reference resources for field and section choices:
- `kirby://fields`
- `kirby://sections`
6. Search the KB with `kirby:kirby_search` (examples: "scaffold page type", "blueprints reuse extends", "custom post types", "create a blog section", "one pager site sections").
7. Create minimal, convention-aligned files; prefer snippets for reusable view logic.
8. Verify with `kirby:kirby_render_page(noCache=true)` when runtime is available; otherwise run `kirby:kirby_runtime_status` and `kirby:kirby_runtime_install` first.
9. Optionally run `kirby:kirby_ide_helpers_status` and `kirby:kirby_generate_ide_helpers` (dry-run first) to keep IDE types in sync.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!