OnethingNeededShop (50156638). Supersedes the 2026-06-20 plan, which was written before the July delivery audits.
Rebuilt 2026-08-14 from 17 Etsy chat sessions + the live worklist render. Plan only, no live Etsy writes have been made.
Seventeen sessions where Brandon actually asked an Etsy question, oldest at the bottom. Sessions that only mention Etsy through the loaded memory file are excluded, which is most of them.
| Date | Session | What it was for |
|---|---|---|
| 2026-07-25 | 174ee271 | Cassie's three readings, card-pull instructions, confirm the Etsy API, and the complaint that Mother's Day images were still live |
| 2026-07-25 | 9b9686e3 | Fork of the same prompt |
| 2026-07-22 | 56c10bb4 | "finish etsy chats here" |
| 2026-07-20 | b1bbcfa9 | Per-lane open chat applied to the audio pipeline reading map |
| 2026-07-20 | 569eac43 | SESSION_HANDOFF_etsy-readings-audio_2026-07-20 |
| 2026-07-20 | 7ae4b467 | Add a listing thumbnail and a wait time to each worklist row |
| 2026-07-20 | 79e378c5 | Check the shop for what can be updated, do the covers |
| 2026-07-20 | b6cfc02c | Order the owed list by who was promised a reading, subsort by cost |
| 2026-07-19 | 2ae0f691 | ChatGPT image descriptions to add more listing photos |
| 2026-07-19 | c3479a1f | Seven-recent-sessions efficiency audit |
| 2026-07-18 | c3169d5f | Verify the 31-day-waiting buyers against the API |
| 2026-07-18 | ed2c6a7c | Worklist rebuild from FINISH_THESE.pdf, where name search in Etsy messages proved worthless |
| 2026-07-17 | 8952bade | Update the worklist site, not the chats |
| 2026-07-17 | 41be6bbc | CEO evaluation v4 |
| 2026-07-17 | 8988a871 | The arithmetic critique that broke the worklist's investigation |
| 2026-07-16 | 60f2dbf6 | Worklist rebuilt to 13 named rows with order, cost and correspondence |
| 2026-07-16 | 9f843b44 | etsy_restructure.py as the source breadcrumb |
All four are already encoded in ~/.claude/skills/etsy-delivery-audit/, so this plan does not restate them as work.
com.drwu.etsy-delivery-audit fired every day and ran build_worklist.py, which only re-renders reconcile_full.json, last written Jul 18 14:11. Twenty-seven days of identical output read as a working audit. The job now runs a pull stage first and refuses to render a stale source. See Track B.
/shops/{id}, /listings and /users/me all answer "Shared secret is required in x-api-key header" with either stored key. Until that is fixed, no listing-side claim in this plan can be re-verified live.
| Ordered | Buyer | Units | Paid | Verdict | Confidence |
|---|---|---|---|---|---|
| Jun 29 | Cassie Saldana | 3 | $3.00 | OWED 3 | high |
| Jul 02 | JoAnne Nikitas | 1 | $10.00 | NO THREAD | certain |
| Jul 06 | Linda Holmes | 1 | $1.20 | OWED 1 | certain |
| Jul 10 | melanie lopez | 1 | $1.08 | NO THREAD | certain |
| Jul 12 | georges finoulst | 1 | $1.21 | NO THREAD | certain |
| Jul 12 | Ellen Hughes | 1 | $2.14 | OWED 1 | high |
| Jul 12 | melanie lopez | 1 | $1.08 | NO THREAD | certain |
| Jul 15 | Maryanne Gewargis | 1 | $1.10 | OWED 1 | provisional |
| Jul 15 | Heather Phillips | 2 | $3.00 | OWED 2 | high |
| Jul 15 | Sheryl Koehler | 1 | $1.00 | NO THREAD | certain |
| Jul 15 | Fatima Ait-Ouafa | 1 | $0.91 | OWED 1 | provisional |
| Jul 25 | Lisa Wilson | 1 | $13.00 | OWED 1 | certain |
| Jul 31 | Jessica | 1 | $13.78 | OWED 1 | certain |
| Aug 12 | Regina E | 1 | $16.00 | OWED 1 | certain |
| Aug 14 | Erin Hennessy | 1 | $13.00 | OWED 1 | certain |
Read that buyer's full thread before any message. No template across several buyers, and no timeline Brandon has not given. All five new receipts were rechecked on 2026-08-14 with recheck.py, which returned zero UNVERIFIED rows.
~/.claude/skills/etsy-delivery-audit/:
refresh_receipts.py, the missing pull. It tries the Etsy v3 API first and falls back to a signed-in browser handoff, and it exits non-zero when neither route yields fresh data rather than letting the render proceed.build_worklist.py gained a hard staleness gate. Past two days it writes no dated work list at all and exits 3. The old soft banner printed a warning and still produced a normal-looking page, which is how 27 green mornings hid five orders.daily_audit.py, the wrapper that runs pull then render. com.drwu.etsy-delivery-audit now points here instead of straight at the renderer.python3 ~/.claude/skills/etsy-delivery-audit/daily_audit.pyVerified by running it exactly as launchd does. The stale source was refused with exit 3, the full job then exited 0, and the pull added five receipts.
live_receipts.json. A loud failure is the intended behaviour, since the alternative is the silent staleness this replaced.
/users/me call as the gate before trusting any listing claim.
recheck.py on the five unverified rows.