circulating media · identity + manifests

library

Canonical records for physical media that moves — drives, tapes, optical, books. Items have identity here; manifests track jobs (vendor processing, recovery, migration). State derives from svc.gf.cx events. Public stubs route through id.gf.cx; full records gated.

Media types

live
drives
HDD · SSD · NAS · USB · seed records · vendor queue
parked
tapes
DV · VHS · Hi8 · MiniDV · DAT · digitize queue
parked
optical
DVD · Blu-ray · CD-R · rip queue
parked · TBD
books
different lifecycle — loan/circulation, not vendor queue. May warrant its own surface.

Active manifests

job manifests · items + status + vendor + dates
drive-recovery-2026-05 drives · default → new-hope-guy (wrangling) · escalation → NJ-recovery-guy (rare/dead) · opened 2026-05-29

How this composes with siblings

pa.gf.cx/contractors/data-recovery-shortlist/ → library.gf.cx/manifests/drive-recovery-2026-05/ (cohort routing · default/escalation) (batch overlay · items × vendors) │ ┌───────────────────────────────────────────────┤ ▼ ▼ pa.gf.cx/contractors/new-hope-guy/jobs/ pa.gf.cx/contractors/nj-recovery-guy/jobs/ (default tier · triage + wrangle) (escalation tier · recovery) │ │ └────────────┬──────────────────────────────────┘ ▼ library.gf.cx/drives/<slug>/ ← QR via id.gf.cx/<slug> (catalogue · identity · gated) (public stub · vendor-readable) ▲ svc.gf.cx/<vendor>/<event>/ (per-event log per vendor)

Library is the system-of-record for item identity (slow-changing). Activity-density lives on contractor pages — each vendor accumulates its own jobs + service records. The manifest is a thin overlay joining items across vendors for this batch; per-vendor job pages carry the depth.

Status of the stack

Architecture decisions
Library = system-of-record (slow-changing catalogue + evidence)2026-05-29 · corrected
Items mostly sit. Activity-density lives on contractor pages (jobs, service records, relationship history). Library items carry identity, provenance, photos, condition, current-location pointer — not event streams.
Manifests = thin batch overlay (cross-vendor item view)2026-05-29 · corrected
Stay at library because their atomic unit is items, but they're slim — items + which vendor + current pointer + links to per-vendor job records on contractor pages. Activity lives on the contractor side; manifest is the cross-vendor batch lens.
Books deferred from first pass2026-05-29
Loan/circulation lifecycle ≠ vendor-processing queue. Revisit naming if books never land — "library" stretches without them.
Status derives from svc events (not a denormalized field)2026-05-29
Per "state emerges from data" — manifest is a join view over svc events keyed by item slug.
Public stubs via id.gf.cx (not reinvented here)2026-05-29
QR on drive → id.gf.cx/<slug> (vendor-readable, return address). Full record at library.gf.cx/drives/<slug>/ remains Access-gated.
Bindings + dependencies
Scaffold deployed via gfcx_subdomain_new.py2026-05-29
Inherits cards + media primitives from assets.gf.cx. Rocket Loader fix applied inline (data-cfasync="false").
drives/ seeded with placeholder records
3 placeholder records show the schema. Replace with the real drives going to data-recovery.
drive-recovery-2026-05 manifest seeded
Items rows are placeholders. Populate with actual drives + their identifying details before vendor handoff.
id.gf.cx manifest entries for library drives
Append entries to ~/Code/id-gf-cx/manifest.json mapping slug → library.gf.cx/drives/<slug>/. Deploy id-gf-cx.
svc.gf.cx vendor slug for data-recovery vendor
Blocked on shortlist outcome — vendor decides default tier. Create svc.gf.cx/<vendor>/ when picked.
print.gf.cx drive-faceplate label tier
Small-rigid label sized for drive case top. New tier in print.gf.cx scale ladder. Encodes id.gf.cx/<slug> URL + disposition code.
Handoff PDF generator (manifest → print bundle)
Cover letter + manifest + per-drive labels + disposition legend printed together. Route stub: /manifests/<batch>/print/. Per "unify artifacts that travel together" pattern from print.gf.cx.
CF Pages custom-domain bind
Dashboard → Pages → library-gf-cx → Custom domains → add library.gf.cx. Auto-issues SSL + DNS CNAME.
tapes/ · optical/ tabs
Foundation-first — opens after drives round-trip proves out. Different schemas per type; not just view-slices.
library.gf.cx · scaffolded 2026-05-29 · resolves 5 audit fixes from sketch · inherits assets.gf.cx primitives · composes pa + svc + print + id · drives-first per foundation-first scope