Files
astrolabe/docs/spec
oleh efb5a9bbe0 Data inspector: input/resolved rows below the chart, with a resizable divider
A collapsible Data panel under the Live Preview and Chart Builder charts shows the rows the chart actually uses, switching between Input (parsed source) and Resolved (post-transform) views read from the live Vega view. Collapsed by default; the open-state and a draggable height divider persist.

Rows come through a new RenderHandle.inspectData() accessor, so no component touches the view: core/result-data picks the most-upstream source and most-downstream result from the compiled dataflow, read lazily. The divider reuses the window-splitter pattern (horizontal variant).

Consolidations: a shared DataTable primitive replaces the inspector's and the builder's duplicate read-only tables; useResizeDrag merges the col/row drag-gesture twins.

Docs: spec 04/06 and arch 05/10 updated; the now-shipped exploration memo removed.
2026-06-18 02:22:03 +03:00
..

Astrolabe — Product Specification

A UX/behavioral specification of Astrolabe, a browser-based snippet manager for Vega-Lite visualizations. It describes what the app does from the user's perspective so it can be recreated on any web/HTML/TS stack.

How to read this spec

  • Start with 00 · Product Overview for orientation and the glossary.
  • Each subsequent file is one feature area and can be read on its own; they cross-reference each other by title.
  • Every section describes intended behavior plus testable acceptance points ("The user can…", "When X, the system…").
  • Section numbers and lettered headings (e.g. §03G, §09B) are stable anchors — code comments reference them. Extend by appending the next letter/number; never renumber existing ones.

What this spec deliberately omits

  • Implementation. No frameworks, libraries, languages, storage technologies, or code architecture are prescribed. Storage is described behaviorally (e.g. "persists locally across sessions", capacity tiers), not by naming a technology.
  • Visual design. Structural layout (panes, regions, modal vs inline, where controls live) is specified; concrete styling, colors, and the app's visual aesthetic are left to the implementer.
  • Domain exception. Vega-Lite and its vocabulary (specs, marks, encoding channels, field types) and data-format names (JSON, CSV, TSV, TopoJSON) are named — they are the product domain, not implementation choices.

Contents

# Section
00 Product Overview
01 Application Shell & Navigation
02 Snippet Library
03 Spec Editor & Draft/Published Workflow
04 Live Preview
05 Datasets
06 Chart Builder
07 Settings
08 Import & Export
09 Data Model & Persistence
10 Non-Functional Requirements