HOME PAGE — LOCKED DIRECTIVE (Sam's decision, 2026-06-02)
Purpose: stop the home-page sprawl (~8 candidates + a bake-off). Sam picked ONE. The next session's job is to CONSOLIDATE onto it — not build a 9th version. This is the single source of truth for the home page.
✅ RESOLUTION (2026-06-03, Grand Central pass) — CANONICAL HOME = home.html
The decision below ("decide.html → index.html is the front door") was superseded by the code itself: a later session repointed / → home.html (200 rewrite) and put ALL the live wiring (Plaid cash · MIS overlay · live queue · defer chips · cameras) into home.html (656 lines, 15 live-data hits). index.html/decide.html (the worn-paper "Decide" redesign, 407 lines, 5 hits) were a second, divergent home — and decide.html was a byte-identical dup of index.html. They even cross-linked as if each were the other's subpage (home's "Briefings" tile opened index.html; index's "Cash/Home" tile opened home.html).
Resolved in favor of home.html because it already serves at / and holds the integrations — switching to the lighter decide shell would mean rebuilding them = redesign (against the consolidation brief).
- index.html + decide.html → now canonical-home stubs that point to / (every door opens ONE home). Pages-default index still exists (CF needs it) but is no longer a separate page.
- The worn-paper/steel look is preserved at outputs/2026-06-01_start-redesign-mock.html + archive/graveyard/2026-06-03_home-consolidation/ — to be applied later as a re-skin from the shared engine, never by forking a new home file.
- Proposed (needs Sam's _redirects OK): repoint /home & /decide → /home.html so the stubs can be deleted = one physical home file, zero drift.
- The rule, restated: ONE home for Sam = home.html. Don't fork; re-skin from the shared engine.
KEEP / MERGE / RETIRE — the full home-page list (locked 2026-06-03, verified)
Canonical confirmed by evidence, not assumption: home.html reads the live Action_Queue (✅) and moves cards (✅ DONE/DEFER/PROOF/ACTION/NEED_INFO). The decide backup had the same engine but is a subset (no cash/MIS/groceries/calendar). Neither had ?as= scoping — that's unbuilt everywhere (next build). So home.html = canonical; no flip.
| Page | Verdict | Route / where it goes | Risk |
|---|---|---|---|
| home.html | CANONICAL | served at /, /home, /decide (200 rewrites) |
— |
| index.html | RETIRED → stub → / |
Pages-default; /home,/decide now hit home.html |
none (inert stub) |
| decide.html | RETIRED → stub → / |
was a byte-dup of index.html | none |
| next.html | RETIRED → stub → / |
"next move" folded into home's NEXT MOVE card | none (no clean URL routed to it) |
| home-cockpit.html | RETIRED → stub → / |
superseded by home.html | none |
| start.html | RETIRED → stub → / |
all-loops/search → home loops tile + rethink | none (only a dated mock linked it) |
| 2026-05-27_…board_projects.html | RETIRE-from-link (keep as dated snapshot) | home no longer links it; "See all" → start-here.html | none |
| 2026-05-31_…board_master-plan.html · 2026-05-27_…board_command-queue.html | dated snapshots, unlinked | — | none |
| start-here.html | KEPT — command-center PWA | routed by /start /loops /queue /grocery + home "Act now" + "See all" |
⚠ don't retire without repointing those 4 routes; overlaps home → fold into ?as=sam later |
| pwa-deploy/index.html | KEPT — Obligations destination, already does ?as= |
home "Obligations" tile; /obligations→obligations.html→pwa-deploy/ |
— (it's the working ?as= prototype to learn from) |
| obligations.html | KEPT — intentional redirect stub → pwa-deploy/ | /obligations 200 |
none |
| cockpit-offer.html | KEPT — NOT a home (operator-cockpit offer doc) | unlinked from home | none |
Redirect/access risk: none. Every retired stub redirects to / after Access (target / is a 200-rewrite, not a redirect-on-/). The load-bearing / line in _redirects is unchanged. Only routing edits this session: /home+/decide → home.html (Sam-approved). start-here.html's 4 routes intact. Originals backed up in archive/graveyard/2026-06-03_home-consolidation/ (no hard delete).
Next build (not polish): ?as= scoping — three-doors-one-engine on home.html (sam=all · mildred=business-only fail-closed · chanie=household), ties to hs-theme.css data-skin. This is what lets the wife/Mildred surfaces BE the one home scoped. pwa-deploy is the reference.
(Original 2026-06-02 directive — kept for history; the look choice still informs the future re-skin)
⚠️ STATUS UPDATE (recon 2026-06-02) — MOST OF THIS IS ALREADY DONE
A parallel session already consolidated: decide.html is published as index.html = the live front door (ops.hookstreetservices.com), worn-paper/steel styled, with nav to Cameras / Family-Kiosk / Services. cameras.html (7-cam hub: live Hikvision NVR via eero DDNS + Ring/ecobee deep-links) is BUILT. family-kiosk is LIVE. mildred.html business board is LIVE. So the "consolidate, don't sprawl" goal below is LARGELY MET. Remaining = polish (confirm the skin matches the mock, port any missing live tile, retire the dead candidates) + the cameras' security hardening (NVR is internet-exposed — see security audit). The directive below stands as the rule; the status is "done, polishing."
THE DECISION
Sam's home page = the worn-paper / steel "redesign / vision" mockup (outputs/2026-06-01_start-redesign-mock.html, the bake-off winner — lighter slate, easy sort/flag, real dropdowns). Lock it as the shell.
CONSOLIDATE — port these ONTO the mockup, then retire the rest
The mockup is the shell. Fold the working pieces from the other candidates into it:
1. Live queue + triage — the decision-engine actions from decide.html (Done / Defer dropdown / Mildred / Need-info / Urgent — all real backend commands). Swipe/sort/flag.
2. Daily digest — the "Your day now" P0/PROTECT/ADVANCE/WAITING block (same data the bot's pulse uses).
3. Live money — a Cash tile pulling ops-api /plaid/balances (production, gated) — same source as home.html.
4. 📷 Cameras tile — the answer to "where are the cameras": a tile on the home that embeds the Hikvision NVR stream + deep-links Ring / Blink (per the smart-home setup map). ⚠️ NOT WIRED YET — this depends on the smart-home control-plane build (Home Assistant hub). Until then, the tile is a placeholder/link-out, honestly labeled "coming."
5. 👨👩👧 Family link — a link/tile to the family home page (see below), since that's a SEPARATE audience-scoped surface, not Sam's.
RETIRE after the port (don't delete the files, just stop maintaining/linking)
home-A-warm · home-B-minimal · home-C-command · home-bento-interactive · start-mock · cockpit — all superseded by the consolidated redesign home. Keep decide.html only as the source to harvest triage logic from.
THE FAMILY HOME PAGE (separate, by design)
"Where's the home page for my family" = the family-kiosk (already LIVE: real groceries via GLIST/BOUGHT + 3-city weather). That's the family-facing surface; Sam's home page links TO it. Chanie's financial PWA is yet another scoped view. These are intentionally per-audience (one data source → per-person views). They do NOT merge into Sam's home — they're linked from it.
CAMERAS — honest status
Not on any page yet. The plan: Hikvision NVR has RTSP streams a hub (Home Assistant) ingests; Ring/Blink deep-link to their apps. So cameras land on Sam's home (and/or a smart-home tab) once the control-plane hub is built (docs/SMART_HOME_INVENTORY.md §5). Until then: honest "coming" placeholder, no fake feed.
THE RULE
Next session: consolidate, don't create. One home for Sam (this mockup, fed live), one for family (the kiosk). If you're tempted to make a new candidate — don't. Port onto the winner and retire the losers.