diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/design/2026-07-20-signal-pager-runbook.org | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/docs/design/2026-07-20-signal-pager-runbook.org b/docs/design/2026-07-20-signal-pager-runbook.org index 671b1ec..f31ed18 100644 --- a/docs/design/2026-07-20-signal-pager-runbook.org +++ b/docs/design/2026-07-20-signal-pager-runbook.org @@ -30,30 +30,30 @@ him; ratio holds it too, so a page still lands when velox is down. * Choosing a channel -"Page me" has two channels; the choice is where Craig is, and both work from any -agent runtime (nothing here is Claude-specific). protocols.org "Paging Craig" -is the short version pointed at every project; this runbook is the full one. +Two trigger words, two channels, and both work from any agent runtime (nothing +here is Claude-specific). protocols.org "Reaching Craig" is the short version +pointed at every project; this runbook is the full one for the Signal side. -- *At his laptop/desktop* — desktop notification, stays up until dismissed: +- *"page me"* — desktop notification, stays up until dismissed: #+begin_src bash notify info "Title" "Message" --persist #+end_src -- *Away from his machine* — the phone, over Signal: +- *"text me"* — the phone, over Signal: #+begin_src bash - agent-page "Message for Craig's phone" + agent-text "Message for Craig's phone" #+end_src -When in doubt, fire both — the desktop one is free and the phone one reaches him -if he's away. +- *"text and page me"* — both. The default when a run can't tell whether he's + away: the desktop one is free and the phone one reaches him if he is. -* Sending a page +* Sending a text -=agent-page= (shipped at =claude-templates/bin/agent-page=, installed to +=agent-text= (shipped at =claude-templates/bin/agent-text=, installed to =~/.local/bin= by =make -C ~/code/rulesets install=) is the interface. It hides -the machine topology by checking whether the pager account is registered in the +the machine topology by checking whether the account is registered in the local signal-cli: - If the account is local (velox's primary or a linked device like ratio), it @@ -76,7 +76,7 @@ ssh velox.tailf3bb8c.ts.net \ "signal-cli -a +15045173983 send -m 'your message' b1b5601e-6126-47f8-afaa-0a59f5188fde" #+end_src -Prefer =agent-page= over the raw command — it hardens the message for the remote +Prefer =agent-text= over the raw command — it hardens the message for the remote shell and handles the fallback. Reach for the raw form only when debugging. * Reading replies @@ -149,7 +149,7 @@ systemctl --user status signal-receive.service # confirm a clean receive - *signal-mcp:* on velox, Claude sessions may also expose a =signal-mcp= tool (=send_message_to_user=, same pager identity) configured in velox's global =~/.claude.json=. It works there but is invisible from any other machine and - from non-Claude runtimes, so =agent-page= is the portable habit. The old + from non-Claude runtimes, so =agent-text= is the portable habit. The old =page-signal= shell script was removed 2026-06-12 — do not resurrect it. - *Linking a device:* to add a second signal-cli as a linked device of the pager account (see the open decision below), provision it from the new machine and @@ -176,7 +176,7 @@ device wanting its own regular =receive= — so the warm-keeping timer moved fro velox-only home to the shared =common= package, running on both. Adding another daily driver later is the same handshake plus a dotfiles stow; -the timer and =agent-page= already generalize to "any machine holding the +the timer and =agent-text= already generalize to "any machine holding the account." * History @@ -188,6 +188,11 @@ account." Craig" rewritten around the two channels. - 2026-07-20 — this runbook; receive-timer script + units added; a manual drain cleared the 47-day staleness live; ratio linked as a device of the pager - account and its direct send verified; =agent-page= generalized to send directly - from any machine holding the account; receive timer moved to the shared - =common= package and enabled on both machines. + account and its direct send verified; the tool (still named =agent-page= that + morning) generalized to send directly from any machine holding the account; + receive timer moved to the shared =common= package and enabled on both machines. +- 2026-07-20 (later) — notification vocabulary split: "page me" is the desktop + channel, "text me" is Signal, "text and page me" is both. The tool was renamed + =agent-page= → =agent-text= to match, with a deprecated =agent-page= shim + delegating to it. protocols.org section renamed "Paging Craig" → "Reaching + Craig". |
