Skip to content

The inherited ADR-0057 D10 citation has spread to 9 live source sites — the framework anchor it names does not decide that rule #5202

Description

@os-steve

Cross-repo finding, filed from framework issue objectstack#9255 (the framework-side traceability fix). Unassigned, observational — no user path is affected and the cited rule is true; what does not hold is the anchor.

The framework-side finding, in one line

server enforces, client is courtesy is cited repo-wide as framework ADR-0057 D10. Measured against the whole framework ADR corpus (127 records, searched by content rather than by number): no ADR decides that rule. Framework ADR-0057 D10 decides "Setup-nav surfacing follows the capability (ADR-0029 K2); the object stays open"; its PS-2 implementation note (2026-06-22) is the closest ancestor and is scoped to nav / app-metadata visibility, not to field locks, FLS maps or route authority. The other framework ADR-0057 (system data lifecycle) has no D<n> decisions at all. Full evidence: objectstack#9628.

Why this repo gets a card

objectstack#9255 recorded two objectui inheritances. Measured today at origin/main, it is 20 files, of which 9 are live source/test sites that assert the anchor:

FileForm
packages/app-shell/src/views/RecordDetailView.tsx:1047assertive — "authority per ADR-0057 D10"
packages/app-shell/src/views/studio-design/PackageOwdOverviewPanel.tsx:88assertive — "Courtesy gate ... (ADR-0057 D10)"
packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx:389assertive
packages/data-objectstack/src/appAccessProbe.test.ts:25assertive — though this one is genuinely about the nav/app capability gate, i.e. the one family D10 really does decide
packages/plugin-detail/src/useRecordEditable.ts:16assertive
packages/plugin-detail/src/useRecordEditable.test.tsx:19assertive
packages/plugin-grid/src/hooks/useRecordCrudVerdicts.ts:44assertive
packages/react/src/hooks/useCapabilityGate.ts:27assertive
packages/core/src/evaluator/fieldRules.ts:38already attributive — "the framework's ADR-0057 D10" (objectui#3828 / PR objectui#3887)

Plus docs/adr/0036-field-conditional-rules.md:91, which is also already attributive (objectui#3888: "that is the framework's ADR numbering"), and 10 CHANGELOG entries that are historical record and should decay untouched.

So the two sites the framework card knew about are precisely the two that were written carefully; the other 9 are the plain inheritance, and they are the ones that read as an assertion that the anchor resolves.

Suggested disposition (not self-selected — for triage)

  1. Wait for objectstack#9628. If the maintainer records the decision, every site here becomes a mechanical retarget to a resolvable anchor and this card is a one-sweep rename.
  2. Or land the attributive form now, matching what fieldRules.ts and ADR-0036 already do in this repo, so the citation stops asserting a framework anchor that does not resolve. This is what the framework side shipped for its own live sites.

Option 2 is safe under either outcome and is the same edit objectui#3888 already made once. No behaviour changes either way — this is traceability only.

⚠️ One nuance worth keeping when editing: appAccessProbe.test.ts cites D10 for the capability/nav gate, which is exactly what D10 does decide. That one is a correct citation and should be left alone rather than swept with the rest.

Refs: objectstack#9255, objectstack#9628, objectstack#5992 (the framework's duplicate ADR-0057 number), objectui#3828, objectui#3888.


Generated by Claude Code

Metadata

Metadata

Assignees

Labels

domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:dispatched

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions