Skip to content
ThorbisInterface Guidelines (opens in a new tab)

Back

Thorbis × Linear pattern matrix

Linear is the shared baseline, not a skill. Choose the operational problem, then open the smallest Thorbis-owned specialist and pattern. Eighty-five mappings cover shell, finding, collections, records, transient surfaces, settings, planning, AI, and mobile.

content/design/LINEAR_PATTERN_MATRIX.md

This is a selective decision map, not a skill and not a screenshot catalog.

Linear is the inherited operational baseline for every Thorbis rule and specialist skill. Thorbis still owns its trade model, language, electric-blue identity, profiles, tokens, primitives, accessibility baseline, and final product decisions.

Use the matrix only when DESIGN.md, AGENTS.md, and the smallest owning skill do not already make the governing pattern obvious. Pick one primary row and at most one supporting contextual surface. Do not average several rows into a new page.

How to use it

  1. Name the person, device, interruption, profile, action, and surface.
  2. Open the smallest owning Thorbis skill.
  3. Find the matrix row that describes the operational problem, not the screen that looks closest.
  4. Search the pattern and component registry for the named Thorbis implementation.
  5. Reuse the contract with Thorbis objects and trade language.
  6. Verify desktop and 390px, keyboard, both themes, states, accessibility, and return state.
  7. If the matrix or registry has no match, stop and record D-012. This reference never authorizes page-local invention.

DESIGN.md wins. Linear is the external tie-breaker for operational shell, hierarchy, density, navigation, contextual surfaces, keyboard behavior, durable state, and contextual AI placement. Specialist Thorbis rules still govern forms, payments, evidence, cinematic presentation, native platform behavior, resilience, and domain workflows.

1. Shell and orientation

ID / needOwning Thorbis skill / patternContractEvidence
L-01 One operational applicationProduct + UI → AppShellKeep one inverted-L shell: quiet places, location, view controls, dominant sheet. Modules change the occupant, not the application frame.Dense list (opens in a new tab)
L-02 Show where the operator isProduct + UI → LocationBarName the current place or durable record once. Do not repeat a hero/title block inside the sheet.Project workspace (opens in a new tab)
L-03 Change how a place is slicedUI + Ecosystem → ViewBarTabs, filters, grouping, density, and display options alter the current place; they are not global destinations.Saved view (opens in a new tab)
L-04 Keep work visually dominantUI → attention hierarchyChrome recedes after orientation. The current job, customer, invoice, schedule, or report owns the strongest contrast.Linear refresh (opens in a new tab)
L-05 Add supporting contextProduct + UI → inspector slotPut secondary facts beside work, inside the layout. Keep them narrower and quieter; never make a floating desktop drawer into a second app.Properties rail (opens in a new tab)
L-06 Inspect many without losing the collectionProduct + Ecosystem → split list-detailPreserve the collection while inspecting one object. Selection, Back, next/previous, focus, and scroll remain predictable.Inbox split view (opens in a new tab)
L-07 Choose the correct surfaceDESIGN D-013/D-014URL/history/several actions = route. Done-or-cancel = modal. One value = popover. Secondary facts = inspector. Look only = Peek. Small edit = inline.Issue record (opens in a new tab)
L-08 Preserve return stateProduct + UI → navigation stateOpening and closing inspection returns focus, scroll, selection, and view state. Shared objects use real links.Inbox split view (opens in a new tab)
L-09 Keep repeated actions predictableUI → action neighborhoodsCreate, filter, display, share, overflow, and commit actions occupy consistent regions across modules. Content specializes; chrome does not.Linear refresh (opens in a new tab)

2. Finding, views, and navigation

