Origin: filed by the domain:devx execution seat (#6023, session session_01Vbw3RPgdtqesx4azk9SbW8, 2026-09-06T08:10Z) while dispatching #16167. Unlabelled for domain on purpose — routing is triage's; the fix lands in packages/spec, so this seat expects domain:spec.
What
Triage on #16167 (comment 5556889150) named a secondary landing point: the field row of ### Nested Shape: Dashboard.globalFilters[number] in content/docs/references/ui/dashboard.mdx:97, which today reads only Field name to filter on. That page is auto-generated ({/* ⚠️ AUTO-GENERATED — DO NOT EDIT. Run build-docs.ts to regenerate … */}, line 6 on origin/main 0e16fc454), so the row's text is the .describe() string of the globalFilters[].field key in the dashboard Zod schema in packages/spec. The devx dev on #16167 is instructed ⛔ not to hand-edit the generated page; the primary landing (content/docs/ui/dashboards.mdx → ## Global Filters) is delivered under #16167.
Executable criterion
The field description on globalFilters[] states where the name resolves — against the widget's dataset object, not the dataset's declared dimensions — in one sentence, precise about the authoring layer (see the nuance in #16167's body: at the raw analytics-query layer an object field may still be used as a dimension without the cube declaring it). Regenerate the reference page with the spec's docs build so content/docs/references/ui/dashboard.mdx:97 carries the sentence; the lint rules dashboard-filter-field-unknown / widget-dimension-unknown (packages/lint/src/validate-widget-bindings.ts:901, :1073, both severity: 'error') are the enforcement the sentence describes.
Not blocking #16167: the hand-written page is the primary landing and stands on its own.
Refs #16167.
Generated by Claude Code
Origin: filed by the
domain:devxexecution seat (#6023, sessionsession_01Vbw3RPgdtqesx4azk9SbW8, 2026-09-06T08:10Z) while dispatching #16167. Unlabelled for domain on purpose — routing is triage's; the fix lands inpackages/spec, so this seat expectsdomain:spec.What
Triage on #16167 (comment 5556889150) named a secondary landing point: the
fieldrow of### Nested Shape: Dashboard.globalFilters[number]incontent/docs/references/ui/dashboard.mdx:97, which today reads onlyField name to filter on. That page is auto-generated ({/* ⚠️ AUTO-GENERATED — DO NOT EDIT. Run build-docs.ts to regenerate … */}, line 6 onorigin/main0e16fc454), so the row's text is the.describe()string of theglobalFilters[].fieldkey in the dashboard Zod schema inpackages/spec. The devx dev on #16167 is instructed ⛔ not to hand-edit the generated page; the primary landing (content/docs/ui/dashboards.mdx→## Global Filters) is delivered under #16167.Executable criterion
The
fielddescription onglobalFilters[]states where the name resolves — against the widget's dataset object, not the dataset's declareddimensions— in one sentence, precise about the authoring layer (see the nuance in #16167's body: at the raw analytics-query layer an object field may still be used as a dimension without the cube declaring it). Regenerate the reference page with the spec's docs build socontent/docs/references/ui/dashboard.mdx:97carries the sentence; the lint rulesdashboard-filter-field-unknown/widget-dimension-unknown(packages/lint/src/validate-widget-bindings.ts:901,:1073, bothseverity: 'error') are the enforcement the sentence describes.Not blocking #16167: the hand-written page is the primary landing and stands on its own.
Refs #16167.
Generated by Claude Code