# Product Standards

> Canonical, living standards that govern all new and modified Filament UI surfaces.
> Specs reference these standards; they do not redefine them.
> Guard tests enforce critical constraints automatically.

**Last reviewed**: 2026-03-09

---

## Standards Index

| Standard | File | Governs |
|---|---|---|
| Table UX | [filament-table-ux.md](filament-table-ux.md) | Column tiers, sort, search, toggle, pagination, persistence, empty states, timestamps, IDs |
| Filter UX | [filament-filter-ux.md](filament-filter-ux.md) | Filter patterns, persistence, soft-delete, date range, enum sourcing, defaults |
| Actions UX | [filament-actions-ux.md](filament-actions-ux.md) | Row/bulk/header actions, grouping, destructive safety, inspect affordance |
| Review Checklist | [list-surface-review-checklist.md](list-surface-review-checklist.md) | PR/spec checklist for any new or modified list surface |

---

## How Standards Are Enforced

1. **Constitution** — Principles in `.specify/memory/constitution.md` govern why we build this way.
2. **Standards** (this directory) — Concrete rules for how every surface must behave.
3. **Guard tests** — Automated Pest tests that fail CI when critical standards are violated.
4. **PR review** — The [review checklist](list-surface-review-checklist.md) is checked for every spec or PR that touches a list surface.

---

## When to Update Standards

- When a spec introduces a new surface type or pattern not yet covered.
- When a standard proves too rigid or too loose after real usage.
- When Filament version changes invalidate or enable new native features.

Update the standard first, then adjust implementation to match.

---

## Related Docs

| Document | Location | Purpose |
|---|---|---|
| Constitution | `.specify/memory/constitution.md` | Permanent principles (UX-001, Action Surface Contract, RBAC-UX) |
| Product Principles | `docs/product/principles.md` | High-level product decisions |
| Table Rollout Audit | `docs/ui/filament-table-standard.md` | Rollout inventory and implementation state from Spec 125 |
| Action Surface Contract | `docs/ui/action-surface-contract.md` | Original action surface reference (now governed by this standard) |
