refactor(captain): off deleted dispatch.sh → PushNotification + GitHub Issues + Slack MCP#114
Merged
Merged
Conversation
…b Issues + Slack MCP PR #111 hard-deleted dispatch.sh; captain.md + cowork-bridge.md + 7 product docs still referenced it. This refactor swaps the shell wrapper for native Anthropic primitives that don't need bash/osascript. Native replacements: - Push to Abdout's iPhone → PushNotification tool → Anthropic mobile app - Async team comms → GitHub Issues (priority/blocking, priority/decision, from-captain, from-abdout labels) + Slack MCP (`/slack send`) - Cowork ↔ Code handoff → ~/.claude/bridge.md (already existed; this PR promotes it from secondary to primary) - Captain weekly digest → Slack #general via slack MCP + PushNotification ping to Abdout .claude/agents/captain.md (535 lines, ~10 edit sites): - Added PushNotification to tools array - Session-start: dispatch.sh read inbox/cowork → read bridge.md + gh issue list --label from-abdout - ACT items: dispatch_to_team_via_slack_or_apple_notes → notify_team_via_slack_mcp_or_pushnotification_to_abdout_mobile - Escalation channel paragraph: 3-step native escalation (push → issue → Slack DM); 24h/72h follow-up logic preserved - Monday/Friday cycle: Apple Notes dispatch lines → Slack post + push - Channel 1 section completely rewritten (Native Push + Cowork Bridge) - Autopilot CAN: dropped Apple Notes; added PushNotification, bridge.md, Slack MCP explicit grants - Cross-agent example "Ahmed Baha hasn't responded": dispatch [decision] → PushNotification + companion GitHub issue .claude/rules/cowork-bridge.md: - Capability table: dropped Apple Notes row, added PushNotification + Slack - Session-start: dropped dispatch.sh read; added gh issue list label filters - "Apple Notes (Code-Only)" section → "Reaching Abdout asynchronously" with 4 native primitives 7 product docs swept (all dispatch.sh narrative replaced): - content/docs/captain.mdx — 3-channel summary updated - content/docs/cowork.mdx — Shared State table, handoff examples, session start protocols - content/docs/workflows.mdx — Channel 1 table - content/docs/architecture.mdx — 3-channel comm table + bridge flow - content/docs/slack.mdx — dispatch-to-slack bash snippet → slack MCP - content/docs/voice.mdx — "read latest dispatch" → "read latest weekly file" - content/docs/tips.mdx — phone-to-desktop remote-control example Memory files (.claude/memory/*) intentionally left alone — they're historical record per PR #112 acceptance criteria. Closes #112 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
PR #111 hard-deleted
.claude/scripts/dispatch.sh, butcaptain.md+cowork-bridge.md+ 7 product docs still referenced it. Captain would error at runtime when trying to dispatch. This PR completes the anthropic-native cutover.Closes #112
Native replacements
PushNotificationtool → Anthropic mobile apppriority/blocking,priority/decision,from-captain,from-abdoutlabels) + Slack MCP (/slack send)~/.claude/bridge.md(promoted from secondary to primary)PushNotificationping to Abdout.claude/agents/captain.md— 10 edit sitesPushNotificationtotools:array (frontmatter)dispatch.sh read inbox/cowork→ readbridge.md+gh issue list --label from-abdout,priority/blockingdispatch_to_team_via_slack_or_apple_notes→notify_team_via_slack_mcp_or_pushnotification_to_abdout_mobilePushNotificationto mobile (instant)priority/blocking(24h) orpriority/decision(72h) label24h/72h follow-up cadence preserved
PushNotification+bridge.md+ GitHub Issuesfrom-abdout)PushNotification,bridge.md, Slack MCPPushNotification(title=..., body=...)+ companion GitHub issue (durable record).claude/rules/cowork-bridge.mdPushNotification+ Slack MCP rowsdispatch.sh read; addedgh issue list --label from-abdout,priority/blockingfor both Code + Cowork sessions7 product docs swept
content/docs/captain.mdxcontent/docs/cowork.mdxcontent/docs/workflows.mdxcontent/docs/architecture.mdxcontent/docs/slack.mdxdispatch slackbash snippet →/slack sendMCPcontent/docs/voice.mdxcontent/docs/tips.mdxfrom-abdoutlabelMemory files left alone
.claude/memory/*(learnings.md, risks.json, 1on1/, decisions/) reference Apple Notes/dispatch historically — these are intentional record per issue #112 acceptance criteria. They document what was, not what is.Exit gates
```bash
No dispatch.sh refs outside memory/
grep -rnE 'dispatch.sh' .claude content | grep -vE '/memory/|/legacy/'
✅ empty
No Apple Notes refs outside memory/ (except the deliberate "No Apple Notes" line in onboarding.mdx)
grep -rinE 'apple notes|dispatch/(captain|cowork|inbox)' .claude content | grep -vE '/memory/'
✅ only onboarding.mdx:267 "No Tailscale, no Apple Notes..." (intentional)
```
Test plan
claude --agent captain— frontmatter parses, all referenced tools presentpriority/decision,from-captainGitHub issue — both arrivepnpm buildof docs site greenNet
9 files changed, +84 / -69 lines. Net +15 (more verbose native references replace concise bash one-liners).
🤖 Generated with Claude Code