visualbear home
  • Work
  • About
  • Contact

The visuAI Workflow

My Agentic Design Workflow
visuAI

Using research, discovery and decisions to create value through my Design AI workflow.

Design Lead ⋅ Spec · Skills · Agents ⋅ 2026

The shift

Why the bottleneck moved

AI has removed the bar of entry for production: now the separation becomes intent, vision and decision making.

Understanding this, closing the gap means optimising the speed from learning-to-decision-to-delivery - which is done through a collection of skills and process that helps agents keep rigour and consistency along the way.

As designers, our skills have always been about empathising with people, identifying their needs, exploring solutions, and making sure these make it through to delivery, consistently. What's different today is that we have a tool that takes a lot of the hurdles off our plate: planning research, synthesising findings, manually building prototypes and mock-ups, handing over to developers, and testing outcomes.

"Design is decision making. Decisions are spec."

So the workflow that grew out of this looks like:

  • Spec as core - tickets, plans and decisions from meetings, written for humans but also detailed enough for agents, always including the why. Context and a paper trail.
  • Guardrails keep things consistent - principles, copy guidelines, hooks, tokens and components are agent-readable, so whatever the workflow creates comes out repeatable and consistent.
  • Visual and measured validation - not just verified through code reviews, but through visual quality gates the work has to actually pass.

The workflow loop

One loop, seven stages

  1. Insights

    I pull PostHog analytics (trends, funnels, HogQL) and Notion research notes, and synthesise them into insight briefs with linked evidence. No evidence-free design decisions: every requirement either cites a source or is honestly tagged as an assumption with a plan to validate it.

  2. Spec

    Write the plan, break it into tickets, record the decisions. Tickets carry acceptance criteria an agent can verify without asking a human - states, sizes, token values, behaviours, exact copy.

  3. Build

    Agents implement from the tickets. The constraints live in the system itself (tokens, components, principles, hooks), and companion skills keep the engineering honest: test-driven development, systematic debugging.

  4. Prototype verify

    Live preview (Pantomime, Storybook, Playwright), screenshots of every state (default, empty, loading, error, edge cases, viewports), compared against Figma via MCP. Deltas get sorted into three buckets: intentional deviation, fix needed, acceptable as is.

  5. Review

    Seven machine-checkable gates, each marked PASS or FAIL with evidence in the report - never just "looks fine."

  6. Metrics

    Per ticket: spec→ship cycle time, rework count, % closed autonomously, blockers caught per gate. The workflow measures itself, and those numbers become portfolio evidence.

"The speed of decision making is invaluable."

The consistency layer

What holds it together

Design system + tokens

Colors, spacing, type, radii come from the system - never hard-coded

Design principles

Six checkable rules with a priority order for conflicts

Copy principles

Voice, tone by context, error-message formula, microcopy patterns

Hooks

Reusable interaction contracts (async action, destructive confirmation, empty state) referenced by name instead of re-described

The key move: all of these are machine-readable. The design system isn't a PDF sitting in a folder - it's the agent's source of truth, applied in every spec, build, and review.

Quality gates

How I know it's done

  1. Accessibility

    Contrast, keyboard, semantics, focus, reduced motion, touch targets.

  2. States

    Empty, loading, error, edge cases, success, destructive confirmation.

  3. Tokens & system compliance

    No hard-coded values, existing components, justified additions.

  4. Copy

    Voice, error formula (what happened + why + one action), no filler.

  5. Consistency

    Principles and hooks applied, conflicts resolved by priority order.

  6. Regressions

    Surrounding flows still pass captures, no scope creep.

  7. Engineering verification

    Test-driven implementation, root-cause fixes, verification commands actually run before any "done" claim.

If any gate hits a blocker, the work stops there. Accessibility blockers especially are never up for negotiation.

Design principles

Conflicts resolve by rule, not taste

  1. Outcomes over outputs

    Evidence beats novelty; the boring solution that works wins.

  2. Accessibility makes everything better for everyone

    A11y shapes the defaults, it's not an end-gate fix.

  3. Performance is good design

    Fast > pretty-but-slow; big and optimized, never big and slow.

  4. Keep it stupid simple

    One primary action per view; no effect that isn't in the system.

  5. Big is beautiful

    Large type, generous whitespace, hero images, room to breathe.

  6. Playfully professional

    Round softness and playful color, contained by context: quiet in errors, forms, money, and destructive flows.

Reverse-engineering my own portfolio surfaced two more:

  • Attention - direct the eye; exactly one primary action, a single focal point. A brand principle since 2015: "attention, minimal, soft".
  • Real content, not placeholders - design and verify with actual content at realistic lengths; lorem ipsum hides the problems that matter.

The 2015 brand principles map cleanly onto the 2026 set - minimal → keep it stupid simple, soft → playfully professional. Ten years of continuity, now encoded as machine-checkable contracts.

visuAIbear

