Filed by the os-dev implementing objectui#5741 (dispatch of session_01BAZFhALsQsGqxui8sNqM8s), from a re-run of PR #5758's key-agnostic corpus sweep on origin/main 52cac388. Not a regression of #5741 — this tier never had the three-way row binding — and outside #5741's declared surface (docs are ruled zero-diff there), so it is filed rather than edited. No assignee; left for triage.
What the sweep found
Two copies of the same example, both teaching a bare field name as a tab predicate:
content/docs/plugins/plugin-form.mdx:173 — { key: 'billing', label: 'Billing', fields: ['vat_id'], visibleWhen: 'status == "won"' }
packages/plugin-form/README.md:446 — the same line, in the fieldTabs example block.
Why it is a defect, not a style nit
FormFieldTab.visibleWhen carries the FormSection.visibleWhen predicate (packages/plugin-form/src/TabbedForm.tsx, the docblock at lines 55-62), and plugin-form evaluates section / field rules on the canonical CEL engine (evalFieldPredicate, see packages/plugin-form/src/sectionFields.ts). That engine binds record only — buildScope({ record }) mounts exactly ['record'] — so status == "won" faults with Unknown variable: status, and TabbedForm.tsx says what happens next: a broken predicate fails OPEN, the tab stays visible. The example therefore documents a gate that never gates. Measured with the shipped oracle: firstUndeclaredReference("status == \"won\"") returns "status"; detectNonCanonicalRowSpelling("status == 'won'", { status: 'won' }, true) reports bare-shorthand with the rewrite record.status.
This is the same class as the one fix PR #5758 made on this README (requiredWhen: 'status == "scheduled"' to record.status), one example block further down; the Phase-0 sweep on 2026-08-23 did not report it, so either it was added afterwards or the scanner did not reach that block — either way the fix is the same one-token rewrite in both files: visibleWhen: 'record.status == "won"'.
Suggested fix
Rewrite both occurrences to record.status == "won". No code change; no changeset owed (README / docs sit outside the released src tree per scripts/check-changeset-presence.mjs).
Refs: objectui#5738 (Phase 0), PR #5758, objectui#5741 (Phase 2, where the sweep was re-run).
Filed by the os-dev implementing objectui#5741 (dispatch of
session_01BAZFhALsQsGqxui8sNqM8s), from a re-run of PR #5758's key-agnostic corpus sweep onorigin/main52cac388. Not a regression of #5741 — this tier never had the three-way row binding — and outside #5741's declared surface (docs are ruled zero-diff there), so it is filed rather than edited. No assignee; left for triage.What the sweep found
Two copies of the same example, both teaching a bare field name as a tab predicate:
content/docs/plugins/plugin-form.mdx:173—{ key: 'billing', label: 'Billing', fields: ['vat_id'], visibleWhen: 'status == "won"' }packages/plugin-form/README.md:446— the same line, in thefieldTabsexample block.Why it is a defect, not a style nit
FormFieldTab.visibleWhencarries theFormSection.visibleWhenpredicate (packages/plugin-form/src/TabbedForm.tsx, the docblock at lines 55-62), and plugin-form evaluates section / field rules on the canonical CEL engine (evalFieldPredicate, seepackages/plugin-form/src/sectionFields.ts). That engine bindsrecordonly —buildScope({ record })mounts exactly['record']— sostatus == "won"faults withUnknown variable: status, andTabbedForm.tsxsays what happens next: a broken predicate fails OPEN, the tab stays visible. The example therefore documents a gate that never gates. Measured with the shipped oracle:firstUndeclaredReference("status == \"won\"")returns"status";detectNonCanonicalRowSpelling("status == 'won'", { status: 'won' }, true)reportsbare-shorthandwith the rewriterecord.status.This is the same class as the one fix PR #5758 made on this README (
requiredWhen: 'status == "scheduled"'torecord.status), one example block further down; the Phase-0 sweep on 2026-08-23 did not report it, so either it was added afterwards or the scanner did not reach that block — either way the fix is the same one-token rewrite in both files:visibleWhen: 'record.status == "won"'.Suggested fix
Rewrite both occurrences to
record.status == "won". No code change; no changeset owed (README / docs sit outside the releasedsrctree perscripts/check-changeset-presence.mjs).Refs: objectui#5738 (Phase 0), PR #5758, objectui#5741 (Phase 2, where the sweep was re-run).