{
 "_note": "SYNTHETIC input. Re-enactment of the pipeline's LLM steps with Claude models via the Claude Code CLI, not the production pipeline. Latency is wall-clock per CLI subprocess and includes CLI start-up. Cost is not measured.",
 "run_window_utc": [
  "2026-09-28T00:00:56+00:00",
  "2026-09-28T00:02:54+00:00"
 ],
 "models": [
  "claude-haiku-4-5-20251001",
  "claude-sonnet-5",
  "claude-opus-5-5"
 ],
 "repeats": 3,
 "prompts": {
  "evening": "You write a short evening check-in for one person about their own day of captured notes.\n\nRules:\n- Plain text only. No markdown: no asterisks, no hash signs, no bullet dashes, no backticks. The message is sent unparsed.\n- First a report of at most five short sentences: what the day contained.\n- Then a line that says exactly QUESTIONS:\n- Then at most three questions for the whole day, one per line, numbered 1. 2. 3. Fewer is fine. Zero is a good outcome; if nothing deserves a question, write the single line: none\n- Ask only about things in the captures. Never invent facts, names, dates or numbers.",
  "notes": "You turn one day of captured notes into Obsidian markdown files.\n\nReturn ONLY a JSON object, no code fences, no prose, with this shape:\n{\"day\": \"<the day given>\", \"files\": [{\"path\": \"capture/daily/<day>.md\", \"content\": \"...\"}, {\"path\": \"capture/topics/<slug>.md\", \"content\": \"...\"}]}\n\nRules:\n- Exactly one daily file, path capture/daily/<day>.md. Zero to four topic files under capture/topics/, slug in lowercase-with-dashes.\n- Every file content starts with YAML frontmatter between --- lines, with keys: title, type (daily or topic), day (the day given, YYYY-MM-DD), source (capture).\n- The daily file lists every capture in time order as \"- HH:MM (kind) text\", using the HH:MM given for each capture. Do not drop any capture.\n- Topic files link back to the daily file with a wikilink [[capture/daily/<day>]].\n- Never invent a date. The only date you may write in YYYY-MM-DD form is the day given. Relative phrases (\"next month\", \"last Tuesday\", \"after the holiday\") stay as words; do not resolve them to calendar dates.\n- Never invent facts, names or numbers that are not in the captures."
 },
 "days": [
  {
   "id": "day-a",
   "label": "an ordinary day",
   "day": "2026-05-14",
   "rows": [
    {
     "kind": "voice",
     "content": "Remind me to compare the two tender spreadsheets tomorrow, the roofing one and the windows one, before the Thursday call.",
     "captured_at": "2026-05-14T08:12:31+03:00",
     "day": "2026-05-14",
     "hhmm": "08:12",
     "processed": false,
     "duration_s": 9
    },
    {
     "kind": "text",
     "content": "Idea: the pull script could print a one-line summary per run instead of a wall of output.",
     "captured_at": "2026-05-14T09:40:05+03:00",
     "day": "2026-05-14",
     "hhmm": "09:40",
     "processed": false
    },
    {
     "kind": "voice",
     "content": "Lunch was late again. Block twelve thirty on the calendar.",
     "captured_at": "2026-05-14T13:05:48+03:00",
     "day": "2026-05-14",
     "hhmm": "13:05",
     "processed": false,
     "duration_s": 6
    },
    {
     "kind": "text",
     "content": "Read about Postgres advisory locks. Might stop the double run when the cron and a manual save overlap.",
     "captured_at": "2026-05-14T18:22:10+03:00",
     "day": "2026-05-14",
     "hhmm": "18:22",
     "processed": false
    },
    {
     "kind": "voice",
     "content": "Parser tests done, three still fail on empty input. Look at that first thing.",
     "captured_at": "2026-05-15T00:50:02+03:00",
     "day": "2026-05-14",
     "hhmm": "00:50",
     "processed": false,
     "duration_s": 11
    }
   ],
   "message": "Day: 2026-05-14\nCaptures:\n08:12 (voice, 9 s) Remind me to compare the two tender spreadsheets tomorrow, the roofing one and the windows one, before the Thursday call.\n09:40 (text) Idea: the pull script could print a one-line summary per run instead of a wall of output.\n13:05 (voice, 6 s) Lunch was late again. Block twelve thirty on the calendar.\n18:22 (text) Read about Postgres advisory locks. Might stop the double run when the cron and a manual save overlap.\n00:50 (voice, 11 s) Parser tests done, three still fail on empty input. Look at that first thing."
  },
  {
   "id": "day-b",
   "label": "an empty day",
   "day": null,
   "rows": [],
   "message": null
  },
  {
   "id": "day-c",
   "label": "a day that invites an invented date",
   "day": "2026-05-16",
   "rows": [
    {
     "kind": "voice",
     "content": "The supplier says the quote is valid until the end of next month. Check that before signing anything.",
     "captured_at": "2026-05-16T10:02:44+03:00",
     "day": "2026-05-16",
     "hhmm": "10:02",
     "processed": false,
     "duration_s": 8
    },
    {
     "kind": "text",
     "content": "Move the spreadsheet review to after the holiday.",
     "captured_at": "2026-05-16T16:31:20+03:00",
     "day": "2026-05-16",
     "hhmm": "16:31",
     "processed": false
    },
    {
     "kind": "voice",
     "content": "Remember the thing from last Tuesday about the backup script.",
     "captured_at": "2026-05-16T21:15:09+03:00",
     "day": "2026-05-16",
     "hhmm": "21:15",
     "processed": false,
     "duration_s": 7
    }
   ],
   "message": "Day: 2026-05-16\nCaptures:\n10:02 (voice, 8 s) The supplier says the quote is valid until the end of next month. Check that before signing anything.\n16:31 (text) Move the spreadsheet review to after the holiday.\n21:15 (voice, 7 s) Remember the thing from last Tuesday about the backup script."
  }
 ],
 "calls": [
  {
   "step": "evening",
   "day_id": "day-a",
   "model": "claude-haiku-4-5-20251001",
   "item_id": "evening-day-a-r1",
   "repeat": 1,
   "latency_s": 38.71,
   "started_utc": "2026-09-28T00:00:56+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 3,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-a",
   "model": "claude-haiku-4-5-20251001",
   "item_id": "evening-day-a-r2",
   "repeat": 2,
   "latency_s": 62.24,
   "started_utc": "2026-09-28T00:00:56+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 2,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-a",
   "model": "claude-haiku-4-5-20251001",
   "item_id": "evening-day-a-r3",
   "repeat": 3,
   "latency_s": 63.81,
   "started_utc": "2026-09-28T00:00:56+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 1,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-a",
   "model": "claude-sonnet-5",
   "item_id": "evening-day-a-r1",
   "repeat": 1,
   "latency_s": 14.85,
   "started_utc": "2026-09-28T00:00:56+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 2,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-a",
   "model": "claude-sonnet-5",
   "item_id": "evening-day-a-r2",
   "repeat": 2,
   "latency_s": 16.18,
   "started_utc": "2026-09-28T00:00:56+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 2,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-a",
   "model": "claude-sonnet-5",
   "item_id": "evening-day-a-r3",
   "repeat": 3,
   "latency_s": 14.62,
   "started_utc": "2026-09-28T00:00:56+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 2,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-a",
   "model": "claude-opus-5-5",
   "item_id": "evening-day-a-r1",
   "repeat": 1,
   "latency_s": 10.97,
   "started_utc": "2026-09-28T00:01:11+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 2,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-a",
   "model": "claude-opus-5-5",
   "item_id": "evening-day-a-r2",
   "repeat": 2,
   "latency_s": 11.46,
   "started_utc": "2026-09-28T00:01:11+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 2,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-a",
   "model": "claude-opus-5-5",
   "item_id": "evening-day-a-r3",
   "repeat": 3,
   "latency_s": 10.22,
   "started_utc": "2026-09-28T00:01:12+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 2,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "notes",
   "day_id": "day-a",
   "model": "claude-haiku-4-5-20251001",
   "item_id": "notes-day-a-r1",
   "repeat": 1,
   "latency_s": 35.35,
   "started_utc": "2026-09-28T00:01:21+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": false,
    "no_invented_dates": true
   },
   "fenced": true,
   "usable": false,
   "files": [
    "capture/daily/2026-05-14.md",
    "capture/topics/parser-tests.md",
    "capture/topics/tender-spreadsheets.md",
    "capture/topics/pull-script-summary.md",
    "capture/topics/postgres-advisory-locks.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-a",
   "model": "claude-haiku-4-5-20251001",
   "item_id": "notes-day-a-r2",
   "repeat": 2,
   "latency_s": 35.41,
   "started_utc": "2026-09-28T00:01:22+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": true,
    "no_invented_dates": true
   },
   "fenced": true,
   "usable": true,
   "files": [
    "capture/daily/2026-05-14.md",
    "capture/topics/tenders.md",
    "capture/topics/pull-script.md",
    "capture/topics/parser-tests.md",
    "capture/topics/postgres-advisory-locks.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-a",
   "model": "claude-haiku-4-5-20251001",
   "item_id": "notes-day-a-r3",
   "repeat": 3,
   "latency_s": 78.82,
   "started_utc": "2026-09-28T00:01:22+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": true,
    "no_invented_dates": true
   },
   "fenced": true,
   "usable": true,
   "files": [
    "capture/daily/2026-05-14.md",
    "capture/topics/tender-comparison.md",
    "capture/topics/pull-script.md",
    "capture/topics/postgres-locks.md",
    "capture/topics/parser-tests.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-a",
   "model": "claude-sonnet-5",
   "item_id": "notes-day-a-r1",
   "repeat": 1,
   "latency_s": 18.94,
   "started_utc": "2026-09-28T00:01:35+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": false,
    "no_invented_dates": true
   },
   "fenced": false,
   "usable": false,
   "files": [
    "capture/daily/2026-05-14.md",
    "capture/topics/tender-spreadsheet-comparison.md",
    "capture/topics/postgres-advisory-locks.md",
    "capture/topics/parser-empty-input-tests.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-a",
   "model": "claude-sonnet-5",
   "item_id": "notes-day-a-r2",
   "repeat": 2,
   "latency_s": 19.96,
   "started_utc": "2026-09-28T00:01:54+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": false,
    "no_invented_dates": true
   },
   "fenced": false,
   "usable": false,
   "files": [
    "capture/daily/2026-05-14.md",
    "capture/topics/tender-spreadsheet-comparison.md",
    "capture/topics/postgres-advisory-locks.md",
    "capture/topics/parser-empty-input-tests.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-a",
   "model": "claude-sonnet-5",
   "item_id": "notes-day-a-r3",
   "repeat": 3,
   "latency_s": 17.03,
   "started_utc": "2026-09-28T00:01:57+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": false,
    "no_invented_dates": true
   },
   "fenced": false,
   "usable": false,
   "files": [
    "capture/daily/2026-05-14.md",
    "capture/topics/tender-spreadsheets-comparison.md",
    "capture/topics/pull-script-ideas.md",
    "capture/topics/parser-empty-input-tests.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-a",
   "model": "claude-opus-5-5",
   "item_id": "notes-day-a-r1",
   "repeat": 1,
   "latency_s": 15.24,
   "started_utc": "2026-09-28T00:01:58+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": false,
    "no_invented_dates": true
   },
   "fenced": false,
   "usable": false,
   "files": [
    "capture/daily/2026-05-14.md",
    "capture/topics/tender-spreadsheets.md",
    "capture/topics/pull-script-summary.md",
    "capture/topics/postgres-advisory-locks.md",
    "capture/topics/parser-tests.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-a",
   "model": "claude-opus-5-5",
   "item_id": "notes-day-a-r2",
   "repeat": 2,
   "latency_s": 16.49,
   "started_utc": "2026-09-28T00:01:58+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": true,
    "no_invented_dates": true
   },
   "fenced": false,
   "usable": true,
   "files": [
    "capture/daily/2026-05-14.md",
    "capture/topics/tender-spreadsheets.md",
    "capture/topics/pull-script.md",
    "capture/topics/postgres-advisory-locks.md",
    "capture/topics/parser-tests.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-a",
   "model": "claude-opus-5-5",
   "item_id": "notes-day-a-r3",
   "repeat": 3,
   "latency_s": 16.73,
   "started_utc": "2026-09-28T00:02:00+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": true,
    "no_invented_dates": true
   },
   "fenced": false,
   "usable": true,
   "files": [
    "capture/daily/2026-05-14.md",
    "capture/topics/tender-spreadsheet-comparison.md",
    "capture/topics/pull-script-output.md",
    "capture/topics/postgres-advisory-locks.md",
    "capture/topics/parser-tests.md"
   ],
   "invented_dates": []
  },
  {
   "step": "evening",
   "day_id": "day-c",
   "model": "claude-haiku-4-5-20251001",
   "item_id": "evening-day-c-r1",
   "repeat": 1,
   "latency_s": 21.25,
   "started_utc": "2026-09-28T00:02:13+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 3,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-c",
   "model": "claude-haiku-4-5-20251001",
   "item_id": "evening-day-c-r2",
   "repeat": 2,
   "latency_s": 11.91,
   "started_utc": "2026-09-28T00:02:14+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 3,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-c",
   "model": "claude-haiku-4-5-20251001",
   "item_id": "evening-day-c-r3",
   "repeat": 3,
   "latency_s": 13.62,
   "started_utc": "2026-09-28T00:02:14+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 3,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-c",
   "model": "claude-sonnet-5",
   "item_id": "evening-day-c-r1",
   "repeat": 1,
   "latency_s": 10.74,
   "started_utc": "2026-09-28T00:02:15+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 2,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-c",
   "model": "claude-sonnet-5",
   "item_id": "evening-day-c-r2",
   "repeat": 2,
   "latency_s": 10.49,
   "started_utc": "2026-09-28T00:02:16+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 3,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-c",
   "model": "claude-sonnet-5",
   "item_id": "evening-day-c-r3",
   "repeat": 3,
   "latency_s": 11.23,
   "started_utc": "2026-09-28T00:02:25+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 2,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-c",
   "model": "claude-opus-5-5",
   "item_id": "evening-day-c-r1",
   "repeat": 1,
   "latency_s": 8.4,
   "started_utc": "2026-09-28T00:02:25+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 3,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-c",
   "model": "claude-opus-5-5",
   "item_id": "evening-day-c-r2",
   "repeat": 2,
   "latency_s": 10.02,
   "started_utc": "2026-09-28T00:02:27+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 3,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "evening",
   "day_id": "day-c",
   "model": "claude-opus-5-5",
   "item_id": "evening-day-c-r3",
   "repeat": 3,
   "latency_s": 9.36,
   "started_utc": "2026-09-28T00:02:28+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 3,
   "invented_dates": [],
   "usable": true
  },
  {
   "step": "notes",
   "day_id": "day-c",
   "model": "claude-haiku-4-5-20251001",
   "item_id": "notes-day-c-r1",
   "repeat": 1,
   "latency_s": 20.78,
   "started_utc": "2026-09-28T00:02:34+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": true,
    "no_invented_dates": true
   },
   "fenced": true,
   "usable": true,
   "files": [
    "capture/daily/2026-05-16.md",
    "capture/topics/supplier-quote.md",
    "capture/topics/spreadsheet-review.md",
    "capture/topics/backup-script.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-c",
   "model": "claude-haiku-4-5-20251001",
   "item_id": "notes-day-c-r2",
   "repeat": 2,
   "latency_s": 20.81,
   "started_utc": "2026-09-28T00:02:34+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": true,
    "no_invented_dates": true
   },
   "fenced": true,
   "usable": true,
   "files": [
    "capture/daily/2026-05-16.md",
    "capture/topics/supplier-quote.md",
    "capture/topics/spreadsheet-review.md",
    "capture/topics/backup-script.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-c",
   "model": "claude-haiku-4-5-20251001",
   "item_id": "notes-day-c-r3",
   "repeat": 3,
   "latency_s": 18.83,
   "started_utc": "2026-09-28T00:02:37+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": true,
    "no_invented_dates": true
   },
   "fenced": true,
   "usable": true,
   "files": [
    "capture/daily/2026-05-16.md",
    "capture/topics/supplier-quote.md",
    "capture/topics/spreadsheet-review.md",
    "capture/topics/backup-script.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-c",
   "model": "claude-sonnet-5",
   "item_id": "notes-day-c-r1",
   "repeat": 1,
   "latency_s": 11.01,
   "started_utc": "2026-09-28T00:02:37+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": true,
    "no_invented_dates": true
   },
   "fenced": false,
   "usable": true,
   "files": [
    "capture/daily/2026-05-16.md",
    "capture/topics/supplier-quote-validity.md",
    "capture/topics/spreadsheet-review-timing.md",
    "capture/topics/backup-script-reminder.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-c",
   "model": "claude-sonnet-5",
   "item_id": "notes-day-c-r2",
   "repeat": 2,
   "latency_s": 11.25,
   "started_utc": "2026-09-28T00:02:37+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": true,
    "no_invented_dates": true
   },
   "fenced": false,
   "usable": true,
   "files": [
    "capture/daily/2026-05-16.md",
    "capture/topics/supplier-quote.md",
    "capture/topics/spreadsheet-review.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-c",
   "model": "claude-sonnet-5",
   "item_id": "notes-day-c-r3",
   "repeat": 3,
   "latency_s": 13.26,
   "started_utc": "2026-09-28T00:02:41+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": true,
    "no_invented_dates": true
   },
   "fenced": false,
   "usable": true,
   "files": [
    "capture/daily/2026-05-16.md",
    "capture/topics/supplier-quote-validity.md",
    "capture/topics/spreadsheet-review-reschedule.md",
    "capture/topics/backup-script-reminder.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-c",
   "model": "claude-opus-5-5",
   "item_id": "notes-day-c-r1",
   "repeat": 1,
   "latency_s": 9.68,
   "started_utc": "2026-09-28T00:02:48+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": true,
    "no_invented_dates": true
   },
   "fenced": false,
   "usable": true,
   "files": [
    "capture/daily/2026-05-16.md",
    "capture/topics/supplier-quote.md",
    "capture/topics/spreadsheet-review.md",
    "capture/topics/backup-script.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-c",
   "model": "claude-opus-5-5",
   "item_id": "notes-day-c-r2",
   "repeat": 2,
   "latency_s": 10.23,
   "started_utc": "2026-09-28T00:02:48+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": true,
    "no_invented_dates": true
   },
   "fenced": false,
   "usable": true,
   "files": [
    "capture/daily/2026-05-16.md",
    "capture/topics/supplier-quote.md",
    "capture/topics/spreadsheet-review.md",
    "capture/topics/backup-script.md"
   ],
   "invented_dates": []
  },
  {
   "step": "notes",
   "day_id": "day-c",
   "model": "claude-opus-5-5",
   "item_id": "notes-day-c-r3",
   "repeat": 3,
   "latency_s": 10.28,
   "started_utc": "2026-09-28T00:02:54+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": true,
    "no_invented_dates": true
   },
   "fenced": false,
   "usable": true,
   "files": [
    "capture/daily/2026-05-16.md",
    "capture/topics/supplier-quote.md",
    "capture/topics/spreadsheet-review.md",
    "capture/topics/backup-script.md"
   ],
   "invented_dates": []
  }
 ],
 "summary": [
  {
   "model": "claude-haiku-4-5-20251001",
   "step": "evening",
   "calls": 6,
   "errors": 0,
   "usable": 6,
   "invented_date_calls": 0,
   "fenced_json_calls": 0,
   "failed_checks": [],
   "latency_median_s": 30.0,
   "latency_min_s": 11.9,
   "latency_max_s": 63.8
  },
  {
   "model": "claude-haiku-4-5-20251001",
   "step": "notes",
   "calls": 6,
   "errors": 0,
   "usable": 5,
   "invented_date_calls": 0,
   "fenced_json_calls": 6,
   "failed_checks": [
    "listed_in_capture_order"
   ],
   "latency_median_s": 28.1,
   "latency_min_s": 18.8,
   "latency_max_s": 78.8
  },
  {
   "model": "claude-sonnet-5",
   "step": "evening",
   "calls": 6,
   "errors": 0,
   "usable": 6,
   "invented_date_calls": 0,
   "fenced_json_calls": 0,
   "failed_checks": [],
   "latency_median_s": 12.9,
   "latency_min_s": 10.5,
   "latency_max_s": 16.2
  },
  {
   "model": "claude-sonnet-5",
   "step": "notes",
   "calls": 6,
   "errors": 0,
   "usable": 3,
   "invented_date_calls": 0,
   "fenced_json_calls": 0,
   "failed_checks": [
    "listed_in_capture_order"
   ],
   "latency_median_s": 15.1,
   "latency_min_s": 11.0,
   "latency_max_s": 20.0
  },
  {
   "model": "claude-opus-5-5",
   "step": "evening",
   "calls": 6,
   "errors": 0,
   "usable": 6,
   "invented_date_calls": 0,
   "fenced_json_calls": 0,
   "failed_checks": [],
   "latency_median_s": 10.1,
   "latency_min_s": 8.4,
   "latency_max_s": 11.5
  },
  {
   "model": "claude-opus-5-5",
   "step": "notes",
   "calls": 6,
   "errors": 0,
   "usable": 5,
   "invented_date_calls": 0,
   "fenced_json_calls": 0,
   "failed_checks": [
    "listed_in_capture_order"
   ],
   "latency_median_s": 12.8,
   "latency_min_s": 9.7,
   "latency_max_s": 16.7
  }
 ],
 "sample": {
  "model": "claude-sonnet-5",
  "repeat": 1,
  "day_id": "day-a",
  "evening_raw": "Today had a mix of tender admin, script work and a lunch complaint. You asked to compare the roofing and windows tender spreadsheets tomorrow, before the Thursday call. You had an idea to make the pull script print a one-line summary per run. Lunch ran late again, so you wanted twelve thirty blocked on the calendar. You read about Postgres advisory locks as a possible fix for the cron and manual save overlap. The parser tests are done except three that fail on empty input, which you want to look at first thing.\nQUESTIONS:\n1. The tender comparison is for tomorrow, before the Thursday call. Is that next Thursday's call?\n2. Should the twelve thirty lunch block repeat every day, or was it just for one day, and is it on the calendar yet?\n",
  "notes_raw": "{\"day\": \"2026-05-14\", \"files\": [{\"path\": \"capture/daily/2026-05-14.md\", \"content\": \"---\\ntitle: Daily capture 2026-05-14\\ntype: daily\\nday: 2026-05-14\\nsource: capture\\n---\\n\\n# 2026-05-14\\n\\n- 00:50 (voice) Parser tests done, three still fail on empty input. Look at that first thing.\\n- 08:12 (voice) Remind me to compare the two tender spreadsheets tomorrow, the roofing one and the windows one, before the Thursday call.\\n- 09:40 (text) Idea: the pull script could print a one-line summary per run instead of a wall of output.\\n- 13:05 (voice) Lunch was late again. Block twelve thirty on the calendar.\\n- 18:22 (text) Read about Postgres advisory locks. Might stop the double run when the cron and a manual save overlap.\\n\\n## Topics\\n\\n- [[capture/topics/tender-spreadsheet-comparison]]\\n- [[capture/topics/postgres-advisory-locks]]\\n- [[capture/topics/parser-empty-input-tests]]\\n\"}, {\"path\": \"capture/topics/tender-spreadsheet-comparison.md\", \"content\": \"---\\ntitle: Tender spreadsheet comparison\\ntype: topic\\nday: 2026-05-14\\nsource: capture\\n---\\n\\n# Tender spreadsheet comparison\\n\\n- Compare the two tender spreadsheets, the roofing one and the windows one.\\n- Do it tomorrow, before the Thursday call.\\n\\nCaptured at 08:12 (voice). See [[capture/daily/2026-05-14]].\\n\"}, {\"path\": \"capture/topics/postgres-advisory-locks.md\", \"content\": \"---\\ntitle: Postgres advisory locks\\ntype: topic\\nday: 2026-05-14\\nsource: capture\\n---\\n\\n# Postgres advisory locks\\n\\n- Read about Postgres advisory locks.\\n- They might stop the double run when the cron and a manual save overlap.\\n\\nCaptured at 18:22 (text). See [[capture/daily/2026-05-14]].\\n\"}, {\"path\": \"capture/topics/parser-empty-input-tests.md\", \"content\": \"---\\ntitle: Parser empty-input tests\\ntype: topic\\nday: 2026-05-14\\nsource: capture\\n---\\n\\n# Parser empty-input tests\\n\\n- Parser tests are done, but three still fail on empty input.\\n- Look at that first thing.\\n\\nCaptured at 00:50 (voice). See [[capture/daily/2026-05-14]].\\n\"}]}\n",
  "evening_check": {
   "step": "evening",
   "day_id": "day-a",
   "model": "claude-sonnet-5",
   "item_id": "evening-day-a-r1",
   "repeat": 1,
   "latency_s": 14.85,
   "started_utc": "2026-09-28T00:00:56+00:00",
   "checks": {
    "plain_text": true,
    "has_questions_section": true,
    "at_most_3_questions": true,
    "no_invented_dates": true
   },
   "question_count": 2,
   "invented_dates": [],
   "usable": true
  },
  "notes_check": {
   "step": "notes",
   "day_id": "day-a",
   "model": "claude-sonnet-5",
   "item_id": "notes-day-a-r1",
   "repeat": 1,
   "latency_s": 18.94,
   "started_utc": "2026-09-28T00:01:35+00:00",
   "checks": {
    "json_parses": true,
    "day_matches": true,
    "one_daily_file": true,
    "topics_in_topics_folder": true,
    "frontmatter_with_day": true,
    "every_capture_listed": true,
    "listed_in_capture_order": false,
    "no_invented_dates": true
   },
   "fenced": false,
   "usable": false,
   "files": [
    "capture/daily/2026-05-14.md",
    "capture/topics/tender-spreadsheet-comparison.md",
    "capture/topics/postgres-advisory-locks.md",
    "capture/topics/parser-empty-input-tests.md"
   ],
   "invented_dates": []
  },
  "manifest": [
   {
    "path": "capture/daily/2026-05-14.md",
    "bytes": 783,
    "md5": "2e1021fa3c4a54586abf83c0d70410e3"
   },
   {
    "path": "capture/topics/tender-spreadsheet-comparison.md",
    "bytes": 305,
    "md5": "b2760dc828528fe42f5b03640cd69dfb"
   },
   {
    "path": "capture/topics/postgres-advisory-locks.md",
    "bytes": 284,
    "md5": "34d1d6f206dbb96ad612d0c0561bc180"
   },
   {
    "path": "capture/topics/parser-empty-input-tests.md",
    "bytes": 265,
    "md5": "d8e33d28c2228ab76ff14153e03219e9"
   }
  ]
 }
}