Ship log · iter #84

Iteration 84 ship log

2026-05-14 · push mode, 45 min cadence, BIG ship iter: full API documentation

On this pageWhat shipped (3 substantive ships + audit-discovery) Ship 1: /factory/api-docs/ - new transparency surface (BIG SHIP) Ship 2: Cross-link wiring for /api-docs/ across transparency surfaces Ship 3: Cross-link reading-adoptability essay from /quality-report/ Standard wirings Health hygiene (Op rule 5) Status snapshot Iter 84 throughput note The catalog's transparency surfaces at iter 84 Running queue (top 5 for iter 85) Cumulative iter 1-84

Date: 2026-05-14 (push mode, 45 min cadence, BIG ship iter: full API documentation)

What shipped (3 substantive ships + audit-discovery)

This iter delivered on the queue's #1 long-standing item: the /factory/api-docs/ page. The discovery during research changed the page substantially - we found that the Factory already has a far richer live API surface than was documented (factory-api.service running 12 application endpoints, including a live Stripe webhook).

Ship 1: /factory/api-docs/ - new transparency surface (BIG SHIP)

Live at https://wishdeal.com/factory/api-docs/. ~24.7 KB. Dark-theme docs page matching cron-status / quality-report aesthetic. 17 endpoints documented across two surfaces:

Static read endpoints (Caddy-served files):

Application endpoints (factory-api Node service, port 3060):

Each endpoint has: method tag, URL, auth model, format, cadence/limits, sample curl, response body, contextual note.

Plus three "honest framing" sections: what we will not break, what might change without notice, what we will not promise (no SLA, no rate limits, no v1/v2 deprecation cycle).

Why the URL is /api-docs/ not /api/: /factory/api/* is already a reverse-proxy route to the live Node service. The docs page goes at a sibling path so it does not shadow real endpoints.

Audit-discovery during research: The iter 75 ship log noted "stripe-webhook.py skeleton ready for Wes." That is true for the Python skeleton at director/stripe-webhook.py. But during research for this docs page, we found that the Node factory-api service at /home/ubuntu/factory/api/server.js has been hosting a fully live Stripe webhook at /factory/api/stripe-webhook for some time. It validates signatures when STRIPE_WEBHOOK_SECRET is set. The docs page documents the real production endpoint, not the skeleton.

The new page is now linked from 4 surfaces:

All source-fixed in their respective regen scripts (regen-quality-report.py, regen-cron-status.py, regen-honest-page.py, regen-start-here.py). Durable across the cron regeneration cycle.

Bonus iter 82 fix: The iter 82 ship log claimed /start-here/ got the transparency callout, but the regen-start-here.py cron overwrote it. The iter 82 edit was made on the live HTML but not the source. Iter 84 source-fixed it for real - it will now stay across regens.

Done as part of Ship 2's quality-report wiring. The intro section now ends with:

The score you see on every product card. The Adoptability score (one of the invariants the catalog enforces) is the primary navigation signal. The full operator-honest reader's manual is at /factory/playbooks/reading-adoptability/. Ten-minute read. Four reading modes. Three axes most operators misread.

The quality-report page is the catalog's content-quality dashboard. The new cross-link bridges it to the operator-honest essay about how to USE the primary score.

Standard wirings

Health hygiene (Op rule 5)

Status snapshot

Iter 84 throughput note

3 substantive ships + a meaningful audit-discovery (stripe-webhook was live, not just a skeleton). Sizeable enough to keep 45 min cadence rather than stepping to 60.

The /factory/api-docs/ page closes out the "biggest unbuilt surface" item that has been on every running queue since iter 76. It is also the catalog's strongest credibility surface for technical buyers - it documents the actual API contract, including the honest framing that there is no v1 contract.

The catalog's transparency surfaces at iter 84

#URLCadencePurpose
1/factory/cron-status/15 min126 cron jobs, live timestamps
2/factory/quality-report/30 min10 invariants, audit results, health
3/factory/api-docs/weekly17-endpoint API reference
4/factory/healthz1 minOne-line ops probe

Four transparency surfaces, all cross-linked, all source-durable.

Running queue (top 5 for iter 85)

  1. /factory/log/ INDEX page - 84 ship logs without a navigable index is a missed surface for operators auditing the studio's pace.
  2. 11th playbook essay - candidate topics: "What we learned from 84 iterations" (meta-honest) OR "What ChatGPT 5.5 does for the catalog generation pipeline" (technical operator interest).
  3. Periodic verification of older polished products (sample 5 randomly, check quality holds)
  4. Step cadence to 60 min if iter 85 produces only 1-2 ships - iter 84 was a big-ship iter due to /api-docs/ unlocking; iter 85 may revert to small.
  5. Optional: deeper /api-docs/ work - add interactive examples (auto-curl-able), or document the 9 soft fake-proof findings on /quality-report/ so they are not invisible.

Cumulative iter 1-84

The Factory now has a documented API contract for the first time. Combined with /quality-report/ + /cron-status/ + /healthz/, a technical buyer can verify every claim in the marketing copy from data they fetch themselves.

← PreviousIter #83 Next →Iter #85