You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit a7802c7
Browse filesBrowse the repository at this point in the historyBrowse files
docs(fr-044): lock decisions D1-D6 and record the ADR-0023 vocabulary agreement
The maintainer accepted all six recommendations on 2026-10-03 and agreed
the new vocabulary list. The spec now carries a can't-be-computed
justification per new type, subtype and attribute (§3.1). The report's
draft @window attribute is dropped in favour of the existing @filter, and
@Dimensions items use a "name:grain" string form so the attr stays a
string list. MetricFlow export moves to first adopter demand (D5).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M1mRRB1K2WdYy82kntMQdx
@@ -103,6 +103,41 @@ These bind every requirement below. They restate FR-037's shared obligations for
103
103
6.**Versioning.** All additions are additive: `metamodelVersion``1.0` → `1.1`, a MINOR
104
104
release on every registry (a `metamodelVersion` change forces all four).
105
105
106
+
### 3.1 ADR-0023 register (agreed 2026-10-03)
107
+
108
+
The maintainer agreed to this list on 2026-10-03. Each entry carries its can't-be-computed
109
+
justification. Nothing outside this list may be registered under FR-044 without a new
110
+
agreement. `measure.derived` is deliberately absent: it waits for FR-037 R5's arithmetic wave
111
+
and gets its own agreement then.
112
+
113
+
| New name | Kind | Why it cannot be computed from existing metadata |
114
+
|---|---|---|
115
+
|`dimension`| type | Which fields are meaningful to group by is the author's modelling decision; no existing node states it, and the exporters need the named set. |
116
+
|`dimension.attribute`| subtype | Groups by a column value as-is. Separate from `time` because it has no grain and no truncation. |
117
+
|`dimension.time`| subtype | Owns grain truncation and `@grains`, which an attribute dimension does not have. |
118
+
|`measure`| type | What to count or sum is the author's statement; a field declares a value, not an aggregate over rows. |
119
+
|`measure.aggregate`| subtype | One aggregate over the entity's own rows. |
120
+
|`measure.ratio`| subtype | A quotient of two measures; a different lowering (`NULLIF` guard) and different attributes from an aggregate. |
121
+
|`segment`| type | A named `attr.filter` (D1). The name is the new information: reuse across measures and reports, and the exporters' named segments/filters. |
122
+
|`object.report`| subtype | Grain is the dimension tuple and fields are derived (D2); `object.projection` is one row per base row with declared fields. |
123
+
|`@grains`| attr, `string`, `isArray`, on `dimension.time`| The supported grains are a modelling choice (a date column may make no sense per hour). Closed set `hour, day, week, month, quarter, year`. |
124
+
|`@segment`| attr, `string`, on `measure.aggregate` and `object.report`| Names a declared segment; the reference is the author's choice. |
125
+
|`@dimensions`| attr, `string`, `isArray`, on `object.report`| Which dimensions form the grain is the report's definition. An item is a dimension name, or `name:grain` for a time dimension. |
126
+
|`@measures`| attr, `string`, `isArray`, on `object.report`| Which measures the report returns is the report's definition. |
127
+
|`@numerator`, `@denominator`| attrs, `string`, on `measure.ratio`| The two measures the ratio divides; not derivable. |
128
+
129
+
Existing attribute names registered on the new nodes, with the same value grammar as today:
130
+
`@of` (on `dimension.*` as a string; on `measure.aggregate` with `isArray: true`, so a bare
131
+
string coerces to a one-element list and a list is the tuple form), `@via` (dimensions,
132
+
to-one only), `@agg` (`count | sum | avg | min | max` on a measure, a subset of
0 commit comments