Claude Code · last 30 days

What you built → what could go to Jira

2026-05-17 → 2026-06-16 · LIFE Research · 1,014 commits across 14 repos · proposal only

Propose-only. Nothing has been written to Jira. Below are 33 suggested tickets (22 to log shipped work, 11 still-to-do), mapped onto your existing AMA & OPS epics, deduped against all 100 open/recent issues. MDS / INT / CMP are empty — benchmarking, UI and infra work is currently untracked, which is why most of this lands as new Stories under AMA/OPS.
33
tickets proposed
22
shipped work to log
11
forward-looking / gated
11
deliberately skipped

By project

OPS · 19AMA · 14

By issue type

Story · 17Task · 14Bug · 1Epic · 1

Completed work — log it for visibility22

Shipped, distinct from the team's existing process tasks. Several overlap AMA tasks still marked TO DO — those should be updated/closed, not duplicated (see each card's dedup note).

AMA-9 Golden Dataset Training 3

AMA Story high value Data Lab training-export pipeline — capture-by-default eligibility + output-format fix

Fixed and shipped the Data Lab training-export pipeline (life-app packages/server/src/data-lab/exports). Adopted capture-by-default eligibility (select→SFT, edit→corrected SFT, rank→DPO pair, commit→trajectory; manual gate only for the exclude case). A 2026-06-06 format audit found computeEligibility had zero callers (every export returned 0 rows) and non-conformant SFT/DPO formats; fixed in life-app #73 + review-ui #103 (merged+deployed 2026-06-06). SFT now splits OpenAI vs Anthropic shapes, DPO is TRL conversational, provenance to aligned metadata sidecars.

