Skip to main content

Lamina vs roll your own

A transactional product graph and agent workflow is convenience, not a prerequisite. Plan mode, XState, Spec Kit, or custom SKILL.md can cover much of the thinking. Lamina packages slash commands, contracts, and Persona Missions with runtime evidence.

Curated by Aryan Iyappan · Updated 2026-07-27

Who this comparison is for

You are in the right place if

  • You already maintain SPEC.md or a custom skill.
  • You want to know if Lamina is worth another dependency.
  • DIY_SECTION in the pillar listed five approaches and you want the honest summary.
  • Your team has XState and wonders if Lamina duplicates it.

Context

This is not a competitor page. It answers whether packaged Lamina beats DIY for your team. Strong teams already spec behavior; weak teams skip it entirely. Lamina targets the middle: you want the loop without maintaining your own skill and verify playbook.

Common situations

Concrete cases from AI-shipping workflows. Each shows what the alternative handles and where validated graph knowledge and verification evidence help.

Plan mode plus committed SPEC.md

Situation
Every feature gets SPEC.md in docs/. Engineers update it sometimes. Drift appears under deadline pressure.
What Roll your own does
Low overhead, familiar markdown, full format control.
What Lamina adds
Structured GraphVersion per run, GraphVersion projection handoff, built-in /lamina-verify when drift hurts.
Takeaway
DIY works with discipline; Lamina when discipline fails.

XState machines in application code

Situation
Booking state machine enforced at runtime. Design happens while coding.
What Roll your own does
Strong runtime guarantees when machine is correct.
What Lamina adds
Behavior design before implementation; verify on UI before machine is written.
Takeaway
XState enforces; Lamina designs and verifies earlier.

Custom SKILL.md maintained by platform team

Situation
Internal skill encodes company product rules. Team has bandwidth to maintain it.
What Roll your own does
Tailored to domain, owned internally.
What Lamina adds
Optional reference implementation or fork base. Not required if internal skill wins.
Takeaway
Maintained internal skill can beat external install.

Comparison

Lamina vs DIY behavior specs
DimensionRoll your ownLamina
Primary jobYour own spec and test approachPackaged design → verify loop
Layer in stackVaries by approachTransactional product graph + agent workflow
Primary outputSPEC.md, state machines, custom templatesValidated GraphVersion plus query projections
Writes app source?You or agent implementNo
Behavior spec (states, flows, permissions)As good as you maintain itStructured per /lamina-design run
Durable in-repo artifactYour chosen formatValidated GraphVersion plus query projections
Post-build verificationYour tests, checklists, or manual QAIndependent Persona Missions with runtime evidence
Repo and stack fitFully customCLI plus portable skills in any repo and stack
Best whenYou want full format control and maintain itYou want repeatability without owning the skill
When you don't need LaminaDIY loop already holds for your teamYou prefer maintaining your own skill
Compose with Lamina?N/AAdopt when verify loop is the gap

DIY approaches from the pillar guide

Lamina vs roll your own: when to use each
SituationRoll your ownLamina
Plan mode + SPEC.mdLow overhead, flexibleWhen specs drift from code
State machine in code (XState)Runtime enforcementWhen design should precede code
Spec Kit / KiroEngineering SDLCWhen product behavior needs first-class spec
Custom SKILL.mdTailored to domainWhen you will not maintain the skill
ADRs onlyArchitecture decisionsWhen UI flows need verification

Frequently asked questions

Do I need Lamina if I have DIY specs?

No. Lamina is optional when your loop already holds: accurate specs, tests, and review habits.

Can we fork Lamina instead of DIY from scratch?

Yes. Apache-2.0 license. Many DIY paths end as an internal fork of an open skill anyway.

Does Lamina replace XState?

No. Lamina specs behavior before code. You may still implement with XState.

Comparisons map stack layers, durable outputs, and provenance-marked legacy examples. Updated when major tools change positioning.

Install Lamina with your agent.

Copy the repository-matched prompt. Your agent installs the standalone CLI, adds every Lamina skill for your active agent, configures supported passive rules, checks the setup, and tells you when to start a fresh session with /lamina-init.

Skills work across coding agents. Passive setup currently supports Codex, Claude Code, and Cursor.

  • Cursor
  • Claude Code
  • Codex
  • Gemini
  • Pi
  • and more
Install manually on macOS/Linux4 shell commands

Run these in your project, then start a fresh agent session. On Windows, use the PowerShell installer in the copied agent prompt.

curl -fsSL https://github.com/aryaniyaps/lamina/releases/latest/download/install.sh | sh
npx skills add aryaniyaps/lamina --skill '*' -a <active-agent> -y
lamina setup --agent <codex|claude-code|cursor>
lamina doctor --json