Plate № 15 · Operating dashboards · seed
A pattern from the gf.cx specimen book
Read-me · status of the stack
"Can't tell you how important a pattern like 'Read-me · status of the stack' is to the growth. It's super logical and shows foresight and helps frame the interdependencies between entities and records/bindings and such like."
"This is a GOLD standard set of operating principles."
The problem
A system grows by accretion: new endpoints, new bindings, new vendor accounts, half-done refactors, parked sketches. Without a self-state-tracking surface, two things rot:
- The operator's mental model diverges from reality. Did I bind that domain? Is Access on yet? Did I ever fix that typo'd entry? Cost = re-discovery on every return.
- The interdependencies become invisible. A 🟢 nice-to-have can quietly turn into a 🔴 blocker the moment a related decision lands. Without a frame for "this depends on that," velocity tax compounds.
A flat checklist doesn't solve it — 23 items in one list is intimidating and gives no signal about what matters now. A ticketing system is overkill for personal-operator scale and breaks the co-location of docs + TODO. The pattern below is the middle path: a tiered, collapsible status block that lives inside the dashboard it describes.
The element, in-page
The block below renders in a sandboxed iframe (the pattern-preview primitive). Click the panel headers to expand them — the <details> + <summary> interaction is native, no JS required. Flip the tabs to read the exact HTML and CSS that produced it.
Read-me · status of the stack
2026-06-26 · 5 of 14 resolved this session · red = blocking · yellow = lifecycle · green = hygiene
Production-blocking 1 of 3 done · 2 open
- ✅ DNS propagation verified for svc.gf.cx (done 2026-06-01). A + CNAME confirmed.
- CF Access policy missing on /admin. Any signed-in user can reach it. Add a Service Token rule · test with curl --no-cookie.
- Broken backlink in pa.gf.cx footer. Links to old domain. Update footer partial in pages/pa/_layout.html.
Data lifecycle 3 of 5 done · 2 open
- ✅ Restic pruned to 7-snapshot window (done 2026-06-10).
- ✅ Old R2 bucket deleted (done 2026-06-14).
- ✅ pCloud cold mirror seeded (done 2026-06-22).
- GitHub Actions PAT near 90-day TTL. gh auth token → Settings → Rotate. Update CF Secret + redeploy.
- Superseded Secret Manager versions still active. gcloud secrets versions list → destroy all versions except :latest.
Operational hygiene 1 of 6 done · 5 open
- ✅ Launchd drift audit wired (done 2026-06-25).
- daily-hygiene linkgraph check still red. Run gfcx_link_audit.py --fix on flagged surfaces.
Where it applies
Strong candidates — surfaces where the page is both documentation and a TODO:
- Operator dashboards — home.gf.cx/service-records/ is the canonical exemplar, tracking the cross-Worker service-records stack.
- Agent / watcher hubs — module lifecycle state where bindings, vendor accounts, and cron jobs accrete faster than any one commit message captures.
- Marketing or SEO surfaces with running performance debts (PSI regressions, GSC indexing gaps, broken-link punch lists).
- Category landings on gf.cx/ that grow to ≥ 5 interdependent records.
- Vendor decision surfaces (contractor shortlists, HVAC quotes) tracking status across candidates.
Trigger to add it: when a page has ≥ 3 categories of tracked-but-unresolved decisions or dependencies. Below that threshold a single TODO list or a cross-references block is enough. Above it, R/Y/G + collapsible structure starts paying off because the eye needs help finding what matters first.
Weak candidates — skip for pages whose audience is external:
- Public-facing detail pages, individual brand pages, finder cards — anything a visitor lands on without operator context.
- Sales pages, blog posts, content marketing where a status block would read as unfinished rather than intentionally tracked.
Where it breaks: stale fast if not maintained — two sessions of stale state makes the page a source of wrong belief. R/Y/G can paper over judgment: a 🟢 with a 6-month-rotting dependency is still rotting. And hand-maintained counts drift when items are added without updating the summary line — consider rendering counts via JS on surfaces where this matters.
Reusable elements
Named, copyable pieces — lift any one without the others:
- Colored-dot tier header — 🔴/🟡/🟢 dot carries the priority signal at peripheral vision before any text is read. Dot vs text-color is deliberate: color-only signals fail for colorblind readers, but paired with a text label in the summary line the dot is an accelerator, not the only channel.
- Operator-language category names — "Tag-physical workflow" not "P3 / Hardware." The name the operator already uses internally. The eye finds the right bucket without translation.
- Collapsible
<details>panels — 23 items flat is scroll-heavy and intimidating. 7 collapsed panels fit one phone screen; the reader picks where to dive in. No JS required; native browser behavior. - Count in summary line — "2 of 3 done · 1 open" shows scope without opening the panel. After completions, velocity is visible from the closed state alone.
- ✅ done items kept with date — velocity stays visible; future-you knows what was resolved, when, and in which session. The page is simultaneously the session-log and the TODO.
- How-to-fix sub-line per open item — re-entering work next session = one-line briefing. The dashboard is actionable, not just descriptive. Sub-line style: verb · path-or-command · who/what blocks.
- Lede velocity summary — "5 of 23 resolved this session" at the top primes the reader to see the page as alive and moving, not a static gripe list. Regenerate by hand or via a JS count on load.
Reference
- Source
- Dan, 2026-05-27 — named after 5 items flipped ✅ in a single service-records session, when the underlying shape became visible as a portable pattern.
- In use / example
- home.gf.cx/service-records/ — the canonical live instance. Tracks the cross-Worker service-records stack (svc.gf.cx + io.gf.cx/found). Its "Read-me · status of the stack" section is the specimen to copy from: clone the
<details>structure, swap category names and dot colors, drop in your open items with how-to-fix sub-lines. - Reusable elements
- Colored-dot tier header · collapsible
<details>panels · count summary line · ✅ kept with date · how-to-fix sub-line · lede velocity summary (all listed above). - Origin
- Operator dashboard pattern, gf.cx portfolio — emerged from the service-records stack tracking session, 2026-05-27.