pulse
📘 Playbook📋 Forms
✓ Data verified· as of Jun 12, 5:37 AM

Roadmap

Single source of truth · parsed from PULSE_Roadmap_LIVE.md · last updated 2026-05-04 · built May 27, 5:52 PM
Operating posture
FHG operational takeover is official.
Phase 1 Deliverables — 4/7 shipped
Success: shipped 100 · partial 60 · pending 30 (v1 heuristic)
Avg score
83
Shipped
4
In flight
3
Pending
0
#1
LIVE
Routines module (/admin/routines)
15 leadership routines, click-to-complete, lazy run creation, CT scheduling
100
#2
LIVE
Updates module (/admin/updates)
Daily/weekly/monthly tabs, Kevin-only entry form
100
#3
LIVE
PM Agent Gate 3 Phase 1
Endpoints + manual UI + Gmail rewire + Avid auto-close demo + /dashboard/pm ViewId
100
#4
IN FLIGHT
Observability module
tracedCall() + D1 plumbing live. CoVe wired to council-runner in observation mode. /admin/observability dashboard still pending
60
#5
IN FLIGHT
Injection Defense
Sandbox + pattern classifier + real CoVe verifier (gpt-4.1). Narrative-guard sanitize wired. PULSE_COVE_ENFORCE=1 pending observation
60
#6
IN FLIGHT
Data Integrity Guard
Source-of-truth rule live. Blackburn baseline seeded. BFC sheet sync blocked on Google Admin scope
60
#7
LIVE
Card UI shared spec (docs/card-spec.md)
4-zone card API used by routines, updates, PM Agent
100
Building Now — This Week
Theme: Day 1 as Freedom. Team onboarding live, roadmap tracker goes live (D1-backed), close open project roadblocks, Q2 plan Week 1 kickoff.
📌 CARRY-FORWARD — EOD Mon May 4 → resume Tue May 5
  • Review + send budget email draft — Gmail draft r-3681144567022881639 to Cameron/Alan/Chelsey, cc Kassidy. Subject: "2026 Budget — new consolidated template ready, please fill". Already drafted with per-person ownership of GL ranges; Kevin reviews + sends.
  • Review + merge PR #12 — sync-bfc-sheets parses consolidated layout + plist sets BFC_BUDGET_2026_SHEET_ID + create-budget-sheet-2026.js auto-places into Shared Drive. Gate 2 PASS. Note: includes one unrelated commit d579280 (Phase 2 Reports scaffold) that came along on rebase — merge as-is or split that commit before merging.
  • Post-merge: launchctl reload on Mac Mini — copy plist to ~/Library/LaunchAgents/, unload + load to pick up new BFC_BUDGET_2026_SHEET_ID env var. Otherwise tomorrow's 00:30 CT sync runs without the budget Sheet ID.
  • Investor packet generator — build brief — Kevin got off investor call today, sees big leverage. Two open Qs before sketch: (a) full active investor list + where it lives (D1 / Cameron's CRM / contact sheet), (b) cycle (quarterly vs monthly) + which existing file in Investor Reports 3-28-26/ represents the format to standardize on. Drive scope unlock today (drive.file + drive.metadata.readonly) makes per-investor folder routing + pre-shared multi-doc atomic delivery now possible.
  • DWD scopes added to pulse-email-scanner@pulse-auth-491012.iam.gserviceaccount.com (Client ID 107396214728401193893): drive.file + drive.metadata.readonly. Any future PULSE script can now create files, search Shared Drive folders by name, move files into them, and share with leadership — no manual touch. Pattern lives in scripts/create-budget-sheet-2026.js lines ~362–417 (folder search → move → share).
Thu May 1 — FHG Takeover Day
  • Leadership training program auto-starts (28-day onboarding, 7 leaders)
  • Roadmap tracker wired to D1 (replaces mock data on /admin/roadmap-preview → /admin/projects)
  • Update narrative roadmap (this file — 11 days stale)
  • Inbox/PM/Council architecture design awaiting Kevin sign-off (8 open decisions)
Fri May 2
  • Q2 Plan Week 1 items: Morning Huddle prototype, Leadership Scorecard design
  • Verify training program Day 1 emails + Slack tips sent correctly
  • Close open autopilot briefs (5 ready, 4 draft on Drive)
Sat-Sun — Buffer
    Mon May 5 — Q2 Kickoff
    • Morning Huddle v1 live
    • Resolve Kassidy's 1-year goal, Alan's personal priority (open Q2 plan questions)
    • Phones: FDCPA compliance review status check (Travis)
    Tue-Wed May 6-7
    • Leadership Scorecard D1 schema + API
    • RM license field capabilities check (Q2 plan dependency)
    • Routines expansion scoping
    Thu May 7 — Refacing day (in flight)
    • Meetings tab fixes — save persistence (useEffect draft-stomp on sibling save), WWW slot pre-fill wiring, meeting-card date rendering, canonical Petra agenda subtexts on all 5 weekly boxes, empty-correction skip in override read loop (lets users revert to live by saving empty)
    • Sidebar refactor (lib/roles.ts) — TEAM_NAV (6 items: Inbox/Meetings/Petra/Operations/Maintenance/Reports), OWNER_NAV (Kevin + Cameron get +Home +Admin), Petra coach-admin retains broad nav. NAV_ITEMS coach.label → 'Petra'.
    • Inbox-first landing (middleware.ts) — Chelsey/Kassidy/Dionna/Travis/Krisha → Inbox, Cameron/Alan → Reports, Kevin → Home, Petra → Coach.
    • Admin sub-nav extended — Council, Roadmap, Finance, Bookkeeping, CapEx, Compliance, Investments now reachable from /dashboard/admin strip.
    • 8 PULSE Coach prompt templates at next/src/lib/coach-prompts/{role}.md — specs only, no cron yet. Single Sonnet 4.6 daily; Opus 4.7 on quarterly + hard delegation.
    • Finance protocol routines — 10 rows in D1 migration (finance-protocol-routines-2026-05-07.sql + rollback). 5 daily/weekly fire on existing engine; 5 monthly use D-2/D-1/D0/D+1/D+3 close-relative encoding (engine extension queued).
    • + 7 more
    Key Dates — Next 14 Days
    May 1FHG operational takeover (formal)✅ TODAY — BFC agreement ends
    May 1Leadership training program starts✅ Auto-started — 28-day program
    May 5Q2 Plan Week 1 kickoff🟡 Monday
    TBDPayroll migration (OneDigital PEO)Final handoff item
    Jul 15Q2 Plan ends🟡 11 weeks
    1.
    [Operations]
    Phone system rollout to remaining 28 communities (after Apr 21-22 pilot)
    2.
    [Marketing]
    Marketing agent for Kevin (fills leadership seat gap)
    3.
    [CapEx]
    CAPEX agent for Alan (fills leadership seat gap)
    4.
    [Maintenance]
    Work Orders + Receipts — once RM permissions ticket clears
    5.
    [Finance]
    RM Loans + Budgets — awaiting Sastry at RM support (403)
    6.
    [Platform]
    Home KPIs wired to live D1 data
    7.
    [Platform]
    Inbox Phase 3 — stop dual-write (follows once V2 soaks ≥3 days clean)
    8.
    [Platform]
    pulse@ reply feature (gmail.send scope + reply logic)
    9.
    [Leadership]
    Onboarding answers Phase 2
    10.
    [Quality]
    Response-monitor tracker (last P1 gap)
    11.
    [Quality]
    P2 gap analysis — 13 remaining
    12.
    [Quality]
    P3 gap analysis — 12 remaining
    13.
    [Infra]
    Single-machine ownership for scheduled work (Level 2 — this week, ~2.5 hr) — (a) Disable iCloud Documents+Desktop sync on BOTH machines via System Settings → Apple ID → iCloud → iCloud Drive → Options → uncheck "Desktop & Documents Folders" → choose "Keep a Copy". This is the root cause of ~/Documents/pulse being silently iCloud-synced between laptop and Mac Mini, producing 329 duplicate node_modules + sync-conflict * 2* files. (b) Delete laptop's ~/Documents/pulse ghost copy (only after iCloud unlink confirmed — otherwise propagates to Mac Mini). Laptop primary repo stays at ~/pulse. (c) Mac Mini owns ALL com.freedomgp.pulse.* launchd jobs; launchctl unload every PULSE plist on the laptop; laptop becomes editor-only per original CLAUDE.md rule. (d) Mac Mini hourly git fetch && git pull --ff-only origin main || slack 'drift detected'. (e) Add [[ $(hostname) == "Kevins-Mac-mini.local" ]] || exit 1 guard to top of every agent script. (f) Nightly drift Slack alert (HEAD vs git ls-remote). _Why:_ May 4 audit found Mac Mini 265 commits behind, dirty tree, gate-blocked Builder burning ~$1-3/night on runs that can't deploy. Root cause: iCloud Documents sync was silently active (despite belief it was nuked) + both machines running identical launchd plists + no drift detection.
    14.
    [Infra]
    Move scheduled agents off Mac Mini to GitHub Actions / CF Workers Cron (Level 3 — deferred, ~8 hr) — kills the "which machine" question entirely. Mac Mini stays only for things that need a local process (RM API session-bound calls). Adds free reproducibility (CI logs, version-pinned env). _Trigger to revisit:_ Level 2 holds up for 30 days OR we add 3+ new scheduled agents OR Mac Mini hardware fails.
    15.
    [Platform]
    Inbox fetchInbox AbortController — GPT-4o review flagged race condition: rapid Just-me/Everyone toggling or rapid role-switch can apply a stale fetch result on top of a fresh one. Not normal use, but a 30-min hardening pass. Wrap fetch in AbortController + request counter; latest wins.
    16.
    [Quality]
    Auto-fix agent — was dead 2026-05-14 → 2026-05-26 (plist ProgramArguments resolved to MODULE_NOT_FOUND for 12 days; /tmp/pulse-logs-autofix-agent-error.log last failure 2026-05-26 13:47). Restored as of 2026-05-27 09:09 — all 4 sources polling, returning 0 candidates. _Three follow-ups Kevin queued 2026-05-27:_ (a) Backfill the outage window — re-query Sentry/Langfuse/pulse_issues/GH Actions for 2026-05-14 → 2026-05-26 and re-feed missed candidates (currently nothing in pulse_autofixes for that range). (b) Validate Sentry filter isn't too narrow — current scope is TypeError/ReferenceError/SyntaxError/RangeError/AssertionError in scripts/ or next/src/ (per autofix_phase2_shipped.md); confirm against actual Sentry issue list before extending quarantine past 2026-05-21. (c) Surface liveness on /admin/auto-fixes — header strip showing "Last successful poll: <ts> · last 4 sources: sentry 0 / d1 0 / gh 0 / langfuse 0" so dormancy stops looking like brokenness. Add a "stale > 30min" red banner. _Effort:_ ~1 hr (a) + ~30 min (b) + ~45 min (c).
    17.
    [Quality]
    Ingestion-side department/community tagging — May 27 backfill closed the historical hole, but new pm_tasks from meetings and manual sources still arrive untagged. Harden the ingestors (gmail, meetings, manual, slack) to populate department from owner default + title keywords and community_id from title regex at write time. Reuse the heuristics from scripts/backfill-pm-tasks-tags-2026-05-27.mjs. _Effort:_ ~2 hr. _Trigger to revisit:_ untagged % climbs back above 30% on a sample of newly-created tasks.
    Editing the roadmap
    This page is a read view. To add an idea, move something to On Deck, or mark shipped, edit 01 - Corporate/Pulse/PULSE_Roadmap_LIVE.md from Claude Code, the Claude mobile app, or Cowork desktop. Changes land the next build.

    pulse Assistant

    Click any community to open its property overview.