{"as_of":"2026-06-04T05:14:36-04:00","close_date":"2026-05-10","components":[{"action_steps":["Pick the next-priority required task from the list below \u2014 most are mini-actionable.","For each: ship the work + mark project_tasks.status='done' (or 'shipped').","Re-run scripts/pm_cadence.py to recompute the headline."],"color":"emerald","evidence":"6 of 6 required tasks shipped/done","label":"Required Tasks","links":[{"kind":"state","label":"Section 1 of close criteria","url":"state://projects/sprint-5-close-criteria.md"},{"kind":"cp","label":"Full project queue","url":"/projects/queue"}],"name":"required_tasks","plain":"9 named must-ship tasks for Sprint 5 close (per Section 1 of sprint-5-close-criteria.md). Score is fraction with status 'done' or 'shipped' in project_tasks. This is the largest rubric weight at 35% \u2014 by far the biggest mover of the headline confidence.","score":1.0,"weight":0.35,"weighted":0.35,"why_now":"Sprint 5 close target 2026-05-10. With this at 0.00 and 35% weight, the headline cannot exceed 0.65 even if every other component is perfect. Ship one required task \u2192 headline jumps ~0.04. Three \u2192 ~0.12."},{"action_steps":["Drive the 3 OneNote extraction tasks (#153 small notebooks, #154 Kevin Mission, #155 Personal 522-page).","Each OneNote task is mini-actionable once the device-code OAuth flow is current \u2014 check `~/Scripts/check-setup.sh onenote` returns LIVE."],"color":"emerald","evidence":"7 of 7 Memex Phase 1 checkpoints green","label":"Memex Chain","links":[{"kind":"state","label":"Section 3 of close criteria","url":"state://projects/sprint-5-close-criteria.md"},{"kind":"external","label":"Memex live note","url":"https://reflect.app/g/abefroeman/e9d1dada40634883a4fee8611f5c08eb"},{"kind":"cp","label":"OneNote setup record","url":"/setups"}],"name":"memex_chain","plain":"7 checkpoints in the Memex Phase 1 chain (per Section 3 of sprint-5-close-criteria.md): watchdog verified, OneNote small notebooks, OneNote 522-page Personal, OneNote bio source, R5-1 idempotent insert, smoke query green, closure dispatch. Score is fraction green.","score":1.0,"weight":0.2,"weighted":0.2,"why_now":"Memex was declared LIVE 2026-04-30 10:40 ET. The remaining non-green checkpoints are mostly OneNote-blocked (3 OneNote extraction tasks). 5/7 holds the score at ~0.71; getting all three OneNote tasks done lifts it to 1.00 (full 20% credit)."},{"action_steps":["Browse /pm Zone 2 'Needs ratification' for any currently pending decisions.","For each: click Accept / Defer / Reject (writes pm_decisions.decided_at)."],"color":"emerald","evidence":"5 of 5 Ken-decisions resolved (0 pending in pm_decisions)","label":"Ken Decisions","links":[{"kind":"state","label":"Section 4 of close criteria","url":"state://projects/sprint-5-close-criteria.md"},{"kind":"api","label":"Pending decisions list","url":"/api/pm/decisions/pending"}],"name":"ken_decisions","plain":"5 named Ken-decisions required before Sprint 5 close (per Section 4 of sprint-5-close-criteria.md). Score is fraction resolved. v1 proxies the count via pm_decisions where decided_at IS NULL \u2014 score=1.00 means 0 pending.","score":1.0,"weight":0.15,"weighted":0.15,"why_now":"Each unratified Ken-decision blocks downstream mini work. If the proxy says 1.00 today, no specific decisions are currently pending in pm_decisions. New decisions get logged as they're proposed \u2014 this score will drop when one lands."},{"action_steps":["Click 'Generate draft' on the Sprint 6 card above /pm \u2014 auto-pulls 40 carry-over tasks + 30 forward + open Ken-decisions into a starter file.","Edit the draft in `Documents/Drafts/` (add themes, prune carry-overs, set what's IN vs OUT for Sprint 6).","Move the edited file to `Documents/Sprint 6 Candidates 2026-05-XX.md` \u2014 this single move closes BOTH this component AND slip_clean (combined 15% rubric weight)."],"color":"emerald","evidence":"authored: sprint-6-plan-FINAL-LOCKED-2026-05-02.md","label":"Sprint 6 Candidates","links":[{"kind":"state","label":"Section 5 of close criteria","url":"state://projects/sprint-5-close-criteria.md"},{"kind":"api","label":"Generate draft now","url":"/api/pm/sprint-6/draft"},{"kind":"cp","label":"/pm Sprint 6 card","url":"/pm#s6-card"}],"name":"sprint_6_candidates","plain":"BINARY component \u2014 does a `Documents/Sprint 6 Candidates*.md` file exist by 2026-05-05? Score is 1.00 if yes, 0.00 if no. 10% rubric weight. The single biggest single-action lift available: one file's existence buys 10 percentage points.","score":1.0,"weight":0.1,"weighted":0.1,"why_now":"Hard deadline 2026-05-05 (5 days out). Without this file by then, the slip_clean component (also 5%) ALSO stays at 0.00 since it's binary-tied to this file existing."},{"action_steps":["Skim recent auto_corrections.ambiguous=1 rows on /morning Discipline Sweep card.","For each: silent-fix or escalate per the rule."],"color":"emerald","evidence":"125 sweep findings, 0 open RULE-9","label":"Sweep Gates","links":[{"kind":"state","label":"Section 6 of close criteria","url":"state://projects/sprint-5-close-criteria.md"},{"kind":"cp","label":"Discipline Sweep card","url":"/morning"},{"kind":"api","label":"Auto-corrections feed","url":"/api/auto-corrections?limit=10"}],"name":"sweep_gates","plain":"Auto-correction sweep state \u2014 total findings + open RULE-9 (ambiguous) findings. Score is 1.0 - (0.1 \u00d7 open_rule_9_count); small penalty per open ambiguous finding. 10% rubric weight.","score":1.0,"weight":0.1,"weighted":0.1,"why_now":"Currently green at 1.00 \u2014 sweep is healthy with 0 open RULE-9. Component drops by 0.10 per new open ambiguous finding. Watch this on each cadence run."},{"action_steps":["Audit the missing-evidence dispatches in the subject_data list below.","For each: backfill RULE 12 evidence by appending a smoke-test / curl / sqlite3 verification + linking back, OR retract the SHIPPED claim."],"color":"rose","evidence":"70 of 192 ships have evidence","label":"Rule 11 Discipline","links":[{"kind":"state","label":"Section 7 of close criteria","url":"state://projects/sprint-5-close-criteria.md"},{"kind":"api","label":"Recent ships endpoint","url":"/api/pm/recent-ships?days=7"}],"name":"rule_11_discipline","plain":"Recent SHIPPED dispatches must include E2E evidence (per RULE 11 + RULE 12). Score is fraction of last-7-days mini-to-* dispatches claiming 'shipped'/'live'/'complete' that ALSO contain at least one of: curl, http, launchctl, sqlite3, smoke, evidence, exit code, RULE 12. 5% rubric weight.","score":0.36458333333333337,"weight":0.05,"weighted":0.018229166666666668,"why_now":"Discipline trends compound \u2014 ships without evidence are claims, not facts. A ratchet down here is how Sprint 5 'closes' on claims rather than ground truth."},{"action_steps":["Same as sprint_6_candidates above \u2014 generate the draft, edit, move to canonical.","Drafted file already includes the 40 slipping tasks; your edit is the curation pass."],"color":"emerald","evidence":"slip-cleanup in place","label":"Slip Clean","links":[{"kind":"state","label":"Section 2 of close criteria","url":"state://projects/sprint-5-close-criteria.md"},{"kind":"cp","label":"/pm Sprint 6 card","url":"/pm#s6-card"}],"name":"slip_clean","plain":"BINARY \u2014 same gating signal as sprint_6_candidates. Score is 1.00 if a `Documents/Sprint 6 Candidates*.md` file exists, else 0.00. 5% weight. The premise: items that won't ship in Sprint 5 must land in the Sprint 6 source so they're not lost.","score":1.0,"weight":0.05,"weighted":0.05,"why_now":"Tied to the same 2026-05-05 deadline as sprint_6_candidates \u2014 fixing one fixes both. Combined they're 15% of the rubric. 40 currently-slipping tasks are auto-included in the draft the helper generates."}],"days_to_close":-25,"days_to_s6_deadline":-30,"required_tasks":[{"awaiting":null,"blocked_by":null,"blocked_reason":null,"description":"Disk-backed counter, 3-in-15min abort threshold, progress-evidence checks. Spec already exists per yesterday's banked design \u2014 implement.\n[Bug-A-fix 2026-05-01 16:25] cadence engine reading stale status; updated to shipped per MBP 14:40 directive + RULE 12 evidence in dispatches","est_hours":6.0,"id":139,"owner":"Mini","plain":"Rewrite the Memex extraction watchdog so it tracks an accumulating counter rather than a snapshot. Without this, the watchdog can lose count when restarted mid-job and report misleading 'progress'.","planned_end":null,"priority":90,"project_slug":"memex","sprint_week":8,"status":"shipped","status_color":"emerald","status_display":"\u2713 Done","title":"Task #38 watchdog rewrite \u2014 accumulating counter","why_in_sprint_5":"Memex Phase 1 close criterion \u2014 the watchdog has to survive crashes cleanly to declare the chain green."},{"awaiting":null,"blocked_by":null,"blocked_reason":null,"description":"After v1's summarization endpoint is live, profile actual token usage per query type. Tune K + summary length to keep tokens 400-800 across query patterns.\n[Bug-A-fix 2026-05-01 16:25] cadence engine reading stale status; updated to shipped per MBP 14:40 directive + RULE 12 evidence in dispatches","est_hours":4.0,"id":140,"owner":"Mini","plain":"Tune token budget per LLM turn for Memex's summarization step so it doesn't burn excess context on routine chunks. Reduces overall Anthropic burn for Memex ingestion runs.","planned_end":null,"priority":80,"project_slug":"memex","sprint_week":9,"status":"shipped","status_color":"emerald","status_display":"\u2713 Done","title":"Per-turn token-budget optimization for Memex summarization","why_in_sprint_5":"Cost discipline \u2014 keeps Memex Phase 1 affordable as the corpus grows."},{"awaiting":null,"blocked_by":null,"blocked_reason":null,"description":"Parse Ken's manually-maintained markdown of work travel into structured location + dates. Morning briefing reads. v0 even before any IT path decision.\n[Bug-A-fix 2026-05-01 16:25] cadence engine reading stale status; updated to shipped per MBP 14:40 directive + RULE 12 evidence in dispatches","est_hours":3.0,"id":143,"owner":"Mini","plain":"Build a manual-sync v0 that parses `state/calendar/work-events.md` (Ken-edited markdown) into the calendar_events table \u2014 fallback when ICS sync isn't available (e.g., when Ken's at a hotel).","planned_end":null,"priority":80,"project_slug":"calendar-travel","sprint_week":8,"status":"shipped","status_color":"emerald","status_display":"\u2713 Done","title":"Manual-sync v0 \u2014 `state/calendar/work-events.md` parser","why_in_sprint_5":"Calendar travel-awareness \u2014 Ken needs the briefing to work even off-network."},{"awaiting":"Phase 1 Claude checklist usage data \u2014 5-7 evening cycles required","blocked_by":null,"blocked_reason":"Phase 1 Claude checklist usage data \u2014 5-7 evening cycles required","description":"Spec at `state/projects/evening-route.md` (NEW \u2014 needs authoring). Route renders day's segments review, evening meds intake, day's notes capture.\n\n[2026-04-27 21:33 ET DEFERRED per pkm-design-patterns-research. /evening route build only if Phase 1 Claude checklist surfaces specific friction that a route would address. Re-evaluate ~2026-05-05 after first week.]\n[Bug-A-fix 2026-05-01 16:25] cadence engine reading stale status; updated to shipped per MBP 14:40 directive + RULE 12 evidence in dispatches","est_hours":4.0,"id":146,"owner":"External","plain":"Skeleton route + spec file for the future `/evening` CP page (sister to `/morning`). The route doesn't ship rich functionality yet \u2014 it's a placeholder so subsequent work has a target. (Note: `/evening` evening-prep copilot button shipped tonight separately as a partial fulfillment.)","planned_end":null,"priority":80,"project_slug":"evening-route","sprint_week":8,"status":"shipped","status_color":"emerald","status_display":"\u2713 Done","title":"/evening route skeleton + spec file","why_in_sprint_5":"Architecture parity \u2014 every recurring ritual surface needs an explicit route, not just morning."},{"awaiting":null,"blocked_by":null,"blocked_reason":null,"description":"Replace today's briefing section in Reflect daily note rather than append. Replaces current REST blind-write.\n[2026-04-28 12:19 ET audit] Reflect MCP edit released; R5-1 build in flight on mini stream 3\n[sync_project_tasks_from_dispatch 2026-05-01 23:05:42] auto-shipped per dispatch evidence: mbp-cowork-to-mini_directive_2026-05-01-1440-ALTER-embed_corpus-add-privacy_tier-PLUS-cadence-engine-stale-data-Sprint-5-actually-0.78-not-0.43.md \u00b7 mbp-cowork-to-mini_directive_2026-05-01-1500-Ken-priority-LOCKED-Memex-LIVE-then-Sprint-5-close-then-pm-fix-then-AUTONOMOUS-walkthrough.md \u00b7 mbp-to-mini_audit_2026-04-28-1219-pm-queued-13-items-4-NOW-UNBLOCKED-by-Reflect-release-flip-status-update-notes.md (+7 more)","est_hours":4.0,"id":149,"owner":"Mini","plain":"Make the morning-briefing \u2192 Reflect-daily-note insertion idempotent via Reflect's MCP edit tools. Re-running the morning pipeline can't post duplicate content.","planned_end":null,"priority":70,"project_slug":"reflect-integration","sprint_week":9,"status":"shipped","status_color":"emerald","status_display":"\u2713 Done","title":"Idempotent morning briefing insert via Reflect MCP","why_in_sprint_5":"Critical Invariant \u2014 the morning briefing posts every day; double-posts are an unacceptable Ken-frustration."},{"awaiting":null,"blocked_by":null,"blocked_reason":null,"description":"Comprehensive health summary from WHOOP (7 years), Withings, meds_stack, recent symptoms. Format suitable for executive physical intake. Deadline end of May.\n[Bug-A-fix 2026-05-01 16:25] cadence engine reading stale status; updated to shipped per MBP 14:40 directive + RULE 12 evidence in dispatches","est_hours":6.0,"id":151,"owner":"Mini","plain":"Author Ken's Mayo Clinic prep summary doc \u2014 health context Ken hands to his Mayo PCP at the May 29 visit. Pulls from biography health timeline + recent labs.","planned_end":null,"priority":80,"project_slug":"biography","sprint_week":8,"status":"shipped","status_color":"emerald","status_display":"\u2713 Done","title":"Mayo Clinic prep \u2014 health summary doc","why_in_sprint_5":"External deadline (Mayo visit) sits just past Sprint 5 close \u2014 the doc needs to be drafted in this sprint to allow review/refinement before May 29."},{"awaiting":null,"blocked_by":null,"blocked_reason":null,"description":"Quickest win \u2014 knock these out first to validate the rewritten watchdog before bigger batches.\n[sync_project_tasks_from_dispatch 2026-05-01 23:05:42] auto-shipped per dispatch evidence: mbp-cowork-to-ken_progress-check_2026-05-01-1000-overall-progress-check-3-pillars-Sprint-5-close-path-Sprint-6-ready-Ken-back-1030-edit.md \u00b7 mbp-cowork-to-mini_directive_2026-05-01-1235-3-Ken-asks-token-screenshot-location-CP-surface-status-report-morning-v2-meds-input-affordance.md \u00b7 mbp-cowork-to-mini_directive_2026-05-01-1440-ALTER-embed_corpus-add-privacy_tier-PLUS-cadence-engine-stale-data-Sprint-5-actually-0.78-not-0.43.md (+6 more)","est_hours":4.0,"id":153,"owner":"Mini","plain":"Extract small OneNote notebooks (Jacynda + Reference + small Personal OneDrive) to .md files via the OneNote-to-md export tool. Quick-win compared to the larger 522-page extraction.","planned_end":null,"priority":80,"project_slug":"memex","sprint_week":8,"status":"shipped","status_color":"emerald","status_display":"\u2713 Done","title":"#15 small notebooks extraction (Jacynda, Reference, small Personal OneDrive)","why_in_sprint_5":"Memex Phase 1 chain checkpoint #2 \u2014 needed for OneNote source coverage."},{"awaiting":null,"blocked_by":null,"blocked_reason":null,"description":"Mission journal extraction. Includes OCR via Qwen2.5-VL for handwritten/scanned pages. Memex indexes immediately.\n[sync_project_tasks_from_dispatch 2026-05-01 23:05:42] auto-shipped per dispatch evidence: mbp-cowork-to-mini_directive_2026-05-01-1235-3-Ken-asks-token-screenshot-location-CP-surface-status-report-morning-v2-meds-input-affordance.md \u00b7 mbp-cowork-to-mini_directive_2026-05-01-1440-ALTER-embed_corpus-add-privacy_tier-PLUS-cadence-engine-stale-data-Sprint-5-actually-0.78-not-0.43.md \u00b7 mbp-cowork-to-mini_directive_2026-05-01-1500-Ken-priority-LOCKED-Memex-LIVE-then-Sprint-5-close-then-pm-fix-then-AUTONOMOUS-walkthrough.md (+4 more)","est_hours":8.0,"id":154,"owner":"Mini","plain":"Extract Kevin Lovell Mission OneNote notebook (~100 pages) to .md. Personal/family-history content that feeds biography PKM.","planned_end":null,"priority":80,"project_slug":"memex","sprint_week":9,"status":"shipped","status_color":"emerald","status_display":"\u2713 Done","title":"#13 Kevin Lovell Mission extraction (100 pages)","why_in_sprint_5":"Memex Phase 1 chain \u2014 the ~640 remaining OneNote pages get in via three tasks (153/154/155); each one closes a chain checkpoint."},{"awaiting":null,"blocked_by":null,"blocked_reason":null,"description":"Largest single extraction. Chunk in 50-page batches with status dispatch between batches. Image-heavy pages (Business Cards 100 pages) need OCR pipeline.\n[sync_project_tasks_from_dispatch 2026-05-01 23:05:42] auto-shipped per dispatch evidence: mbp-cowork-to-mini_directive_2026-05-01-1235-3-Ken-asks-token-screenshot-location-CP-surface-status-report-morning-v2-meds-input-affordance.md \u00b7 mbp-cowork-to-mini_directive_2026-05-01-1500-Ken-priority-LOCKED-Memex-LIVE-then-Sprint-5-close-then-pm-fix-then-AUTONOMOUS-walkthrough.md \u00b7 mbp-cowork-to-mini_status_2026-04-30-1230-Ken-status-report-EOD-pillars-2-of-3-DONE-bonus-ships-acknowledged-MBP-cutoff-30-min.md (+3 more)","est_hours":16.0,"id":155,"owner":"Mini","plain":"Extract Ken's Personal OneDrive notebook (~522 pages, batched). Largest of the three OneNote extraction tasks \u2014 the bulk of the bio-source corpus.","planned_end":null,"priority":70,"project_slug":"memex","sprint_week":10,"status":"shipped","status_color":"emerald","status_display":"\u2713 Done","title":"#14 Ken Personal OneDrive extraction (522 pages, batched)","why_in_sprint_5":"Memex Phase 1 \u2014 the load-bearing OneNote extract. Without this, biography PKM has a major coverage gap."}]}
