HA

halo-theme-dev

Provides guidance and templates for building and modifying Halo CMS themes.

Install

mkdir -p .claude/skills/halo-theme-dev && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/11543" && unzip -o skill.zip -d .claude/skills/halo-theme-dev && rm skill.zip

Installs to .claude/skills/halo-theme-dev

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Use when creating or modifying a Halo CMS theme, writing Thymeleaf templates, configuring theme.yaml or settings.yaml, calling Finder APIs, using vite-plugin-halo-theme, defining theme settings forms, referencing static assets, implementing halo:comment or halo:footer extension points, defining model annotation fields (AnnotationSetting), adding i18n support, or handling error pages. Always use this skill when the user mentions themes, templates, Thymeleaf, theme configuration, or wants to customize the frontend appearance of a Halo site — even if they do not explicitly say "theme."
589 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • →Create or modify Halo CMS themes
  • →Write Thymeleaf templates for frontend rendering
  • →Configure `theme.yaml` and `settings.yaml`
  • →Call Finder APIs for data querying
  • →Use `vite-plugin-halo-theme` for theme development
  • →Implement custom extension points like `halo:comment` or `halo:footer`

How it works

The skill guides the creation and modification of Halo CMS themes using Spring Boot and Thymeleaf, covering template writing, configuration, API calls, and static asset management. It emphasizes checking online documentation for current APIs.

Inputs & outputs

You give it
a request to create, modify, or customize the frontend appearance of a Halo site
You get back
a Halo CMS theme with configured settings, Thymeleaf templates, and static assets

When to use halo-theme-dev

  • →Creating a new Halo theme
  • →Writing Thymeleaf templates for Halo
  • →Configuring theme settings forms
  • →Implementing custom footer extensions

About this skill

Halo Theme Development

Work from the target theme and fetch current Halo documentation only when the task needs a Halo-specific contract. Do not rely on Finder signatures, template variables, or configuration fields recalled from training data.

Establish the Target

  • Inspect theme.yaml, settings.yaml, the package manifest and build config, and representative templates before editing.
  • Determine theme.yaml spec.requires and the actual Halo version. Do not silently raise the requirement or replace the theme's build system.
  • Identify whether runtime templates are authored directly in templates/ or generated from a source directory such as src/.

Fetch Documentation on Demand

  1. Start with the theme documentation index when the task involves Halo theme configuration, templates, Finder APIs, global variables, assets, annotations, i18n, packaging, or plugin integration.
  2. Use the complete Halo documentation index only when the route is unclear or the task crosses documentation sections.
  3. Fetch only the Markdown pages relevant to the current task. Do not load llms-full.txt by default.
  4. For version-sensitive work, also read the theme API changelog, then verify exact fields and signatures against the target version or existing templates. The target version wins over current-site docs.

If online docs are unavailable, continue from the target checkout and installed dependencies when possible, and disclose what could not be verified instead of guessing.

Halo-Specific Boundaries

  • Keep the theme directory name aligned with theme.yaml metadata.name.
  • In a build-tool theme, edit source templates and assets, then run the existing build; do not hand-edit generated templates/ output or hashed assets.
  • Read the current Thymeleaf guide before writing expressions. Halo 2.26 uses Thymeleaf 3.1, where #request, #response, #session, and #servletContext are unavailable. Do not guess expression methods or derive page URLs from request objects; use documented template variables and permalinks.
  • Treat site identity and global injection as Halo-owned by default. Use site.logo, system SEO settings, Halo's head processing, and <halo:footer />; add a theme setting only for a theme-specific override with a system fallback. Check the current settings guide before adding fields to settings.yaml.
  • Do not duplicate Halo-injected description or keywords. Canonical, Open Graph, Twitter Card, and structured data are optional theme/plugin capabilities and must follow the current SEO guide with conflict-avoidance switches.
  • Preserve the project's established Thymeleaf layout and asset conventions. Check the relevant docs before using a Finder method, template variable, Halo utility, custom tag, or page-layout contract. When integrating official frontend widgets, follow the shared color-scheme contract in the current plugin integration guide.
  • Use the starter assets below only when creating a new theme. Never replace an existing theme with a starter.

Starter Templates

The assets/ directory provides two ready-to-use theme templates:

  • assets/theme-minimal/ — Zero-build-tool minimal theme with the standard route templates; ideal for quick prototyping or simple themes
  • assets/theme-vite/ — Vite project template with vite-plugin-halo-theme (recommended for new themes); includes partial layout reuse and CSS toolchain

Usage: copy the directory into themes/ in your Halo working directory, ensure the folder name matches metadata.name in theme.yaml, then install and activate in Console.

Verify

Run the theme's existing build and package checks when applicable. Test every changed template type or integration path on a compatible Halo instance; at minimum cover the affected route plus one shared-layout consumer. Check rendered HTML, asset loading, pagination or empty states when relevant, and browser console errors.

When not to use it

  • →When relying on training data for specific field names, method signatures, or type structures
  • →When the task involves general Spring Boot or Spring WebFlux development unrelated to themes
  • →When the task requires using outdated Halo APIs or template variables

Limitations

  • →The skill does not rely on training data for specific field names, method signatures, or type structures.
  • →The skill requires checking relevant online documentation for current APIs.
  • →The skill focuses on themes, templates, and frontend customization.

How it compares

This skill provides a structured workflow and specific guidance for Halo theme development using Thymeleaf, offering a tailored approach compared to general web development or CMS theme creation.

Compared to similar skills

halo-theme-dev side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
halo-theme-dev (this skill)04moNo flagsIntermediate
http-generate18moReviewIntermediate
generating-api-contracts02moReviewAdvanced
android-java05moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry