Weekly Activity Report

Week of May 11–19, 2026

Foundational infrastructure week. Four platform initiatives shipped — Unified Prompt Registry, Hub Identity Authority, Knowledge Base deployment, and Internal Admin Panel. Every LIFE Labs surface is now wired through hub-managed identity and lives behind canonical *.life-labs.dev URLs. Data Lab UX went from alpha-friction to beta-ready with steering, per-candidate judging, voice playback, and a stack of reviewer-facing improvements.

Prepared for CEO & CFO
Period 2026-05-11 → 2026-05-19
Author Fionn

Weekly volume

A measure of throughput across deployed surfaces, repositories, and product specifications.

4
Platform initiatives shipped
420
Commits across 9 repos
8
Surfaces unified under one shell
~20
Prompts migrated into central registry
19
Specs written or updated

Three threads that ran through the week

Most individual commits and specs serviced one of these three strategic threads. They are how the LIFE Labs platform becomes operable by the broader team rather than a single founder.

Thread 01

Unified Prompt Registry

Around 20 inline LLM prompts scattered across life-app, review-ui, benchmarking, and wheel-wiki consolidated into a single Supabase-backed registry with a hub UI at /admin/prompts. Promote-by-PR workflow, hash-pinned bundled fallbacks, CI gate forbidding new inline prompts. Single source of truth for "what prompt is live in production."

Thread 02

Hub as Auth & URL Authority

Every consuming app — life-app, Review UI, Knowledge Base, Wheel Wiki, Golden Questions Manager, Golden Prompt Report — was wired to consume hub-issued identity via Cloudflare Access JWT, switched onto the new hub-auth header pattern, and migrated behind canonical *.life-labs.dev URLs. Auth is no longer scattered across per-app passwords and dashboard configs.

Thread 03

Data Lab Reviewer UX

The internal evaluation + training-data tool went from rough alpha to a reviewer-ready surface. Three feature streams landed together — AI-assisted steering, per-candidate judging, voice playback — plus a stack of supporting improvements (branch fork-or-swap, classifier rationale, candidate switcher, comments composer, performance overhaul). Detailed in the Product Spotlight below.

Four platform systems pushed and live

Each card below is in production this week — code merged, deployed, and exercised against real traffic.

Unified Prompt Registry

Shipped

Hub UI live at /admin/prompts with permission gates (prompts.view, prompts.edit, prompts.promote). Twenty-two judge rubrics, classifier and summarizer prompts, Wisdom system prompt, and all judge/steering/candidate templates now resolve through the registry with hash-pinned bundled fallbacks. Promote-by-PR workflow generalized across consuming repos.

22 rubrics backfilled Promote-by-PR CI gate live

Hub Identity Authority & Auth Unification

Shipped

All apps now route auth through hub.life-labs.dev using Cloudflare Access JWT claims. Per-app backend work: life-app web bridges CF Access → Supabase SSO via Pages Function, Review UI consumes hub-issued identity, Knowledge Base derives identity from hub groups instead of static policy.yaml, Wheel Wiki + Golden Questions Manager + Golden Prompt Report adopt the same pattern.

Pivoted away from Google Workspace group-based auth (required customer Super Admin) to explicit per-user hub grants — simpler operationally and faster to onboard team members.

6 apps wired CF Access JWT Hub-managed groups

Knowledge Base Deployment

Shipped

Empty Knowledge Base system deployed to production — Railway service + Supabase + Cloudflare wired and live. Hub identity authority mode (KB_AUTH_MODE=hub), corpus tagging at the document level, 6-step guided tour overlay, CF Access service tokens for CI/CD, normalized database role bootstrap. Now ready to ingest Jira, LIFE reports, and Notion imports next sprint.

Railway live Hub auth wired Corpus tagging

Internal Admin Panel

Shipped

