Tools

Fixing

Plain sentences, one button, and nothing changed until you say so.

In the app

Fix all (⌘.) rewrites only the lines it names and greens them; Undo (⌘Z) restores the exact original bytes. A judgment call — a fix that could say something your document did not — is kept apart from the mechanical ones and applied only when you ask.

Records fix by the group: broken rows are gathered by cause, and one button fixes the group, or all of them.

Broken input explains itself — Dots on the bad lines; ⌘. fixes them, and the dot goes green. · 6 s

Across the two shapes

A verb is implemented once per shape, not once per format. That is why a CSV gets the same tools as a webhook payload: both collapse to one of two shapes before any verb runs.

How the shapes differ for repair: Records groups fixes by cause.

  • document · JSON, YAML, XML
  • records · NDJSON, CSV, TSV, Markdown table, Log

What is fixed, per format

A whole document is fixed as one text — the lines it names, nothing else; a records format fixes rows grouped by cause, and a row that matches no pattern is kept and counted.

  • JSON · the whole document, line by line, with undo
  • YAML · the whole document, line by line, with undo
  • XML · the whole document, line by line, with undo
  • NDJSON · per record, grouped by cause
  • CSV · the whole document, line by line, with undo
  • TSV · the whole document, line by line, with undo
  • Markdown table · per record, grouped by cause
  • Log · per record, grouped by cause

A worked example

Fix all over the webhook sample: 46 fixes in 7 kinds: 31 × quote unquoted key, 7 × remove trailing comma, 3 × single → double quotes, 2 × python false → json false, 1 × insert missing comma after value, 1 × python true → json true, 1 × python none → json null. The first fixes, by line, as Show me lists them:

  • line 2 · Single → double quotes · 'evt_1P8xQm2eZvKYlo2C' → "evt_1P8xQm2eZvKYlo2C"
  • line 6 · Single → double quotes · 'payment_intent.succeeded' → "payment_intent.succeeded"
  • line 13 · Single → double quotes · 'usd' → "usd"
  • line 24 · Insert missing comma after value · " shipping: → ", shipping:
  • line 2 · Quote unquoted key · id: → "id":
  • line 3 · Quote unquoted key · object: → "object":
46 fixes when this page was built, and the result parses.