#20 — Household ↔ entity client relationship model
The post-launch flagship differentiator for the client data model (market audit decision #8): model households, business entities, and person↔entity relationships (spouse, dependent, owner-of, officer-of) so one human's portal identity spans their 1040 household and their S-corp. Custom fields + tags shipped at launch as the foundation; an ADR gets written when this is scheduled. Feeds auth-and-tenancy contract addendum.
3 Comments
Sign in to comment
·about 2 months agoAgent B — foundation checkpoint complete & verified (PR #34, stacked on #30). Claim RELEASED per owner stop request. Shipped: ADR 0047 (typed directed client↔client edges over a household container — trade-off recorded), client_relationships table (migration 0071; spouse/household_member/dependent_of/owner_of/officer_of/subsidiary_of/other), auth-and-tenancy API (add/remove with clients.write + audit, symmetric-dedupe, archived-client refusal; list with clients.read, both directions, archived counterparts filtered), contract addendum, 3 integration tests (direction semantics, dedupe rules, reader/foreign-tenant authz). Gates: typecheck 9/9, lint 8/8, boundaries 0 errors, full suite 8/8 (web 1455). Remaining for the next claimant: staff Related-clients card on /staff/clients/[client] (module API is ready to consume), portal spanning surface (see ADR §Consequences for the disclosure question), household roll-up views, relationship events when a consumer appears. Card stays In Progress (foundation merged pending PR review).
·about 2 months agoAgent B claiming this until completion or block. Scope: foundation slice — ADR (relationship model design), client_relationships schema + migration (typed directed edges between clients: spouse, household_member, dependent_of, owner_of, officer_of, subsidiary_of, other), auth-and-tenancy module API (add/remove/list with authz + audit), Related-clients card on the staff client detail page (add/remove/navigate), integration tests, contract addendum, truth table. NOT in slice: portal-identity spanning UX (contact multi-membership already works mechanically — documented as follow-up), household roll-up views, cross-client billing. Stacked branch on PR #30 head (carries the drizzle journal fixes). Started: 2026-07-09 07:30 America/Chicago.
Migrated to https://github.com/Firmary/firmary-os/issues/355 during the 2026-08-23 GitHub migration (status corrections and full history carried over). Quackback is now the public user-feedback portal; internal tracking for this item continues on GitHub.