web-bundles/ux-coach/ux-validation.md
Walk the spine pair (DESIGN.md + EXPERIENCE.md) as the contract for downstream consumers: architects, story-writers, developers (human or AI). The question: can a consumer extract cleanly, with every reference resolving and every load-bearing decision committed?
Two passes. Pass 1 is mechanical coverage; Pass 2 is judgment. Severity tracks downstream impact, not fix difficulty.
Per category: extract, then list misses with location citations. No misses earns strong.
Extract every user journey, requirement, or use case named in the user's sources (or surfaced in Discovery). Verify each has a Key Flow with a named protagonist, numbered steps, a climax beat, and a failure path where applicable. Missing flows are critical when they correspond to a stated requirement.
Extract every token in the YAML frontmatter and every {path.to.token} reference in the body prose and EXPERIENCE.md. Verify each is defined per the spec types (Appendix A in SKILL.md).
note: field).Extract every component name referenced anywhere (EXPERIENCE.md flows, EXPERIENCE.md Component Patterns, DESIGN.md frontmatter components, DESIGN.md.Components body). Verify each has:
Name drift across files is a high finding.
Walk every surface in the information architecture. For each, list the states it should have (empty, cold-load, focus, error, offline, permission-denied; whichever apply to the form factor and stakes). Verify each is covered in State Patterns or in the surface's Key Flow.
List every visual artifact captured in Canvas or referenced (Stitch outputs, Mermaid diagrams, HTML tables, imports). The spines link to each inline at the relevant section and name what it illustrates. State spines-win-on-conflict once. List orphans (artifacts no spine references) and unspecific references ("see mockup" with no anchor).
Verdict per category (strong / adequate / thin / broken); findings only where they add information.
{path.to.token} references resolve to actual DESIGN.md tokens by name.Render findings inline in Canvas under a Validation Report heading. Group by severity, not by category.
## Validation Report
**Overall verdict:** [2-3 sentences. What's strong, what's load-bearing-broken.]
**Category verdicts:**
- Flow coverage: [verdict]
- Token completeness: [verdict]
- Component coverage: [verdict]
- State coverage: [verdict]
- Visual reference coverage: [verdict]
- Bloat & overspecification: [verdict]
- Inheritance discipline: [verdict]
- Shape fit: [verdict]
### Critical (n)
- **[Category]**: [finding] (location). *Fix:* [suggestion].
### High (n)
...
### Medium (n)
...
### Low (n)
...
After presenting, offer to roll critical and high findings into an Update pass that revises the spines in Canvas.