Skip to content
Back to skills

Kirby Scaffold Page Type

ASecurity

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.

  • 61 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added February 7, 2026
toolsphp

Security analysis

A100/100

Scanned February 10, 2026

npx -y skills add bnomei/kirby-mcp --skill kirby-scaffold-page-type --agent claude-code

Installs 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 with every re-scan.

Security grade badge for Kirby Scaffold Page Type
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bnomei-kirby-scaffold-page-type/badge)](https://www.skillsdirectory.com/skills/bnomei-kirby-scaffold-page-type)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.