# Generic record integrity

**Test family:** `REC`

Use this as a business-semantic overlay on the relevant input, CRUD, action, access, money, and time item files.

- **REC-001** Create minimal valid and complete records; verify defaults, derived fields, ID, owner, timestamps, and audit.
- **REC-002** Duplicate/near-duplicate detection handles normalization, concurrency, imports, and explicit override.
- **REC-003** List, detail, search, API, notification, automation, and export agree on identity and current state.
- **REC-004** Required references cannot point to missing, deleted, forbidden, wrong-tenant, or incompatible records.
- **REC-005** Parent/child and many-to-many links add/remove from both sides without duplicates or orphans.
- **REC-006** Update one field without overwriting unseen/stale fields; concurrent updates detect or merge.
- **REC-007** Archive/delete policy preserves or cascades references explicitly; restore resolves conflicts.
- **REC-008** Custom fields/types survive edit, copy, import/export, automation, and schema evolution.
- **REC-009** History identifies actor, impersonator/delegator, source, before/after, and bulk/import/automation origin.
- **REC-010** Tenant transfer/merge is prohibited or explicitly migrates every dependent surface.

## Comprehensive per-item coverage

- **REC-011** Create with missing, empty, ordinary, minimum, maximum, malformed, unknown, and deprecated field values; report each invalid field without losing valid work.
- **REC-012** Use names and descriptions containing ASCII emoticons, emoji/ZWJ sequences, kaomoji, accents, mixed scripts, RTL, combining marks, confusables, and boundary lengths.
- **REC-013** Use inert markup, script, SQL, template, command, path, CSV-formula, header, and log canaries; preserve them as data in every rendered and exported context.
- **REC-014** Create through UI, API, import, duplication, automation, mobile, admin, and migration; apply one schema, default, authorization, and uniqueness contract.
- **REC-015** Create exact, case-variant, normalization-equivalent, external-ID, and concurrently submitted duplicates; prevent accidental merge or split identity.
- **REC-016** Edit from two sessions and through a stale form; detect conflicts, preserve versions, and avoid silent last-write loss.
- **REC-017** Change parent, owner, status, tenant, and related records; maintain referential integrity, derived values, permissions, and audit atomically.
- **REC-018** Attempt read and mutation as owner, collaborator, restricted role, removed member, external guest, and another tenant.
- **REC-019** Change permission or ownership between rendering and commit; reauthorize final reads, writes, downloads, and notifications.
- **REC-020** Search, filter, sort, group, count, chart, paginate, mention, and deep-link every lifecycle state without hidden records leaking through counts or timing.
- **REC-021** Retry create/update/delete after timeout and resend the same request; use stable idempotency and return the committed result.
- **REC-022** Force validation, dependency, storage, index, notification, integration, and audit failures; expose partial state and recovery.
- **REC-023** Import and export nulls, long values, Unicode, relationships, attachments, unknown fields, old versions, and line-ending/encoding variants.
- **REC-024** Archive, restore, soft-delete, hard-delete, expire, retain, place on hold, anonymize, and purge according to policy.
- **REC-025** Reuse identifiers, names, URLs, or external keys after deletion only under an explicit anti-impersonation and reference policy.
- **REC-026** Verify keyboard, screen reader, zoom/reflow, high contrast, translated labels, RTL, and mobile behavior across create, view, edit, and errors.
- **REC-027** Measure list, detail, create, update, bulk, search, import, export, and deletion behavior at supported dataset and relationship scale.
- **REC-028** Verify notifications, webhooks, feeds, analytics, and integrations contain the correct actor, record version, tenant, and permitted fields once.
- **REC-029** Record actor, authority, source, old/new values, relation changes, time, correlation ID, retries, and outcome without prohibited data.
- **REC-030** Reconcile record, cache, replica, index, aggregate, attachment, and integration state after delayed or partial processing.

[Back to Records, work management, CRM, and commerce index](../../records-commerce-work.md)
