Lamina evolutionary rules
Evolving product rules safely — reversible decisions, invariant checks as features change, deferring commitment. Use when the domain will grow or requirements are uncertain.From its SKILL.md
npx -y skills add aryaniyaps/lamina --skill lamina-evolutionary-rulesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
2.5 KB, 422 tokens by cl100k_base, as published. Nobody here has run it
Evolutionary Rules
Products change. Design rules and invariants so they can evolve without silent breakage — prefer reversible choices until the cost of waiting exceeds the cost of committing.
Decision frameworks
-
Reversible decision: Can be undone without corrupting domain state (toggle feature flag, add optional field).
- When to use: Uncertain requirements, early iterations.
- How: Document in
implement.mdas low-risk; verify after each change.
-
Irreversible decision: Hard to undo (merge two entity types, remove invariant).
- When to use: Only when delay cost is high and trade-offs are explicit.
- How: Record in
decisions.md; full scenario coverage before ship.
-
Invariant regression check: New feature must not violate existing
domainrules — re-run verify after external build.- When to use: Every
/lamina-verifyafter changes touching shared entities.
- When to use: Every
-
Defer commitment: Wait until you need the rule — but do not defer documenting invariants you already know.
Checklists
- Tag design decisions reversible vs irreversible in run or
decisions.md. - When adding workflows, re-check all existing invariants for the touched entities.
- After external implementation, run verify — not one-time at handoff.
- Prefer additive rule changes over breaking changes to actor permissions.
Anti-patterns
- Big-bang rule change: New payment rule breaks all issued tickets without migration scenario.
- Forgotten invariants: Feature ships without updating scenarios.
- Permanent "temporary": Overrides that bypass invariants become architecture.
Examples
- Adding waitlist: Reversible — new workflow branch. Must preserve invariant: one valid ticket per student per exam. Scenarios for waitlist → ticket promotion and edge cases.