AI

I build workflows that hold every project to a standard.

Written rules and automatic checks, not a feature of one AI product. Point any agent at the folder and the same standard holds; every mistake caught becomes a new rule.

DESIGN CODE LEARNINGS HOOK ROUTING

THE TWO WORKFLOWS

19 rule files · 1,270 lines63 dated lessons, written downone check runs on every single editcounted 2026-08-26

01

The design workflow

Nothing visual ships until it survives review.

  • Automatic rules and a panel of reviewers check every change before it ships.
  • Every edit is checked the moment it happens, automatically.
  • When something goes wrong once, it becomes a written rule: the system cannot make the same mistake twice.

WRITTEN IN

keegan-design/SKILL.md

settings.json · hooks

THE REBUILT DASHBOARD · PRESS GANEY, RUNNING IN THE CASE PAGE

02

The code workflow

What a change could break is written down before the change is.

  • Every change states what it could break before it’s written, and how we’d catch it.
  • Each task goes to the right specialist tool: big jobs get deep attention, small jobs stay fast.

WRITTEN IN

keegan-code/SKILL.md

CLAUDE.md · routing table

THE PRODUCT ITSELF · STEMWISE, BUILT THROUGH THIS WORKFLOW

WHERE THE SYSTEM CAUGHT ITSELF

The mistakes it caught, and the rules they became.

None of these reached a person. The workflow flagged each one on the edit that made it, and the fix was already in before anyone opened the page.

  1. 2026-09-01DESIGN-LEARNINGS.md

    A resize pass grew the headings, and the diagram under them collapsed to 49 pixels and clipped. Nothing spilled outside the section, so no existing check fired.

    THE RULE THAT CAME OUT OF IT

    In a module that must fit one screen, the artifact gets the floor and the text yields, never the reverse.

  2. 2026-09-01DESIGN-LEARNINGS.md

    A counter animated the wrong half of “1,636 messy names to 491 plants” and came to rest on a number that was never true.

    THE RULE THAT CAME OUT OF IT

    A counter animates only the quantity that is actually changing, and every resting number is a sourced fact.

  3. 2026-08-27CODE-LEARNINGS.md

    The check for a leaked password never matched DB_PASSWORD. The underscore made the ordinary form of the name invisible to it.

    THE RULE THAT CAME OUT OF IT

    Match the shape a value actually takes in a real file, not the word it is named after.

  4. 2026-08-26DESIGN-LEARNINGS.md

    A finished page painted first, then its own loading screen mounted on top and took it away.

    THE RULE THAT CAME OUT OF IT

    An entrance cover ships inside the prerendered page, or there is no cover.

  5. 2026-08-26CODE-LEARNINGS.md

    A wildcard sitting in the secret scanner’s own skip list let a file named secrets.lock walk straight through the gate.

    THE RULE THAT CAME OUT OF IT

    An exemption is an exact known name, never a pattern.

  6. 2026-08-23DESIGN-LEARNINGS.md

    Rolling digits let two different numbers be readable in the same instant, so the screen flashed a figure that was never true.

    THE RULE THAT CAME OUT OF IT

    Never let the outgoing and incoming digits of different targets be readable at once.

PRESS GANEY · DESIGN HUDDLE

CAUGHT IN REVIEW BY A PERSON

On a self-exploration page the designers and I liked the type small. The director of UX showed me what that cost: reviewers reading on a critique clock missed features that were already built, and asked for them.

THE RULE THAT CAME OUT OF IT

Anything a reader has to explore under time pressure gets larger type and obvious affordances. Type size is the first thing I check.

No system caught this one. A person did, in a review room, before any of this existed. It is a written rule now, and the workflow above is what enforces it on every page I build.

CODING WITH AI FOR STEMWISE

Proving the system on a real product.

The same workflows that check this site, pointed at a shipping product.

SHIPPED

Stemwise itself: an AI-built product, running purchasing and sales for 20+ businesses today.

STEMWISE · 1,636 aliases → 491 plants

THE SHIPPED DASHBOARD · STEMWISE

Not just the screen above it: the database underneath and the codebase around it, both drawn from what is actually running.

01

THE DATABASE

Every dot is a table in Stemwise’s database. Lines show which tables reference each other. Bigger dots carry more of the system.

STEMWISE · 51 TABLES · 92 FUNCTIONS · 85 RLS POLICIES, VERIFIED AGAINST THE LIVE DATABASE 2026-08-31 · 72 FOREIGN-KEY EDGES, COUNTED 2026-08-27

02

THE CODEBASE

Every dot is a part of Stemwise’s codebase. Lines show which parts use each other. This is the app the schema powers, written prompt by prompt.

STEMWISE · 24 MODULES, 99 CROSS-MODULE IMPORT EDGES · REAL REPO, COUNTED 2026-08-27 · 211 SOURCE FILES · 147 COMPONENT FILES · 19 PAGES · COUNTED 2026-08-27

Read the full case study