Skip to main content

A note from the creator

Why I built Lattice

Lattice started as a series I wrote on martinfowler.com, Patterns for Reducing Friction in AI-Assisted Development. Five patterns that are, individually, just good sense. What I kept watching was teams read the series, try one pattern for a sprint, and quietly drop it the moment a deadline got tight. The ideas were never the problem. Nothing was holding them in place day to day, so that's what I built.

Lattice takes the discipline I've spent my career building as an engineer: drive the right requirement first, design before touching a keyboard, write code inside real architectural and quality guardrails, then review it from a perspective that isn't the one that just wrote it. I wired that directly into the agentic SDLC, so it isn't advice you have to remember to apply. It's a set of skills the assistant actually runs, every time.

It ships opinionated: Clean Architecture, DDD, secure coding, test quality, all pre-picked. But no team is stuck with mine. Refiners walk you through a guided interview to encode your own standards, so the guardrails become your team's guardrails, versioned and PR-reviewed like any other code. It also gets out of your way as you go: the more of your team's standards get encoded, the less the AI has to stop and ask, because there's less genuine ambiguity left to ask about.

Where I want your feedback

I'm more interested in the seams than the happy path:

  • Does the design step earn the time it costs on a real feature, or does it feel like ceremony mid-sprint?
  • Are the shipped defaults the right opinions for your stack, or the wrong ones dressed up as best practice?
  • Does encoding your own standards through a refiner feel natural, or does it feel like fighting the framework?
  • If you're running Lattice on Cursor, Codex, or another host, does it feel native there, or does it feel ported?

I'd rather hear “this step is friction, here's why” than “looks great.” Tell me on GitHub Discussions. That's where I'm watching.

One thing to try

Before you write a line of code

Run /design-blueprint on your next real feature. It puts the AI in the seat of a design partner, not a code generator: five levels of design, ending in an actual artifact you approve before any coding agent touches the keyboard. Hand that blueprint to /code-forge next. That handoff, approving the design before a single line of code gets written, is where Lattice actually starts. It's the step most people skip, and the one worth trying for yourself first.

Try it on something real, not a toy, and tell me where it breaks.

— Rahul