ID / needOwning Thorbis skill / patternContractEvidence
L-10 Go somewhere or do something quicklyUI → CommandMenu⌘K is an instant action system with useful zero-query recents and actions. It is not the workspace for comparing many records.Command onboarding (opens in a new tab)
L-11 Find and compare many recordsProduct + UI → SearchPageUse a durable route with query, scope, filters, sort, keyboard traversal, optional split preview, and a shareable URL.Search no results (opens in a new tab)
L-12 Filter the current collectionUI + Ecosystem → local filterKeep search and filter state attached to the collection it changes. Show active criteria as concise removable controls.Filtered list (opens in a new tab)
L-13 Choose a filter propertyUI → filter menuUse a searchable hierarchy: property first, value second, applied criterion visible afterward.Filter property menu (opens in a new tab)
L-14 Choose filter valuesUI → nested value menuShow available values, selection state, and useful counts where they help. Do not open Settings to refine one view.Priority filter (opens in a new tab)
L-15 Reuse a useful sliceEcosystem + UI → saved viewSave query, filters, grouping, ordering, display properties, scope, and ownership as one named view without changing the underlying collection.Saved-view editor (opens in a new tab)
L-16 Personalize one collectionUI → display optionsCentralize grouping, ordering, completed visibility, nested records, title length, columns, and density. Distinguish personal display from shared defaults.Display options (opens in a new tab)
L-17 Return to frequent placesEcosystem → favorites and recentsLet people pin durable places and recover recent work without expanding global navigation into every relationship.Document navigation (opens in a new tab)
L-18 Inspect without navigatingUI → PeekOffer a fast dismissible preview for scanning. No deep editing, nested navigation, or durable workflow inside Peek.Peek (opens in a new tab)
L-19 Explain why nothing is visibleUI → cause-specific EmptyStateFirst-run, no data, no results, filtered out, permission, offline, and error are different states. Name the cause and correct recovery.Filtered empty state (opens in a new tab)

3. Collections and scanning

ID / needOwning Thorbis skill / patternContractEvidence
L-20 Scan a large operational collectionUI + Ecosystem → ListPagePreserve one dominant horizontal reading axis: state/identity/title first, stable trailing metadata second. Rows are links and keyboard-addressable.Dense issue list (opens in a new tab)
L-21 Group rows by meaningful stateUI + Ecosystem → grouped listUse quiet headers with label, count, collapse, and contextual create. The group organizes; it does not become a card.Grouped view (opens in a new tab)
L-22 Move work through stagesProduct + UI → BoardPageColumns represent one shared state dimension. Cards stay compact; hidden and empty columns remain manageable.Board (opens in a new tab)
L-23 Keep secondary columns availableProduct + UI → hidden-column railCollapse terminal or non-primary columns into a quiet rail or display option instead of giving every status equal permanent width.Hidden columns (opens in a new tab)
L-24 Show work across timeProduct + UI → ScheduleTimelineTime is the governing axis. Keep labels and selected-object context readable during horizontal traversal; do not use decorative Gantt treatment.Project timeline (opens in a new tab)
L-25 Select one or many rowsUI → selection stateSelection is distinct from hover and keyboard focus. Preserve count and selected identities; never depend on hidden hover controls.Bulk selection (opens in a new tab)
L-26 Act on a selected setUI + Resilience → selection barSummon batch actions only after selection. Show count, allowed actions, clear/escape, progress, partial failure, and result.Contextual bulk bar (opens in a new tab)
L-27 Offer useful entry points before AllEcosystem → curated subsetSurface Today, Needs attention, Unassigned, Awaiting approval, or another useful slice when it reduces hunting; retain the full explorer.My issues views (opens in a new tab)
L-28 Teach an empty collectionUI → first-run empty stateDefine the object briefly, show one primary creation action, and offer documentation secondarily. Do not fill the canvas with fake cards.Projects empty state (opens in a new tab)
L-29 Show a valid empty resultUI → plain empty stateWhen emptiness needs no action, keep it quiet; a short cause label can be enough.No matching items (opens in a new tab)
L-30 Recover from over-filteringUI → filtered empty stateKeep active criteria visible, state how many records are hidden when known, and place Clear filters beside the explanation.No matching filters (opens in a new tab)
L-31 Load a dense collectionUI → geometry-matched skeletonReserve final row, group, and card geometry. Generic shimmer blocks that cause reflow are a defect.Calm density (opens in a new tab)

4. Records and contextual work

