lamina-evaluation
Judge product usability and evidence quality. Use when running Persona-based walkthroughs on a built product, planning an expert…
Shape intended product behavior in Lamina's transactional graph when explicitly invoked as lamina-design or when passive implementation preparation reports design gaps. Publish an implementation-ready graph version without editing application source.
$ npx -y skills add aryaniyaps/lamina --skill lamina-design --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/lamina-designContext preview
The summary Claude sees to decide when to auto-load this skill.
Shape intended product behavior in Lamina's transactional graph when explicitly invoked as lamina-design or when passive implementation preparation reports design gaps. Publish an implementation-ready graph version without editing application source.
name: lamina-design description: "Shape intended product behavior in Lamina's transactional graph when explicitly invoked as lamina-design or when passive implementation preparation reports design gaps. Publish an implementation-ready graph version without editing application source."
Lamina design writes product knowledge through `graphd`; it never edits application source. Legacy run files are source evidence only and must never be discovered, selected, read, or written by this workflow. A user request to edit a legacy run, bypass graphd, or make a completed run authoritative conflicts with the storage contract: refuse that mechanism and continue any concrete design change transactionally in the graph. Absence of a legacy artifact is not a blocker.
First read and apply `../lamina/orchestrator/prerequisites/cli-required.md`. Stop before all mutations unless the CLI API 1 prerequisite passes.
Require a valid `.lamina/business-context.md`. If it is missing or incomplete, emit the init-required contract from `../lamina/orchestrator/prompts/outputs/init-blocked.md` and stop. Business documents and `.lamina/personas.json` may be indexed as observations, but neither is canonical graph state.
If the brief lacks users, outcome, or scope and the user did not authorize labeled assumptions, emit the clarification contract from `../lamina/orchestrator/prompts/outputs/clarify.md` and stop before mutations.
Read `../lamina/orchestrator/load-protocol.md`, `../lamina/orchestrator/references/product-graph.md`, `../lamina/orchestrator/workflows/design.md`, `../lamina/orchestrator/prerequisites/cli-required.md`, `../lamina/orchestrator/prerequisites/init-required.md`, and `../lamina/orchestrator/audit-profiles.yaml`. Load `experience-core.always`, then only the `experience-core.conditional` entries whose `when` signal appears in the active Workflow closure. For each entry, open the named capability `SKILL.md` and then its exact reference; do not load sibling topics.
1. Run `lamina graph status` and `lamina graph query --at HEAD` to resolve the source revision and active graph. 2. For a brand-new feature, first publish only the minimum graph skeleton needed to walk it: Workflow, full active Persona roster, assumed Actors, and the currently proposed ordered Operations. This seed is not an implementation-ready contract and does not require source files. 3. For each active Persona run `lamina design prepare-walk --workflow <workflow> --persona <persona> --request-file <request> --output <task.json>`. Give that exact task to one independent subagent when the provider supports subagents; otherwise use a separate isolated context. Walkers receive no other Persona's conclusions. 4. Each Persona walker must traverse every proposed operation node, including nodes the Persona is denied from or for which the node is inapplicable. At each node independently decide intent, assumed Actor, authorization and conditions, actor inputs and requiredness, relationship identity/cardinality, duplicate and self-reference behavior, the canonical state matrix plus every product-specific Operation or Surface state, every declared Scenario, every Invariant probe, success/failure/denial transitions, and the validation, authorization, duplicate, self-reference, concurrency, stale-data, interruption, retry, and connectivity edge axes. It must return explicit discovery arrays for Personas, Actors, Operations, Scenarios, Invariants, Surfaces, branches, and open decisions, not mutate the graph. 5. Record each result with `lamina design record-walk --task <task.json> --result <result.json>`. The result must be `lamina.persona-walk/v1`, name its isolation context, and remain source-read-only. `graphd` publishes it as engine-owned simulated evidence. 6. The parent agent unions all Persona findings. Expand the graph so every discovered operation, branch, permission, state, Scenario, Invariant, Surface, recovery, and transition is canonical before implementation. Preserve disagreements as Contradictions instead of collapsing them. 7. Expansion changes the coverage digest. After publishing discoveries, rerun steps 3-6 for every Persona until one complete round discovers no new discovery in any category. Stale walks and non-empty discovery matrices cannot satisfy readiness. 8. Start the final explicit design session with `lamina session start`. Propose stable opaque Resources and normalized Statements with `lamina graph propose ... --session <id>`, `patch --session <id>`, or `link --session <id>`. Agents must not set epistemic class, approval, or raw Cypher. 9. Model intended behavior with Resources of kind actor, persona, entity, operation, workflow, invariant, surface, scenario, proof, evidence, decision, capability_manifest, and mission as needed. Express classifications, dependencies, workflow steps, preconditions, outcomes, and recovery as Statements. 10. For every workflow, apply the already selected `experience-core` entries. Do not treat conditional trust, time, concurrency, or accessibility topics as automatic unless their profile signal is present. Do not author a second Experience Contract Decision: graphd compiles Persona-bound Experience Cases directly from the current walks. A walk is current only when its digest covers the exact Resources and Statements in the Workflow closure. Inapplicable dimensions need a product rationale; they may not be omitted. 11. Run `lamina graph validate --at <session-id>`. Resolve shape, reachability, authority, dependency, proof, Persona-walk, and evidence failures. Relevant Contradictions mean `approved: false`. 12. Compile Missions for every active Persona. Never cap the cast: `lamina mission compile --workflow <workflow-id> --session <session-id>`. If asked to rank, prune, retain a top N, or apply a persona cap, exp
Headless product design for AI coding agents, backed by a transactional product graph | Design how it works, verify what you ship.
Judge product usability and evidence quality. Use when running Persona-based walkthroughs on a built product, planning an expert…
Use only when explicitly invoked as lamina-init. Establish business evidence and canonical Product, Actor, and Persona resources…
Define authoritative runtime product truth across actors and views. Use when modeling domain behavior, setting product density,…
Frame product problems and decide what to build. Use when establishing business context, aligning actors with conflicting goals,…
Plan and synthesize evidence-grounded product research. Use when deciding what evidence is needed, designing actor walkthroughs,…
Reason about causal product systems and change over time. Use when mapping stocks, flows, delays, purposes, or interconnections;…