visuAIbear - the suite that systematises it

Since the work version of this stack is proprietary, I built myself an independent, personal agentic design suite - visuAIbear - packaged as open Agent Skills that run in Mistral Code CLI, the VS Code extension, and Vibe Work.

visuaibear-core

Hub: routing, principles, hooks, non-negotiables

visuaibear-spec

Plans, tickets, decision records - human+AI readable

visuaibear-review

7 QA gates, pass/fail review reports

visuaibear-prototype

Live preview / capture / Figma-compare loop

visuaibear-insights

PostHog + Notion synthesis into evidence briefs

visuaibear-metrics

Cycle time, rework, autonomous closure tracking

Five companion skills (external): frontend-design, webapp-testing and test-driven-development, systematic-debugging, verification-before-completion. One simple rule keeps it all coherent: visuAIbear owns the methodology - no competing spec frameworks invited in.

The six non-negotiables: spec before build · evidence before opinion · rationale is written down · done is machine-checkable · nothing ships unseen · the workflow itself is measured.

"Evidence should shape discovery, discovery should shape delivery."

Proof

What the workflow produces

Proof pendingfirst cohort of tickets in progress - median & p90 spec→ship cycle time, rework rate, % closed autonomously, blockers caught per gate.

This is the differentiator: not claims about being "AI-powered" - numbers about what the workflow actually produces.

The visualbear System

Design system

A collection of all the individual components and rules used to build this site. I use a modified, custom version of Pattern Lab's atomic design structure, customised by me.

Design reference ⋅ 2026

The structure is divided into:

  • Core
  • Modules
  • Containers
  • Case-study system

The purpose of exposing this styleguide is to present my portfolio itself as part my portfolio work. What you see is what I use as a reference as I build the site, as it's imperative to good web design and development.

Built using:

  • Yeogurt
  • Materialize

Core

Core elements are the most basic components used to build the site. Colours, type and basic buttons are defined here.

Colours

#E6F2FF

Light Grey Blue

#79A6D2

Blue

#FF621A

Orange

#F63F3C

Tomato

#313135

Medium Grey

#18181B

Dark Grey

Fonts

  • Primary font: "Nunito", sans-serif;

  • A B C D E F G H I J K

    L M N O P Q R S T U

    V W X Y Z

    a b c d e f g h i j k

    l m n o p q r s t u

    v w x y z

    0 1 2 3 4 5 6 7 8 9 0

  • Primary font italic: "Nunito" , sans-serif;

    Primary font bold: "Nunito", sans-serif;

  • Secondary font: "HelveticaNeue", "Helvetica", "Arial", sans-serif;

  • A B C D E F G H I J K

    L M N O P Q R S T U

    V W X Y Z

    a b c d e f g h i j k

    l m n o p q r s t u

    v w x y z

    0 1 2 3 4 5 6 7 8 9 0

  • Secondary font italic: "HelveticaNeue", "Helvetica", "Arial", sans-serif;

    Secondary font bold: "HelveticaNeue", "Helvetica", "Arial", sans-serif;

Headings

The system uses h1-h4 only (h5/h6 are not part of the type scale; see the case-study system section for the content roles).

  • h1 Heading

  • h2 Heading

  • h3 Heading

  • h4 Heading

  • h2 Page Header

Links

  • Link A
  • Link B

Text

Example body text

Lead paragraph: vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus.

Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula.

This line of text is meant to be treated as fine print.

The following snippet of text is rendered as bold text.

The following snippet of text is rendered as italicized text.

An abbreviation of the word attribute is attr.

Left aligned text.

Center aligned text.

Right aligned text.

Modules

Modules are comprised of multiple core elements. Now that elements such as type and colours are defined, modules put them together into modular pieces that can be then used in containers.

Quotes

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

- Someone famous in Source Title

Buttons Aligned

< Previous
Next >

Image Container

Pedro Björn, visualbear

Link Block

Cart Gallery Container

Art-Ent

Connecting artists and students

Containers

Containers will consist of one or more module within a block / container element. This is used to group modules into chunks that serve a purpose.

Button Slider

<
>

Text Container

The objective was to define an identity for my web presence, but also as an excercise in designing an identity, from logo to website, with an element of freedom.

Focusing on the central aspect of "björn" (bear in Swedish, and also my last name), the emphasis on the word "bear" and the logo tie it all together. The dark grey contrasting with the blue are selected due to their contrast that's less harsh than simply black on white.

Footer

You can contact me at

hello@visualbear.com

  • LinkedIn Icon

Made by Pedro Björn with paws and vibes.

© 2026 visualbear All Rights Reserved.

🐻

Case-study system

The case-study pages render from markdown (see AUTHORING.md). Their layout has one text edge, bullet plates and cards inside the container, display boxes that bleed one indent step into the margins, and a full-bleed tier for media and background sections.

Type roles

Headline — h2, 28.8px / 700

