| name | mindit-context |
| description | Analyze who a design is for, when they use it, where, on what device, and in what state. Use this whenever the user asks about audience fit, mobile responsiveness, breakpoints, loading states, error states, empty states, offline behavior, onboarding context, returning users, edge cases, or "what happens when X." Also trigger when the user mentions a specific user segment, persona, or use environment (driving, dark mode, slow network, etc.). Produces a structured decision artifact with score, criteria, and anti-pattern matches. |
mindit-context
The fifth of the eight forces. Run this when the question is "who, when, where, in what state."
The force
Designs are usually shown in one state: the happy path, the desktop viewport, the freshly-onboarded user, the populated screen, the fast network. Real users never see that screen. They see the screen with no data, with a network error, on a phone in sunlight, on their fourth visit when they have forgotten how the product works, when they are tired, when they are trying to recover from a mistake.
Context asks: of all the states this screen will exist in, how many has the design accounted for?
When to run this
- The user shows only desktop mocks and the product is shipped on mobile too.
- The user mentions empty, loading, error, or offline states.
- The user mentions a persona, a user segment, or a specific use environment (one-handed mobile, dark mode, slow network, screen reader, kiosk).
- The user uses words like "what happens when," "edge case," "fallback," "first-time," "returning user."
- The user asks about onboarding, recovery flows, or recovery from mistakes.
How to analyze
-
Map the contexts. List every dimension that matters for this design:
- Audience: who, with what familiarity, with what motivation.
- Device and viewport: phones, tablets, desktops, larger; portrait/landscape.
- State: loading, empty, populated, error, partial, offline, slow, stale, locked, expired.
- Journey position: first visit, returning, mid-flow, post-completion, recovery.
- Environment: bright sun, noisy, mobile data, screen reader, voice assistant.
-
Identify which contexts the design has addressed. Compare the design against the list. Each context that has not been addressed is a finding.
-
Distinguish "not addressed" from "explicitly out of scope." Some contexts are intentionally not supported (e.g. tablet not a priority). That is a different finding than "we forgot mobile exists."
-
Score the criteria below.
-
Check anti-patterns.yaml.
-
Write the artifact.
Rubric
| Criterion | Weight | What you are scoring |
|---|
| Audience fit | 0.20 | Is the design built for the audience that will actually use it? Power user, novice, expert, casual, internal, external — pick which, then check whether the design matches. |
| Device & viewport fit | 0.20 | Is the design defined at every supported viewport, or does it exist only at one breakpoint? Are touch targets sized for touch where touch is supported? |
| State awareness | 0.20 | Has every state been designed: loading, empty, populated, error, partial, offline, stale? Or are some states left as "default browser behavior"? |
| Journey position | 0.20 | Does the design account for first-time vs. returning, mid-flow vs. clean entry, recovery vs. fresh start? |
| Environmental fit | 0.20 | Light/dark mode, sun glare, voice contexts, screen-reader contexts, slow networks, low-end devices. |
Anti-patterns
See anti-patterns.yaml. Brief list: happy-path-only, desktop-prototype, single-audience-blindness, offline-blind, onboarding-amnesia, no-empty-state, dark-mode-bolt-on, first-time-only.
Output format
Two files in .mindit/decisions/. Filename: context-<yyyymmdd>-<slug>.{md,json}.
JSON conforms to schemas/decision.schema.json with skill: "mindit-context" and force: "context".
Example
Input: "Review my dashboard design. Product is web + iOS, audience is internal ops team using it 6 hours a day."
Sample findings:
- Audience: design is styled like a marketing page (large hero, decorative imagery). Audience is power users who need density. Match:
single-audience-blindness. Severity high.
- Device: mocks exist at 1440px only. iOS support has no breakpoint defined. Match:
desktop-prototype. Severity high.
- State: empty state for a new account is not designed (defaults to "no data"). Loading state is a generic spinner. Match:
no-empty-state. Severity medium.
- Journey: design assumes a returning user who remembers the filter panel. First-time users have no onboarding cue. Match:
onboarding-amnesia. Severity medium.
- Environmental: dark mode is supported by the product but the new dashboard has no dark variant. Match:
dark-mode-bolt-on. Severity medium.
Sample weighted score: 36.
What this skill does NOT do
- Does not invent personas. If the user has not described the audience, ask once.
- Does not design the missing states. It surfaces what is missing; design is the next step.
- Does not score against unsupported contexts. If iOS is explicitly not a target, do not score against iOS. Note it in the artifact.