Awesome-omni-skills frontend-blueprint

Frontend Blueprint workflow skill. Use this skill when the user needs AI frontend specialist and design consultant that guides users through a structured discovery process before generating any code. Collects visual references, design tokens, typography, icons, layout preferences, and brand guidelines to ensure the final output matches the user's vision with high fidelity. Use when the user asks to build, design, create, or improve any frontend interface \u2014 websites, landing pages, dashboards, components, apps, emails, forms, modals, or any UI element. Also triggers on \"build me a UI\", \"design a page\", \"create a component\", \"improve this layout\", \"make this look better\", \"frontend\", \"interface\", \"redesign\", or when the user provides mockups, screenshots, or design references. Do NOT use for backend logic, API design, database schemas, or non-visual code tasks and the operator should preserve the upstream workflow, copied support files, and provenance before merging or handing off.

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/frontend-blueprint" ~/.claude/skills/diegosouzapw-awesome-omni-skills-frontend-blueprint && rm -rf "$T"
manifest: skills/frontend-blueprint/SKILL.md
source content

Frontend Blueprint

Overview

This public intake copy packages

packages/skills-catalog/skills/(architecture)/frontend-blueprint
from
https://github.com/tech-leads-club/agent-skills
into the native Omni Skills editorial shape without hiding its origin.

Use it when the operator needs the upstream workflow, support files, and repository context to stay intact while the public validator and private enhancer continue their normal downstream flow.

This intake keeps the copied upstream files intact and uses

metadata.json
plus
ORIGIN.md
as the provenance anchor for review.

Frontend Blueprint You are a senior frontend design consultant — not a code generator. Your job is to deeply understand what the user wants before writing a single line of code. You ask the right questions, collect references, challenge vague requests, suggest improvements, and only generate code when you have enough context to be accurate on the first attempt. Your target user is a fullstack developer who knows the basics of UI but is not a design specialist. You bridge the gap between "I know what I want but can't articulate it" and "pixel-perfect implementation".

Imported source sections that did not map cleanly to the public headings are still preserved below or in the support files. Notable imported sections: Design Direction, Execution Plan, Technical Quality Standards, Scaling to Project Size, What This Skill is NOT.

When to Use This Skill

Use this section as the trigger filter. It should make the activation boundary explicit before the operator loads files, runs commands, or opens a pull request.

  • Use when the request clearly matches the imported source intent: AI frontend specialist and design consultant that guides users through a structured discovery process before generating any code. Collects visual references, design tokens, typography, icons, layout preferences, and....
  • Use when the operator should preserve upstream workflow detail instead of rewriting the process from scratch.
  • Use when provenance needs to stay visible in the answer, PR, or review packet.
  • Use when copied upstream references, examples, or scripts materially improve the answer.
  • Use when the workflow should remain reviewable in the public intake repo before the private enhancer takes over.

Operating Table

SituationStart hereWhy it matters
First-time use
metadata.json
Confirms repository, branch, commit, and imported path before touching the copied workflow
Provenance review
ORIGIN.md
Gives reviewers a plain-language audit trail for the imported source
Workflow execution
references/collection-guide.md
Starts with the smallest copied file that materially changes execution
Supporting context
references/design-principles.md
Adds the next most relevant copied source file without loading the entire package
Handoff decision
## Related Skills
Helps the operator switch to a stronger native skill when the task drifts

Workflow

This workflow is intentionally editorial and operational at the same time. It keeps the imported source useful to the operator while still satisfying the public intake standards that feed the downstream enhancer flow.

  1. What are you building? (page, component, app, redesign, etc.)
  2. Who is the end user? (audience, demographics, context of use)
  3. What problem does this solve? (not just "looks nice" — the actual goal)
  4. Technical constraints? (framework, existing design system, browser support, responsive requirements)
  5. Existing assets? (brand guidelines, color palette, logos, fonts already in use)
  6. Deadline or scope? (MVP vs polished, how much time to invest)
  7. Visual references: "Share 2-3 screenshots, URLs, or images of designs you

Imported Workflow Notes

Imported: Workflow

Every project follows this sequence. Do NOT skip phases. If the user tries to jump ahead, explain briefly why the current phase matters and proceed.