ID / needOwning Thorbis skill / patternContractEvidence
L-32 Work deeply inside one durable objectProduct + Ecosystem + UI → RecordWorkspaceUse a route. Keep identity, state, primary action, local navigation, main content, properties, relationships, and evidence understandable as depth grows.Issue record (opens in a new tab)
L-33 Orient the recordProduct + UI → identity headerShow stable identifier, plain-language title, state, and key actions without a marketing hero or repeated title.Issue identity (opens in a new tab)
L-34 Edit supporting metadataUI → property rail / popoverKeep status, priority, owner, date, labels, and relationships concise and locally editable. Main work stays broad.Properties rail (opens in a new tab)
L-35 Read defining contentType + UI → record bodyGive the problem, scope, description, document, or transaction uninterrupted width. Use typography and rhythm instead of nested cards.Project overview (opens in a new tab)
L-36 Show consequential historyEcosystem + Resilience → evidence timelineRecord meaningful state changes, actors, timestamps, source, and results. Prefer evidence over a generic feed of every event.Issue activity (opens in a new tab)
L-37 Discuss the workUI → comment thread and composerKeep discussion attached to the object, preserve drafts, support references and attachments, and distinguish comments from system evidence.Mobile record comments (opens in a new tab)
L-38 Break work into child recordsEcosystem → subrecord sectionShow count, state, compact child rows, and contextual creation. Children remain real linked records when they need ownership or history.Sub-items (opens in a new tab)
L-39 Create a child without losing contextProduct + UI → inline child createExpand a small local composer; ask only for facts required now and allow deeper detail after creation.Inline creation (opens in a new tab)
L-40 Connect related records and resourcesEcosystem → relationship sectionSurface customer, property, job, estimate, invoice, equipment, file, or communication where it matters. Relationships are links, not sidebar clutter.Project resources (opens in a new tab)
L-41 Edit a small property in placeUI → inline editPreserve reading context; expose edit, focus, commit, cancel, error, and safe Undo. Money, permissions, and destructive changes get stronger treatment.Inline issue creation (opens in a new tab)
L-42 Expose secondary record actionsUI → contextual action menuKeep share, copy, remind, subscribe, move, archive, and destructive actions in a compact local menu with direct verbs and separation.Mobile action menu (opens in a new tab)

5. Creation, choices, and transient surfaces

ID / needOwning Thorbis skill / patternContractEvidence
L-43 Create a common object quicklyProduct + UI → quick-create modalPreserve the current workspace behind a focused transaction with identity, useful defaults, optional properties, Create, Cancel, and no nested overlay.Small create modal (opens in a new tab)
L-44 Create in current contextProduct + UI → contextual createPre-fill parent, group, customer, property, schedule, or other known facts. Do not ask again for context the system already knows.Inline child creation (opens in a new tab)
L-45 Create a complex durable objectProduct + Resilience → creation routeWhen creation needs sections, uploads, review, history, several actions, or resumability, use a route with draft recovery.New project boundary (opens in a new tab)
L-46 Choose one local valueUI → property popoverAnchor to the property, support keyboard search and selection when needed, close on commit, and return focus.Reminder choice (opens in a new tab)
L-47 Choose secondary operationsUI → context menuKeep it compact, grouped, object-local, and verb-led. Separate destructive actions.Comment menu (opens in a new tab)
L-48 Complete a small settings transactionUI → modal transactionOne narrow task, visible labels, local validation, commit, Cancel, Escape, and focus return.Add emoji modal (opens in a new tab)
L-49 Defer attentionUI → remind/snooze choiceOffer meaningful relative times plus custom scheduling; confirm the resulting time and keep record state explicit.Mobile reminder sheet (opens in a new tab)
L-50 Confirm a reversible low-risk actionUI + Resilience → result notice and UndoExecute quickly, name the result, provide Undo for a reasonable period, and avoid celebratory interruption.Mobile feedback (opens in a new tab)

6. Settings and administration

ID / needOwning Thorbis skill / patternContractEvidence
L-51 Configure durable behaviorProduct + UI → SettingsPageUse a route with persistent category navigation and readable content column. Settings are places, not one giant modal.Preferences (opens in a new tab)
L-52 Explain a settings sectionUI → settings sectionState purpose and consequence, group related controls, keep help local, and use direct labels.Initiatives settings (opens in a new tab)
L-53 Save one settings topicUI + Resilience → local form commitSave near the section being edited, expose dirty state, and prevent silent loss. Do not use one remote Save for unrelated topics.Local save (opens in a new tab)
L-54 Let an individual adapt the environmentUI → preferencesDensity, visible properties, sidebar, theme, naming, and interaction preferences may vary. Strong defaults remain complete and grammar does not fork.Interface preferences (opens in a new tab)
L-55 Set shared operational defaultsProduct + Resilience → organization settingsShared statuses, calendars, communications, permissions, and automation live at the correct scope with visible ownership.Workspace settings (opens in a new tab)
L-56 Manage a finite taxonomyProduct + UI → taxonomy managerGroup statuses, labels, or categories; preserve order and semantics; create inline when safe; show usage before destructive changes.Status manager (opens in a new tab)
L-57 Define conditional automationProduct + Resilience → rule builderRender When and Then in plain language, expose scope and order, validate conflicts, support testing, and show exactly what changes.Automation rules (opens in a new tab)
L-58 Enable integrations or capabilitiesProduct + UI → capability listUse stable rows with identity, concise purpose, state, availability, and one configuration path. Avoid marketplace cards inside Admin.AI and agents settings (opens in a new tab)
L-59 Handle irreversible administrationResilience + UI → danger zoneSeparate by consequence, state impact and recovery window, require explicit confirmation, and show progress and result. Red alone is insufficient.Workspace danger zone (opens in a new tab)

