fluxwing-library-browser

from jackspace/claudeskillz

ClaudeSkillz: For when you need skills, but lazier

8 stars2 forksUpdated Nov 20, 2025
npx skills add https://github.com/jackspace/claudeskillz --skill fluxwing-library-browser

SKILL.md

Fluxwing Library Browser

Browse all available uxscii components: bundled templates, user-created components, and complete screens.

Data Location Rules

READ from (bundled templates - reference only):

  • {SKILL_ROOT}/../uxscii-component-creator/templates/ - 11 component templates
  • {SKILL_ROOT}/../uxscii-screen-scaffolder/templates/ - 2 screen examples (if available)
  • {SKILL_ROOT}/docs/ - Documentation

READ from (project workspace):

  • ./fluxwing/components/ - Your created components
  • ./fluxwing/screens/ - Your created screens
  • ./fluxwing/library/ - Customized template copies

NEVER write to skill directories - they are read-only!

Your Task

Show the user what uxscii components are available across four sources:

  1. Bundled Templates - 11 curated examples from skill templates (read-only reference)
  2. Project Components - User/agent-created reusable components in ./fluxwing/components/ (editable)
  3. Project Library - Customized template copies in ./fluxwing/library/ (editable)
  4. Project Screens - Complete screen compositions in ./fluxwing/screens/ (editable)

Key Distinction: Bundled templates are READ-ONLY reference materials. To customize them, copy to your project workspace first.

Fast Browsing with Pre-Built Index

IMPORTANT: Use the pre-built template index for instant browsing (10x faster than globbing):

// Load the pre-built index (1 file read = instant results!)
const index = JSON.parse(read('{SKILL_ROOT}/data/template-index.json'));

// Browse by type
const buttons = index.by_type.button; // ["primary-button", "secondary-button"]
const inputs = index.by_type.input; // ["email-input"]

// Search by tag
const formComponents = index.by_tag.form; // All form-related components
const interactiveComponents = index.by_tag.interactive; // All interactive components

// Get component info instantly (no file reads needed!)
const buttonInfo = index.bundled_templates.find(t => t.id === "primary-button");
console.log(buttonInfo.name); // "Primary Button"
console.log(buttonInfo.description); // Full description
console.log(buttonInfo.preview); // ASCII preview already extracted!
console.log(buttonInfo.states); // ["default", "hover", "active", "disabled"]
console.log(buttonInfo.props); // ["text", "variant", "size"]
console.log(buttonInfo.tags); // ["button", "primary", "action", "interactive"]

Performance Benefits:

  • āœ… 1 file read vs 11+ file reads (10x faster!)
  • āœ… Instant type/tag filtering (no parsing needed)
  • āœ… Pre-extracted ASCII previews (show immediately)
  • āœ… Metadata summary (no JSON parsing per component)

Index Structure:

{
  "version": "1.0.0",
  "generated": "2025-10-18T12:00:00Z",
  "template_count": 11,
  "bundled_templates": [ /* array of component metadata */ ],
  "by_type": { /* components grouped by type */ },
  "by_tag": { /* components grouped by tags */ }
}

When to use full file reads:

  • User requests detailed view of a specific component
  • User wants to copy a template (need full .uxm and .md content)
  • User searches for a very specific property not in the index

Display Format

Present in a clear, hierarchical structure:

šŸŽ BUNDLED TEMPLATES
šŸ“ Component Creator Templates
─────────────────────────────────────────────────────
These are starter templates you can copy and customize.

Buttons (2 variants)
  ā”œā”€ primary-button.uxm
  │  └─ Standard clickable button with hover, focus, and disabled states
  │     ā–“ā–“ā–“ā–“ā–“ā–“ā–“ā–“ā–“ā–“ā–“ā–“
  │     ā–“ Click Me ā–“
  │     ā–“ā–“ā–“ā–“ā–“ā–“ā–“ā–“ā–“ā–“ā–“ā–“
  │
  └─ icon-button.uxm
     └─ Button with icon support for visual emphasis
        [šŸ” Search]

Inputs (2 variants)
  ā”œā”€ text-input.uxm
  │  └─ Basic text input with validation states
  │     [________________]
  │
  └─ email-input.uxm
     └─ Email-specific input with format validation
        [user@example.com  ]

Cards (1 variant)
  └─ card.uxm
     └─ Container for grouping related content
        ╭─────────────╮
        │ Card Title  │
        ā”œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¤
        │ Content...  │
        ╰─────────────╯

Modals (1 variant)
  └─ modal.uxm
     └─ Overlay dialog for focused interactions
        ╔═══════════════╗
        ā•‘ Modal Title   ā•‘
        ╠═══════════════╣
        ā•‘ Content...    ā•‘
        ā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•

Navigation (1 variant)
  └─ navigation.uxm
     └─ Primary navigation menu
        • Home  • About  • Contact

Feedback (2 variants)
  ā”œā”€ alert.uxm
  │  └─ User notification with severity levels
  │     āš ļø Warning: Action required
  │
  └─ badge.uxm
     └─ Small status indicator or label
        ā— New

Lists (1 variant)
  └─ list.uxm
     └─ Vertical list for displaying data
        • Item 1
        • Item 2
        • Item 3

─────────────────────────────────────────────────────

šŸŽØ YOUR COMPONENTS
šŸ“ ./fluxwing/components/
─────────────────────────────────────────────────────
Components you've created for your project.

āœ“ submit-button.uxm
  └─ Custom submit button for

...
Read full content

Repository Stats

Stars8
Forks2
LicenseMIT License