82 lines
3.3 KiB
Markdown
82 lines
3.3 KiB
Markdown
# 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 `<ins>`/`<del>` **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.)
|