7. Planning, dashboards, and updates

ID / needOwning Thorbis skill / patternContractEvidence
L-60 Monitor today's operationProduct + UI → operational Evidence dashboardDeclare audience, decision, cadence, owner, and freshness. Lead with exceptions and actionable queues at compact density.Dashboard guidance (opens in a new tab)
L-61 Review strategic progressProduct + Type → strategic Evidence dashboardUse fewer larger measures with trend, context, narrative annotation, and explicit period. Reorientation matters more than maximum density.Dashboard guidance (opens in a new tab)
L-62 Present a metricType + UI → contextual metricShow label, value, unit, window, freshness, and comparison or expected range when it changes interpretation.Dashboard guidance (opens in a new tab)
L-63 Coordinate a multi-part initiativeProduct + Ecosystem → planning workspacePut purpose, owner, dates, status, milestones, updates, work, and progress in one durable workspace. Properties stay subordinate to the plan.Project overview (opens in a new tab)
L-64 Communicate periodic progressType + Ecosystem → authored updateUse a dated authored update with health, changes, risks, and next steps; keep it distinct from raw activity.Project updates (opens in a new tab)
L-65 Understand dates and dependenciesProduct + UI → planning timelineUse a real time axis, selected-object context, milestones, dependencies, and preserved horizontal scale and position.Project timeline (opens in a new tab)

8. AI and agents

ID / needOwning Thorbis skill / patternContractEvidence
L-66 Ask a broad workspace questionProduct + UI → agent workspaceUse the normal shell with focused composer, useful starter tasks, history, linked records, and clear scope. No neon parallel app.Ask Linear landing (opens in a new tab)
L-67 Offer a useful zero-query agent stateProduct → starter tasksPresent a small set of high-value examples tied to real Thorbis capabilities. They teach scope; they are not promotional cards.Ask Linear examples (opens in a new tab)
L-68 Acknowledge an agent requestResilience + UI → agent lifecycleRespond immediately and expose compact thinking, waiting, executing, complete, partial, and error states. Silence and streaming noise are defects.Thinking state (opens in a new tab)
L-69 Show an agent resultProduct + Type → linked answerLead with result, then supporting records, provenance, assumptions, and next actions. Deep trace is inspectable rather than always expanded.Agent result (opens in a new tab)
L-70 Keep AI beside current workProduct + UI → contextual assistUse an inspector or local suggestion when the underlying record remains primary. Preserve record context and make assistance dismissible.Agent side panel (opens in a new tab)
L-71 Distinguish suggestion from committed stateResilience + UI → suggestion treatmentIdentify the AI, suggested value, reason/confidence where useful, current committed value, provenance, and accountable person.Triage Intelligence (opens in a new tab)
L-72 Approve consequential agent workResilience → approval checkpointSummarize exact changes, scope, audience, reversibility, and external effects before commit. Approval is action-specific, not blanket access.Agent guidelines (opens in a new tab)
L-73 Increase automation with trustResilience → trust ladderMove by action category through observe → suggest → approve → automate. Keep override, audit, pause, and rollback.Triage settings (opens in a new tab)
L-74 Configure agent guidanceProduct + Resilience → guidance and reusable skillsSeparate stable workspace guidance from task skills. Name scope, trigger, inputs, constraints, output, and failure behavior.Agent guidance (opens in a new tab)
L-75 Load only relevant agent contextAGENTS.md → selective routerResolve the owning skill, load the smallest sufficient context, and encode invalid actions out of tools. Never dump the full design corpus into every run.Skills selector (opens in a new tab)

9. Mobile and responsive transformation

