Skip to Content
Commands/lamina-verify

/lamina-verify

Pre-merge verification: walk the live product against run.json contracts. Lamina checks actor permissions, invariants, dependency reachability, UX flows, and accessibility — then writes findings to fix.md.

Quick path

  1. Start your dev server
  2. Run /lamina-verify with a concrete flow or surface and the live URL
  3. Read fix.md for product findings and report.md for the full narrative (including fix_target: ops)
  4. Your agent fixes product issues, then re-verify

Prerequisites

  • Valid .lamina/business-context.md from /lamina-init
  • A running product at base_url (e.g. http://localhost:3000)
  • Prefer an existing design run with status: ready_to_build or complete

Advanced: Brownfield verify may infer domain from repo and walkthrough without a prior design run. See Brownfield and greenfield.

When to use

  • After your agent implements from implement.md
  • After applying fixes from a previous fix.md
  • Pre-merge / pre-PR product behavior check
  • Brownfield integrity audit on an existing app

Examples

/lamina-verify guest checkout at http://localhost:3000
/lamina-verify hotel partner onboarding at http://localhost:3000

What Lamina does

  1. Loads the contract from run.json and implement.md (or infers from repo in brownfield)
  2. Sets status: verifying
  3. Captures walkthrough/ evidence at base_url
  4. Dispatches parallel subagents — one per primary actor
  5. Runs probe types:
    • Actor walks — each persona navigates their workflows
    • Invariant probes — business rules from invariants[]
    • Reachability probes — unmet dependencies[]
    • Accessibility checks — against captured walkthrough steps
  6. Writes findings[] to run.json with fix_target per finding (product, contract, or report-only ops)
  7. Sets status: complete; writes report.md and fix.md (ops findings excluded from fix.md)

Output

ResultMeaning
No open product or contract findingsVerification passed for the named flow — fix_target: ops in report.md does not block exit
fix.md with product or contract findingsGaps to address in app code or via scoped re-design

Finding categories

  • Impossible states (cancelled and confirmed simultaneously)
  • Missing transitions (no recovery from error state)
  • Permission gaps (guest can access admin actions)
  • Skipped dependencies (pay without hold, publish without approval)
  • Unmet reachability (feature exists but prerequisite is unreachable)
  • Accessibility violations on critical flows

fix_target

ValueAction
productYour coding agent fixes app code from fix.md
contractRe-run /lamina-design with a scoped contract update
opsReport-only — observation stays in report.md; excluded from fix.md; does not block product/contract exit

What to do next

If findings exist, hand fix.md to your coding agent:

Fix the product issues in .lamina/runs/<id>/fix.md

Then re-verify:

/lamina-verify guest checkout at http://localhost:3000

Loop until there are zero open product or contract findings. fix_target: ops observations may remain in report.md.

Tips

  • Run against a live dev server — verification reads real UI, not mocks
  • Fix product behavior from fix.md, not styling
  • Re-verify after every fix cycle — partial fixes often reveal new gaps
  • Inspect walkthrough/ for visual evidence of what each persona encountered

Next steps

Last updated on