# Session 0040.0 — Transcript > App: vscode-cowriting-plugin > Start: 2026-06-12T17-03 (PST) > End: 2026-06-12T17-21 (PST) > Type: capture (tracked-lite) > Posture: careful (capture default) > Status: **FINALIZED** ## Launch prompt `/wgl-capture When Claude suggests changes, a single change should be for a paragraph (or header, or bulletpoint), not individual words. It's too much to review` ## Pre-state Third session of the run (after 0038 ship + 0039 capture). `main` clean + pushed. Backlog: #42 (Edit Document), #46 (accept-all, filed 0039). ## What was captured **One ask → one issue filed.** **#47** — `type/feature`, `priority/P1` — "Block-granularity proposals: one change per paragraph/header/bullet, not per word." https://git.benstull.org/benstull/vscode-cowriting-plugin/issues/47 Confirmed from code: F11 **Ask Claude to Edit Document** mints proposals at **word granularity** — `diffToHunks` (src/trackChangesModel.ts) uses `diffWordsWithSpace` and flushes a hunk on every unchanged token, so each changed word is its own ✓/✗ proposal (INV-37 "per-hunk"). A light copy-edit pass explodes into dozens of tiny proposals → "too much to review." ## Decisions (capture forks) - **Scope = document edits only** (operator choice) — the `diffToHunks` fan-out. Selection edits are already a single proposal, so untouched. - **Type = `type/feature`** (operator choice). Supersedes F11 **INV-37 per-hunk → per-block**. Real forks recorded for the design step: block taxonomy (list items vs whole lists, tables, blockquotes, nesting); anchoring inserted blocks (a block-level analogue of today's word-oriented `anchorInsertion`); and the **attribution tradeoff** — accepting a block attributes the *whole* block to Claude, including unchanged words. - Reuse the existing block splitter (`diffBlocks`; code/mermaid fences atomic, INV-23). Intra-block ``/`` **rendering is unchanged** — only the decision *unit* becomes the block. `priority/P1` (directly removes the stated pain). ## Session arc 1. Claimed tracked-lite session 0040 (`--type capture`); fast-forwarded `main`. 2. Inspected `diffToHunks` → confirmed word-level granularity is the cause. 3. Reflected the ask; asked scope + sizing → document-edits + feature. 4. Drafted `issues/block-granularity-proposals.md` (full §5 feature template). 5. Operator approved → filed **#47** (labels already ensured this run). 6. Finalized: memory updated, transcript published. Draft left uncommitted in the content-repo working tree (INV-8). ## Deferred decisions _None._ ## Backlog observation #42 (Ask Claude to Edit Document), #46 (accept-all), and #47 (block granularity) form one **edit-flow cluster** around the Ask-Claude / document-edit loop. They interact (block granularity changes how many proposals exist; accept-all changes how they're taken; #42 is the entry point that produces them) and are best **brainstormed / sequenced together** rather than designed in isolation. ## Next-session prompt The standing coding goal is unchanged; consider folding the cluster in: ``` /goal brainstorm the Ask-Claude document-edit cluster (#42 Edit Document, #47 block-granularity proposals, #46 accept-all) and sequence/design it, starting with #42 ``` (Or keep the narrower `/goal brainstorm #42 … then plan-and-execute #42` and take #47/#46 after.)