aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/design/2026-07-20-signal-pager-runbook.org39
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".