Basic editing claims

July 18, 2026 · View on GitHub

Standing status: decisions.md Typing-test strategy is failing. Method: methodology-shortcomings.md. Critical scenarios: scenario-catalog.md.

This is the strategy surface for “basic editing works.” Scenario names are evidence, not the claim. Guarded means we have named a dumb broken behavior and today’s harness would go red for it. Partial means some wrong forms fail but a known user-facing miss can stay green. Unguarded means critical green is possible while the claim fails for a person.

Update this file whenever a human finds a green-suite basic bug, or when a kill-test is added/proven. Same change should touch methodology-shortcomings.md if a new miss pattern appears.

How to raise a row: invent the broken behavior → make a red check (fixture + assert + observation that separates good from bad) → then fix the editor.

Statuses below are honest as of 18 Jul 2026 — not aspirational.


Locate

ClaimKill-test (broken behavior that must go red)Critical evidenceStatus
Caret moves one character left/rightLeft/Right no-ops or jumps by wordgap-plain-left-moves-caret, gap-plain-right-moves-caretGuarded
Up at document start does not escape or wipeUp at offset 0 changes mode, clears text, or moves caretgap-up-at-doc-startGuarded
Down moves one hard-broken lineDown jumps to doc end or stays put on a multi-line blockdown-one-logical-line, cm-line-down-basic, cm-line-down-last-lineGuarded (hard \n only)
Up/Down on soft-wrapped prose move one visual rowUp/Down jump a whole wrap-paragraph, or step by a tall caret rectwrap-down-one-visual-line, wrap-up-from-visual-line-2Guarded for big jumps
Up/Down keep goal column (visual x) across uneven/wrap rowsDown from mid-row snaps to column 0 of the next row; Up does not restore colwrap-down-goal-column, cm-line-down-goal-colGuarded — Down exact cursor + Up round-trip to col 2
Cmd+Left/Right stop at this visual row’s start/end under soft wrapCmd+Right jumps to paragraph end; or lands at the wrap index but caret is drawn on the next rowwrap-ctrl-left, wrap-ctrl-right, wrap-ctrl-right-then-left, wrap-end-then-up, wrap-end-then-down, wrap-home-on-visual-line, wrap-end-on-visual-line (+ assoc / caretY)Guarded — index alone was a false green; round-trip Left/Up/Down + painted caretY catch “next row”
Option+Left/Right move by wordOption+Left acts like plain Left or Cmd+Leftcombo-alt-left, combo-alt-rightGuarded (simple word fixtures)
Option+Up/Down move by paragraph; blank lines are stopsOption+Up skips empty paragraphs to doc start in one presscombo-alt-up, combo-alt-down, combo-alt-up-double-blank, combo-alt-down-double-blank, combo-alt-up-prose-double-blankGuarded
Cmd+Home / Cmd+End go to document start/endCmd+Home only goes to line start; Cmd+End stays mid-doccombo-ctrl-home, combo-ctrl-endGuarded
After open, caret at start, edit mode, prose presentEmpty buffer, wrong mode, or caret at EOFload-cursor-at-startGuarded

Still basic for writers but not critical: short-line combo-ctrl-left/right (visual=logical only).

Select

ClaimKill-testCritical evidenceStatus
Shift+Left/Right grow and shrink selection on a lineShift extends then reverse does not shrink; stale anchor after Homeshift-right-from-home, shift-left-from-end, shift-right-after-home-no-stale-anchor, shift-left-repeat-*Guarded for those patterns
Home clears an active selection to line startHome leaves selection or jumps elsewherehome-clears-selectionGuarded (short horizontal line)
Shift+Home selects to line startSelects whole paragraph or nothingctrl-shift-left-select-linePartial — hard-line Shift+Home; wrap visual-line select is separate
Shift+Cmd+Left/Right select to visual line ends under wrapSelects whole wrap-paragraphwrap-shift-ctrl-left, wrap-shift-ctrl-rightGuarded — SelLen exact to visual row slice
Shift+Up/Down grow/shrink on hard-broken linesShift+Down selects to EOF; reverse does not shrinkshift-down-after-arrow-down, shift-up-after-arrow-downGuarded (hard \n)
Shift+Up/Down on wrapping paragraphs keep a sane selectionSelection jumps to wrong paragraph or collapses oddly mid-wrapgap-shift-down-mid-wrapping-paras, gap-shift-up-mid-wrapping-parasPartial — geometry-sensitive; weak expects possible
Plain Left/Right collapse selection then moveCollapse moves the wrong end or clears textgap-collapse-selection-left, gap-collapse-selection-rightGuarded

Modify

ClaimKill-testCritical evidenceStatus
Backspace deletes one characterNo-op or deletes a wordbs-plainGuarded
Delete forward deletes one characterNo-op or deletes selection wronglygap-delete-forwardGuarded
Backspace/Delete with selection removes the selectionLeaves selection or deletes neighborsgap-delete-with-selectionGuarded
Backspace on empty doc is safeCrash, mode flip, or invents textgap-empty-doc-backspaceGuarded
Option+Backspace deletes previous wordDeletes a character or whole linealt-backspace-deletes-wordGuarded (hard-line seed)
Cmd+Backspace deletes to line startDeletes whole paragraph on wrap; or only one characterctrl-backspace-deletes-line, wrap-combo-ctrl-bs-lineGuarded — hard-line + wrap fixture (delete mid visual row → only those chars; wipe-paragraph fails textLen)
Return inserts a newlineInserts nothing or breaks undogap-enter-new-lineGuarded
Typing replaces an active selectionInserts beside selectiongap-type-replaces-selectionGuarded
Select all / copy / cut / paste round-tripClipboard ops no-op or wipe notegap-select-all, gap-copy-paste, gap-cut-pasteGuarded (phone path)

Verify (undo)

ClaimKill-testCritical evidenceStatus
Undo/redo restore length and basic caretUndo no-op; redo wrong; length driftundo-redo-len, gap-undo-chain, gap-redo-shift-ctrl-zGuarded for length/chain; caret nuance weaker

Summary (why strategy still fails)

  • Several wrap Locate/Modify claims and paragraph Option+Up/Down are now Guarded with discriminating checks. That does not lift the strategy-failing banner — green still is not proof basic editing works, and some Select claims stay Partial.
  • Rows marked Guarded still assume the fixture creates the case; do not weaken fixtures when editing scenarios.

Count of critical scenarios: 57. Do not equate that number with “all writer claims guarded.”

Next raise (priority)

  1. When the next human green-suite miss appears: encode it here first, then kill-test, then fix — do not only promote existing scenarios.
  2. Soft-wrap Shift+Up/Down expects remain Partial (geometry-sensitive).