status shipped to prod; deferred decisions (safety_sft, fail-closed splits, is_stale) await Fionn
evidence MEMORY project_data_lab_export_pipeline (#73/#103); review-ui 'training_unit_type += reaction_prediction/reaction_label'; ~/life-app/docs/agent-notes/data-lab-format-audit-2026-06-06.md
dedup new — enables AMA-25 'Extract data of the testing'
AMA Task medium value Golden-prompt eval tooling: hub Models Registry + prompt registry wiring + report-generator recovery

Modernized golden-prompt-tests: routed the Wisdom runner + 22 judge rubrics through the hub Models Registry pointer and unified prompt registry (resolver loaders, prompts-pointer.json, promote-prompt workflow), subsumed the standalone results-api, dropped the rubrics D1 table, and folded the guided tour into the benchmark report. Also recovered the CANONICAL report generator (generate_report.py) from a stash-only state back into version control (PR #17), resolving long-standing confusion about which generator produces deployed reports.

status shipped to prod (deployed reports + registry-wired runner)
evidence golden-prompt-tests commits (Models Registry pointer, rubric loader #5, backfill #6, subsume results-api #8, eval tooling #12, guided tour #16, generator #17); MEMORY reference_golden_prompt_report_generator, project_prompt_registry_e2e_wiring
dedup new
AMA Task medium value Golden-questions-manager: server-side authz + machine-auth path + golden-bot subsumed

Closed a live authz hole by enforcing golden_questions permissions server-side, added a machine-auth path (X-Service-Token + X-On-Behalf-Of-Email, lowercased on-behalf) so the Slack bot/services can call it, subsumed the old golden-bot into golden-questions-manager (migrating its prompt), wired question/tag/export telemetry to the hub action log, and resolved all 47 open Dependabot alerts.

status shipped to prod; golden-bot irreversible decommission steps pending (separate ticket)
evidence GQM commits #11 (enforce perms), machine-auth, #8 (subsume golden-bot), #13 (47 Dependabot); MEMORY project_life_bot_spec, project_prompt_registry_e2e_wiring
dedup new

AMA-11 SOM wiki v0.2 1

AMA Task medium value SOME (Stages of Meditation Eval): rebrand + hub-SSO migration + security hardening

Renamed 'Wheel of Life Benchmark' → SOME across code/infra/GitHub/subdomain/hub registry with a legacy-redirect worker, migrated it to Cloudflare Workers via OpenNext, replaced Supabase Auth with Cloudflare Access + hub identity (server-gated /api/data JSON-RPC routes, ES256 JWKS), removed the in-app wiki, fixed a javascript: URL XSS + PostgREST .or() injection, added guided tours, and connected the resource-ai-suggest prompt to the registry.

status shipped to prod (stages-of-meditation-eval.life-labs.dev)
evidence stages-of-meditation-eval commits (#2 rename, stage-3 CF Access + hub identity, #1 XSS/.or() fix, legacy-redirect worker); MEMORY project_stages_of_meditation_eval
dedup new — maps under AMA-11 SOM wiki epic

AMA-12 Agent Benchmarking v0.3 2

AMA Story high value Data Lab review-ui auth/proxy re-architecture (browser off Supabase → CF Pages Functions /api + hub identity)

Re-platformed the Data Lab review-ui so the browser no longer talks to Supabase directly: all data flows through typed CF Pages Functions /api routes with CF Access JWT verification, hub identity/role resolution, service-token-or-JWT dual-mode reviewer auth, same-origin SSE, and an RLS audit. Reviewers are now keyed by email (auth.users FKs dropped). Large multi-day effort (~30 commits 2026-05-22) underpinning every later Data Lab feature.

status shipped to prod (review.life-labs.dev)
evidence review-ui commits 2026-05-22 (CF Access JWT verification, hub identity/role resolver, data-lab proxy to Railway, key reviewers by email); MEMORY project_data_lab_proxy_migration
dedup new
AMA Story high value data-lab-evaluator standalone Railway service + live per-judge Judge Panel

Extracted the judge orchestrator out of life-server into its own Railway service (data-lab-evaluator) so bursty multi-minute judge fan-out no longer shares an event loop / crash surface / deploy unit with steady-state Wisdom chat; routes via OpenRouter and the hub Models Registry pointer; the review-ui frontend dual-targets life-server (non-judge) + evaluator (judge). Built live per-judge progress on the Judge Panel (SSE), a per-candidate 'Judge candidate' button, per-scenario suggested-judge surfacing, and KB-vendored judge rubrics, plus verdict-JSON parsing, scenario UUID→public-id routing, and cost-guard/health fixes.

status shipped to prod (data-lab-evaluator-production.up.railway.app)
evidence review-ui PRs #32/#34, judge-routing commit, #52/#53/#54 (judge panel), #107/#108/#109 (evaluator health/cost-guard); MEMORY project_data_lab_evaluator; spec ~/LIFE/specs/decouple-judge-panel.md
dedup new — relates to AMA-32/AMA-33 (custom judges, still TO DO)

AMA-13 Predicting Profiling v0.2 2

AMA Story high value Predictive-Profile Testbed shipped into the Data Lab (reaction predictor, persona discipline, non-circular auto-labeler)

Built, deployed, and e2e-verified the Predictive-Profile Testbed across life-app (#69/#70) and review-ui (#98), live in the Data Lab: an LLM reaction-predictor over 6 seeded personas (profile-conditioned vs no-profile baseline vs opt-in matched_wrong), three-layer persona leakage discipline (hidden disposition → simulated history → derived inferred-profile snapshot), reaction prediction/label/target schema (RLS service-role-only), persona chip, auto-predict-every-turn toggle, and a non-circular auto-labeler that reads the committed reaction text independently of the prediction. The predict→label→reveal loop works e2e; the individuation verdict awaits a labeled campaign (scorer reports INSUFFICIENT DATA until ≥4 labeled personas).

status review-ui surface shipped to prod + verified; labeled campaign + verdict pending
evidence review-ui commits 2026-06-05 (testbed schema, reaction-prediction UI, seed 6 personas, auto-label, auto-predict toggle, matched_wrong migration); MEMORY project_predictive_profile_testbed; spec ~/LIFE/specs/predictive-profile-testbed.md
dedup overlaps AMA-13 epic and AMA-36 (Alex feedback) / AMA-35 — adds the shipped-impl record they lack
AMA Task high value Predictive-profiling program audit (2026-06-10) + audit-fix re-point of testbed and harness

Ran a 34-agent audit of the whole predictive-profiling program; 20/20 critical-high findings adversarially confirmed (committed testbed report was a synthetic 'INDIVIDUATION CONFIRMED +3.83 bits' FIXTURE, predict-after-reveal contamination, judge-anchored labels, degenerate n=4 verdict). Fionn then executed the redesign (life-app PR #79): testbed re-pointed as a reviewer-facing prediction display, synthetic verdict + fixture reports deleted, L1 next-token prediction dropped, profiler prompt fixed to embed the real transcript, null-bootstrap 400 fixed, scorer provenance gate added.

status audit complete; redesign fixes shipped to life-server prod
evidence MEMORY project_profiling_audit_2026_06_10, project_predictive_profile_testbed (life-app PR #79, squash 65f7b8c); report ~/LIFE/specs/predictive-profiling-audit-2026-06-10.md
dedup new

AMA-27 Custom System Prompt Editor v1 1

AMA Story high value Unified prompt registry — end-to-end wiring across all hub apps + backfill + admin UI

Implemented the unified prompt registry: every runtime prompt across LIFE Labs resolves through a shared resolver with git-tracked pointers + bundled fallback + hash verification, surfaced at hub.life-labs.dev/admin/prompts. Audited every hub surface, wired the gaps (7 PRs), promoted wisdom-system v0.8.3 to prod, and backfilled all 24 new registry rows hash-verified. Solves invisible prompt drift and the broken Docker rubric loader; underpins AMA-30 (prompt version history).

status shipped to prod; v0.8.3 live; backfill done 2026-06-16
evidence MEMORY project_unified_prompt_registry (spec resolved 2026-05-18) + project_prompt_registry_e2e_wiring (life-app #80, review-ui #112, kb-service #70, stages #3, life-bot #2, golden-prompt-tests #15, life-hub #78; backfill 2026-06-16)
dedup overlaps AMA-27/AMA-30 — this is the platform delivering them

OPS-13 AI Operations 5

OPS Story high value KB auto-ingestion pipeline (drag-drop/Drive/Slack) with classifier + secret publish gate

Built the KB auto-ingestion engineering: a bytes-first drag-drop upload endpoint, a unified publish path with a universal classifier + secret-scan review gate, a quarantine/review queue surfaced in kb-reader, a PDF/doc→markdown conversion worker, an env-gated fail-closed /api/ingest/event push endpoint, and upload/ingest telemetry to the hub. This is the completed build behind the OPS ingestion intake tasks; drag-drop + classifier gate are live but Drive/Slack auto-ingest is inert end-to-end (Drive SA org-blocked, Slack token unset).

status engineering shipped; Drive/Slack auto-ingest inert (blockers tracked separately)
evidence kb-service PRs #43/#44/#48/#50/#52/#54/#56 + 'universal classifier+secret review gate'; kb-reader #1; MEMORY project_kb_ingest_cf_bypass_manual; specs kb-ingestion-pipeline-spec.md, kb-dragdrop-upload-spec.md
dedup new — the build behind OPS-73/74/75/78 intake tasks; link to them
OPS Story high value Unified action-events telemetry across all LIFE apps (hub foundation + per-app emission)

Built and activated a unified action-events pipeline so the hub answers 'what has everyone done, including uploads' across all connected apps. Extended D1 action_events with category/actor_type, added a server-to-server ingest sink (X-Service-Token) + browser logAction sink, metadata-only enforcement (ALLOWED_ACTION_KEYS + PII sink), a hub.activity_read permission, per-category retention (90d–1095d), and an /admin/activity viewer with an Uploads filter. All ~10 app PRs merged and deployed; backend verified live e2e. Meditation/end-user life-app events excluded (GDPR Art.9).

status shipped to prod + activated; staff-monitoring go-live gated on staff notice (separate ticket)
evidence MEMORY project_hub_telemetry (life-hub #65/#66/#68, kb-service #54, review-ui #97, GQM #10, kb-reader #9, golden-prompt-tests #11, life-app #67, conversion-worker #2); spec ~/LIFE/specs/unified-action-events.md
dedup overlaps OPS-85 Privacy/Telemetry/Data-Retention at policy level; link
OPS Story high value Fine-grained per-feature permissions rolled out across all hub-connected apps

Designed and shipped a hybrid role-bucket + per-user-grant permission system extending the hub perms.ts/BUCKET_DEFAULTS machinery (no parallel system, no schema migration). Added a datalab_curator bucket for senior reviewers (Alex Shatra), hub-admin read/write split, KB authorship/activity gates, and golden-questions enforcement, with HMAC identity signing active end-to-end. ~30 security holes closed. Triggered by Alex hitting a 403 on the Data Lab Personas page.

status shipped to prod + live-verified (Alex has datalab_curator via S2S /api/identity)
evidence MEMORY project_finegrained_permissions (SHIPPED 2026-06-10; hub #72/#75, GQM #11, review-ui #106/#108, life-app #76, kb-service #61, kb-reader #11, life-bot #1); spec ~/LIFE/specs/fine-grained-permissions.md
dedup new
OPS Task high value infra-autofix: autonomous CI/Railway/Supabase remediation monitor (AI Ops)

A launchd monitor (com.life.infra-autofix) polls CI, Railway and Supabase every 30 min, triages issues with a cheaper model (sonnet) and dispatches an opus fixer agent to auto-resolve them, and runs an automated security review on every migration/diff before ship. Live LIFE operational automation keeping the estate green without hand-fixing; currently invisible to the team. Classifier-gated so Fionn must arm/allowlist it.

status shipped — live + armed in prod (every 30 min); classifier-gated
evidence MEMORY project_infra_autofix_monitor (sonnet triage → opus fixer, switched from haiku 2026-06-15); prompt digests show automated security reviews on kb-service 0045/0048 RLS and review-ui prompts_all security_invoker migrations
dedup new
OPS Task medium value Deploy-flow hardening: remove all auto-deploy, move estate to explicit CLI-only ship

Cross-repo ops/security-posture change (2026-06-10): every GitHub-Actions deploy-on-push workflow deleted and the life-server Railway auto-trigger disabled, so merging a PR now deploys nothing — production is reached only via explicit CLI deploy (/fix-and-deploy). Closes an accidental-deploy blast-radius hole and establishes a clean two-stage local→prod model across ~7 repos. Audited to zero auto paths.

status shipped to prod — all auto-deploy paths removed and audited 2026-06-10
evidence git-history 2026-06-10 'Remove deploy-on-push' across kb-service/life-hub/review-ui (#105), golden-prompt-tests (#13), GQM (#12), conversion-worker/hub (#73); MEMORY project_autodeploy_removed, feedback_local_first_ship_flow
dedup new

OPS-14 Research Operations 2

OPS Story high value Research Radar engine — weekly arXiv/OpenAlex research feed shipped (kb-service backend + life-hub reader)

Built the Research Radar v1→v3 backend in kb-service: radar tables + research corpus + paper identity, OpenAlex ingest, a weekly 3-signal ranking job with relevance decay + quiet-week floor, an OpenRouter LLM ranker, reader API endpoints with per-user feedback (important/dismiss/read), an inbox-first research.html reader in life-hub, send-to-KB full-text ingestion, and a weekly Slack digest. The weekly cron cycle (daily ingest → rank Mon → digest Mon) is provisioned and live.

status shipped to prod; full weekly cron cycle live 2026-06-15; first scheduled rank+digest Mon 2026-06-22
evidence kb-service ~30 'research-radar' commits 2026-06-05, PRs #55/#54/#57; life-hub #80 inbox reader; MEMORY project_research_radar_shipped, project_research_radar ('cron FULLY DONE 2026-06-15'; first run Mon 2026-06-22); spec ~/LIFE/specs/research-radar.md
dedup new — relates to but distinct from AMA-18 Deep Research (in-app)
OPS Story high value Hub meeting-transcription app (AssemblyAI EU) with diarization + KB publish

Shipped a transcription app at hub.life-labs.dev/transcripts: drag-drop audio upload → provider-agnostic transcribe engine (AssemblyAI universal-3-pro EU, chosen via a 14-discriminator A/B over ElevenLabs/Speechmatics/Voxtral/Whisper) → markdown with speaker turns → published KB doc (content_type=meeting-transcript), plus MediaRecorder voice enrollment via Speechmatics. Privacy: Dublin endpoint, auto no-training, audio+transcript deleted after fetch. This is the non-Zoom upload path of the OPS-74 capability.

status shipped to prod + e2e verified; voice profiles ignored while provider=assemblyai
evidence MEMORY project_hub_transcription_app (SHIPPED 2026-06-12, kb-service #63/#65/#66, life-hub #76, migrations 0046/0047); research ~/LIFE/specs/transcription-diarization-research-2026-06-10.md
dedup overlaps OPS-74 (Zoom transcript ingestion) — this is the upload path

OPS-83 Internal Slackbot 1

OPS Task medium value LIFE-bot kb-service auth chain + golden-questions machine auth (per-user ACL preserved)

The substantial security/integration work behind the now-live LIFE-bot (OPS-83): a three-layer auth chain that lets the bot read the KB as the asking user — per-bot service-account bearer mint, a dedicated CF Access service token on every kb-service call, and per-user permission forwarding via X-On-Behalf-Of-Email so fine-grained gates (e.g. research_radar.view) still apply — plus a parallel fail-closed machine-auth path to golden-questions-manager (constant-time X-Service-Token + lowercased on-behalf) and a surface-based KB ceiling (confidential only in DMs). All four data sources (KB, research radar, benchmark, golden questions) verified e2e through Slack by 2026-06-12. Logging this updates OPS-83 with the shipped-impl record; the bot itself is already tracked there.

status shipped to prod + verified live; documents OPS-83 implementation
evidence life-bot commits (#1 security hardening, CF Access headers, machine-auth #questions, on-behalf list_ranked, surface-based ceiling); MEMORY project_life_bot_spec
dedup subtask of OPS-83 (Internal Slackbot, IN REVIEW)

OPS-87 Knowledge Base formatting & upkeep 5

OPS Story high value KB platform: Supabase migration + hub identity/auth + MCP-over-HTTPS agent endpoint

Built out kb-service into the production Company KB backbone and migrated it off the Railway Postgres plugin onto Supabase (kb-prod, eu-central-1) on 2026-05-22, with KB_AUTH_MODE=hub deriving all identity from hub.life-labs.dev, CF Access service-token support, and corpus tagging (company/contemplative/benchmark). Also built the agent-facing access layer: an MCP-over-HTTPS endpoint at kb.life-labs.dev/mcp with DB-backed OAuth (RFC 7591 Dynamic Client Registration, client_credentials grant, service_accounts table), per-request bearer-slug resolution via the hub, tool filtering by bearer scopes, and a Phase-1 latency/cache overhaul. Registered as the life-kb MCP server. None of this engineering was tracked in Jira; OPS-87/88/89/90/91 cover KB taxonomy/formatting/content as an org process, not the platform build.

status shipped to prod (kb.life-labs.dev on Railway EU + Supabase eu-central-1; /mcp live)
evidence kb-service commits 2026-05-17→05-22 (initial commit, KB_AUTH_MODE=hub, PRs #2/#3/#4, bootstrap-migrate Supabase fix, corpus tagging v0.7); MCP series W2-T*, PRs #14/#16/#19/#34/#51, ~20 'MCP latency/cache' commits 2026-06-01→06-02; MEMORY project_kb_service_supabase, project_wheel_wiki_retired; specs kb-improvements-spec.md, kb-mcp-performance-audit-2026-06-01.md
dedup new — distinct from OPS-87 epic and OPS-88/89/90/91 (org doc-process tasks)
OPS Story high value kb-reader: human-facing KB reader/editor SPA shipped (kb-reader.life-labs.dev)

Shipped a Vite + React 19 reader/editor SPA for the Company KB at kb-reader.life-labs.dev (2026-05-25), replacing the basic Go+htmx UI: sidebar/home, reader with markdown pipeline+outline, split-pane editor with conflict UX, cmd-k palette + wikilink resolver, backlinks panel, inline image upload, guided per-route tour, quarantine/review queue view, and KB permission UI gates. Required a new exact-match CORS middleware in kb-service (PR #35) plus CF Access JWT fallback on /api/ai/* (#36).

status shipped to prod; open follow-ups: KB_SUPABASE_STORAGE_KEY unminted (image upload 503), Pages auto-deploy manual
evidence kb-reader T002–T010 series 2026-05-25, PRs #1/#4–#8/#11/#13; kb-service PRs #35/#36/#32; MEMORY project_kb_reader_shipped; spec ~/LIFE/specs/kb-reader.md
dedup new
OPS Story high value KB wiki claim-ledger model implemented (sources/topics/append-only claims + linter + publish gate)

Implemented the AI-native KB wiki model: source pages / canonical topic pages / append-only claim ledger (claim/tension/question blocks, monotonic ids, chunk locator triples). Shipped as a kb-service Go linter (internal/wiki) wired into Publish before the classifier gate and re-linted at review approval (migration 0049 adds documents.page_type + wiki_id), plus a matching Python wiki_lint/assemble/append-claims toolchain in the kb-ingest skill whose fixtures cross-validate against the Go gate. Auto-ingest title derivation (H1→enrichment→filename) shipped alongside.

status shipped to prod 2026-06-15 (migration 0049 / version 49 live)
evidence kb-service PRs #68/#69; skills #20; MEMORY project_kb_wiki_implemented (SHIPPED 2026-06-15), project_kb_wiki_model; spec ~/LIFE/specs/kb-wiki-model.md
dedup new — distinct from OPS-88 (taxonomy) and OPS-89 (formatting standard)
OPS Bug medium value Fix: KB publish path never indexed into document_search (kb_search returned null)

After the Supabase migration kb_search returned {results:null} for every query despite 87 published docs — the post-publish search-index worker was never wired, so document_search had 0 rows. PR #22 added an optional docs.Indexer to docs.Service and review.Service so every direct-publish and review-approve path indexes, plus a kbd reindex-all backfill. Restores KB search end-to-end; high-impact because KB search was silently dead.

status shipped to prod 2026-05-23; reindex-all --only-missing repairs future drift
evidence kb-service PR #22 (commit d47f600), kbd reindex-all; MEMORY project_kb_publish_indexer_fix
dedup new
OPS Task medium value KB content seed: Notion bulk import + contemplative wiki migration; retire standalone wheel-wiki

Seeded the post-migration empty company corpus with 20 curated docs from a Notion LIFE HQ export via a new kbd notion-bulk-import (idempotent, system_scheduled actor), and migrated the contemplative wiki content (Bodhicharyāvatāra, 56 docs) into the KB as corpus=contemplative while retiring the standalone wheel-wiki-local app (Vercel project deleted, repo archived). Concluded Jira should NOT be ingested into the KB (use Atlassian Rovo MCP) — kbd jira-bootstrap/jira-sync flagged as dead code.

status shipped/done; jira-bootstrap & jira-sync dead code flagged for cleanup
evidence kb-service PR #15, 'Retire wheel-wiki ingest pipeline (O-5)'; MEMORY project_kb_notion_bulk_seed, project_wheel_wiki_retired
dedup subtask of OPS-91 (Curate & migrate existing notes into KB) — concrete execution; update OPS-91 status

Forward-looking — still to do / gated11

Built-locally-not-shipped, spec-only, or blocked on an external action. Many attach as subtasks/updates to existing OPS tickets rather than new tickets.

AMA-12 Agent Benchmarking v0.3 1

AMA Story high value Judge v0.3 rubric redesign — ship + re-baseline

Stage 1 of the judge v0.3 redesign is built and 24-agent-workflow-verified locally: 11 v0.3 expert rubrics on a byte-identical shared chassis, relevance removed end-to-end, unweighted ≥8 gate + 0.8 coverage quorum, tradition-RED out of gate, monitors + template-overlap detector, panel_version v0.3, chassis/calibration lints. PENDING explicit ship: merge → KB-publish rubrics → review-ui pull + railway up → prompts-pointer promotion → Stage 3 A/B re-grade of frozen v0.8.62–68 eval sets → ledger restart → Stage 4 effort/simplification A/Bs.

status Stage 1 local-only + verified; ship + re-baseline pending explicit go
evidence MEMORY project_judge_v03_redesign ('Stage 1 build COMPLETE, local-only'); spec ~/LIFE/specs/golden-prompt-tests/judges/judge-v0.3-redesign-spec.md + implementation-report.md
dedup new

AMA-13 Predicting Profiling v0.2 2

AMA Story high value Phase 0 outcome instrumentation for profiling (mood check-in + 7-day dropout labels) — NOT BUILT

The profiling spec's 'build-first, non-negotiable' outcome instrumentation still does not exist, so neither the harness nor the testbed can produce the binding objective (Δ log-loss on a wellbeing/dropout outcome). The audit's top recommendation is to ship Phase 0 now: a lightweight in-app mood/check-in (WHO-5/PSS-4 candidates) plus zero-build 7-day-dropout labels from existing telemetry, then re-point the binding objective at outcomes and demote reaction prediction to a diagnostic. life-app currently captures NO wellbeing outcome.

status spec-only, not built; the dependency-order blocker for the whole profiling program
evidence MEMORY project_profiling_audit_2026_06_10 ('ship Phase 0 outcome capture NOW'), project_life_llm_profiling ('life-app captures NO wellbeing outcome'); spec ~/LIFE/specs/llm-profiling-vs-psychometrics.md
dedup new — distinct from OPS-85 (telemetry policy)
AMA Story high value Predictive-profile harness (Phase A) — synthetic milestone built; real consented-data run gated

Offline Phase A harness built at life-app/app-v0.2/research/profile-harness (PR #68): on a leak-free AI-action→reaction event set, tests whether a user's own history beats the strongest cheap baseline and a matched-wrong profile. Synthetic backbone validated (signal→GO, null→null, leak→flagged; 34 tests). The real run is gated on three of Fionn's calls: authorized production reads of the life-app Postgres (sensitive mental-health data, classifier-blocked), a research_data_sharing=true consent cohort as lawful basis, and a human L3-label validation pass. Audit also requires freezing at the synthetic milestone and pre-registering a quantified GO bar before any real run.

status synthetic milestone done locally; real run gated on prod-read auth + consent cohort + human labels + pre-registered GO bar
evidence MEMORY project_predictive_profile_harness (PR #68); specs next-human-token-prediction-harness.md + predictive-profile-harness-v3-design.md
dedup the concrete harness vehicle for AMA-35 / AMA-20

AMA-27 Custom System Prompt Editor v1 1

AMA Story high value Reviewer system-prompt authoring & steering in the Data Lab — built locally, NOT shipped

Reviewer-owned Wisdom system-prompt authoring + AI steering inside the Data Lab branch view: per-reviewer evolving prompt forked from production, hand-edit or AI-steer with lab-context injection, content-addressed immutable system_prompts versions, per-candidate prompt pinning, diversity signal, and full export provenance/lineage. Built TDD (1477+939 passing), adversarially + thermo-nuclear reviewed, green locally on feat/reviewer-system-prompt-steering in both repos — but NOT pushed/deployed and the review-ui Supabase migration is NOT applied. Directly serves AMA-29 (custom prompt selection in review UI) and AMA-30 (prompt version history).

status local-only, built+green, awaiting explicit ship + migration apply
evidence review-ui PRs #113/#114/#115; spec ~/LIFE/specs/data-lab-system-prompt-steering.md + implementation-report ('NOT pushed / migration NOT applied'); branches life-app 81bec0d, review-ui 1abeebd; gated to datalab.steer_prompt perm
dedup subtask of AMA-27 (overlaps AMA-29/AMA-30)

OPS-13 AI Operations 2

OPS Task high value Unblock external KB ingestion: GCP Workspace org-policy + Drive push channel + Slack token

The KB auto-ingestion pipeline is built and /api/ingest/event is live, but real Drive→KB and Slack→KB flow is inert. Migrating the GCP service account under fionn@lifelabs.ai is blocked by the org policy iam.disableServiceAccountKeyCreation (Fionn must self-grant orgpolicy.policyAdmin via Console as Workspace super admin); no Drive changes.watch channel is registered (needs push-notification domain verification + ~7-day renewal cron); and SLACK_KNOWLEDGE_CHANNEL_ID / KB_SLACK_BOT_TOKEN are unset. There is also an open OpenTofu drift tripwire on the manually-created CF Access bypass app.

status gated on Workspace org-policy self-grant + Drive domain verification + Slack token mint
evidence MEMORY project_kb_ingest_cf_bypass_manual ('Migration to Workspace BLOCKED 2026-06-10', TF drift tripwire); runbook ~/LIFE/specs/kb-ingestion-external-setup.md
dedup subtask of OPS-73 (Drive intake) / OPS-78; distinct from OPS-74/75 (Zoom)
OPS Task high value GDPR DPIA + staff notice sign-off to activate telemetry staff-monitoring

The action-events telemetry pipeline is live but staff-monitoring activation is legally gated on publishing the staff notice. Claude drafted the DPIA and staff-notice for David Attwood (CFO) to finalize — the single open legal gate before telemetry can be used for staff visibility. Drafts live in life-hub/docs/agent-notes/.

status gated on David Attwood finalizing the DPIA + staff notice
evidence MEMORY project_hub_telemetry ('Activation gated on publishing the staff notice'); reference_life_research_ltd_entity (UK+EU staff → GDPR)
dedup subtask of OPS-85

OPS-14 Research Operations 2

OPS Task high value Zoom transcription ingress (S2S webhook + TIMELINE named-speaker join)

Automatic Zoom meeting ingestion via an account-level Server-to-Server OAuth app + recording.completed webhook into kbd, joining Zoom's TIMELINE artifact (real display names) with ASR timestamps to get named speakers without voice enrollment. Not built — blocked on purchasing a LIFE Zoom workspace (per-user OAuth on personal accounts is not viable; needs Marketplace review).

status gated on LIFE Zoom workspace purchase; webhook + TIMELINE name-join not built
evidence MEMORY project_hub_transcription_app ('Zoom ingress: webhook in kbd once the LIFE Zoom workspace exists'); project_transcription_stack_research (S2S OAuth + TIMELINE)
dedup subtask of OPS-74 (Automatic Zoom transcript and ingestion in KB)
OPS Task medium value Research Radar follow-ups: ranker model assignment, PubMed key, recall re-eval, pgvector path

Research Radar is live but several quality/ops items remain: the research-ranker role is NOT assigned in the hub Models Registry so ranking silently falls back to claude-haiku-4-5 (and drops items on malformed tool-JSON); the FTS-vs-pgvector shortlist decision deferred pgvector to v1.x and needs a re-run of kbd research-eval on accumulated real abstracts; an optional NCBI/PubMed key; and reaction re-poll for digest feedback stays deferred by design.

status gated: ranker registry assignment pending; recall re-eval pending corpus; pgvector deferred to v1.x
evidence MEMORY project_research_radar_shipped ('ran on claude-haiku-4-5 FALLBACK — research-ranker role NOT assigned'; 'NCBI key NOT done'); spec research-radar.md 'Still open' §1/§9
dedup new — forward-looking tail of the Research Radar story

OPS-83 Internal Slackbot 2

OPS Task medium value Finish golden-bot decommission (irreversible steps) — life-bot supersedes it

life-bot replaces the legacy golden-bot. Reversible cleanup is done (removed from hub config, repo archived, Railway service downed), but irreversible teardown needs explicit go: uninstall the golden-bot Slack app + archive #golden-bot, delete the model_assignments (golden-bot, function-call) row from life-hub-roles D1, and rotate goldenbot-api-key. Do NOT drop the results-api golden-bot-results D1 — life-bot still reads it. Pre-step: register the life-bot model role in the hub Models Registry (currently on BOT_MODEL fallback, /healthz/models roles={}).

status reversible cleanup done; irreversible Slack/D1/secret-rotation steps + life-bot registry registration gated on explicit go
evidence MEMORY project_prompt_registry_e2e_wiring ('golden-bot DECOMMISSIONED... IRREVERSIBLE steps pending explicit go'), project_life_bot_spec (life-bot role unassigned → BOT_MODEL fallback); life-hub #78
dedup subtask of OPS-83
OPS Task medium value Arm LIFE-bot native Slack Assistant layer (Agents & AI Apps)

The native Slack Assistant ('Agents & AI Apps') layer is built and merged but shipped dormant. Activating it requires enabling the Slack 'Agents & AI Apps' toggle in the app config and reinstalling the app to the workspace — a manual Slack-admin step Fionn must perform. Until then the bot only does classic @mention/DM and ingest.

status code shipped; gated on Slack workspace toggle + reinstall (manual admin)
evidence life-bot commits 'native Slack Assistant (Agents & AI Apps) layer' + adversarial-review fix 2026-06-06; MEMORY project_life_bot_spec ('dormant until the Slack Agents & AI Apps toggle + reinstall')
dedup subtask of OPS-83

NEW: SOME phenomenological-assessment benchmark 1

AMA Epic medium value SOME phenomenological-assessment dashboard (consciousness-evolution benchmark curation tool)

A detailed spec exists for a collaborative dashboard letting the core team build a phenomenological assessment benchmark: define each tradition's internal path/stages, map them to the 10-stage Wheel of Life, catalog multi-dimensional phenomenological markers per stage×tradition, upload+tag source material, visualize coverage gaps via heatmap, and eventually generate assessment criteria. The shipped SOME app is only the renamed eval surface; this much larger curation/research tool is NOT built. May map under AMA-11 (SOM wiki) or warrant its own epic.

status spec-only-not-built
evidence Spec ~/LIFE/specs/stages-of-meditation-eval-dashboard-spec.md (37KB, 2026-06-04); current app commits show only rename + auth migration
dedup overlaps AMA-11 SOM wiki v0.2

Deliberately skipped11

Folded into a parent, duplicates an existing ticket, or personal tooling — kept out to keep the set high-signal.