46 lines
2.2 KiB
Markdown
46 lines
2.2 KiB
Markdown
# 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.
|