# Lamina Forms

> Form behavior in contracts — validation timing, field semantics, and recovery UX. Use when data entry blocks workflows or causes scenario gaps.

- **Type:** Skill
- **Install:** `agentstack add skill-aryaniyaps-lamina-lamina-forms`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [aryaniyaps](https://agentstack.voostack.com/s/aryaniyaps)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [aryaniyaps](https://github.com/aryaniyaps)
- **Source:** https://github.com/aryaniyaps/lamina/tree/main/skills/lamina-forms
- **Website:** https://lamina.dev

## Install

```sh
agentstack add skill-aryaniyaps-lamina-lamina-forms
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Forms (agent-native)

Specify **how data entry behaves** in `run.json` — field semantics, validation timing, and recovery — not CSS or component libraries.

## Contract encoding

| Concern | Where |
|---------|--------|
| Fields per screen | `surfaces[].fields[]` or workflow step notes |
| Validation timing | scenario `trigger.when: validation_failed` |
| Recoverable vs blocking | scenario `category: partial` vs `failure` |
| Data immunity vs integrity | `decisions.md` + form policy in `implement.md` |

**Data immunity** (default for high-volume entry): accept input, flag uncertainty, audit later — never halt batch flow for recoverable format issues.

**Bounded controls**: match widget semantics to data type in screen spec; allow override when domain requires.

## Design checklists

1. Prefer immunity over keystroke-level rejection unless invariant requires hard stop.
2. Batch-review anomalies instead of modal-blocking each error.
3. Preserve entered data on validation failure (scenario + `implement.md`).
4. Required fields only when invariant or workflow depends on them.
5. Map each field to domain entity attribute — not database column names in user-facing copy.
6. Classify date/time fields before choosing a control. A `datetime-local` value has no zone: submit its untouched local components plus the subject/place IANA zone for trusted resolution. Never convert it in the browser and attach another zone afterward.
7. Invalid DST-gap times preserve input and offer a nearby valid choice; ambiguous overlap times require an explicit earlier/later choice. Show the relevant zone when actors may differ.

## Verify checks

- Actor walk: submit invalid/partial data — observe recovery UX matches scenarios.
- Actor walk: required-for-invariant fields block with clear `ux` (banner/alert).
- A11y: labels associated with inputs on captured walkthrough steps.
- Temporal: run the form with browser zone different from subject zone and cover applicable DST gap/overlap recovery.

## Anti-patterns

- Keystroke rejection modals for recoverable typos.
- Clearing form on error without scenario documenting it.
- Free-text where bounded selection prevents inconsistency.
- Form spec that mirrors implementation model instead of actor mental model.

## Related

- [Error Handling](../lamina-error-handling/SKILL.md)
- [Flow Design](../lamina-flow-design/SKILL.md)
- [Controls And Menus](../lamina-controls-and-menus/SKILL.md)

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [aryaniyaps](https://github.com/aryaniyaps)
- **Source:** [aryaniyaps/lamina](https://github.com/aryaniyaps/lamina)
- **License:** MIT
- **Homepage:** https://lamina.dev

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-aryaniyaps-lamina-lamina-forms
- Seller: https://agentstack.voostack.com/s/aryaniyaps
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
