Agent skill
kirby-routing-and-representations
Implements custom Kirby routes and content representations (.json/.xml/.rss), including redirects, sitemap endpoints, and URL pattern filtering. Use when building endpoints, redirects, or representation templates that change how URLs resolve.
Install this agent skill to your Project
npx add-skill https://github.com/bnomei/kirby-mcp/tree/main/skills/kirby-routing-and-representations
SKILL.md
Kirby Routing and Representations
KB entry points
kirby://kb/scenarios/13-custom-routeskirby://kb/scenarios/21-filtering-via-routeskirby://kb/scenarios/49-sitemap-xml-routekirby://kb/scenarios/78-trailing-slash-and-canonical-urlskirby://kb/scenarios/02-json-content-representation-ajax-load-more
Required inputs
- URL pattern and HTTP methods.
- Response type and content language behavior.
- Redirect or canonicalization rules.
Decision guide
- Use content representations for page-backed JSON/XML/RSS.
- Use routes for non-page endpoints, redirects, or custom logic.
- Avoid greedy patterns that shadow representations.
Pattern hint
- Put specific routes before catch-alls; avoid top-level
(:all)when using representations.
Canonical redirect example
[
'pattern' => '(:any)/',
'action' => function ($path) {
return go('/' . trim($path, '/'), 301);
}
]
Common pitfalls
- Route patterns that shadow
.jsonor.rssrepresentations. - Expecting
kirby:kirby_render_pageto execute route logic.
Workflow
- Clarify the URL pattern, HTTP methods, response type, and language behavior.
- Call
kirby:kirby_initand readkirby://rootsto locate config and template roots. - Read
kirby://config/routesto understand current route configuration. - If runtime is available, call
kirby:kirby_routes_indexto see registered patterns; otherwise runkirby:kirby_runtime_statusandkirby:kirby_runtime_installfirst. - Inspect existing templates/controllers to avoid collisions:
kirby:kirby_templates_indexkirby:kirby_controllers_index
- For content representations, add
site/templates/<template>.<type>.phpand optionalsite/controllers/<template>.<type>.php. - For routes, add or adjust
routesinsite/config/config.phpor a plugin. Avoid greedy patterns that shadow.json/.rssrepresentations. - Validate output:
- use
kirby:kirby_render_page(contentType: json|xml|rss)for representations - manually hit route URLs for router behavior (render does not execute the router)
- use
- Search the KB with
kirby:kirby_search(examples: "custom routes", "json content representation", "filtering via routes", "sitemap.xml", "trailing slash").
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
kirby-i18n-workflows
Manages Kirby multi-language workflows, translations, and localized labels. Use when dealing with languages, translation keys, placeholders, or importing/exporting translations.
kirby-security-and-auth
Secures Kirby sites with access restriction, user roles, permissions, and protected downloads. Use when implementing login/role-based access, permissions, or file protection.
kirby-headless-api
Exposes Kirby content to headless clients using the API, KQL, and JSON representations. Use when building API endpoints, KQL queries, or headless frontends.
kirby-performance-and-media
Improves Kirby performance and media delivery (cache tuning, CDN, responsive images, lazy loading). Use when optimizing page speed, caching, or image handling.
kirby-panel-and-blueprints
Designs Kirby blueprints and Panel UI, including blueprint reuse/extends, programmable blueprints, and custom Panel fields/sections/areas. Use when changing the Panel experience or schema.
kirby-upgrade-and-maintenance
Upgrades Kirby and maintains dependencies safely using composer audit, plugin compatibility checks, and official docs. Use when updating Kirby versions or making maintenance changes that affect runtime.
Didn't find tool you were looking for?