design
Skill334 starsChanged 34 days agoMITView on GitHub
Create the Visual Interface for audio plugins. Use when user mentions UI design, mockup, WebView interface, or requests 'design UI for [plugin]'.
197 other projects use a version of this.
Adopted by
Most recently taken up by
- dialog-db/dialog-dbtheir own version, first seen Nov 9, 2026
- BermanRoman/promt-seo-geotheir own version, first seen Nov 8, 2026
- anorth/agent-skillstheir own version, first seen Nov 8, 2026
- gspencergoog/skillstheir own version, first seen Nov 8, 2026
- PeanutGT/NutsSkillstheir own version, first seen Nov 8, 2026
- Integralist/agent-skillstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use banner-design, ui-styling and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
seikaikyoSkillbanner-design
Design banners for social media, ads, website heroes, creative assets, and print. Multiple art direction options with optional generated or supplied visuals. Actions: design, create, generate banner. Platforms: Facebook, Twitter/X, LinkedIn, YouTube, Instagram, Google Display, website hero, print. Styles: minimalist, gradient, bold typography, photo-based, illustrated, geometric, retro, glassmorphism, 3D, neon, duotone, editorial, collage.
Also in 38 projects that use this
MicrosoftSkillui-styling
Guide for the visual style, structure, and shared building blocks used by Semantic Link Labs interactive UI tools (HTML widgets and anywidget-based widgets). Use this when adding a new interactive UI, modifying an existing one, or adding shared visual components.
Also in 39 projects that use this
seikaikyoSkillbrand
Brand voice, visual identity, messaging frameworks, asset management, brand consistency. Activate for branded content, tone of voice, marketing assets, brand compliance, style guides.
Also in 43 projects that use this
mayankjain1815-commitsSkillinfra-audit
Reads docker-compose, env files, ORM configs, and connection strings to map current infrastructure. Flags missing layers (cache, queue, analytics) based on observed access patterns. Outputs a structured infrastructure manifest.
Also in 3 projects that use this
JetBrainsSkillslides
Create and edit presentation slide decks (`.pptx`) with PptxGenJS and render/validation utilities. Use when tasks involve building a new PowerPoint deck, recreating slides from screenshots/PDFs/reference decks, modifying slide content while preserving editable output, adding charts/diagrams/visuals, or diagnosing layout issues such as overflow, overlaps, and font substitution.
Also in 42 projects that use this
AnthropicSkilldesign-system
Audit, document, or extend your design system. Use when checking for naming inconsistencies or hardcoded values across components, writing documentation for a component's variants, states, and accessibility notes, or designing a new pattern that fits the existing system.
Also in 49 projects that use this
Other versions197 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 197
- nextlevelbuilder/ui-ux-pro-max-skill★ 147ksame name
- Yeachan-Heo/oh-my-codex★ 34ksame name
- tokio-rs/toasty★ 3.3ksame name
- PaulWoitaschek/Voice★ 3.3ksame name
- joye61/pic-smaller★ 2.9ksame name
- oxsecurity/megalinter★ 2.6ksame name
- Infisical/agent-vault★ 2.5ksame name
- static-web-server/static-web-server★ 2.4ksame name
- SethGammon/Citadel★ 927same name
- Ohh-889/skyroc-admin★ 795same name
187 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository33 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .cursor/rules/no-ai-attribution.mdcCursor rule
- apc-setupSkill
- audio-plugin-coderSkill
- debugSkill
- dreamSkill
- implSkill
- orchestrateSkill
- planSkill
- shipSkill
- skill-debugSkill
- skill-designSkill
- juce-webview-windowsSkill
- skill-ideationSkill
- skill-implementationSkill
- skill-packagingSkill
- skill-planningSkill
- skill-testingSkill
- skill-troubleshootingSkill
- testSkill
- apc-setupSkill
- skill_debugSkill
- skill_designSkill
- dreamSkill
- implSkill
- orchestrateSkill
- planSkill
- shipSkill
- juce-webview-windowsSkill
- skill_testingSkill
- skill_troubleshootingSkill
- testSkill
- audio-plugin-coderSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
19 rules. 0 are common, 12 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 174 edited versions we read keep these.
12
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Goal: Create the Visual Interface for audio plugins.
- Very specific: line 15
Check if design_library/manifest.json exists and count available designs.
- Distinctive: line 108
If user chooses existing design: Apply it as the starting point, still allow iteration
- Distinctive: line 109
If user chooses from scratch: Continue to Phase 1
- Very specific: line 227
Ask max 4 questions at once using AskUserQuestion tool
- Distinctive: line 228
Check creative brief first (if exists) - extract known requirements
- Very specific: line 306
ALL JavaScript must be inline in ONE <script> block - ES6 modules fail silently in JUCE WebView (webview-008)
- Very specific: line 307
All element IDs must match parameter IDs from parameter-spec.md (composer emits id="ctl-<param>" + data-param)
- Very specific: line 309
No external dependencies beyond the vendored apc-ui/ kit
- Distinctive: line 312
Do NOT generate HTML: Instead, offer a Visage preview scaffold (default Yes):
- Distinctive: line 319
Default: Yes (generate unless user explicitly says no).
- Very specific: line 371
Update
$PluginPath/.ideas/todo.md: - Check off GUI tasks - Very specific: line 394
All files prefixed with version: v2-ui-spec.md, v2-PluginEditor.h
- Distinctive: line 395
Keep all versions for comparison
- Distinctive: line 404
After creative brief in plugin workflow
- Distinctive: line 420
Never write code before gathering requirements: - Always complete Phase 1 first
- Distinctive: line 421
Respect the decision gates: - Wait for user approval at each menu
- Distinctive: line 422
One phase at a time: - Don't skip ahead
- Distinctive: line 423
Version everything: - Never overwrite previous iterations
“Common” is measured: kept by at least 6 in 10 of the 174 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
SKILL: GUI DESIGN
Goal: Create the Visual Interface for audio plugins.
Output Location: $PluginPath/Design/ and $PluginPath/Source/ (via paths.plugins_dir)
🎨 PHASE 0: DESIGN LIBRARY CHECK
Check if design_library/manifest.json exists and count available designs.
Import state management:
# Import state management module
. "$PSScriptRoot\..\scripts\state-management.ps1"
$PluginPath = Get-ApcPluginPath -PluginName $PluginNameValidate prerequisites:
# Check that planning phase is complete and framework is selected
if (-not (Test-PluginState -PluginPath $PluginPath -RequiredPhase "plan_complete" -RequiredFiles @(".ideas/architecture.md", ".ideas/plan.md"))) {
Write-Error "Prerequisites not met. Complete planning phase first with framework selection."
exit 1
}
# Get current state to check framework
$state = Get-PluginState -PluginPath $PluginPath
if ($state.ui_framework -eq "pending") {
Write-Error "UI framework not selected. Complete planning phase first."
exit 1
}If designs exist, present menu:
Found {N} saved designs in library.
How would you like to start?
1. Use existing design - Apply saved visual style
2. Start from scratch - Create custom design
3. Browse library - View all designs first
Choose (1-3): _Routing:
- Option 1: Show designs with previews, let user pick, skip to Phase 2 with applied style
- Option 2: Continue to Phase 1 (requirements gathering)
- Option 3: List all designs with metadata, return to menu
If no designs: Skip to Phase 1.
🎨 PHASE 0: DESIGN LIBRARY CHECK
Check for existing designs first:
# Check if design library exists
$manifestPath = "design_library/manifest.json"
if (Test-Path $manifestPath) {
$manifest = Get-Content $manifestPath | ConvertFrom-Json
$designCount = $manifest.totalDesigns
Write-Host "Found $designCount saved designs in library." -ForegroundColor Cyan
Write-Host ""
# Present menu
Write-Host "How would you like to start?" -ForegroundColor Yellow
Write-Host "1. Use existing design - Apply saved visual style"
Write-Host "2. Start from scratch - Create custom design"
Write-Host "3. Browse library - View all designs first"
Write-Host ""
$choice = Read-Host "Choose (1-3)"
switch ($choice) {
"1" {
# Show available designs and let user pick
Show-DesignLibrary -Manifest $manifest
$selectedDesign = Read-Host "Enter design ID to use"
# Apply selected design as v1
Apply-DesignFromLibrary -DesignId $selectedDesign
# Skip to Phase 2 with applied design
}
"2" {
# Continue to Phase 1 (requirements gathering)
}
"3" {
# List all designs with details
Show-DesignLibrary -Manifest $manifest -Detailed
# Return to menu
# (Loop back to choice prompt)
}
}
} else {
Write-Host "No design library found. Starting from scratch." -ForegroundColor Yellow
# Continue to Phase 1
}Design Library Integration:
- If user chooses existing design: Apply it as the starting point, still allow iteration
- If user chooses from scratch: Continue to Phase 1
- Browse option: Show metadata without committing to use
📋 PHASE 1: REQUIREMENTS GATHERING
Do NOT write code yet. Gather requirements through focused questions.
Exception: For Visage only, a preview scaffold may be generated after Phase 2 if the user approves.
Tier 1 - Critical (always ask if missing):
- Style Direction: Cyberpunk? Analog hardware? Minimal modern? Skeuomorphic?
- Primary Layout: Big central knob? Horizontal strip? Vertical rack? Multi-section?
- Control Count: How many knobs/sliders/buttons? (affects spacing)
- Window Size: Compact (400x300)? Standard (600x400)? Large (800x600)?
- Layout Mode (WebView):
scalable(default — resizable, aspect-locked, in-page corner grip),fixed(window never resizes), oradaptive(scalable + breakpoint view swaps like a meter-bridge mode). See.agents/rules/ui-layout-system.md.
Tier 2 - Visual (ask if Tier 1 complete):
- Color Palette: Primary accent color? Dark/light theme?
- Control Style: Rotary knobs? Linear sliders? Toggles? Mix?
- Metering: VU meters? LED indicators? Waveform display?
Tier 3 - Polish (ask last):
- Branding: Logo placement? Plugin name display?
- Special Features: Preset browser? Analyzer? Custom graphics?
Helper Functions for Design Library:
function Show-DesignLibrary {
param($Manifest, [switch]$Detailed)
Write-Host "Available Designs:" -ForegroundColor Cyan
Write-Host ("=" * 50) -ForegroundColor Cyan
foreach ($design in $Manifest.designs) {
Write-Host "$($design.id)" -ForegroundColor Green
Write-Host " Name: $($design.name)"
Write-Host " Style: $($design.vibe)"
Write-Host " Best for: $($design.bestFor -join ', ')"
if ($Detailed) {
Write-Host " Colors: $($design.colors.primary) (primary), $($design.colors.accent) (accent)"
Write-Host " Supports: $($design.supports.webview ? 'WebView' : ''), $($design.supports.visage ? 'Visage' : '')"
Write-Host " Usage: $($design.usageCount) times"
Write-Host ""
}
}
}
function Apply-DesignFromLibrary {
param($DesignId)
$manifest = Get-Content "design_library/manifest.json" | ConvertFrom-Json
$design = $manifest.designs | Where-Object { $_.id -eq $DesignId }
if ($design) {
Write-Host "Applying design: $($design.name)" -ForegroundColor Green
# Copy design files as v1 starting point
$designPath = "design_library/$($design.path)"
# Copy preview.html as v1-test.html (WebView only)
$state = Get-PluginState -PluginPath $PluginPath
if ($state.ui_framework -eq "webview") {
Copy-Item "$designPath/preview.html" "$PluginPath/Design/v1-test.html"
}
# Generate v1-ui-spec.md based on design metadata
$specContent = @"
# UI Specification v1 (Based on $($design.name))
## Design Source
- **Library Design:** $($design.name)
- **ID:** $($design.id)
- **Style:** $($design.vibe)
## Layout
[Layout details from design]
## Colors
- Primary: $($design.colors.primary)
- Accent: $($design.colors.accent)
- Background: $($design.colors.background)
## Controls
[Control specifications based on design]
"@
$specContent | Out-File "$PluginPath/Design/v1-ui-spec.md"
# Generate v1-style-guide.md
$styleContent = @"
# Style Guide v1 (Based on $($design.name))
## Color Palette
- **Primary:** $($design.colors.primary)
- **Accent:** $($design.colors.accent)
- **Background:** $($design.colors.background)
## Typography
[Typography details]
## Visual Style
- **Theme:** $($design.vibe)
- **Best for:** $($design.bestFor -join ', ')
"@
$styleContent | Out-File "$PluginPath/Design/v1-style-guide.md"
Write-Host "Design applied as v1. You can now iterate on this foundation." -ForegroundColor Green
} else {
Write-Error "Design '$DesignId' not found in library."
}
}Rules:
- Ask max 4 questions at once using
AskUserQuestiontool - Check creative brief first (if exists) - extract known requirements
- Calculate recommended window size before asking (based on control count)
- Present decision gate after each batch: Finalize / Ask more / Add context
🎨 PHASE 2: MOCKUP GENERATION
Create design specification files (all frameworks):
$PluginPath/Design/v1-ui-spec.md- Structured design plan:
# UI Specification v1
## Layout
- Window: [width]x[height]px
- Sections: [list sections]
- Grid: [describe layout structure]
## Controls
| Parameter | Type | Position | Range | Default |
|-----------|------|----------|-------|---------|
| ... | ... | ... | ... | ... |
## Color Palette
- Background: #______
- Primary: #______
- Accent: #______
- Text: #______
## Style Notes
[Key visual decisions, inspirations, constraints]$PluginPath/Design/v1-style-guide.md- Visual reference:- Hex codes for all colors
- Font choices and sizes
- Spacing/padding rules
- Control visual styles
- Example UI state descriptions
- Framework-specific preview artifacts:
If ui_framework == webview
Do NOT hand-author the preview HTML. The design artifact is the contract
file $PluginPath/Design/v1-ui-map.json (schema: schemas/ui-map.schema.json,
rules: .agents/rules/ui-layout-system.md), rendered by the composer:
node bin/apc.js ui-compose $PluginName # or: node scripts/ui-compose.js $PluginNameThis emits $PluginPath/Design/v1-test.html + vendors apc-ui/ (core CSS,
component catalog, fit/grip JS) into Design/apc-ui/.
Author the map, not the markup:
layout.plate— pickcols/rowsfrom the agreed window size (e.g. 800×440 at 16px cells →50 × 27.5; grid cells are square).layout.mode/aspect_lock/scale_range/edge_policy/resize_handle/presets— from the Phase 1 mode answer.tokens— palette + typography as CSS vars (e.g.--plate,--ink,--accent,--font-ui).sections/controls/canvases— every element gets acell{x,y,w,h}in 0.25-cell steps.controls[].parammust be a parameter ID fromparameter-spec.md;componentmust be a catalog component (knob|flip|psw|fader|screen|chip|well|grip|section|label|custom).- Compose → open the preview in
tools/ui-preview/(grid overlay + click-inspect + annotation export) or any browser. Via the APC Hub:http://localhost:4872/uipreview?plugin=<Name>loads the newestvN-ui-map.json+vN-test.htmlautomatically.
Iteration = edit the map, re-compose. User annotations land in
Design/annotations.json (hub review tool "save → Design") or exported
markdown / the map's annotations[] — treat them as mechanical deltas to
apply, then re-compose and re-validate:
node bin/apc.js validate ui --plugin <Name> --map vN-ui-map.json --html Design/vN-test.html
CRITICAL WebView Requirements (unchanged):
- ALL JavaScript must be inline in ONE
<script>block - ES6 modules fail silently in JUCE WebView (webview-008) - All element IDs must match parameter IDs from
parameter-spec.md(composer emitsid="ctl-<param>"+data-param) - HTML structure must match the approved
ui-map.jsonexactly — no invented elements - No external dependencies beyond the vendored
apc-ui/kit
If ui_framework == visage
Do NOT generate HTML. Instead, offer a Visage preview scaffold (default Yes):
Ask:
Generate a Visage preview scaffold now? (Y/n)Default: Yes (generate unless user explicitly says no).
If yes, generate:
$PluginPath/Source/VisageControls.husingtemplates/visage/VisageControls.h.template$PluginPath/Source/PluginEditor.handPluginEditor.cppusingtemplates/visage/
These files are preview-only and will be refined during /impl.
Present decision menu:
🎨 Design specification v1 created
Files:
- $PluginPath/Design/v1-ui-map.json (WebView: the contract — source of truth)
- $PluginPath/Design/v1-ui-spec.md (human-readable, generated from the map)
- $PluginPath/Design/v1-style-guide.md
- WebView: $PluginPath/Design/v1-test.html (composed preview + Design/apc-ui/ kit)
- Visage: Source/VisageControls.h + PluginEditor.* (preview via preview-design.ps1)
⚠️ STOP HERE - Do NOT create Source/ files yet!
What would you like to do?
1. Iterate - Edit ui-map + re-compose (creates v2); can apply Design/annotations.json
2. Implement - Generate production code in Source/
3. Save as template - Add to design library
4. Preview - WebView: open v1-test.html in browser, or hub /uipreview?plugin=<Name>
for grid overlay + click-inspect + per-element annotations (save → Design or
copy AI prompt); Visage: preview-design.ps1
Choose (1-4): _Routing:
- Option 1: Collect feedback or apply exported
annotations.jsoncell-by-cell → updatev2-ui-map.json→node bin/apc.js ui-compose $PluginName→ return to menu - Option 2: Mark design as approved and complete Design phase, suggest starting Implementation phase
- Option 3: Save to design_library/, return to menu
- Option 4: Open v1-test.html / tools/ui-preview or run Visage preview, return to menu
After design approval (Option 2):
# Mark design phase complete
Complete-Phase -PluginPath $PluginPath -Phase "design" -Updates @{
"validation.design_complete" = $true
}
Write-Host "Design phase complete! Ready for implementation."
Write-Host "Run /impl [Name] to start building the plugin."✅ PHASE 4: COMPLETION
- Commit files to git
- Update
$PluginPath/.ideas/todo.md- Check off GUI tasks - Update
PLUGINS.md- Mark design stage complete
Present instructions:
GUI files generated and committed!
Next steps:
- Preview Visage: powershell -ExecutionPolicy Bypass -File .\scripts\preview-design.ps1 -PluginName [Name]
- Preview WebView: Open $PluginPath/Design/index.html in browser
- Build: Follow standard build process
Files created:
[list generated files]STOP HERE. Let user test before proceeding.
🔄 VERSIONING SYSTEM
- Each iteration creates new version: v1, v2, v3...
- All files prefixed with version:
v2-ui-spec.md,v2-PluginEditor.h - Keep all versions for comparison
- Latest version used for build unless specified
📚 INTEGRATION
Invoked by:
- Natural language: "Design UI for [Name]", "Create GUI mockup"
- After creative brief in plugin workflow
- During plugin redesign
Creates:
- Design specs:
$PluginPath/Design/v[N]-*.md - Source code:
Source/PluginEditor.{h,cpp} - Optional:
Source/VisageControls.h,v[N]-ui.html
Updates:
PLUGINS.md- Design status$PluginPath/.ideas/todo.md- Task completion
⚠️ CRITICAL RULES
- Never write code before gathering requirements - Always complete Phase 1 first
- Respect the decision gates - Wait for user approval at each menu
- One phase at a time - Don't skip ahead
- Version everything - Never overwrite previous iterations
- Check design library first - Reuse before creating
- Commit after each phase - Preserve progress
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

