skills/mockup-builder/SKILL.md
Use when creating a visual mockup, UI prototype, or HTML reference for your project's UI. Triggers on "mockup", "prototype", "UI reference", "design a panel", "mock up", or any task producing a visual HTML file for later Unity UI Toolkit implementation.
npx skillsauth add raddue/crucible mockup-builderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create HTML mockups for your project's UI that are constrained to Theme.uss variables and designed for direct translation to Unity UI Toolkit.
Skill type: Rigid — follow exactly.
references/theme-variables.md for the Theme.uss variable catalog. Freshness check: verify the Last synced date is current. If the project's Theme.uss has been modified since that date, regenerate theme-variables.md from Theme.uss's :root block only (see the Freshness Check instructions in theme-variables.md).skills/shared/uss-approximation-patterns.md to understand what CSS effects are achievable in USS and how to approximate those that aren't.skills/mock-to-unity/references/css-to-uss-mapping.md, specifically the "CSS Properties Not Available in USS" section, for the hard-block list of features that MUST NOT be used in mockups.docs/mockups/ for visual language reference — but note that mockups created before this skill may use hardcoded hex values and lack CSS variables. Use them only to understand the project's visual language (colors, proportions, layout patterns), NOT as CSS architecture exemplars.These are non-negotiable. Every mockup must satisfy all of them.
Theming:
var(--color-bg-base))--spacing-*, --font-size-*, --radius-*, --border-*)--color-* variable in :root with a comment explaining why:root block is a LOCAL COPY of Theme.uss values for browser rendering. Values MUST match references/theme-variables.md exactly. Do not redefine existing variables with different values. If you need a value that doesn't exist, add a new variable with a descriptive name and document it in the Translation Notes.Layout:
translateY for hover lift effects (these need C# in Unity)USS Feasibility:
skills/mock-to-unity/references/css-to-uss-mapping.md under "CSS Properties Not Available in USS." These have no USS equivalent and no viable approximation. This includes but is not limited to: text-shadow, @media queries, display: grid/inline, calc(), clamp(), viewport units (vw/vh/vmin/vmax).skills/shared/uss-approximation-patterns.md:
::before/::after, text-transform, transition, cursor (non-standard values), border-style: dashed, letter-spacing in em units, backdrop-filter, animation/@keyframesNaming:
.talent-node, .talent-node__icon, .talent-node--maxed)Output:
docs/mockups/<feature>-mockup.htmlEvery mockup follows this structure:
1. :root block
- All CSS variables from Theme.uss used by this mockup
- Any new variables with explanatory comments
2. Component CSS
- Uses only var() references, never raw values
- Flexbox layout only
- BEM class names
3. HTML structure
- Class names match USS selector intent
- Hierarchy maps to VisualElement tree
- Data-attributes for state variants (data-state="maxed", etc.)
4. Translation Notes (visible footer section)
- CSS features that need C# equivalents (hover → PointerEnterEvent)
- Properties known to fail in USS (height in ScrollView)
- Any new Theme.uss variables this mockup introduces
At the bottom of every mockup, include a visible <section class="translation-notes"> covering:
:hover and :active → USS supports these as pseudo-classes. Use USS selectors directly (e.g., .button:hover { background-color: ... }). Do NOT use C# PointerEnterEvent/PointerLeaveEvent for hover styling — that pattern is outdated.text-overflow: ellipsis → may need C# truncation logictransition → need DOTween or manual interpolation--color-* or --spacing-* variables not yet in Theme.ussmock-to-unity's jobThis skill produces mockups. When used standalone, invoke crucible:quality-gate after the mockup is created and committed. When used as a sub-skill of build, the parent orchestrator handles gating.
The quality gate reviewer MUST check:
skills/shared/uss-approximation-patterns.md:root variable values match references/theme-variables.md (after freshness check)var() references, no hardcoded hex/rgb valuesItems 1-3 are blocking — they guarantee downstream translation failure if not fixed before proceeding to mock-to-unity.
testing
Standalone instance-bug reviewer — runs a parallel finder fan-out + verify gate over a diff or a path and prints ranked, verified findings. Use when the user says "delve", "find bugs in this diff", "review this for bugs", "scan this file/subsystem for defects", "instance-bug sweep", or wants concrete reproducible defects (not a merge verdict, not systemic health). Works on a PR id, a base..head range, or a path, on any forge (GitHub, GitLab, Bitbucket, self-hosted).
testing
Render the Crucible calibration ledger weekly report — the honest "Crucible caught N silent bugs" headline, verdict breakdown, per-skill severity rates, and the inflation detector. Triggers on "/ledger", "weekly report", "weekly ledger", "caught N", "quality ledger", "calibration report", "render the ledger".
development
The Book of Grudges — cross-session bug graveyard. Every fixed bug is recorded as a structured "grudge"; before touching code, skills query the grudgebook for the files in scope and surface past regressions as forced "DO NOT REPEAT" context. Read mode (pre-flight) and write mode (on bug resolution / fix(*) PR). Machine-local, per-repo, never committed. Triggers on /grudge, "check grudges", "record a grudge", "any past bugs here", "regression oracle", "bug graveyard".
testing
Reconcile the Crucible calibration ledger — walk merged fix/hotfix branches to falsify the originating gating-verdicts, compute per-skill Brier calibration scores, and append a falsification log. Triggers on "/calibration-reconcile", "reconcile ledger", "reconcile calibration", "falsify verdicts", "brier score", "calibration reconcile", "compute brier".