cat / 012
clone

a spreadsheet for the terminal: lotus 1-2-3 looks, google sheets keys and formulas, one go binary

Roadmap: Toward 1.0 and Around the grid; Sheets and 1-2-3 as inspiration, not specs

Dami committed 92e5253
commit
92e5253fa14897097fc97c6f1c28f2d8bd5d5af4
parent
5dd6d4c1d92c4f46a6852792283869b745bcade3
author
Dami <dami.etoile@gmail.com>
kind
docs risk score 0.0 of 3, Jev's estimate
3 files changed, +36 -2
MREADME.md1+
MROADMAP.md31++++++++++++++++++++++++++++--
Mdocs/contributing/ux.md6++++++
M README.md +1 -0
M ROADMAP.md +29 -2
@@ -1,7 +1,8 @@
11 # Roadmap22 3-Principles: inside the grid 012 behaves like Google Sheets; 1-2-3 is the4-visual identity around it. The main binary stays pure Go3+Principles: Google Sheets is the seed for behavior inside the grid and4+1-2-3 for the visual identity around it; both are inspiration, not specs5+to match in every detail. The main binary stays pure Go56 (`CGO_ENABLED=0`), and every feature ships with unit tests, a libghostty67 e2e test and reviewed golden screens. Visual and UX quality keep pace78 with features: see [UX and visual bar](docs/contributing/ux.md).
@@ -51,6 +52,32 @@ log macros record. Each step is useful on its own.
5152 | Shared viewing over SSH: several `012 serve` sessions open the same workbook; one edits, the others follow live with their own cursor, scroll and theme; presence shows who is where | Watch-along and review, one writer | M |5253 | Shared editing over SSH: every session edits, the server orders operations (no CRDT needed while one server holds the workbook), per-user undo, presence and edit ownership shown in the grid, saves by the server | Multiplayer 012 over SSH | L |5354 55+### 4. Toward 1.056+57+Solid before shared: what 012 already does keeps working from release to58+release, and shared editing builds on these guarantees. These come before59+shared editing in section 3.60+61+| Item | Result | Size |62+|---|---|---|63+| Files saved by each release kept as fixtures that every later build opens and saves unchanged; the `.012` format written down with a version | Old files keep opening | S |64+| Random sequences of edits, sorts, fills and region runs checked for invariants: undo all restores the start, save and reopen match, a full recalc agrees with the incremental one | Bugs between features found before users hit them | M |65+| A workbook of formulas where 012 matches Sheets on purpose (dates, text, rounding, errors, spills), results checked once in Sheets and asserted after; differences chosen on purpose listed in the docs | Formula results people rely on stay put | S |66+| Frame time and recalculation checked in `make check` against a baseline with a noise margin | Slowdowns fail the check, not a later benchmark | S |67+| A panic in any session saves the workbook for recovery and writes a short report, tested end to end | A crash loses nothing | S |68+| A week of real use by the owner, problems triaged into this page | Rough edges found by use | S |69+70+### 5. Around the grid71+72+| Item | Result | Size |73+|---|---|---|74+| Commands for scripts without the screen: `012 get`, `012 set`, `012 recalc`, `012 export` on a workbook file | 012 in scripts, cron and nushell pipelines | S to M |75+| `012 diff` cell by cell (values, formulas, formats, regions) and a git diff and merge driver for `.012` | Sheets kept in git review like code | M |76+| Formula tracing: precedents and dependents shown in the grid, a formula evaluated step by step | Finding why a number is wrong | M |77+| Named tables with structured references (`Sales[Amount]`); notebook regions are tables | Formulas that read by column name | M |78+| A sheet or chart exported as a static HTML page in 012's look | Sharing a sheet with someone without 012 | S |79+| Release archives and an install script served from the owner's nzip server | Installing without Go | S |80+5481 ## Later: other transports (shelved)5582 5683 Explored, not scheduled: carrying the same shared sessions over iroh
M docs/contributing/ux.md +6 -0