Central identity, role, and audit UI on hub.life-labs.dev/admin. Replaces ad-hoc per-app passwords with Google SSO + hub role management + single audit log. D1 schema, Pages Functions API, /admin/users and /admin/groups CRUD, external-reviewer policy for Golden Prompt Report. Now the single command center for team identity.

D1 + Pages Functions Groups + users CRUD Audit log

Data Lab — alpha to beta in one week

The internal review and training-data tool went from rough alpha to a reviewer-ready surface. Three feature streams landed together in the branch view: AI-assisted steering, per-candidate judging, and voice playback of candidate responses. The screenshot below shows all three live in a single Data Lab branch.

Data Lab branch view showing Wisdom candidate, AI steering panel, judge candidate panel, and voice playback
Feature 01

AI-Assisted Steering

Side-panel that lets reviewers iteratively refine candidate responses with Wisdom — "warmer", "less jargon", "shorter" — without polluting the training set. Origin candidate is pinned at the top; steering notes flow into an isolated quarantine table. SSE token streaming, Opus-only, selectable steering model. was_steered telemetry on every candidate.

Feature 02

Per-Candidate Judging

"Judge candidate" panel runs a chosen subset of the eleven expert judges against a single response without leaving the row. Live cost + token estimates before submission (e.g. ~$0.04 · 18s); results stream into a quarantined verdicts table never joined into training exports. Closes the fast-feedback gap during reviewer iteration.

Feature 03

Voice Playback

ElevenLabs voice synthesis wired into every candidate row. Reviewer picks a teacher voice ("Meditation Teacher 1", more presets queued), hits ▶ Listen, hears how the candidate sounds when delivered. Same path that powers session audio in the LIFE app, now exposed for evaluation. Daily TTS budget cap enforces cost control.

Smaller features and quality-of-life upgrades that landed alongside the headline three.

Branch Workflow

Fork-or-Swap Dialog

When a reviewer changes the model or system prompt mid-branch, a dialog now offers fork (preserve history, start a new branch) or swap (rewrite in place). Eliminates the previous footgun of silent context corruption when configuration changed mid-conversation.

Safety Visibility

Classifier Rationale Badges

Each candidate now surfaces its classifier verdict inline — GREEN 98%, YELLOW, ORANGE, RED — with literal severity colors and a hover rationale ("Straightforward definitional question with no distress markers."). Reviewers see why the safety pipeline scored a response before they read it.

Editing

Candidate Switcher + Multi-Edit

Multi-candidate generation per turn now has a clean switcher above the response (1 model · 2 edit), with edits numbered and labelled by the reviewer's tone change ("Softened tone with warmer opening"). Selecting a different candidate explicitly does not rewrite downstream turns.

Collaboration

Comments Composer

Comments now attach to specific candidates (model, edit, or post-steering) rather than the branch as a whole. Inline composer in the side panel with candidate-targeting dropdown. Threaded discussion replaces ad-hoc Slack screenshots.

Operability

Branch Soft-Delete & Tags

Branches can be tagged (regression, demo, custom) for filtering and grouping. Deletion is soft, with explicit "End Branch" + "Delete" affordances and confirmation. Tag-based queries are now possible for cohort analysis across runs.

Performance

React Query + Lazy Loading

All reviewer-side data fetching migrated to React Query — per-turn N+1 collapsed via a single useBranchExtras RPC. Dialogs and side panels lazy-load. Bundle-size guard and perf-regression smoke tests added. The branch view is now meaningfully snappier on long conversations.

Every app linked from the hub

Captured 2026-05-19. The hub indexes six tools — each one shown below — wired into hub-managed identity and behind canonical *.life-labs.dev URLs. Each app now has its own guided tour (auto-launched on first visit, replayable from the topbar "?" button).

Onboarding

Guided tours added to most apps this week

