mirror of
https://github.com/olehomelchenko/astrolabe.git
synced 2026-08-08 02:02:33 +00:00
Add Chart Builder: no-JSON Vega-Lite composer from a dataset (M4)
This commit is contained in:
@@ -43,6 +43,7 @@ four; that wastes tokens and dilutes the answer. Map the decision to its seat(s)
|
||||
| **Forms / validation / destructive-action** flow | **GOV.UK** → Carbon |
|
||||
| General **usability** gut-check on a flow | **NN/g** 10 heuristics |
|
||||
| **Visual** styling (type, spacing, colour, component look) | **Carbon** + our `docs/architecture/09` |
|
||||
| **Which chart** for the data/intent (chart-type choice) | **FT Visual Vocabulary** + **Datawrapper** |
|
||||
|
||||
Then: read the cited file(s), extract the **specific** principle, and report it back with
|
||||
a **citation (member + file path)** and a one-line "how it lands in Astrolabe." Don't
|
||||
@@ -53,12 +54,14 @@ paraphrase the whole source — quote the rule that decides the question.
|
||||
All paths are under `/Users/oleh/code/reference/`. Treat clones as **inspiration, not
|
||||
law** — they drift; the published guidance is the truth, the clone is the fast index.
|
||||
|
||||
| Member | Path | Authoritative for | How to query |
|
||||
| ------------------------------ | ---------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **IBM Carbon** | `carbon-website/src/pages/` | Notification taxonomy, status levels, empty/loading states, content basics, data-viz styling | grep `.mdx` under `components/notification`, `patterns/{empty-states,loading,status-indicator}-pattern`, `guidelines/content` |
|
||||
| **GOV.UK Design System** | `govuk-design-system/src/` | Error & validation messages, failure pages, forms, plain-language content, accessibility | `index.md` under `components/{error-message,error-summary,notification-banner}`, `patterns/{problem-with-the-service-pages,service-unavailable-pages,check-answers}`, `accessibility/` |
|
||||
| **WAI-ARIA APG** | `aria-practices/content/patterns/` | Keyboard interaction, focus management, ARIA roles/states for widgets | `<pattern>/<pattern>-pattern.html` — e.g. `dialog-modal`, `alertdialog`, `alert`, `listbox`, `menu-button`, `disclosure`, `switch`, `tabs`, `tooltip`, `windowsplitter` |
|
||||
| **Nielsen Norman (distilled)** | `principles/nielsen-norman.md` | 10 usability heuristics; response-time / feedback budgets (0.1s / 1s / 10s) | read directly — it is short and curated |
|
||||
| Member | Path | Authoritative for | How to query |
|
||||
| ------------------------------ | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **IBM Carbon** | `carbon-website/src/pages/` | Notification taxonomy, status levels, empty/loading states, content basics, data-viz styling | grep `.mdx` under `components/notification`, `patterns/{empty-states,loading,status-indicator}-pattern`, `guidelines/content` |
|
||||
| **GOV.UK Design System** | `govuk-design-system/src/` | Error & validation messages, failure pages, forms, plain-language content, accessibility | `index.md` under `components/{error-message,error-summary,notification-banner}`, `patterns/{problem-with-the-service-pages,service-unavailable-pages,check-answers}`, `accessibility/` |
|
||||
| **WAI-ARIA APG** | `aria-practices/content/patterns/` | Keyboard interaction, focus management, ARIA roles/states for widgets | `<pattern>/<pattern>-pattern.html` — e.g. `dialog-modal`, `alertdialog`, `alert`, `listbox`, `menu-button`, `disclosure`, `switch`, `tabs`, `tooltip`, `windowsplitter` |
|
||||
| **Nielsen Norman (distilled)** | `principles/nielsen-norman.md` | 10 usability heuristics; response-time / feedback budgets (0.1s / 1s / 10s) | read directly — it is short and curated |
|
||||
| **FT Visual Vocabulary** | `chart-doctor/visual-vocabulary/` | Chart choice: data-relationship taxonomy (Magnitude, Correlation, Change-over-Time, Ranking, Distribution, Deviation, Part-to-whole, Spatial, Flow) → chart type | read `README.md` — the taxonomy is prose; each category gives a "use when…" definition + recommended chart types |
|
||||
| **Datawrapper (distilled)** | `principles/datawrapper.md` | Chart choice in plain language; practical rules of thumb (bar-is-safe-default, line-vs-column, circles hard to compare, size = quantity) | read directly — short and curated; pairs with the FT clone |
|
||||
|
||||
## Close the loop
|
||||
|
||||
@@ -82,6 +85,10 @@ contract, not the external source.
|
||||
have never been applied before. This is the one event that reopens the one-off sweep
|
||||
(see _Scope_); after it, pointwise maintains the new seat like the rest.
|
||||
|
||||
Candidate future seats (not yet seated): **FT Visual Vocabulary / Datawrapper** (chart
|
||||
choice — our domain), **Shopify Polaris** (UX-writing depth), **web.dev** (perceived
|
||||
performance / PWA / offline UX).
|
||||
Candidate future seats (not yet seated): **Shopify Polaris** (UX-writing depth),
|
||||
**web.dev** (perceived performance / PWA / offline UX — seat at M6 per the plan).
|
||||
|
||||
Seated at M4 (chart choice — our domain): **FT Visual Vocabulary** (clone) +
|
||||
**Datawrapper** (distilled). Backfill is scoped to the Chart Builder itself (new
|
||||
surface — no pre-existing chart-choice code to reconcile), so the seating debt is
|
||||
discharged by building the builder against this canon rather than a separate sweep.
|
||||
|
||||
Reference in New Issue
Block a user