- Per-channel transforms: aggregate (sum/mean/median/min/max), quantitative
bin, and temporal timeUnit granularity; bin and aggregate are mutually
exclusive. A field-less "Count of records" measure (Voyager's count(*)).
- Chart-level sort (rank a categorical axis by its measure) and stacking
(zero / 100% normalize), each shown only when it applies.
- Field type is a fixed N|O|Q|T segmented control with the column's invalid
types disabled; SegmentedControl gains APG-correct disabled options.
- A crowded-category-axis warning (a raw measure drawing one mark per row over
a large dataset) and a disabled-Create hint (says why it's disabled).
- Drop the Create success toast — the new snippet is immediately visible.
- Docs: spec §06, research-doc §8 backlog (incl. the cardinality/extent
profiling TODO), architecture 01 (stable-selector rule) and 05 (builder-local
preview), and a profiling breadcrumb.
- Prune the data payload and top-level datasets keys in all three ref walks
(extractDatasetRefs, renameDatasetInSpec, resolveDatasetRefs) so a data row
carrying a field named "data" is no longer misread as a library reference,
spuriously rewritten, or made to throw DatasetNotFoundError. Adds tests,
including a guard that lookup-transform refs (from.data) still resolve.
- Wire the deferred success toasts now the Toaster has landed: publish, revert,
extract-to-dataset, and snippet/dataset delete. Copy follows the council
title-vs-message rule (title states the action, message adds the consequence).
- Reconcile the spec's blanket toast mandate to "toast only what the user can't
already see": no toast on visible-result creates (snippet, dataset form);
Copy Reference stays inline and gains an aria-live announcement (new shared
.visually-hidden utility) instead of a toast-per-copy.
- Move the toast region to bottom-right so it stops covering the header action
cluster (Publish/Revert, theme/datasets).
- Update docs/spec 01F/02/05 and docs/architecture/07 + 10 to match.
Defines the visual contract before the design-application work, so M2+ build on settled tokens.
- docs/architecture/09-visual-design.md: principles + deliberate divergences (square chrome, free color/theming), token system (IBM Plex type, 8px spacing, role-based color, motion), component conventions, and a source-repo map for extending the research
- docs/architecture/visual-specimen.html: standalone kitchen-sink specimen with a live theme x accent switcher; doubles as the tokens.css sandbox
- IMPLEMENTATION-PLAN: new M1.5 'Visual design foundation' milestone, plus ground-rule/cross-cutting/reference wiring
- index links: 00-overview, CLAUDE.md, AGENTS.md (architecture playbook now 00-09)
Applying the design to the M1 surfaces is deferred to a separate session.