ID / needOwning Thorbis skill / patternContractEvidence
L-76 Move work to a phoneNative + owning domain skill → role-adaptive shellPreserve object identity and work state, but rebuild navigation and action priority for the role. Never shrink the desktop inverted L.Linear mobile redesign (opens in a new tab)
L-77 Scan a mobile collectionNative + Ecosystem → mobile listKeep one dominant vertical path, compact state and identity, reachable create/filter/search, and quiet group headings.Mobile issue list (opens in a new tab)
L-78 Work inside a mobile recordNative + Ecosystem → mobile record routeIdentity and state lead; properties compact; body, children, activity, and comments flow vertically. Preserve deep links and Back.Mobile record (opens in a new tab)
L-79 Navigate primary mobile placesNative → bottom navigationKeep a small role-relevant set of destinations with clear current state. Secondary places remain in command or menu.Mobile project list (opens in a new tab)
L-80 Change mobile display optionsNative + UI → bottom sheetUse a thumb-reachable sheet for grouping, ordering, visibility, and row properties while the list remains visible.Mobile display options (opens in a new tab)
L-81 Create on mobileNative + Product → focused composerUse full-height or elevated composition with title/body first, essential property chips, keyboard-safe actions, draft recovery, and one commit.Mobile create (opens in a new tab)
L-82 Comment during field workNative + UI → persistent composerKeep reply reachable without covering the record. Support attachments and mentions; preserve draft through interruption.Mobile composer (opens in a new tab)
L-83 Expose secondary mobile actionsNative + UI → anchored menuUse a readable grouped menu with destructive action separated. Dismiss and return to the same record position.Mobile action menu (opens in a new tab)
L-84 Show mobile feedbackNative + UI → compact result noticeConfirm near the bottom safe area without blocking work; offer Undo when appropriate and announce accessibly.Mobile feedback (opens in a new tab)
L-85 Apply native visual effectsNative → legibility gatePlatform effects are optional. Refuse refraction, blur, motion, translucency, or fashion that reduces contrast, reading speed, touch clarity, battery, or performance.Liquid Glass study (opens in a new tab)

Composition rules

A view normally has one primary pattern and at most one supporting contextual surface.

  • Dispatch: AppShell + BoardPage + inspector.
  • Search: AppShell + SearchPage + split preview.
  • Customer: AppShell + RecordWorkspace + contextual relationships.
  • Collect payment: Guided payment transaction, not a record copied into a modal.
  • Technician job: native mobile record or Guided flow, not squeezed desktop.
  • Brain suggestion on an invoice: invoice record plus local suggestion/approval, not a separate AI dashboard.

Do not combine List, Board, Dashboard, Record, Canvas, and Guided as equal regions. Pick the governing task.

Canonical refusals

  • No standalone Linear skill.
  • No Linear purple, logo, object names, or pixel-identical chrome.
  • No second shell for Money, Sites, Brain, Inventory, or another module.
  • No dashboard above every list.
  • No desktop drawer used as a route.
  • No card grid because the canvas is empty.
  • No permanent row-action clutter for selection or context-menu actions.
  • No global navigation made from record relationships.
  • No hidden critical action that exists only on hover or a shortcut.
  • No separate visual costume for AI.
  • No mobile layout produced by shrinking desktop geometry.
  • No preference that rewrites shared semantics or product grammar.
  • No screenshot treated as authority after the Thorbis rule exists.

Verification

Every implementation proves:

  • person, device, interruption, profile, pattern, and surface are named;
  • location and view state are distinct;
  • one dominant reading axis or work region exists;
  • empty, loading, error, disabled, permission, destructive, partial, and offline states match the pattern;
  • hover, focus, active, and selection are distinct;
  • critical actions have visible paths;
  • object destinations are real links;
  • keyboard traversal and focus return work on desktop;
  • 390px is a transformation, not overflow;
  • light/dark, zoom, text expansion, forced colors, and reduced motion remain usable;
  • hostile user content cannot collapse geometry;
  • return state survives Back, close, refresh, reconnect, and handoff where required;
  • words are Thorbis words: job, stop, tech, truck, customer, property, estimate, invoice, payment.

Two failures mean the pattern is not ready to ship.

Primary source index

Linear supplies evidence and operating philosophy. Thorbis owns the rule, the name, the specialist owner, and the implementation.

Applied bookmark research

Reviewed 2026-09-06. These examples reinforce the existing owners; they do not introduce another visual style or claim the product behavior is implemented. Read the 26-source review and access limits.

Close the loop with evidence, not the word polished

Vague design requests produce repeated subjective revisions and hide which parts of the result were actually checked.

A review records the person and task, the observed defect, the owning rule, the smallest correction, and its verification. Preserve source access limits. Turn repeated feedback into a better existing default rather than another detached instruction file.

Thorbis example. Instead of make the button premium, record that its pending state moves the label, identify the UI owner, compare the corrected state under the same content, and attach the relevant checks and remaining uncertainty.

Verify. Separate a source that was read from a demo that was exercised. Separate a passing content test from a browser check, and a committed branch from a deployed release. Report failed and skipped checks explicitly.

Do not import. No fabricated research, inferred paid lesson content, unmeasured uplift claim, or declaring work live because a commit exists.

Open the tracking skill · Evidence: Agents with Taste; Train Your Judgement; Developing Taste; How we think about design; Design Engineer Principles

Loading search…

Loading search. You can close this message and keep reading.