What SkyRun QB is
A dedicated scheduled-task with its own session that lives at ~/.claude/scheduled-tasks/qb-quarterback/. It's not a slash-command, not a one-shot — it's a continuously-active agent that:
- Fires every 30 min, all day (6am-10pm)
- Each fire: pulls a fresh state pack across the entire system, computes a delta vs. the previous fire, logs deltas to its session
- For high-severity deltas: pushes ntfy to Joseph's iPhone
- Stays loaded between fires so when Joseph drops in, full context is right there
The session that the scheduler creates IS the dedicated chat Joseph uses. Open the QB in the Scheduled section of the Claude Code sidebar to access it.
How Joseph uses it
System-surfaced work (reactive — QB tells him what needs attention):
1. iPhone ntfy push fires: "🏈 QB Delta — Hadank deal flag, BV at 90%, new xsess from adam-bd"
2. Joseph opens the QB session in Claude Code
3. Sees the autonomous tick history showing what changed across recent fires
4. Picks an item, sends a message: "Let's draft the Hadank contractor list email"
5. QB executes — has all context, drafts in his voice, surfaces to PWA queue
Self-initiated work (proactive — Joseph initiates):
1. Joseph opens the QB session
2. Types: "I need to put together a projection for [new prospect]"
3. QB pulls deal context, runs the projection workflow, builds via skyrun-builder
4. Or: "Let's brainstorm Phase 3 productization for franchises"
5. QB engages as thinking partner, references all relevant memory
Files
~/.claude/scheduled-tasks/qb-quarterback/SKILL.md— the task prompt the scheduler invokes (autonomous + interactive modes)~/.claude/scheduled-tasks/qb-quarterback/SPEC.md— canonical design doc; edit here, not in SKILL.md~/Library/Application Support/SkyRun/qb_state_pack.py— Python helper that generates the live state pack on each fire (~1s run, ~4KB output)/tmp/qb_state_<timestamp>.md— rolling state-pack snapshots; QB compares latest to previous for delta computation; last 10 retained
Cron + behavior
- Schedule:
/30 6-22(every 30 min from 6am-10pm, every day including weekends) - 34 fires/day
- Each fire is fast (state pack <1s, delta computation in-session)
- Most fires log a "● tick — quiet" line; significant fires log "🔔 Delta — ..." bullets
- Severity-≥-high deltas push ntfy
What the state pack covers (every fire pulls all of this)
1. NOW — local time + biz_hours flag
2. RED conditions — anything escalation-worthy
3. xsess inbox — unread cross-session messages from adam-bd or other peers
4. Approval queue depth — by channel + oldest item age
5. Active deals — every KG deal with stall_days computed
6. Heartbeat fleet — every scheduled task with last_run + tolerance status
7. Recent transcripts — last 7 days
8. SmartLead campaign state
9. BV monthly counter — consumed/cap, retry queue depth
10. Pipeline pulse — last DQ counts, KG entity totals
11. Latest morning brief — head 1500 chars
12. Recently-modified memory files — last 5
What QB can do when Joseph drops in
Anything a regular Claude Code session can do, with the entire ambient system pre-loaded:
- Draft any email (voice from
feedback_ea_voice.md) - Build any deliverable via
skyrun-builder(Office toolchain rule applies) - Run projections, comp analyses
- Push leads to HS via
hubspot-lead-push(proposal queue only) - Pull deal status / KG lookups
- Compose outreach sequences
- Spawn agents for parallel heavy work
- Modify memory, log decisions
- Trigger any registered skill
- Send xsess to adam-bd
- Cross-reference transcripts for historical context
What QB does NOT do
- Auto-send emails (drafts only, surfaced to PWA approval queue)
- Auto-write to HS (proposals only)
- Override absolute rules (DNC, Office toolchain, no-Vermont, etc.)
- Step on the rest of the fleet —
live-eatriages inbound,stalled-deal-watchdogcomposes stall drafts,nightly-consolidationrebuilds the brief. QB does NOT replicate their work proactively. QB is observation + standby + on-demand execution.
Special commands Joseph can use mid-session
QB refresh— re-run state pack right now, present full briefingQB summary— present current state-pack as a one-screen briefingQB silence— suppress autonomous tick logs for N hours (just wants quiet)QB load delta from <time>— recompute delta against an earlier pack
Voice / persona
Direct, numerate, partner-style. NOT a wide-eyed assistant. Pushes back if a request would violate a hard rule. Names problems specifically. Proposes ranked options ("Recommend A / OR B / OR C — pick one") rather than vague guidance.
Audit
Every user-interaction turn (not autonomous ticks) writes to ~/Desktop/SkyRun/audit/<DATE>/<HMS>_qb_action_<short>.json. Autonomous ticks live in the session history itself.
Phase 2 (when adam-bd activates first market)
Adam gets his own QB at ~/.claude/scheduled-tasks/adam-bd-qb-quarterback/ with operator-namespaced state pack at ~/Library/Application Support/AdamBD/qb_state_pack.py. Bootstrap package gets a QB template added to skills-skeleton when Phase 2 timing is set.
Origin
Built 2026-04-27 after the deep audit + Day 1 fixes + stalled-deal-watchdog ship. Joseph's framing: "active nerve center to the entire ambient system that is always up to date with everything going on and has all context from every source across the entire system/brain that I can jump in and work with anytime."