Install
$ agentstack add skill-aryaniyaps-lamina-lamina-forms ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →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
- Prefer immunity over keystroke-level rejection unless invariant requires hard stop.
- Batch-review anomalies instead of modal-blocking each error.
- Preserve entered data on validation failure (scenario +
implement.md). - Required fields only when invariant or workflow depends on them.
- Map each field to domain entity attribute — not database column names in user-facing copy.
- Classify date/time fields before choosing a control. A
datetime-localvalue 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. - 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
- Source: aryaniyaps/lamina
- License: MIT
- Homepage: https://lamina.dev
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.