# Plan 6 — Sacred Valley Widgets — Brainstorming Brief > **Status: PREP, not a plan.** Plan 6 is design-led. Per > `[[void-v2-frontend-design-plugin]]`, the actual brainstorm must run **with you** > and the `frontend-design` skill invoked at the brainstorm stage so it shapes the > spec, not the implementation. This brief assembles the raw material so that > session is fast — it does **not** make the design decisions. ## What Sacred Valley was in Void 1.x (the inventory to port) From the live Void 1.x dashboard (CT 301), gridstack cards (`gs-id`): | Card | Source / data | Void 2.0 status | |------|---------------|-----------------| | `clock` | client clock, NY + Melbourne | Trivial port; pure client. (Note: your TZ is Melbourne — drop NY-primary.) | | `weather` | Open-Meteo, Melbourne, 15-min cache, no key | Port as-is (add `/api/weather` or keep client-side). | | `speedtest` | hourly `speedtest-cli` cron → history bar chart | Needs a worker/cron + a results table in v2. Medium. | | `host-perf` | `/proc` CPU/RAM/disk/net, 30s refresh | Port `lib/resources.js`; new `/api/host` endpoint. | | `yerin-alerts` | 5-min service-health cron | **Becomes the Yerin security agent surface** — see `docs/yerin-security-agent.md`. | | `littleblue-nightly` | 2 AM heal/diagnostics | Needs the Little Blue agent + cron in v2. Defer. | | `claude` | Claude usage (today/week/session) | v2 companion runs on the **Max subscription via CLI** — there's no API usage meter. Rethink: show CLI turn/cost from the `result` events instead. | | `briefing` | 7 AM Dross briefing (Claude) | Dross exists in v2; needs a scheduled briefing pass + card. | | `orthos-council` | 6:50 AM Orthos briefing (Ollama) | **Becomes the Orthos Advisor surface** — local-model reflective digest. | | dynamic service cards | per-YAML health check | v2 has a real `resources` table + status — render from that, not YAML. | ## What Void 2.0's *new* backend unlocks (v2-native widgets) These didn't exist in v1 and are the more exciting half of Plan 6: - **Capture queue / Jobs** — live pg-boss job states (ingest.blob → extract.pdf → embed). A "what's flowing in" card. Data already in the Jobs view/API. - **Hybrid search spotlight** — a search-box card over the FTS+vector RRF endpoint. - **Inbox / pending changes** — agent-proposed drafts awaiting approval, as a card (shares the rail's approve/reject path). - **Knowledge connections (Orthos)** — embedding-graph "things converging" card. - **Security pulse (Yerin)** — recent audit highlights + alerts card. - **Space switcher / recent entities** — v2 is Space-scoped; v1 wasn't. ## Open design questions for the brainstorm (decide WITH frontend-design) 1. **Grid library.** v1 used gridstack v10. Keep it, or go CSS-grid + a lighter DnD? (Affects bundle + the no-build-step constraint.) 2. **Card taxonomy & sizing.** Status cards vs. interactive cards vs. agent-output cards — do they share one chrome or differentiate? 3. **Theme tokens.** v1 is blackflame (`--accent: #ff4f2e`). The companion rail already shipped orange (mockup wanted violet — `--rail-accent` deferred). Plan 6 is the moment to settle the token system (accent, rail-accent, per-agent hues: Dross / Yerin / Orthos identity colours?). 4. **Real-time.** Cards poll (v1: 10–30s) vs. an SSE/event bus (v2 already streams companion turns). Worth a shared `space-active`-style event channel? 5. **Per-agent cards as a pattern.** If Dross/Yerin/Orthos each own a card, define one "agent output card" component once. 6. **Persistence.** v1 stored layout in localStorage. Per-Space layouts in the DB? ## Suggested first slice (to propose at the brainstorm, not commit) A thin vertical: **host-perf + weather + clock** (pure ports, prove the grid + theme tokens) → then **Jobs card + Inbox card** (prove v2-native data) → then the **agent cards** (Yerin pulse, Orthos council) once those agents are wired. This sequences design risk before agent-integration risk. ## Pre-reqs that aren't UI - Orthos & Yerin agents need seeding + wiring (see `docs/yerin-security-agent.md`) before their cards have data. - speedtest/host-perf need their v2 data endpoints.