%% Werkbaum, planned with Werkbaum — what exists today and where it could go. %% Distilled from docs/ROADMAP.md, docs/TASKS.md and docs/DECISIONS.md. [~] Werkbaum (XXL) https://github.com/mhoennig/werkbaum - [^] Notation (L) - [^] Line format (M) - [^] Status box, eight states (S) - [^] T-shirt size and the "decompose from M" rule (S) - [^] People tags, bare URLs, %% comments (XS) - [^] And/or decomposition (S) - [x] Optional nodes — neither required nor an alternative (S) - [-] A separate storage format for the structure (L) %% the text is the format - [ ] Ticket references #123 (S) - [?] Benefit per node, not only cost (M) | [?] Another sigil next to the size (S) | [?] Story points behind the T-shirt sizes (M) - [~] Editor (XL) https://werkbaum.javagil.de - [^] Live diagram from text (M) - [^] Parser (S) - [^] Renderer, three layout modes (M) - [^] Horizontal fan (S) - [^] Vertical, transposed (S) - [^] Compact (S) - [^] Cheapest path (M) - [^] Cost model, missing size counts as M (S) - [^] Metro-map line through the leaves (S) - [^] Export (M) - [^] SVG and PNG download (S) - [^] PNG to the clipboard (S) + [^] Print stylesheet (XS) - [^] Nine interface languages (M) - [^] Translations (S) - [^] Default taken from the browser (XS) - [^] Accessibility: aria labels, focus order (S) - [^] Works on a phone (S) - [^] Several documents in one editor (M) - [^] Switcher in the editor title bar (S) - [^] Load a document from ?sourceUrl= (S) - [^] Jump between diagram and text (S) - [ ] Open and save .werkbaum files (S) + [x] Show what is new since your last visit (S) + [?] A pastel colour per person (S) - [?] Dates and milestones (M) | [?] An attribute in the line (S) | [?] A separate timeline view (L) - [^] Build and delivery (M) - [^] One self-contained file, bundled by Vite (S) - [^] Unit tests (S) - [^] Published on every push (S) - [-] Deploy through a gh-pages branch (S) %% GitHub Actions instead - [-] Fonts from Google (XS) %% self-hosted, no third-party request - [ ] Backend (XL) - [ ] Kotlin and Spring Boot scaffold (M) - [ ] Gradle Kotlin DSL, JDK 21 (S) - [ ] Health endpoint and CI (S) - [ ] Documents on the server (L) - [ ] Text plus metadata, no structure format (M) - [ ] REST endpoints (S) - [ ] Persistence (S) - [ ] Share by link (S) - [?] Accounts and permissions (L) | [?] Single user, one token (S) | [?] Log in with OIDC (L) - [~] Working together on one plan (XL) - [x] Watch a shared Etherpad — it merges, we render (S) - [x] Load the pad's plain-text export (XS) - [x] Reload on demand (XS) %% a timer only trips Etherpad's rate limit - [x] Embed the pad, keep the text mirror beside it (M) - [x] Three views: pad and text, pad only, text only (S) - [x] Splitter between pad and mirror (XS) - [x] A shared pointer: !!! focuses a node for everyone (XS) - [ ] Git as the shared store (L) | [ ] A file in a repository, changed by pull request (S) %% works today, no code | [?] The backend commits every change (L) - [?] History and restore (M) - [?] Diff between two versions (S) - [?] Who changed this line (S) - [?] A branch per scenario (S) - [?] Live editing, several people at once (XL) - [ ] Transport over a websocket (S) %% the easy half - [!] Merging simultaneous edits (L) %% the actual work | [?] Text CRDT — the plan is plain text, so it fits (L) | [?] Operational transformation (XL) - [?] Cursors and who else is here (S) - [-] A merge algorithm of our own (XL) %% solved problem, do not reinvent - [?] Mermaid plugin (XL) - [!] A layout engine of its own (XL) %% measure, place, route — the real work - [ ] Measure node sizes (M) - [ ] Text metrics without a browser (S) - [ ] Badges and tags inside the box (S) - [ ] Place nodes and route connectors (L) - [ ] All-of fan (M) - [ ] Horizontal (S) - [ ] Transposed (S) - [ ] Any-of rail (S) - [?] Registration with Mermaid (M) | [?] External diagram, self-hosted pages only (M) | [?] Pull request into Mermaid itself (L) - [?] Tracker integration (XL) | [?] Taiga (L) https://taiga.io - [ ] Resolve #123 over the REST API (M) - [ ] Read title, link and status (S) - [ ] Map the workflow onto the states (S) - [?] Write the status back (M) - [-] A plugin inside Taiga itself (L) %% legacy frontend, self-hosted only | [?] Tenzu, the successor (XXL) https://tenzu.net | [ ] No tracker, plain text is enough (XS)