Manage aesthetic templates - save visual systems from completed mockups as interpretable prose, apply to new plugins with adaptive layouts
Purpose: Capture and apply aesthetic "vibes" across plugins using structured prose descriptions rather than rigid specifications.
You MUST determine which operation the user is requesting, then execute ONLY that operation.
Operation Routing (match user request to keywords):
Before presenting decision menu in ANY operation:
ALL steps must complete successfully. If ANY step fails: HALT, report specific error, DO NOT proceed to decision menu.
Verification checklist (run before showing menu):
Error handling:
Note: Always use inline numbered menus (NOT AskUserQuestion tool) to maintain consistency with system-wide Checkpoint Protocol.
.claude/aesthetics/
├── manifest.json # Registry of all aesthetics
└── [aesthetic-id]/
├── aesthetic.md # Structured prose description (THE SOURCE OF TRUTH)
├── preview.html # Visual reference (original mockup)
└── metadata.json # Name, description, source plugin, tags
Key change from previous system:
<critical_sequence> <step id="-1" required="true"> Initialize .claude/aesthetics/ directory if missing (mkdir -p) </step> <step id="0" required="true" depends_on="-1"> Validate mockup file exists and is readable </step> <step id="1" required="true" depends_on="0"> Read mockup HTML file into memory (Read tool) </step> <step id="2" required="true" depends_on="1"> Extract visual patterns using pattern-extraction.md strategies </step> <step id="3" required="true" depends_on="2"> Generate prose descriptions using prose-generation.md guidelines </step> <step id="4" required="true" depends_on="3"> Write aesthetic.md following aesthetic-template.md structure exactly: same section headers in same order, fill all sections with prose (no placeholders) (load template from assets/aesthetic-template.md, if missing: report critical error) </step> <step id="5" required="true" depends_on="4"> Copy preview.html to aesthetic directory </step> <step id="6" required="true" depends_on="5"> Generate metadata.json with inferred tags </step> <step id="7" required="true" depends_on="6"> Update manifest.json using Read → modify → Write pattern (if missing: initialize from assets/manifest-init.json) </step> <step id="7.5" required="true" depends_on="7"> Commit aesthetic to git using conventional format </step> <step id="8" required="true" depends_on="7.5"> Present confirmation + decision menu </step> </critical_sequence>
<state_requirement> See "CRITICAL: Checkpoint Verification Protocol" section for complete verification requirements. </state_requirement> </operation>
See: references/save-operation.md for complete 8-step workflow.
<critical_sequence> <step id="1" required="true"> Load aesthetic.md and metadata.json (Read tool) </step> <step id="2" required="true"> Read target plugin parameter-spec.md or creative-brief.md </step> <step id="3" required="true" depends_on="1,2"> Interpret aesthetic prose using aesthetic-interpretation.md strategies </step> <step id="4" required="true" depends_on="3"> Choose layout based on parameter count (layout-generation.md) </step> <step id="5" required="true" depends_on="3,4"> Generate HTML/CSS applying aesthetic to chosen layout </step> <step id="6" required="true" depends_on="5"> Save generated mockup to target plugin mockups directory </step> <step id="7" required="true" depends_on="6"> Update aesthetic metadata.json usedInPlugins array </step> <step id="8" required="true" depends_on="7"> Present decision menu as inline numbered list, NOT AskUserQuestion tool (rationale: consistent with system-wide Checkpoint Protocol - see CLAUDE.md) </step> </critical_sequence>
<decision_gate wait_required="true"> Present decision menu with preview/continue options MUST wait for user response </decision_gate> </operation>
See: references/apply-operation.md for complete 8-step workflow.
<decision_gate wait_required="true"> Wait for user to select action from menu </decision_gate> </operation>
Display all saved aesthetics in table format with preview paths. See: references/list-operation.md for complete 4-step workflow.
Remove aesthetic from library with confirmation. See: references/delete-operation.md for complete 4-step workflow.
Refine aesthetic.md from improved mockup while preserving user edits. See: references/update-operation.md for complete 7-step workflow.
This skill provides operations for managing aesthetic templates. Called by ui-mockup skill.
save_aesthetic(mockup_path, plugin_name, aesthetic_name?):
apply_aesthetic(aesthetic_id, plugin_name, parameter_spec_path):
Invocation: Inline invocation from ui-mockup (both skills are lightweight and stateless).
Save operation successful when:
Apply operation successful when:
List operation successful when:
Technical details about parsing, quality control, and constraints. See: references/implementation-notes.md for complete technical documentation.
references/pattern-extraction.md - String/regex strategies for extracting visual patterns from HTMLreferences/prose-generation.md - Guidelines for transforming patterns into interpretable prosereferences/aesthetic-interpretation.md - Strategies for parsing prose and generating CSS/HTMLreferences/layout-generation.md - Layout decision trees and control placement strategiesassets/aesthetic-template.md - Complete structured prose template (THE FORMAT SPEC)assets/metadata-template.json - Metadata JSON structureassets/manifest-init.json - Empty manifest structure for initializationnpx skills add glittercowboy/ui-template-library下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer