Fluxwing Component Expander — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Fluxwing Component Expander (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Expand existing uxscii components by adding interaction states.
READ from:
./fluxwing/components/ - User-created components to expand./fluxwing/library/ - User library components to expand{SKILL_ROOT}/docs/ - Documentation for state definitionsWRITE to:
./fluxwing/components/ - Updated components (overwrite existing)./fluxwing/library/ - Updated library components (overwrite existing)Expand an existing uxscii component by adding interaction states.
Ask for the component name if not provided:
./fluxwing/components/ and ./fluxwing/library/Default behavior (no instructions): Add ALL standard states for component type
Smart defaults by type:
User can override: "Only add hover and focus" or "Add error state only"
Read both files:
{component-name}.uxm - Current JSON metadata{component-name}.md - Current ASCII templateExtract:
For each new state to add:
A. Add state definition to .uxm file
Insert into the behavior.states array. Each state needs:
{
"name": "hover",
"properties": {
"border": "heavy",
"background": "primary-dark",
"textColor": "default"
},
"triggers": ["mouseenter"]
}State property patterns by state name:
B. Generate ASCII for new state in .md file
Use appropriate box-drawing characters for each state:
┏━┓┃┗━┛╔═╗║╚═╝┏━┓┃┗━┛ with darker interior┌┄┄┐┆└┄┄┘┏━┓┃┗━┛ ⚠┏━┓┃┗━┛ ✓[✓] or filled indicatorTemplate for new state section in .md file:
## {State Name} State
\`\`\`
{ASCII art using appropriate border style}
\`\`\`Write updated files:
{component-name}.uxm with expanded states array{component-name}.mdPreserve:
Update:
metadata.modified timestamp (set to current ISO 8601 timestamp)behavior.states array (add new states to end).md file (append new state sections before Variables section if it exists, otherwise at end)Important: When updating the .md file, insert new state sections AFTER existing state sections but BEFORE the Variables, Accessibility, and Usage sections.
After updating the files, validate the expanded component to ensure quality:
uv run {SKILL_ROOT}/../uxscii-component-creator/scripts/quick_validate.py \\
./fluxwing/components/{component-name}.uxm \\
{SKILL_ROOT}/../uxscii-component-creator/schemas/uxm-component.schema.jsonValidation checks:
If validation fails:
Performance: ~100ms (very fast!)
Show summary:
✓ Expanded: ./fluxwing/components/{component-name}
✓ Added states: hover, active, disabled
✓ Total states: 4 (default, hover, active, disabled)
Preview of hover state:
┏━━━━━━━━━━━━━━━━━━━━┓
┃ {{text}} ┃
┗━━━━━━━━━━━━━━━━━━━━┛{SKILL_ROOT}/docs/06-ascii-patterns.md - Box-drawing characters{SKILL_ROOT}/docs/03-component-creation.md - Component structureUser: Expand submit-button with hover state
Skill: I found `submit-button` in ./fluxwing/components/
Current states: default
I'll add the hover state to make the button interactive.
[Reads submit-button.uxm and submit-button.md]
[Generates hover state]
[Updates both files]
✓ Expanded: ./fluxwing/components/submit-button
✓ Added states: hover
✓ Total states: 2 (default, hover)
Preview of hover state:
┏━━━━━━━━━━━━━━━━━━━━┓
┃ Submit Form ┃
┗━━━━━━━━━━━━━━━━━━━━┛
Next steps:
- Add more states (active, disabled)
- Use this button in a screen
- View all componentsUser: Add focus and error states to email-input
Skill: I found `email-input` in ./fluxwing/components/
Current states: default
I'll add the requested states: focus, error
[Generates only focus and error states]
✓ Expanded: ./fluxwing/components/email-input
✓ Added states: focus, error
✓ Total states: 3 (default, focus, error)
Note: Standard input states also include 'disabled'.
Let me know if you want to add it!Ensure expanded components include:
If component not found:
✗ Component '{component-name}' not found.
Searched in:
- ./fluxwing/components/
- ./fluxwing/library/
Available components:
[List first 10 components found]
Please check the component name and try again.If state already exists:
⚠ State 'hover' already exists in {component-name}.
Skipping duplicate state.
Current states: default, hover
Adding: active, disabledIf file write fails:
✗ Failed to update {component-name}.
Error: [specific error message]
The component files remain unchanged.
Please check file permissions and try again.You're helping users create fully interactive uxscii components!
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.