Validate uxscii components and screens against schema with interactive menu or direct script calls
Validates Fluxwing components and screens against JSON Schema. Triggers when users request validation, offering interactive menu or direct script calls for batch processing.
/plugin marketplace add trabian/fluxwing-skills/plugin install fluxwing-skills@fluxwing-marketplaceThis skill is limited to using the following tools:
README.mdpackage-lock.jsonpackage.jsontest-screen-validator.jstest-validator.jsvalidate-batch.jsvalidate-component.jsvalidate-screen.jsValidate uxscii components and screens against JSON Schema with interactive workflows.
This skill provides two modes of operation:
User says:
Other skills: Call validator scripts directly (see Technical Reference below)
Use AskUserQuestion to present menu:
What would you like to validate?
Options:
./fluxwing/components/*.uxm./fluxwing/screens/*.uxmBefore running validation, check if directories exist:
# Check for components
test -d ./fluxwing/components
# Check for screens
test -d ./fluxwing/screens
If neither exists:
If option 4 (custom) selected:
Based on user selection:
Option 1: Everything
# Validate components
node {SKILL_ROOT}/validate-batch.js \
"./fluxwing/components/*.uxm" \
"{SKILL_ROOT}/../fluxwing-component-creator/schemas/uxm-component.schema.json" \
--json
# Validate screens
node {SKILL_ROOT}/validate-batch.js \
"./fluxwing/screens/*.uxm" \
"{SKILL_ROOT}/../fluxwing-component-creator/schemas/uxm-component.schema.json" \
--screens \
--json
Option 2: Just components
node {SKILL_ROOT}/validate-batch.js \
"./fluxwing/components/*.uxm" \
"{SKILL_ROOT}/../fluxwing-component-creator/schemas/uxm-component.schema.json" \
--json
Option 3: Just screens
node {SKILL_ROOT}/validate-batch.js \
"./fluxwing/screens/*.uxm" \
"{SKILL_ROOT}/../fluxwing-component-creator/schemas/uxm-component.schema.json" \
--screens \
--json
Option 4: Custom pattern
# Use user-provided pattern
node {SKILL_ROOT}/validate-batch.js \
"${userPattern}" \
"{SKILL_ROOT}/../fluxwing-component-creator/schemas/uxm-component.schema.json" \
--json
Parse JSON output from validator to extract:
total: Total files validatedpassed: Number of valid filesfailed: Number of failed fileswarnings: Total warning countDisplay minimal summary:
✓ 12/14 components valid
✗ 2/14 components failed
⚠ 3 warnings total
If all passed:
✓ All 14 components valid
⚠ 3 warnings
If everything failed:
✗ All 14 components failed
If nothing to validate:
No files found matching pattern
Use AskUserQuestion to ask:
Show error details?
Options:
If user selects "Yes", show full validation output including:
Failed files section:
Failed Files:
✗ broken-button (./fluxwing/components/broken-button.uxm)
Errors: 2
1. must have required property 'fidelity'
2. ASCII template file not found
✗ old-card (./fluxwing/components/old-card.uxm)
Errors: 1
1. invalid version format
Passed with warnings section:
Passed with Warnings:
✓ login-screen (2 warnings)
✓ dashboard (1 warning)
Fully passed section (optional, only if not too many):
Fully Passed:
✓ primary-button
✓ secondary-button
✓ email-input
...
No components or screens found. Create some first!
✓ 0/0 components valid
No files found matching pattern: ${pattern}
Error: Cannot execute validator. Node.js required.
Other skills (component-creator, screen-scaffolder) call validator scripts directly:
Validate single component:
node {SKILL_ROOT}/../fluxwing-validator/validate-component.js \
./fluxwing/components/button.uxm \
{SKILL_ROOT}/schemas/uxm-component.schema.json
Validate single screen:
node {SKILL_ROOT}/../fluxwing-validator/validate-screen.js \
./fluxwing/screens/login-screen.uxm \
{SKILL_ROOT}/schemas/uxm-component.schema.json
Batch validate:
node {SKILL_ROOT}/../fluxwing-validator/validate-batch.js \
"./fluxwing/components/*.uxm" \
{SKILL_ROOT}/schemas/uxm-component.schema.json
Output modes:
--json: Machine-readable JSONExit codes:
0: All files valid1: One or more files invalid2: Missing dependencies or invalid argumentsAvailable scripts:
validate-component.js - Validate single component filevalidate-screen.js - Validate single screen file (with screen-specific checks)validate-batch.js - Validate multiple files with glob patternstest-validator.js - Test component templatestest-screen-validator.js - Test screen templatescd {SKILL_ROOT}
# Run tests
npm test # Test component templates
npm run test:screens # Test screen templates
# Batch validation
npm run validate:components # Validate all components
npm run validate:screens # Validate all screens
npm run validate:all # Validate everything
User: "Validate my components"
Skill:
What would you like to validate?
1. Everything in this project
2. Just components
3. Just screens
4. Let me specify a file or pattern
User selects: Option 1
Skill runs validation and shows:
✓ 12/14 components valid
✗ 2/14 components failed
⚠ 3 warnings total
✓ 2/2 screens valid
⚠ 1 warning
Show error details?
User: "yes"
Skill shows full error details for failed files
User: "Validate my components"
Skill: (presents menu)
User selects: Option 4 (custom pattern)
Skill: "What file or pattern would you like to validate?"
User: "./fluxwing/components/*-button.uxm"
Skill validates and shows:
✓ 3/3 files valid
Show error details?
Parse JSON output:
const result = JSON.parse(bashOutput);
const total = result.total;
const passed = result.passed;
const failed = result.failed;
const warnings = result.warnings;
Summary formatting:
Error detail formatting:
Skill Status: Ready for use Version: 1.0.0
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.