AgentStack
SKILL verified MIT Self-run

Interface Craft

skill-tommylower-cortex-interface-craft · by tommylower

Interface Craft for polished React interfaces. Use for three branches: storyboard animation, DialKit-style live tuning, or design critique. Trigger on storyboard, dialkit, sliders, controls, tune, critique, polish, animated interface, or Josh Puckett.

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add skill-tommylower-cortex-interface-craft

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Interface Craft? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Interface Craft

By Josh Puckett

A toolkit for building polished, animated interfaces. Write animations you can read like a script, then tune them with live controls.


Skills

| Skill | When to Use | Invoke | | --- | --- | --- | | [Storyboard Animation](storyboard-animation.md) | Writing or refactoring multi-stage animations into a human-readable DSL | /interface-craft storyboard or describe an animation | | [DialKit](dialkit.md) | Adding live control panels to tune animation/style values | /interface-craft dialkit or mention dials/sliders/controls | | [Design Critique](design-critique.md) | Systematic UI critique of a screenshot, component, or page | /interface-craft critique or paste a screenshot for review |

Quick Start

Storyboard Animation

Turn any animation into a readable storyboard with named timing, config objects, and stage-driven sequencing:

/* ─────────────────────────────────────────────────────────
 * ANIMATION STORYBOARD
 *
 *    0ms   waiting for scroll into view
 *  300ms   card fades in, scale 0.85 → 1.0
 *  900ms   heading highlights
 * 1500ms   rows slide up (staggered 200ms)
 * ───────────────────────────────────────────────────────── */

const TIMING = {
  cardAppear:  300,   // card fades in
  heading:     900,   // heading highlights
  rows:        1500,  // rows start staggering
};

See [storyboard-animation.md](storyboard-animation.md) for the full pattern spec.

DialKit

Generate live control panels for tuning values in real time:

const params = useDialKit('Card', {
  scale: [1, 0.5, 2],
  blur: [0, 0, 100],
  spring: { type: 'spring', visualDuration: 0.3, bounce: 0.2 },
})

See [dialkit.md](dialkit.md) for all control types and patterns.

Sub-Skill Routing

When the user invokes /interface-craft:

  1. With storyboard argument or animation-related context → Load and follow [storyboard-animation.md](storyboard-animation.md)
  2. With dialkit argument or control-panel-related context → Load and follow [dialkit.md](dialkit.md)
  3. With critique argument, a pasted image, or review-related context → Load and follow [design-critique.md](design-critique.md)
  4. With a file path → Read the file, detect whether it needs storyboard refactoring, dialkit controls, or a design critique, and apply the appropriate skill
  5. With a plain-English description of an animation → Use storyboard-animation to write it
  6. Ambiguous → Ask which skill to use

Design Principles

  1. Readable over clever — Anyone should be able to scan the top of a file and understand the animation sequence without reading implementation code
  2. Tunable by default — Every value that affects timing or appearance should be a named constant, trivially adjustable
  3. Data-driven — Repeated elements use arrays and .map(), not copy-pasted blocks
  4. Stage-driven — A single integer state drives the entire sequence; no scattered boolean flags
  5. Spring-first — Prefer spring physics over duration-based easing for natural motion

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.