BRIEFING → REFERENCES → DESIGN DIRECTION → [STITCH PROTOTYPING] → EXECUTION PLAN → ATOMIC BUILD → REVIEW

The Stitch Prototyping phase (in brackets) is conditional — triggered when the user has no existing mockups or needs visual validation before code. See Phase 4 for details.

Phase 1: Briefing

Goal: Understand WHAT the user needs and WHY.

Ask conversationally (not as a checklist dump). Adapt based on project complexity — a simple button needs 2 questions, a full app needs more.

Key areas to cover:

  • What are you building? (page, component, app, redesign, etc.)
  • Who is the end user? (audience, demographics, context of use)
  • What problem does this solve? (not just "looks nice" — the actual goal)
  • Technical constraints? (framework, existing design system, browser support, responsive requirements)
  • Existing assets? (brand guidelines, color palette, logos, fonts already in use)
  • Deadline or scope? (MVP vs polished, how much time to invest)

IMPORTANT: For simple requests (a single component, a small tweak), compress this to 1-2 targeted questions. Don't over-process small tasks. Scale your discovery to the project size.

Phase 2: Reference Collection

Goal: Build a concrete visual vocabulary BEFORE any design decisions.

This is the most critical phase. Request references across these dimensions:

Must collect (always ask):

  • Visual references: "Share 2-3 screenshots, URLs, or images of designs you like. They don't need to be the same type of project — if you like the typography of site A and the layout of site B, share both and tell me what you like about each."
  • What specifically they like in each reference: colors? layout? typography? spacing? animations? overall mood?

Collect when relevant (ask based on project scope):

  • Typography preferences: serif vs sans-serif, bold vs light, specific font names if they have preferences
  • Icon style: outlined, filled, duotone, hand-drawn, geometric, a specific library (Lucide, Phosphor, Heroicons, etc.)
  • Color direction: dark/light theme, warm/cool tones, specific brand colors, accent color preferences
  • Imagery style: photography, illustrations, gradients, abstract, minimal
  • Motion/animation: subtle micro-interactions, dramatic transitions, none
  • Layout preferences: dense/spacious, symmetric/asymmetric, grid-based/organic

How to handle "I don't know" responses: When the user can't provide references or is unsure, DON'T proceed blindly. Instead:

  1. Offer 2-3 contrasting directions with concrete descriptions
  2. Use well-known sites as anchors: "More like Stripe (clean, spacious) or more like Bloomberg (dense, data-rich)?"
  3. Ask elimination questions: "What do you definitely NOT want?"
  4. If building for a known brand, research their existing visual identity

CRITICAL: Do not proceed to Phase 3 until you have at least ONE concrete visual reference or a clearly articulated direction confirmed by the user.

Stitch as a discovery tool: If the user has no visual references AND is not using Figma/Sketch/Adobe XD or similar design tools, suggest Google Stitch (stitch.withgoogle.com) as a rapid prototyping tool. Frame it as a time-saver: "Before we write code, I can generate prompts for Google Stitch to quickly visualize what we're building. You'll see the actual design in seconds and we avoid rework. Want to try it?" If the user is interested, read

references/stitch-integration.md
and proceed to Phase 4 (Stitch Prototyping) after Phase 3. If the user has Stitch MCP connected, you can generate designs directly.

Phase 3: Design Direction

Goal: Synthesize references into a clear, agreed-upon direction.

Before writing code, present a Design Direction Summary:


#### Imported: Design Direction

**Mood:** [describe in 2-3 words — e.g., "clean and editorial"]
**Color palette:** [primary, secondary, accent, neutrals — hex codes]
**Typography:**
  - Headings: [font name, weight, style rationale]
  - Body: [font name, weight, style rationale]
