mirror of
https://github.com/storytold/designcraft.git
synced 2026-10-24 10:16:59 -06:00
Threading: progress docs for threading by hand
The alpha gate's threading row and gap 0 shrink to the Primary Text Frame page fixes (#165). New gaps: autoflow onto the existing following pages, and threading into a grouped frame with the loaded text cursor.
This commit is contained in:
+19
-12
@@ -1,8 +1,8 @@
|
||||
# DesignCraft roadmap
|
||||
|
||||
**Stage: pre-alpha** · next: alpha, ~0% and ~15–25 h away; beta ~28 points and ~420–750 h beyond that (the core-workflow gate, not the percentage: ready for real work is already ~47%)
|
||||
**Stage: pre-alpha** · next: alpha, ~5–7 h away; beta ~28 points and ~420–750 h beyond that (the core-workflow gate, not the percentage: ready for real work is already ~47%)
|
||||
|
||||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-11 · **Change:** minor (shared print spooler; Windows CI passes) · **Target:** Adobe InDesign 2026
|
||||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-12 · **Change:** minor (text threads by hand; the alpha gate waits on Primary Text Frame page fixes) · **Target:** Adobe InDesign 2026
|
||||
|
||||
DesignCraft aims at full Adobe InDesign parity, and to be better: faster, open (documented JSON
|
||||
format + IDML), scriptable by agents (MCP), and available on the web.
|
||||
@@ -25,15 +25,14 @@ format + IDML), scriptable by agents (MCP), and available on the web.
|
||||
| Essentials user | ~54% | 135–250 (~50% parallel) | start-up robustness, context menus and copy/paste, threading, fonts, Windows printing |
|
||||
|
||||
**Why pre-alpha:** it fails one of InDesign's core workflows, the alpha gate in
|
||||
[docs/roadmap.md](docs/roadmap.md#alpha-gate). A user can't thread a story from one frame to
|
||||
another: the in and out ports are drawn, but clicking the out port does nothing and there is no
|
||||
thread or unthread command. Long text flows only through autoflow on Place and Primary Text
|
||||
Frame, which users report adding and keeping pages wrongly (#165, #140, #194, #352). Everything
|
||||
else in the gate works end to end on macOS (document setup, styles, images, object editing, PDF
|
||||
export, save and reopen), and ready for real work (~47%) is above the alpha bar, so manual
|
||||
threading is the whole distance to alpha. Beyond that, beta needs INDD opening, IDML proven on
|
||||
real files, composition compared with InDesign's, and basic editing fixed on Windows and Linux.
|
||||
Details: [docs/target-app-parity.md](docs/target-app-parity.md).
|
||||
[docs/roadmap.md](docs/roadmap.md#alpha-gate). Text threads by hand (click a port, then click or
|
||||
draw a frame; thread and unthread commands), but Primary Text Frame autoflow adds pages users
|
||||
can't delete (#165). Everything else in the gate works end to end on macOS (document setup,
|
||||
styles, images, object editing, PDF export, save and reopen), and ready for real work (~47%) is
|
||||
above the alpha bar, so the Primary Text Frame page fixes are the whole distance to alpha.
|
||||
Beyond that, beta needs INDD opening, IDML proven on real files, composition compared with
|
||||
InDesign's, and basic editing fixed on Windows and Linux. Details:
|
||||
[docs/target-app-parity.md](docs/target-app-parity.md).
|
||||
|
||||
## By dimension
|
||||
|
||||
@@ -106,7 +105,7 @@ Also shipped: Italian (85%), Ukrainian (83%).
|
||||
Ranked; detail and estimates in [docs/roadmap.md](docs/roadmap.md), the full list in
|
||||
[docs/gaps.md](docs/gaps.md).
|
||||
|
||||
1. **Alpha gate:** manual text threading (out-port click, thread/unthread commands) and Primary Text Frame fixes (#165) (15–25 h)
|
||||
1. **Alpha gate:** Primary Text Frame page fixes: autoflow adds pages users can't delete (#165) (5–7 h)
|
||||
2. Basic editing on every platform: copy/paste, context menus, caret formatting (30–50 h)
|
||||
3. CI running `cargo xtask ci` on pull requests (4–8 h)
|
||||
4. Open INDD through a clean-room converter, owner decision on #114 (20–60 h)
|
||||
@@ -129,6 +128,13 @@ list) · [roadmap.md](docs/roadmap.md) (milestones, plan) · [parity-checklist.m
|
||||
|
||||
Newest first.
|
||||
|
||||
- **2026-10-12** · Text threads by hand: click a selected text frame's in or out port to load
|
||||
the text cursor, then click a frame to thread it, click empty space for a column-wide frame or
|
||||
drag one (it snaps like frame drawing); Shift-click autoflows, Alt-click stays loaded on the
|
||||
frame just added; click the linked frame or double-click a port to break the thread.
|
||||
`text.thread`, `text.unthread`, `text.removeFromThread` with undo; locked frames and layers
|
||||
refuse threads. The alpha gate now waits only on the Primary Text Frame page fixes (#165). No
|
||||
readiness percentage change.
|
||||
- **2026-10-12** · Words in capitals hyphenate like capitalized words (FERRUM COM-MODI), as in InDesign; Hyphenate Capitalized Words off keeps them whole. No readiness percentage change.
|
||||
- **2026-10-11 (printing):** `file.printers` and `file.print` use craft-libs/craft-print for CUPS and Windows. DesignCraft retains PDF export, page selection, spreads, marks and bleed; dry runs create no temporary PDF or print job. Windows selects matching or default driver paper and shrinks oversized sheets without enlarging smaller ones; queue duplex defaults are preserved. Headless tests exercise exported bytes, job settings, dry runs and refusals; shared native Windows CI passes, including paused-queue submission and cleanup. PostScript, production print controls and physical output validation remain open. No readiness percentage change.
|
||||
|
||||
@@ -169,6 +175,7 @@ Newest first.
|
||||
|
||||
| Date | Change | Summary |
|
||||
|---|---|---|
|
||||
| 2026-10-12 | minor | Manual text threading landed; alpha distance 15–25 h → 5–7 h (Primary Text Frame page fixes, #165) |
|
||||
| 2026-10-10 | minor | Full number 42% → 47% (method aligned with the standard: plain weighted sum, no new evidence); readiness table with hours per audience |
|
||||
| 2026-10-10 | minor | Headline adds mainstream practitioner (~42%) and essentials user (~54%); method in docs/target-app-parity.md |
|
||||
| 2026-10-10 | minor | Stage alpha → pre-alpha under the new core-workflow gate: manual text threading is missing; alpha gate table added to docs/roadmap.md |
|
||||
|
||||
+24
-16
@@ -1,6 +1,6 @@
|
||||
# Where DesignCraft falls short of InDesign
|
||||
|
||||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-11 · **Change:** minor (shared print spooler; Windows CI passes) · **Target:** Adobe InDesign 2026 (21.6)
|
||||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-12 · **Change:** minor (gap 0 shrunk: text threads by hand; threading gaps added) · **Target:** Adobe InDesign 2026 (21.6)
|
||||
|
||||
Every known shortfall against InDesign 2026, one entry each, ranked by how much it stops an
|
||||
InDesign professional from doing real work. This is the work list: agents pick from the top.
|
||||
@@ -14,20 +14,14 @@ Kind: **F** feature · **U** UI/UX · **T** typography · **FF** file format ·
|
||||
|
||||
## Alpha blocker (the core-workflow gate in [roadmap.md](roadmap.md#alpha-gate))
|
||||
|
||||
### 0. Text can't be threaded by hand (F, U) · **ALPHA BLOCKER**
|
||||
- **Missing:** threading a story from one frame to another. The canvas draws in and out ports
|
||||
(`crates/ui-egui/src/canvas.rs`), but clicking the out port does nothing: no loaded text
|
||||
cursor, no click-a-frame or draw-a-frame to continue the story, no unthread by double-clicking
|
||||
a port, and no `frame.thread` / `frame.unthread` command for the control channel or MCP
|
||||
(`Document::thread` exists in `crates/doc/src/edit.rs` but only autoflow, IDML import and the
|
||||
sample call it). Long text flows only through autoflow on Place and Primary Text Frame, which
|
||||
users report adding pages they can't delete (#165).
|
||||
- **Evidence:** #352, #194, #165, #140 (Windows and unspecified platforms; the code shows it's
|
||||
missing everywhere).
|
||||
- **Impact:** a story can't run from page 2 to page 7, or from one column frame to the next
|
||||
that the designer drew. That is InDesign's core text workflow.
|
||||
- **Estimate:** 15–25 h (commands with undo and tests 4–6, out-port loaded cursor and
|
||||
click/draw/unthread 6–12, Primary Text Frame page add/delete fixes 5–7).
|
||||
### 0. Primary Text Frame autoflow adds pages users can't delete (F) · **ALPHA BLOCKER**
|
||||
- **Missing:** fixes to Smart Text Reflow on the Primary Text Frame, which users report adding
|
||||
pages they can't delete (#165). Threading by hand works (ports, loaded text cursor, `text.thread` / `text.unthread` /
|
||||
`text.removeFromThread`).
|
||||
- **Evidence:** #165.
|
||||
- **Impact:** a long story in a Primary Text Frame document can leave pages the designer can't
|
||||
remove.
|
||||
- **Estimate:** 5–7 h.
|
||||
- **Doc:** [ui-parity.md](ui-parity.md)
|
||||
|
||||
## Blocking (beta can't be declared while these are open)
|
||||
@@ -35,7 +29,7 @@ Kind: **F** feature · **U** UI/UX · **T** typography · **FF** file format ·
|
||||
### 1. Basic editing fails for many users (U, S)
|
||||
- **Missing:** object copy/paste on Windows and Linux (#351, #348, #312, #185, #164, #201, text RTF
|
||||
paste #212); Paste in Place onto the selected page (#348); right-click context menus that don't
|
||||
open (#238, #187, #160, #312); threading (gap 0); double-click word selection in fields
|
||||
open (#238, #187, #160, #312); double-click word selection in fields
|
||||
(#189); character formatting set at a caret is discarded (#289).
|
||||
- **Evidence:** 16 issues from 2026-10-05 to 2026-10-10, mostly against the 0.4/0.5 release builds.
|
||||
- **Impact:** a layout artist can't finish the simplest job. This dominates the
|
||||
@@ -189,6 +183,19 @@ Kind: **F** feature · **U** UI/UX · **T** typography · **FF** file format ·
|
||||
parallel story composition.
|
||||
- **Estimate:** 40–80 h.
|
||||
|
||||
### 26. Autoflow fills the following pages before it adds pages (F)
|
||||
- **Missing:** Shift-click autoflow (and autoflow on Place) always adds new pages after the
|
||||
story's last frame, one margin-sized frame each. InDesign first threads a frame per column on
|
||||
the existing pages that follow, then adds pages at the end of the document.
|
||||
- **Impact:** autoflowing into a document that already has pages inserts new pages in the
|
||||
middle of it instead of using the empty pages.
|
||||
- **Estimate:** 4–8 h.
|
||||
|
||||
### 27. Loaded text cursor can't thread into a frame inside a group (F, U)
|
||||
- **Missing:** a click with the loaded text cursor on a text frame inside a group hits the group,
|
||||
so the cursor shows it can't thread there.
|
||||
- **Estimate:** 2–4 h.
|
||||
|
||||
## Lower
|
||||
|
||||
### 21. Localization breadth (L)
|
||||
@@ -224,5 +231,6 @@ Cue. These are excluded from every percentage.
|
||||
|
||||
| Date | Change | Summary |
|
||||
|---|---|---|
|
||||
| 2026-10-12 | minor | Gap 0 shrunk to the Primary Text Frame page fixes (#165): text threads by hand; gaps added for autoflow onto existing pages and threading into grouped frames |
|
||||
| 2026-10-10 | minor | Gap 0 added and marked alpha blocker: manual text threading is missing (stage re-normalized to pre-alpha) |
|
||||
| 2026-10-10 | major | Created: 25 ranked gaps from the full re-measure against InDesign 2026 21.6 and issues #1–#352 |
|
||||
|
||||
+8
-8
@@ -1,6 +1,6 @@
|
||||
# DesignCraft roadmap (detail)
|
||||
|
||||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-11 · **Change:** minor (stage re-normalized to pre-alpha by the core-workflow gate; earlier today: major, milestones re-assessed; beta plan from the full re-measure) · **Target:** Adobe InDesign 2026 (21.6)
|
||||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-12 · **Change:** minor (text threads by hand; the gate waits on the Primary Text Frame page fixes) · **Target:** Adobe InDesign 2026 (21.6)
|
||||
|
||||
Forward-looking plan. The one-page summary is [ROADMAP.md](../ROADMAP.md); numbers are in
|
||||
[target-app-parity.md](target-app-parity.md); the work list is [gaps.md](gaps.md). Hours are
|
||||
@@ -18,7 +18,7 @@ but are next in line.
|
||||
| Core workflow | Works end to end? | Evidence | Hours to pass |
|
||||
|---|---|---|---|
|
||||
| Set up a document (size, margins, columns, parent pages, page numbers, sections); save and reopen | yes | New Document, Document Setup, parent pages and overrides, Numbering & Section Options; `.designcraft` round-trip tests; recovery | 0 |
|
||||
| Flow a long story across frames and pages: thread, unthread, autoflow | **no** | out/in ports drawn but no out-port click, loaded text cursor or `thread`/`unthread` command; only autoflow on Place and Primary Text Frame, which adds pages users can't delete (#165, #140, #194, #352) | 15–25 |
|
||||
| Flow a long story across frames and pages: thread, unthread, autoflow | **no** | threading by hand works (ports, loaded text cursor, `text.thread`/`text.unthread`/`text.removeFromThread`); Primary Text Frame autoflow adds pages users can't delete (#165) | 5–7 |
|
||||
| Format text with paragraph and character styles | partial (not blocking) | Paragraph/Character Style Options, Quick Apply, based-on, nested/GREP styles work; style edit/delete from the panel reported (#169); formatting set at a caret is discarded (#289) | 6–12 |
|
||||
| Place, crop and fit images; wrap text around them | yes | place gun, frame fitting and Fitting Options, content grabber, text wrap, Links panel | 0 |
|
||||
| Arrange and edit objects: select, move, transform, duplicate, copy/paste, align, layers | partial (not blocking on macOS) | all present and working on macOS; Paste in Place lands on page 1 (#348); right-click menus fail for some macOS users (#160, #238); copy/paste and context menus fail on Windows/Linux (#351, #185, #164) | 10–20 |
|
||||
@@ -27,16 +27,15 @@ but are next in line.
|
||||
Exchanging files with InDesign users (open INDD, round-trip IDML) is a beta requirement, not part
|
||||
of the alpha gate: IDML works both ways today and INDD is gap 2.
|
||||
|
||||
**Distance to alpha:** ~15–25 h (the threading row). Ready for real work (~47%) is already above
|
||||
**Distance to alpha:** ~5–7 h (the threading row: Primary Text Frame page fixes). Ready for real work (~47%) is already above
|
||||
the ~40% alpha bar.
|
||||
|
||||
## Current focus
|
||||
|
||||
In order. Each closes a beta blocker from [gaps.md](gaps.md).
|
||||
|
||||
0. **Alpha gate: manual text threading** (gap 0): `frame.thread` / `frame.unthread` commands,
|
||||
out-port click with a loaded text cursor (click a frame or draw one), unthread by
|
||||
double-clicking a port, Primary Text Frame page fixes (#165). 15–25 h.
|
||||
0. **Alpha gate: Primary Text Frame page fixes** (gap 0): autoflow adds pages users can't
|
||||
delete (#165). 5–7 h.
|
||||
1. **Basic editing works on every platform** (gap 1): object copy/paste, Paste in Place, context menus, caret formatting, reproduced and pinned with control-channel tests on
|
||||
macOS, Windows and Linux. 30–50 h.
|
||||
2. **CI on pull requests** (gap 7): `cargo xtask ci` on every PR, at least macOS and Linux;
|
||||
@@ -58,7 +57,7 @@ set exists; depth gaps are in gaps.md.
|
||||
|---|---|---|
|
||||
| M0 | Skeleton + vertical slice | ✅ |
|
||||
| M1 | Selection, transform, layers, pages, MCP | ✅ core; handle and snapping issues (#186, #188, #337) |
|
||||
| M2 | Type I (Type tool, threading, Character/Paragraph, composer) | partial: Type tool and composer ✅; **manual threading missing** (alpha blocker); caret formatting (#289); no IME (#322) |
|
||||
| M2 | Type I (Type tool, threading, Character/Paragraph, composer) | partial: Type tool, composer and threading ✅; Primary Text Frame pages (#165, alpha blocker); caret formatting (#289); no IME (#322) |
|
||||
| M3 | Styles (nested/GREP, bullets, keeps, span columns) | ✅; style editing reliability (#169) |
|
||||
| M4 | Color & effects | ✅ core; colour management depth |
|
||||
| M5 | Graphics & links | ✅ core; EPS preview only |
|
||||
@@ -71,7 +70,7 @@ set exists; depth gaps are in gaps.md.
|
||||
| M12 | Interactive & digital (EPUB, HTML, interactive PDF) | present; HTML basic (#314), fixed-layout EPUB as images |
|
||||
| M13 | Automation (scripts, batch) | ✅ own command scripts, CLI, MCP; ExtendScript/UXP compatibility ✗ |
|
||||
| M14 | 1.0 polish & packaging | packaging ✅ (macOS, Windows x64/ARM64, Linux deb/AppImage/Flatpak, FreeBSD, web); polish not started |
|
||||
| **A1** | **Alpha** (core-workflow gate) | blocked by manual text threading; see Alpha gate |
|
||||
| **A1** | **Alpha** (core-workflow gate) | blocked by the Primary Text Frame page fixes (#165); see Alpha gate |
|
||||
| **B1** | **Beta** (ready ≥ 75%, INDD/IDML reliable) | not started as a milestone; see below |
|
||||
|
||||
## To beta
|
||||
@@ -110,6 +109,7 @@ output intent · EPS place") is done except Books depth and EPS (preview only).
|
||||
|
||||
| Date | Change | Summary |
|
||||
|---|---|---|
|
||||
| 2026-10-12 | minor | Threading row: threading by hand works; the gate waits on the Primary Text Frame page fixes (#165), 5–7 h |
|
||||
| 2026-10-10 | trivial | Ready figure 42% → 47% (method aligned with the standard); beta distance 28 points |
|
||||
| 2026-10-10 | minor | Alpha gate table added (6 core workflows); gate fails on manual threading, stage pre-alpha; A1 milestone and focus item 0 |
|
||||
| 2026-10-10 | major | Created: milestones moved from ROADMAP.md and re-assessed; Current focus and the beta plan from the full re-measure |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# DesignCraft parity with Adobe InDesign
|
||||
|
||||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-11 · **Change:** minor (shared print spooler; Windows CI passes) · **Target:** Adobe InDesign 2026 (21.6.0.57, macOS)
|
||||
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-12 · **Change:** minor (text threads by hand) · **Target:** Adobe InDesign 2026 (21.6.0.57, macOS)
|
||||
|
||||
The authoritative assessment of how close DesignCraft is to Adobe InDesign. [ROADMAP.md](../ROADMAP.md)
|
||||
summarizes it; [gaps.md](gaps.md) lists every known shortfall one at a time; the feature-by-feature
|
||||
@@ -16,7 +16,7 @@ presence checklist is [parity-checklist.md](parity-checklist.md) (`cargo xtask p
|
||||
| Essentials user (flyers, newsletters: the core only) | **~54%** | 135–250 h to ~95%; estimated, [method below](#essentials-user-54) |
|
||||
| Remaining effort to **beta** (~75% ready, main format reliable; 28 points away) | **420–750 Opus 5.5 agent-hours** | estimated |
|
||||
| Remaining effort to **full parity** | **1,150–1,950 Opus 5.5 agent-hours** | estimated |
|
||||
| Stage | **pre-alpha** (fails the core-workflow gate: no manual text threading); ~15–25 h to alpha | see [roadmap.md](roadmap.md#alpha-gate) |
|
||||
| Stage | **pre-alpha** (fails the core-workflow gate: Primary Text Frame adds pages users can't delete, #165); ~5–7 h to alpha | see [roadmap.md](roadmap.md#alpha-gate) |
|
||||
|
||||
## How breadth was measured
|
||||
|
||||
@@ -77,7 +77,7 @@ standard: 25×55 + 15×45 + 20×40 + 15×45 + 10×45 + 5×65 + 3×45 + 3×55 + 2
|
||||
today applied a further ×0.9 for cross-cutting core-path failures and reported 42%. That
|
||||
multiplicative step was dropped to match the standard (discounts belong only to the mainstream
|
||||
and essentials numbers). Those failures are already in the UI/UX (45%) and Stability (45%) rows,
|
||||
and the missing manual threading is what holds the stage at pre-alpha through the gate.
|
||||
and the Primary Text Frame page fixes (#165) are what hold the stage at pre-alpha through the gate.
|
||||
|
||||
## Mainstream practitioner and essentials user
|
||||
|
||||
@@ -108,7 +108,7 @@ twice.
|
||||
| Area | Weight | Depth | Evidence |
|
||||
|---|---|---|---|
|
||||
| Document setup: pages, margins, columns, parents, sections | 10% | 65% | features area table |
|
||||
| Text frames: type, select, edit, thread, autoflow | 15% | 45% | manual threading missing; autoflow and Primary Text Frame only |
|
||||
| Text frames: type, select, edit, thread, autoflow | 15% | 45% | threading by hand, autoflow; Primary Text Frame adds pages users can't delete (#165) |
|
||||
| Typography: composer, H&J, OpenType, tabs, lists, keeps | 15% | 65% | typography-parity.md: 18 ✓ / 16 ~; Tabs panel missing; InDesign-identical breaks counted under exchange |
|
||||
| Paragraph, character and object styles | 10% | 65% | dialogs, based-on, nested/GREP, Quick Apply |
|
||||
| Frames, shapes, transform, arrange, align | 10% | 70% | full tool set; copy/paste problems counted under interaction |
|
||||
@@ -211,7 +211,7 @@ table is the one summed.
|
||||
| Fill, stroke, colour | 100% | 60% | 20–35 | hex entry (#323); Assign Profiles / Convert to Profile; color-managed proofing depth; Adobe Color Themes OOS |
|
||||
| Effects & transparency | 100% | 50% | 20–30 | effects fidelity vs InDesign unmeasured; Clear Effects / Clear All Transparency; flattener depth |
|
||||
| Placing & links | 93% | 55% | 20–35 | EPS is preview-only (no PostScript interpreter); Edit Original; placed PDF layer visibility; INDD page place |
|
||||
| Type & text frames | 99% | 45% | 40–60 | **no manual threading** (ports drawn, no out-port click, no thread/unthread command: alpha blocker; #352, #194, #165, #140); caret formatting discarded (#289); canvas IME (#322); Notes/Track Changes menus; frame grids |
|
||||
| Type & text frames | 99% | 45% | 40–60 | Primary Text Frame pages users can't delete (alpha blocker, #165); autoflow doesn't fill existing pages; no threading into grouped frames with the loaded cursor; caret formatting discarded (#289); canvas IME (#322); Notes/Track Changes menus; frame grids |
|
||||
| Typography | 100% | 45% | (typography dimension) | see [typography-parity.md](typography-parity.md) |
|
||||
| Styles | 100% | 60% | 15–25 | Paragraph Styles edit/delete reported failing (#169); style options depth |
|
||||
| Tables | 100% | 55% | 25–40 | anchored objects in cells not drawn (#163); Table ▸ Table Options submenus, Diagonal Lines, Convert Rows, Edit Header/Footer |
|
||||
@@ -443,6 +443,7 @@ Task notes that headed ROADMAP.md:
|
||||
|
||||
| Date | Change | Summary |
|
||||
|---|---|---|
|
||||
| 2026-10-12 | minor | Text threads by hand; stage note and distance to alpha follow the gate (5–7 h, #165); percentages unchanged |
|
||||
| 2026-10-10 | minor | Full number 42% → 47%: method aligned with the standard (plain weighted sum, the ×0.9 discount dropped), no new evidence; readiness table with hours for full, mainstream and essentials; beta distance 33 → 28 points |
|
||||
| 2026-10-10 | minor | Added mainstream practitioner (~42%) and essentials user (~54%) numbers with written weights and discounts and a user-evidence count; full number (42%) now written as 47.2% × 0.9, value unchanged |
|
||||
| 2026-10-10 | minor | Stage alpha → pre-alpha under the core-workflow gate (manual threading missing); Type & text frames row updated |
|
||||
|
||||
Reference in New Issue
Block a user