Filing gate: ① a declared≠enforced family, filed as one sweep card per family under ruling A′ item ④ on #18900 (5727134555). This is triage's standing request 5857165909 on the seat post. Family view-duplicates, seat verdict RETIRE.
reach: the declared authoring door. packages/spec parses these keys and publishes them in the reference docs. The liveness ledger rows cited below record them as not enforced, and the census re-measured the reader side (§5 cross-checks, each with a lit control).
- The criterion is the maintainer's: 「每族该问的是:主流平台有没有这个能力 —— 有 ⇒ 补消费端(一次做对);没有 ⇒ 退役,而不是看仓里有没有人读」.
- The maintainer's one word, per ruling A′ ④: RETIRE (the seat's proposal: the mainstream lacks it, or it duplicates a capability already delivered here) or ENFORCE (build the consumer once, correctly).
Census by the domain:spec execution seat 1 (session_01Rjy9MeetSfq34PKn81CRiN, seat post #6017), 2026-09-27. Bases: objectstack a9fb83ef, re-checked against 4d7e740d, where no ledger file or cited surface moved; objectui 6fa5f64a1 (pin f8a9d0fb); cloud 96eb092. Ledger instrument: check-liveness.mts --json, whose byStatus equals the committed state-counts.md row for row. ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim. The ranking is by value, user-visible risk × keys. This family's rank is 12 of 16. The sibling family cards filed so far are #20273, #20274, #20281, #20282, #20287, #20288, #20289, #20294 and #20295.
Capability: Tabs above a list view; a container identity copy
| key |
ledger status |
ledger row |
what the ledger cites |
view.name |
dead (verified 2026-08-10) |
packages/spec/liveness/view.json:5 |
note: Container item identity, declared in #4001 batch 6e and dead as a BODY key — the honest reading of a copy nobody reads. The live one is the sys_metadata row column: the door supplies it (saveMetaItem({type:'view', name})) and readers that resolve a view by … |
view.list.tabs |
dead (verified 2026-09-07) |
packages/spec/liveness/view.json:210 |
note: RE-DERIVED 2026-09-07 (#16362, decision batch #60 option A — the ledger audit that precedes the #16094 authorWarn flip). VERDICT FLIPPED live to dead, and the note this replaces was wrong in BOTH directions at once, which is why the row was worth re-opening… |
Mainstream evidence:
- Named view switching is mainstream (Salesforce list-view picker, Airtable view list, Dataverse view selector) and is ALREADY delivered here: each
listViews entry renders as a tab in ViewTabBar (objectui app-shell ObjectView.tsx:27 imports ViewTabBar).
- The spec already refuses the same idea on the sibling surface: ObjectUserFiltersSchema's guidance says "an object view's tab bar is its saved-view switcher (ViewTabBar) … define each preset as a named entry under the object's
listViews" (packages/spec/src/ui/view.zod.ts:4524).
- Container identity is the sys_metadata row name (the ledger's view.name note). A second body copy has no mainstream counterpart.
Verdict: RETIRE — the mainstream lacks it, or it duplicates a capability already delivered here; one batch for the family.
Reader that must exist / disposition: none; this is a retirement. ⚠️ view.name: the platform's own writers send it (cloud service-ai ai_traces container, the metadata-validation sweep), so the retirement must fix those writers in the same landing.
User-visible risk (2): list.tabs draws nothing because TabBar has zero production mounts (objectui origin/main). hotcrm carries a test asserting it is inert (#16094).
Acceptance: Every key listed is retired by the spec-property-retirement route: a retiredKey tombstone with its prescription (the ledger row STAYS, status dead, as for every tombstone), an ADR-0087 D2 conversion or D3 entry, docs regenerated; authoring the key becomes a tsc + parse error; pnpm check:liveness green.
Lane: domain:spec (objectstack) + cloud writer fix for view.name
File surface: packages/spec/src/ui/view.zod.ts:2773 (ListViewShapeSchema.tabs) and the ViewSchema container name · packages/spec/liveness/view.json · cloud service-ai ai_traces view artifact
Dedupe: list\.tabs \| \bTabBar\b \| view\.name\b.{0,40}(body\|container) → 1 open hit. None carries a key of this family:
四轴:
Filing gate: ① a declared≠enforced family, filed as one sweep card per family under ruling A′ item ④ on #18900 (
5727134555). This is triage's standing request5857165909on the seat post. Familyview-duplicates, seat verdict RETIRE.reach:the declared authoring door.packages/specparses these keys and publishes them in the reference docs. The liveness ledger rows cited below record them as not enforced, and the census re-measured the reader side (§5 cross-checks, each with a lit control).Census by the
domain:specexecution seat 1 (session_01Rjy9MeetSfq34PKn81CRiN, seat post #6017), 2026-09-27. Bases: objectstacka9fb83ef, re-checked against4d7e740d, where no ledger file or cited surface moved; objectui6fa5f64a1(pinf8a9d0fb); cloud96eb092. Ledger instrument:check-liveness.mts --json, whosebyStatusequals the committedstate-counts.mdrow for row. ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim. The ranking is by value, user-visible risk × keys. This family's rank is12of 16. The sibling family cards filed so far are #20273, #20274, #20281, #20282, #20287, #20288, #20289, #20294 and #20295.Capability: Tabs above a list view; a container identity copy
view.namepackages/spec/liveness/view.json:5view.list.tabspackages/spec/liveness/view.json:210Mainstream evidence:
listViewsentry renders as a tab in ViewTabBar (objectui app-shell ObjectView.tsx:27 imports ViewTabBar).listViews" (packages/spec/src/ui/view.zod.ts:4524).Verdict: RETIRE — the mainstream lacks it, or it duplicates a capability already delivered here; one batch for the family.
Reader that must exist / disposition: none; this is a retirement.⚠️ view.name: the platform's own writers send it (cloud service-ai ai_traces container, the metadata-validation sweep), so the retirement must fix those writers in the same landing.
User-visible risk (2):
list.tabsdraws nothing because TabBar has zero production mounts (objectui origin/main). hotcrm carries a test asserting it is inert (#16094).Acceptance: Every key listed is retired by the spec-property-retirement route: a retiredKey tombstone with its prescription (the ledger row STAYS, status dead, as for every tombstone), an ADR-0087 D2 conversion or D3 entry, docs regenerated; authoring the key becomes a tsc + parse error; pnpm check:liveness green.
Lane: domain:spec (objectstack) + cloud writer fix for view.name
File surface: packages/spec/src/ui/view.zod.ts:2773 (ListViewShapeSchema.tabs) and the ViewSchema container
name· packages/spec/liveness/view.json · cloud service-ai ai_traces view artifactDedupe:
list\.tabs \| \bTabBar\b \| view\.name\b.{0,40}(body\|container)→ 1 open hit. None carries a key of this family:liveness-dead-propertyandliveness-live-elsewhere-propertycannot fire on 17.3.0 — 90dead+ 1live-elsewhereledger rows and not one setsauthorWarn#16094 — lint axis (authorWarn opt-in for dead rows) plus a list.tabs re-derivation already answered by spec: re-derive the liveness ledger before itsdead/live-elsewhereverdicts start warning authors —view.jsonlist.tabsre-read plus a sampled audit of the 90deadrows (ledger half of #16094) #16362 (closed); not an enforce-or-remove carrier四轴:
layout: 'inline' | 'grid'onobject-form/FormViewparse green and render asvertical— enforce-or-remove (ADR-0049) #20221 分诊的判法一致(能力已由另一个键提供 ⇒ 退役重复写法)。list.tabs和listViews,前者完全无效。退役后给出处方,指向 listViews。