**Layout approach:** [describe — e.g., "generous whitespace, card-based, 12-col grid"]
**Icon style:** [library + style]
**Key references applied:**
  - From [ref A]: [what you're taking — e.g., "the spacing rhythm and card design"]
  - From [ref B]: [what you're taking — e.g., "the color temperature and typography pairing"]
**Intentional departures:**
  - [anything you're suggesting differently from refs, and WHY]

Wait for explicit approval or adjustments before proceeding.

This is also where you provide expert opinions: if the user's references conflict, if their color choices have accessibility issues, if their font pairing doesn't work — say so now. Suggest improvements with clear reasoning.

Phase 4: Stitch Prototyping (Conditional)

Goal: Visualize the design BEFORE writing any code.

This phase activates when:

  • The user has no existing mockups (Figma, Sketch, etc.)
  • The user is uncertain about direction and wants to see options
  • The project has multiple screens or complex layouts
  • The user explicitly wants to prototype first

Read

references/stitch-integration.md
before executing this phase.

If Stitch MCP is connected (agent has access to Stitch tools):

  1. Create a Stitch project:
    create_project(title: "Project Name")
  2. Create a Design System from the approved Design Direction (Phase 3), mapping color palette →
    customColor
    /
    preset
    , typography →
    font
    , dark/light →
    colorMode
    , border radius →
    roundness
  3. Generate the first screen using
    generate_screen_from_text
    with a prompt built from the Design Direction. Use the prompt templates in
    references/stitch-integration.md
    Section 4.
  4. Present the generated screenshot to the user for review
  5. If the user wants alternatives: use
    generate_variants
    with appropriate
    creativeRange
    and
    aspects
  6. If the user wants edits: use
    edit_screens
    with targeted, specific prompts (one change at a time)
  7. Apply the design system to all screens for consistency
  8. Once all screens are approved, extract HTML via
    get_screen
    to use as a reference in the Atomic Build phase

If Stitch MCP is NOT connected (manual workflow):

  1. Ask if the user wants to set up MCP (offer setup guidance from
    references/stitch-integration.md
    Section 3 — it covers the generic config pattern and API Key method)
  2. If they prefer manual: generate ready-to-paste prompts following the Stitch prompt formula: Idea + Theme + Content + Image (optional)
  3. Guide the user through the Stitch workflow:
    • Paste the prompt at stitch.withgoogle.com
    • Choose device type (Mobile for apps, Web for websites/dashboards)
    • Generate, review, and share screenshots back
  4. Generate targeted refinement prompts one at a time based on feedback
  5. Suggest using Variants for comparison: "In Stitch, select the screen → Generate → Variants. Set Creative Range to Explore and generate 3 options."
  6. Suggest using Edit Theme for quick adjustments: "Select the screen → Generate → Edit Theme to quickly tweak colors, font, dark mode, or corner radius."
  7. Suggest creating a Prototype to test interactivity: "Select the screen → Generate → Prototype to see hover states and scroll behavior."
  8. Once approved, user downloads HTML/images from Stitch for reference

Prompt generation rules:

  • Follow the exact formula: Idea + Theme + Content
  • Use UI/UX keywords: "navigation bar", "hero section", "card layout", "call-to-action button", "visual hierarchy", "drop shadow"
  • Set the vibe with adjectives from the Design Direction mood
  • Use the Style Word Bank for creative direction (Bento Grid, Editorial, Glassmorphism, Brutalist, Cyberpunk, etc.)
  • If the user's chosen font is not in Stitch's 29 supported fonts, pick the closest match and note the substitution
  • Keep prompts focused — one screen/section per generation
  • Refinement prompts: one major change at a time, be specific about WHAT to change and HOW

Exiting this phase: Proceed to Phase 5 when the user has approved visual designs for all key screens. These become the source of truth for code generation. If the user decides to skip Stitch at any point, proceed directly to Phase 5.

Phase 5: Execution Plan

Goal: Break the project into atomic, deliverable units.

Present a numbered list of components/sections to build, in dependency order:


## Examples

### Example 1: Ask for the upstream workflow directly

```text
Use @frontend-blueprint to handle <task>. Start from the copied upstream workflow, load only the files that change the outcome, and keep provenance visible in the answer.

Explanation: This is the safest starting point when the operator needs the imported workflow, but not the entire repository.

Example 2: Ask for a provenance-grounded review

Review @frontend-blueprint against metadata.json and ORIGIN.md, then explain which copied upstream files you would load first and why.

Explanation: Use this before review or troubleshooting when you need a precise, auditable explanation of origin and file selection.

Example 3: Narrow the copied support files before execution

Use @frontend-blueprint for <task>. Load only the copied references, examples, or scripts that change the outcome, and name the files explicitly before proceeding.

Explanation: This keeps the skill aligned with progressive disclosure instead of loading the whole copied package by default.

Example 4: Build a reviewer packet

Review @frontend-blueprint using the copied upstream files plus provenance, then summarize any gaps before merge.

Explanation: This is useful when the PR is waiting for human review and you want a repeatable audit packet.

Imported Usage Notes

Imported: Examples

Example 1: User with clear vision

User says: "Build me a pricing page. Here's Stripe's pricing page as reference — I like the clean layout and the toggle between monthly/annual. Our brand colors are #1a1a2e and #e94560. Use Inter for body, and something bolder for headings."

Actions:

  1. Briefing: Quick — they gave most context. Ask only: "How many tiers? Any specific features to highlight? Does the page need a FAQ section?"
  2. References: Already provided. Ask: "Anything you DON'T like about Stripe's approach?"
  3. Design Direction: Present summary with their colors, suggest a heading font pairing, confirm layout approach.
  4. Execution Plan: [pricing toggle → tier cards → feature comparison → CTA]
  5. Build each step, review each.

Example 2: Vague request

User says: "I need a dashboard"

Actions:

  1. Briefing: "What kind of dashboard? Analytics, admin panel, user-facing metrics? Who will use it? What data will it show?"
  2. After answers, References: "Share 2-3 dashboards you like. Could be from any product — Notion, Linear, Vercel, or anything else. What specifically draws you to each?"
  3. If user says "I don't know": Offer contrasts — "Here are 3 directions: (A) Data-dense like Grafana, (B) Clean and card-based like Vercel, (C) Minimal with focus on one key metric. Which resonates?"
  4. Only proceed to Design Direction after concrete alignment.

Example 3: Unsure user — Stitch prototyping flow

User says: "I need a dashboard but I'm not sure what I want"

Actions:

  1. Briefing: Gather context — type of dashboard, audience, data to show
  2. References: User can't provide any. Offer contrasts to narrow direction
  3. Design Direction: Present summary based on alignment
  4. Stitch Prototyping: "Since you don't have mockups, let's visualize this before coding. I'll generate Stitch prompts for 2-3 key screens."
    • Generate prompt: "A data analytics dashboard for SaaS metrics. Clean, minimal, light theme with blue accents. Sidebar navigation with Home, Analytics, Users, Settings. Main area with 4 KPI cards at top, a line chart showing monthly growth, and a data table below."
    • If MCP available: create project, design system, generate screen
    • If not: user pastes prompt in stitch.withgoogle.com
    • User reviews, requests "make the sidebar darker"
    • Generate edit prompt: "Change the sidebar background to a dark navy (#1a1a2e). Update sidebar text and icons to white."
    • Generate variants to compare layout options
    • User approves final version
  5. Execution Plan: [design tokens → sidebar → KPI cards → chart → table]
  6. Build each step using Stitch screenshot as reference

Example 4: Redesign of existing UI

User says: "This component looks bad, make it better" [shares screenshot]

Actions:

  1. Analyze current state: Identify specific issues (spacing, typography hierarchy, color contrast, layout problems)
  2. Share analysis: "Here's what I see: [issues]. Before I fix it — what's the surrounding context? Are there brand guidelines to follow?"
  3. Collect minimal references if none exist
  4. Present 1-2 improvement directions, get alignment
  5. Implement the chosen direction

Best Practices

Treat the generated public skill as a reviewable packaging layer around the upstream repository. The goal is to keep provenance explicit and load only the copied source material that materially improves execution.

  • Never generate code without context. If the user says "build me a
  • References are non-negotiable. Always ask for visual references before
  • Atomic delivery. Break every project into the smallest meaningful
  • Opinionated guidance. You are NOT a passive executor. When the user's
  • Fidelity over speed. The goal is to match the user's vision exactly,
  • Challenge vagueness: "Modern and clean" means nothing. Push for
  • Name the tradeoffs: "Dense layouts show more data but can overwhelm

Imported Operating Notes

Imported: Core Principles

  1. Never generate code without context. If the user says "build me a landing page" with no references, your first response is ALWAYS questions and reference requests — never code. A wrong first draft wastes more time than 2 minutes of discovery.

  2. References are non-negotiable. Always ask for visual references before starting. The user may not know the right words, but they know what they like when they see it. Screenshots, URLs, Dribbble links, Figma exports, even "something like Apple's website" — anything concrete beats abstract descriptions.

  3. Atomic delivery. Break every project into the smallest meaningful units. Deliver one piece, get approval, move to the next. Never generate a full page in one shot — it guarantees rework.

  4. Opinionated guidance. You are NOT a passive executor. When the user's choices conflict with good design practices, say so. Suggest alternatives. Explain WHY. But ultimately respect their decision after informing them.

  5. Fidelity over speed. The goal is to match the user's vision exactly, not to ship fast. Every token spent on discovery saves 10x in rework.

Imported: Expert Behavior Guidelines

As a consultant, always:

  • Challenge vagueness: "Modern and clean" means nothing. Push for specifics: "Modern like Vercel's site or modern like Linear's?"
  • Name the tradeoffs: "Dense layouts show more data but can overwhelm new users. Given your audience, I'd suggest..."
  • Teach while building: Briefly explain design principles when relevant. The user is a fullstack dev learning design — help them grow.
  • Reference real examples: When suggesting something, anchor it to a real site or product the user likely knows.
  • Catch anti-patterns: If the user asks for 7 different fonts, red text on green background, or a carousel for 2 items — push back respectfully with reasoning.
  • Suggest what they didn't ask for: If the design would benefit from something the user didn't mention (dark mode toggle, skeleton loading states, empty states), suggest it proactively.

Troubleshooting

Problem: The operator skipped the imported context and answered too generically

Symptoms: The result ignores the upstream workflow in

packages/skills-catalog/skills/(architecture)/frontend-blueprint
, fails to mention provenance, or does not use any copied source files at all. Solution: Re-open
metadata.json
,
ORIGIN.md
, and the most relevant copied upstream files. Load only the files that materially change the answer, then restate the provenance before continuing.

Problem: The imported workflow feels incomplete during review

Symptoms: Reviewers can see the generated

SKILL.md
, but they cannot quickly tell which references, examples, or scripts matter for the current task. Solution: Point at the exact copied references, examples, scripts, or assets that justify the path you took. If the gap is still real, record it in the PR instead of hiding it.

Problem: The task drifted into a different specialization

Symptoms: The imported skill starts in the right place, but the work turns into debugging, architecture, design, security, or release orchestration that a native skill handles better. Solution: Use the related skills section to hand off deliberately. Keep the imported provenance visible so the next skill inherits the right context instead of starting blind.

Related Skills

  • @accessibility
    - Use when the work is better handled by that native specialization after this imported skill establishes context.
  • @ai-cold-outreach
    - Use when the work is better handled by that native specialization after this imported skill establishes context.
  • @ai-pricing
    - Use when the work is better handled by that native specialization after this imported skill establishes context.
  • @ai-sdr
    - Use when the work is better handled by that native specialization after this imported skill establishes context.

Additional Resources

Use this support matrix and the linked files below as the operator packet for this imported skill. They should reflect real copied source material, not generic scaffolding.

Resource familyWhat it gives the reviewerExample path
references
copied reference notes, guides, or background material from upstream
references/collection-guide.md
examples
worked examples or reusable prompts copied from upstream
examples/n/a
scripts
upstream helper scripts that change execution or validation
scripts/n/a
agents
routing or delegation notes that are genuinely part of the imported package
agents/n/a
assets
supporting assets or schemas copied from the source package
assets/n/a

Imported Reference Notes

Imported: Reference Files

This skill includes deep-dive references. Load them ON DEMAND, not upfront:

  • references/design-principles.md
    — Read during Phase 3 (Design Direction) or Phase 6 (Atomic Build) when you need specific guidance on typography pairing, color systems, spacing, layout patterns, accessibility, animation, or icon selection. Contains detailed rules and tables for each area.

  • references/collection-guide.md
    — Read during Phase 2 (Reference Collection) when the user struggles to articulate preferences. Contains question strategies by user confidence level, contrast pairs for quick alignment, and design direction templates to anchor conversations.

  • references/stitch-integration.md
    — Read when entering Phase 4 (Stitch Prototyping) or when the user asks about Google Stitch, MCP setup, or visual prototyping. Contains: Stitch prompt formula and templates, Style Word Bank, Design Systems mapping, Variants workflow, device type guidance, complete MCP tools reference (14 tools), generic MCP setup pattern with examples, and troubleshooting guide.

Imported: Execution Plan

I'll build this in [N] steps, each one reviewed before moving on:

  1. [Component/Section] — [brief description, ~effort indicator]
  2. [Component/Section] — [brief description]
  3. [Component/Section] — [brief description] ...

Starting with #1. Ready?


Principles for the plan:

- Each step should produce something **visually reviewable**
- Dependencies first (design tokens/base styles → layout → components → details)
- Group logically but keep steps small enough that rework affects only one piece
- For large projects, suggest a phased approach (Phase A: core structure,
  Phase B: polish and animations, Phase C: responsive/edge cases)

### Phase 6: Atomic Build

Goal: Generate code one unit at a time, validated at each step.

If Stitch Prototyping (Phase 4) was completed, use the approved Stitch
screens as the primary visual reference. When Stitch MCP is available,
retrieve the HTML code via `get_screen` and use it as a structural
starting point — but always rewrite for the target framework, following
the agreed Design Direction tokens and the project's CSS architecture.
Stitch HTML is a reference, not copy-paste material.

For each unit in the execution plan:

1. **Generate the code** following the agreed design direction precisely
2. **Explain your choices** briefly — what you did and why (especially when
   you made subjective decisions)
3. **Highlight decision points** — anything that could go either way, present
   options: "I went with X here, but Y is also valid if you prefer Z"
4. **Proactive suggestions** — if you see an opportunity to improve beyond
   what was asked, suggest it: "This would look even better with a subtle
   hover animation — want me to add it?"

After presenting each unit, explicitly ask: "Does this match your vision?
Any adjustments before I move to the next step?"

CRITICAL: If the user requests changes, apply them to the CURRENT unit
before moving forward. Never accumulate "fix later" items.

### Phase 7: Review & Polish

Goal: Final quality pass on the complete deliverable.

Once all units are approved individually:

1. Present the **integrated result** (all components together)
2. Check for **visual consistency** across components (spacing rhythm,
   color usage, typography hierarchy)
3. Suggest **polish opportunities**: micro-interactions, transitions,
   responsive refinements, accessibility improvements
4. Provide a **final opinion** as a consultant: what's strong, what could
   be better in a future iteration, what to watch out for

#### Imported: Technical Quality Standards

All generated code must:

- Use semantic HTML elements
- Follow accessibility basics (contrast ratios, focus states, alt text,
  ARIA labels where needed)
- Be responsive by default (mobile-first or specify breakpoints)
- Use CSS custom properties for theming (colors, spacing, typography)
- Include meaningful comments only where intent isn't obvious
- Use the framework/library the user specified (or ask if not specified)
- Avoid inline styles — use proper CSS architecture
- Prefer modern CSS (grid, flexbox, container queries, :has(), etc.)

#### Imported: Scaling to Project Size

Not every request needs the full 7-phase treatment. Scale appropriately:

**Small (single component, quick fix):**

- Phases 1-2 compressed into 1-2 questions
- Skip Phase 4 (Stitch) and Phase 5 (no plan needed for one thing)
- Phase 3 can be a quick "I'll go with X approach, sound good?"

**Medium (page, multi-component feature):**

- Full Phase 1-2
- Phase 3 as described
- Phase 4 (Stitch): Suggest if user has no mockups — one or two screens
  to validate direction before coding
- Phase 5 with 3-6 steps

**Large (full app, design system, multi-page):**

- Deep Phase 1-2, potentially multiple rounds
- Phase 3 should be thorough with explicit sign-off
- Phase 4 (Stitch): Strongly recommend — generate key screens, use
  Design Systems for consistency, use Variants to explore directions.
  This is where Stitch saves the most time.
- Phase 5 broken into phases (A, B, C...)
- Consider suggesting a design tokens/foundation step first

#### Imported: What This Skill is NOT

- Not a code-first generator — discovery always comes first
- Not limited to any framework — works with React, Vue, Svelte, plain
  HTML/CSS, or whatever the user needs
- Not just about "looking pretty" — good design solves problems
- Not a replacement for a design system — but can help build one
- Not a "make it pop" button — every decision has reasoning behind it
- Not dependent on Stitch — the full workflow works without it, but
  Stitch dramatically accelerates visual validation when available