Tools

Diagnosing

What is wrong, stated before you ask for it to be fixed.

In the app

Dots mark the lines the parser gave up on; Show me lists every problem as a sentence with its line, and the Foot reads “lines 2, 4, 8”.

Fixing a line by hand counts the verdict down as you type — no button needed.

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 lint: rules come from the adapter.

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

Which formats lint beyond parsing

  • JSON · extra diagnostics
  • YAML · extra diagnostics
  • XML · extra diagnostics
  • NDJSON · parse errors only
  • CSV · extra diagnostics
  • TSV · extra diagnostics
  • Markdown table · extra diagnostics
  • Log · parse errors only

A worked example

The webhook sample, before anything is fixed: 58 problems on 17 lines — lines 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …. Each one is a dot in the gutter and a sentence in Show me; the Foot reads “lines 2, 3, 4, …”.

broken-webhook-example.json
{
  id: 'evt_1P8xQm2eZvKYlo2C',
  object: "event",
  api_version: "2026-03-20",
  created: 1745247128,
  type: 'payment_intent.succeeded',
  livemode: False,
  data: {
…