Files
lanework/DESIGN
rzen 95f00211c1 Resolve the 2026-07-29 design-review findings into the DESIGN docs
Settles the m11-accessibility findings and two undo-doc findings from the
Redesign board (rationale per card in its Resolved lane):

- 13: permanent delete stays non-undoable — the trash-section clause
  contradicting Rules is amended; staleness validation reads disk, not
  the snapshot (blessing the implemented false-skip fix).
- 10: VO-Space toggles on any selectable element; the digest covers the
  trash while shown; a vanished head with surviving co-selection is
  still named (naming and recovery are independent axes); banner-row
  buttons are literal FKA Tab stops; lane-title landmark+heading
  doubling accepted; trash visibility wording pinned; the custom-action
  cut confirmed; banner transitions are origin-independent; the AA
  obligation binds the primary label tier.
- 03: the palette AA claim rewritten to the real mechanism — one
  ink-selection code path for palette names and hex, pinned by
  PaletteContrastTests in both appearances.

Code-conformance residue filed as "Realign code with the 2026-07-29
accessibility rulings" atop the Implementation Backlog.

Claude-Session: https://claude.ai/code/session_01CqjXB7ASoWtbyoGod68k97
2026-07-29 11:10:59 -04:00
..
2026-07-26 14:58:16 -04:00

Lanework — Design Documents

A ground-up rewrite of the Kanban app, to ship as Lanework on the Mac App Store. The old repo (../../Kanban, one level above this repository — not the rewrite's own Kanban/ source folder, which shares the codename) was a pathfinder — it never shipped, but it is the reference implementation and the source of hard-won decisions. This design starts from a clean slate and keeps only what earned its place. The rewrite keeps the internal codename Kanban (bundle id dev.rzen.indie.Kanban).

Each document covers one aspect of the design. Within each:

  • Decisions — settled, either carried over from the old app or newly made.
  • Changes from Kanban — where this rewrite deliberately diverges.
  • Open questions — flagged for iteration; nothing here is implicitly settled.

Index

Doc Aspect
00-vision.md What Lanework is, who it's for, goals and non-goals
01-storage-format.md On-disk contract: folders, frontmatter, ordering, the materialized trash
02-architecture.md App structure: source of truth, stores, watchers, concurrency
03-board-ui.md Board window: layout, lanes, cards, styling, templates
04-interactions.md Selection, drag & drop, keyboard, clipboard, search
05-card-window.md The card window: Markdown preview/edit, attachments
06-history-undo.md Git-backed undo/redo and history — Pro edition
07-sync-collab.md Board modes: local-only, git; iCloud Drive warned against — Pro edition
08-agent-integration.md AI agents as first-class users of the board
09-templates.md Board templates: inventory and definition format
10-accessibility.md VoiceOver, text scaling, visual accommodations
11-command-nexus.md The command Nexus — every command and action: bindings, contexts, customizability
12-editions.md The three editions (Lanework / Pro / Teams): distribution, provider seam, feature matrix
13-native-undo.md macOS-native undo/redo — the base edition's history substrate

Deferred design iterations

The card window (05-card-window.md), toolbar (03-board-ui.md ▸ Toolbar), and styling controls (03-board-ui.md ▸ Styling ▸ Controls) each had their focused pass and are settled. The 2026-07-27 edition split (12-editions.md) added two deferred passes: the attachment-undo staging design and the EchoLedger foreign-undo bridge (both flagged in 13-native-undo.md), plus Teams' tracker integration (no design yet).

Wishlist

Ideas worth keeping but outside the committed design live in ../WISHLIST.md.

Terminology

The rewrite adopts lane as the canonical term for what the old app called a column (it's in the name: Lane-work). "Column" survives only when referring to the old app or to interior card-grid columns inside a wide lane.