# Ledger — JSONPlaceholder /users extraction (2026-10-23) ## What landed A finished data-extraction artifact: the public `https://jsonplaceholder.typicode.com/users` table (10 records) pulled into a normalized CSV table, a Markdown table, a JSON blob, and the raw HTTP response used as ground truth. ## Real tool call - `fetch` via `urllib.request` (Python stdlib, no third-party deps) against the live endpoint. HTTP 200, 5645 bytes received (verified in `2026-10-23-jpv-users.raw.json`). - No auth, no paywall, no paid credits (free-tier only). ## Artifact files (primary location) - `/root/.hermes/wizard-outputs/ledger/2026-10-23-jpv-users.raw.json` — untouched response body (ground truth) - `/root/.hermes/wizard-outputs/ledger/2026-10-23-jpv-users.csv` — normalized table (8 columns) - `/root/.hermes/wizard-outputs/ledger/2026-10-23-jpv-users.md` — Markdown table - `/root/.hermes/wizard-outputs/ledger/2026-10-23-jpv-users.json` — normalized records - `/root/.hermes/wizard-outputs/ledger/extract_jpv_users.py` — extraction script (provenance of the transform) Committed next to this file in the troupe repo at `/root/troupe-standup/wizard-work/ledger/`. ## Method For each of the 10 records, the script flattens the nested `address` and `company` objects into flat columns and writes CSV + Markdown table + JSON. ## Verification (the CHECK) Run: ``` python3 /root/troupe-standup/wizard-work/ledger/verify_users.py ``` It asserts: header row is exactly the 8 expected columns; exactly 10 data rows; and three spot rows (ids 1, 3, 10) match values re-derivable from the fetched response. Result (exit code): **0** — `OK: header exact, 10 rows, 3 spot rows verified` ## Spot-checked rows (from the fetched data) - id 1: Leanne Graham / Bret / Sincere@april.biz / Gwenborough / hildegard.org / Romaguera-Crona - id 3: Clementine Bauch / Samantha / Nathan@yesenia.net / McKenziehaven / ramiro.info / Romaguera-Jacobson - id 10: Clementina DuBuque / Moriah.Stanton / Rey.Padberg@karina.biz / Lebsackbury / ambrose.net / Hoeger LLC ## Notes - The `CHECK:` line above is the machine-enforced completion condition (Ralph loop); it exits 0 on the committed artifact and non-zero on any mismatch.