Fluxwing validator
Validate uxscii components and screens against schema with interactive menu or direct script callsFrom its SKILL.md
npx -y skills add trabian/fluxwing-skills --skill fluxwing-validatorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 18 stars18 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 8 commands, including `test -d ./fluxwing/components` and 7 more.
SKILL.md
7.5 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it
Fluxwing Validator
Validate uxscii components and screens against JSON Schema with interactive workflows.
Overview
This skill provides two modes of operation:
- Interactive Mode: User invocation with menu and minimal output
- Direct Mode: Script calls from other skills with verbose output
When to Use This Skill
User says:
- "Validate my components"
- "Check if everything is valid"
- "Run validation on my screens"
- "Validate the project"
Other skills: Call validator scripts directly (see Technical Reference below)
Interactive Validation Workflow
Step 1: Present Validation Options
Use AskUserQuestion to present menu:
What would you like to validate?
Options:
- Everything in this project - Validates all components and screens
- Just components - Validates
./fluxwing/components/*.uxm - Just screens - Validates
./fluxwing/screens/*.uxm - Let me specify a file or pattern - Custom path/glob pattern
Step 2: Check What Exists
Before running validation, check if directories exist:
# Check for components
test -d ./fluxwing/components
# Check for screens
test -d ./fluxwing/screens
If neither exists:
- Inform user: "No components or screens found. Create some first!"
- Exit cleanly
If option 4 (custom) selected:
- Ask user for the pattern/file path
- Validate it's not empty
- Proceed with user-provided pattern
Step 3: Run Validation
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
Step 4: Parse Results and Show Minimal Summary
Parse JSON output from validator to extract:
total: Total files validatedpassed: Number of valid filesfailed: Number of failed fileswarnings: Total warning count
Display 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
Step 5: Ask About Details
Use AskUserQuestion to ask:
Show error details?
Options:
- Yes - Display full validation output
- No - Clean exit
Step 6: Display Details (if requested)
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
...
Edge Cases
No fluxwing directory exists
No components or screens found. Create some first!
Empty directories
✓ 0/0 components valid
Invalid glob pattern (option 4)
No files found matching pattern: ${pattern}
Validation script fails to execute
Error: Cannot execute validator. Node.js required.
Technical Reference (For Other Skills)
Direct Script Calls
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:
- Default: Human-readable (verbose, full errors/warnings)
--json: Machine-readable JSON
Exit codes:
0: All files valid1: One or more files invalid2: Missing dependencies or invalid arguments
Validator Scripts
Available 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 templates
npm Scripts (for testing)
cd {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
Example Interactions
Example 1: 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
Example 2: Validate Specific Pattern
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?
Implementation Notes
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:
- Show passed/failed ratio for quick scan
- Highlight failures prominently
- Warnings shown but not intrusive
- Clean, minimal output by default
Error detail formatting:
- Group by status (failed, warnings, passed)
- Show file path and error count
- Display first 2-3 errors per file
- Indicate if more errors exist
Skill Status: Ready for use Version: 1.0.0
What ships with it: 7 files
34.9 KB alongside SKILL.md, 5 of them executable
- package.json873 B
- README.md7.7 KB
- test-screen-validator.jsruns2.6 KB
- test-validator.jsruns1.9 KB
- validate-batch.jsruns5.6 KB
- validate-component.jsruns9.8 KB
- validate-screen.jsruns6.5 KB
Gives 0 of the 12 instructions most quality gates skills give in ~1.9k tokens
Counted across 1,524 of the 2,830 authors here whose files we hold, read 2026-09-06
- Read full output and check exit codein 45 of 1524, across 40 files
- Verify output confirms the claimin 44 of 1524, across 39 files
- Identify the command that proves the claimin 43 of 1524, across 39 files
- Execute the full verification commandin 36 of 1524, across 30 files
- Produce a verification reportin 34 of 1524, across 18 files
- Review git diff changesin 30 of 1524, across 16 files
- Fix build failures immediatelyin 29 of 1524, across 9 files
- Group findings by severityin 28 of 1524
- State claim only with evidencein 27 of 1524, across 22 files
- Verify regression tests with red-green cyclein 26 of 1524, across 22 files
- Run the full test suitein 26 of 1524, across 25 files
- Run test suite with coveragein 25 of 1524, across 10 files
Said here and by no other author read
- Present validation options using an interactive menu
- Check if component and screen directories exist before validation
- Exit cleanly if no components or screens are found
- Validate user-provided file patterns if selected
- Run validation scripts using node
- Ask the user if they want to see error details
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.