Sub-head — h3, 22.5px / 700

Body copy — 18.4px / 300. One size for paragraphs and list text.

Label — 15.4px (eyebrows, notes, captions). Never below this size.

Indent token: $cs-indent = 28px — box padding, box bleed, timeline gutter and marker hang all derive from it.

Content width: 900/836 — one content width site-wide (DR-0013); every page's text column is the container's 836px inner width at 1440.

List-context rule (DR-0010): - item at section level → fact chip; - item inside a box → plain bullet; * item → plain bullet list at section level (the opt-out); 1. step → numbered timeline everywhere.

Chip plate: one token, --cs-chip-plate (white 0.45; the dark ground's documented instance is 0.06 — DR-0012). Bullet geometry: the dot sits 20px inside the plate, text 8px clear of the dot; plateless lists keep the dot ON the text edge (tickets 39/41).

Width tiers

Text edge — all body copy aligns here. Bleed — display boxes (summary, quote groups, cols) extend one indent step into each margin. Full-bleed — media, tables and full-flagged containers span the viewport. Bullet plates (chips, plain lists) and cards sit WITHIN the container (tickets 39/53).

Bleed example — the summary box extends past the text edge by one indent step on both sides.

Within the container — card (ticket 53)

The card's box spans the text column; its text sits inset inside the plate, like the chips.

Full-bleed band — ::: type full (the background spans the viewport; content keeps its insets)

Vertical rhythm

One spacing scale governs all vertical gaps: 8 / 16 / 24 / 32 / 48 / 64 / 96 (8pt grid). Roles: 8 inside components, 16 list rhythm, 24 around media and after headings, 32 around self-contained blocks, 48 around media wrappers and h2→h3, 64 around pull quotes, 96 section padding. Label+content pairs (eyebrow → heading, sub-title → list) sit tight by design.

8
16
24
32
48
64
96

Heroes

One hero component, one spacing/type set (DR-0014): eyebrow → h1 16, h1 → summary 24, summary → details 24, padding 64/64. The variant picks ground and ink only — cover (full-bleed colored band, white ink), meta (in-flow, KPIs under the cover), adapted bare (transparent — the page's ground carries it, e.g. visuAI's dark page, with an adapted kicker instead of "Case Study"), and the mid-page ::: hero from markdown.

The visuAI Workflow

Adapted bare hero

Transparent on any ground — no cover box, an adapted eyebrow instead of the case-study kicker.

Design Lead ⋅ 2026

15% meta hero — KPIs sit under the cover

Case Study

Cover hero

White-on-color ink; the real cover spans the viewport (100vw technique, 64px/48px padding — DR-0014). This demo shows its structure at container width.

Details line

Section Label

Mid-page hero

Emitted by the ::: hero container in markdown — 64/64 padding, subtitle and byline on the shared 24 gaps (DR-0014).

Components

  • Fact chip — key stats and proof points
  • Second chip — dot 20px inside the plate, text 8px clear of the dot (tickets 39/41)

* item at section level — the plain bullet list (ul.cs-plain, DR-0010): chip geometry, no plate.

  • Plain bullet — the dot sits ON the text edge, text +8px
  • Second plain bullet — the opt-out when a list should not be a chip
  1. Timeline step one

    Real markup: ol.cs-timeline > li — the numbered dot and connector are the component's.

  2. Timeline step two

    Numbers baseline-align with their titles.

Note — [note: text], the muted annotation line with its icon.

"Display quote — centered, italic, h2-size, on every page."

"Quote group — runs of 2+ quotes share one bleeding plate."

"Each quote keeps its own blockquote inside the group."

Summary box — [summary: text]; the bleeding closing-summary of a case study.

Image run (ticket 61): ::: shots — N images side by side, each image's alt text = its caption below. Wraps on narrow screens.

Art-Ent — connecting artists and students
Art-Ent — the first shot's caption
Climate Clock — the second shot
Climate Clock — the second shot's caption
Digital Closet — the third shot
Digital Closet — the third shot's caption
Divider
Frameplaceholder for mockups and pending media

Frame caption — a [point:] under an image renders as a dotless, italic caption (DR-0011)

15% metric chip

Color tokens

The case-study system's seven verified tokens (ticket 20), used as grounds, accents and inks across the themes. Contrast rationale lives at each usage site in _case-study.scss.

#111111

cs-black — fashion ground/accent

#0E7D6F

cs-teal-ground — teachr ground

#14A08D

cs-teal-base — teachr accent

#D50E95

cs-pink-ground — ecommerce ground

#C10D82

cs-pink-deep — ecommerce deep accent

#D73735

cs-red — brand accent (= $vb-primary)

#E34A47

cs-red-lifted — red for dark grounds (visuAI)

You can contact me at

hello@visualbear.com

  • LinkedIn Icon

Made by Pedro Björn with paws and vibes.

© 2026 visualbear All Rights Reserved.

🐻