Shipped new tours for the Hub landing, Knowledge Base, Wheel Wiki, Questions Manager, Benchmark Reports, and a fresh 11-section Review UI / Data Lab tour. Spotlight + tooltip pattern, skippable sections, auto-trigger on first visit, replay button in every topbar. The whole constellation is now self-documenting for any new team member.

Knowledge Base (kb.life-labs.dev) is also linked from the hub but is gated behind hub group membership — not included in this gallery for that reason.

Priorities for the coming week

With the platform substrate landed, focus shifts to filling it with content, opening it to the team, and giving reviewers control over the models they evaluate.

1
Finish the Knowledge Base. Phase 1 — ingest Jira, LIFE reports, and Notion imports into the now-live KB. Phase 2 — register the KB as a global MCP so every Claude Code session can search company knowledge directly.
P0
2
Add the Skills Marketplace. Internal database for discovering, installing, auto-updating, and contributing Claude Code skills. Day-1 implementation on top of the native plugin marketplace, hub UI at hub.life-labs.dev/skills. Eliminates manual distribution drift across the team.
P0
3
Connect all model selections. Unify model pickers across Wisdom chat, Data Lab generation, AI-assisted steering, and the Judge Panel onto a single hub-managed list routed through OpenRouter. One place to add a new model and have it appear everywhere.
P1
4
Sharpening and improvements across the other apps. Now that the platform substrate is in place, tighten the UX of the surrounding surfaces — Wheel Wiki, Golden Questions Manager, Golden Prompt Report, Benchmark Reports. Consistent navigation, polish on copy and density, and parity with the Data Lab quality bar.
P2

Repo-by-repo activity

Commit volume in the 2026-05-11 → 2026-05-19 window, counted across all branches. The three heaviest repos (life-app/app-v0.2, review-ui, and life-hub) account for ~80% of the week's work — 341 of 420 commits.

Repository Commits Active branches Headline work
life-app/app-v0.2 145 56 branches (+2 stashes) Unified registry resolver across all kinds, branch fork (copy-on-fork), dedup judge enqueue via job_dedup_key, AI-assisted steering, CF Access → Supabase SSO bridge, Google sign-in on web, auto-sign-in from hub identity, judge orchestrator extraction to data-lab-evaluator
review-ui 113 40 branches (+2 stashes) Evaluator service scaffold (Railway), full Data Lab UX overhaul, React Query migration, lazy-loaded dialogs, voice playback, judge-candidate panel, classifier rationale badges, fork-or-swap dialog, comments composer, branch soft-delete + tags, 18-step Data Lab tour extension
life-hub 83 29 branches (+1 stash) Unified Prompt Registry UI at /admin/prompts with permission gates, draft-via-PR workflow, promote dispatcher, identity + groups CRUD API, /api/life-bootstrap magic-link endpoint, canonical .ll-topbar CSS shared across products, hub guided tour, KV namespace wiring
golden-prompt-tests 27 13 branches (+1 stash) 22 judge rubrics backfilled into the registry with pinned hashes, generalised promote-prompt CI workflow, results-API consolidation, per-kind healthz hash endpoints, top-bar adoption
kb-service 23 7 branches KB_AUTH_MODE=hub identity authority mode, document-level corpus tagging, 6-step KB guided tour, CF Access service tokens for CI/CD, normalised role bootstrap, top-bar adoption
golden-questions-manager 22 8 branches Golden-bot service subsumed, registry-pinned prompts, promote-prompt CI dispatch, top-bar refinement (slim, no accent), hub-auth permission gating, back-link to hub
wheel-wiki-local 5 6 branches Wiki-chat system prompt migrated to unified registry, 6-step guided tour, top-bar unification, drift fan-out healthz
wisdom-system-prompt 2 main Canonical repo initialised as single source of truth; CI publishes to the unified registry on merge (PROMPT_REGISTRY_ENABLED gated)
stages-of-meditation-eval 0 main (uncommitted) Substantial local work on auth/login, admin/users, grid, traditions, and cell views — not yet committed and pushed