Skip to Content
ConceptsThe Loop

The loop

Lamina’s workflow is a closed loop: design the contract, implement with your agent, verify against the live app, fix gaps, re-verify.

Quick path

/lamina-init → /lamina-design → [implement] → /lamina-verify → [fix] → /lamina-verify

Workflow diagram

┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ DESIGN │ ──▶ │ IMPLEMENT │ ──▶ │ VERIFY │ ──▶ │ FIX │ │ Lamina │ │ Your agent │ │ Lamina │ │ Your agent │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ ▲ │ └──────────────────── RE-VERIFY ◀────────────────────────────┘

Ownership

StepOwnerCommand / actionWrites
CharterLamina/lamina-init.lamina/business-context.md, personas.json
DesignLamina/lamina-designrun.json, run.md, implement.md
ImplementYour agentBuild from implement.mdApp source
VerifyLamina/lamina-verifyUpdated run.json findings, report.md, fix.md, optional walkthrough/
FixYour agentApply fix.mdApp source
Re-verifyLamina/lamina-verify againUpdated findings

Advanced: Lamina writes only under .lamina/ during slash commands. Your coding agent writes app source in separate coding sessions. This is Mode B — the non-negotiable write boundary.

Design phase

Lamina models the domain:

  1. Entities and states — what exists and what state it is in
  2. Actors and roles — who interacts with the product
  3. Dependencies — reachability graph for cross-feature prerequisites
  4. Workflows — primary paths, alternate paths, operations over states
  5. Scenarios — violations, edge cases, recovery paths
  6. Screens — structural UX surfaces (no styling)

Output: run.json, run.md, and implement.md with status ready_to_build.

Implement phase

Your coding agent reads implement.md and writes app source. Lamina does not participate in implementation — it stays headless. Use any stack, framework, database, and UI library.

Verify phase

/lamina-verify runs parallel persona walks at base_url:

  • One subagent per primary actor
  • Optional visual walkthrough capture in walkthrough/ when live capture is available
  • Invariant probes against invariants[]
  • Reachability probes against dependencies[]
  • Accessibility checks on captured steps
  • Findings written to findings[] with fix_target per item

Fix phase

Your agent applies fixes from fix.md:

fix_targetAction
productFix app code in a normal coding session from fix.md
contractRe-run /lamina-design with scoped update
opsReport-only — observation stays in report.md; excluded from fix.md; does not block exit

Lamina does not implement fixes — it writes the brief for product and contract gaps only.

Contract delta path

When verify reveals the contract itself is wrong (not just the app), findings have fix_target: contract. This loops back to design instead of implementation:

verify → fix_target: contract → /lamina-design (scoped) → implement → verify

When the loop ends

The loop completes when /lamina-verify reports zero open product or contract findings and the contract holds on the live build. fix_target: ops observations may remain in report.md and do not block this exit.

Next steps

Last updated on