contacts
/contacts - Oracle Contact Registry
Manage contacts for /talk-to routing. Stored in repo at ψ/contacts.json — committable, shareable.
File Location
ψ/contacts.json
If ψ/ doesn't exist, use .oracle/contacts.json as fallback.
Schema
{
"contacts": {
"peter": {
"maw": "peter-oracle",
"thread": "channel:peter",
"inbox": "/home/peter/Code/peter-oracle/ψ/inbox",
"repo": "laris-co/peter-oracle",
"notes": "Frontend dev, available weekdays"
},
"pulse": {
"maw": "pulse-oracle",
"thread": "channel:pulse",
"inbox": null,
"repo": "laris-co/pulse-oracle",
"notes": "PM bot"
}
},
"updated": "2026-03-23T22:30:00Z"
}
Usage
/contacts # list all
/contacts list # same
/contacts add peter # interactive — ask transports one by one
/contacts add peter --maw peter-oracle --inbox /path/ψ/inbox
/contacts remove peter # remove (with confirmation)
/contacts show peter # show details for one contact
Mode 1: List (default)
Read ψ/contacts.json. Display:
📇 Contacts (4)
# Name maw repo inbox
── ────────────── ──────────────── ─────────────────────── ──────
1 peter peter-oracle laris-co/peter-oracle ✓
2 pulse pulse-oracle laris-co/pulse-oracle ✗
3 hermes hermes-oracle laris-co/hermes-oracle ✓
4 neo neo-oracle laris-co/neo-oracle ✓
If no contacts file exists:
📇 No contacts yet.
/contacts add <name> — register a new contact
Mode 2: Add
/contacts add <name>
Ask each transport one by one. User can skip any with Enter.
📇 Register: peter
1. maw name? (for `maw hey <name>`)
→ peter-oracle
2. Thread channel? (for Oracle threads)
→ channel:peter [default: channel:{name}]
3. Inbox path? (for direct ψ/inbox/ writes)
→ /home/peter/Code/peter-oracle/ψ/inbox
(Enter to skip — not all agents have accessible inbox)
4. Repo? (org/repo on GitHub)
→ laris-co/peter-oracle [default: guess from maw name]
5. Notes? (optional)
→ Frontend dev, Thai timezone
With flags
/contacts add peter --maw peter-oracle --inbox /path/ψ/inbox
Skip interactive for provided flags. Still ask for missing ones.
Save
# Read existing
CONTACTS_FILE="$(pwd)/ψ/contacts.json"
mkdir -p "$(dirname "$CONTACTS_FILE")"
# If file doesn't exist, create empty
if [ ! -f "$CONTACTS_FILE" ]; then
echo '{"contacts":{},"updated":""}' > "$CONTACTS_FILE"
fi
Use jq or Write tool to update the JSON. Set updated to current ISO timestamp.
Commit
After adding, ask:
✅ Added peter. Commit? [Y/n]
If yes:
git add ψ/contacts.json
git commit -m "contacts: add peter"
Mode 3: Remove
/contacts remove <name>
Show the contact details, ask confirmation:
Remove peter?
maw: peter-oracle
thread: channel:peter
inbox: /home/peter/.../ψ/inbox
[Y/n]
If yes, remove from JSON, save, optionally commit.
Mode 4: Show
/contacts show <name>
📇 peter
maw: peter-oracle
thread: channel:peter
inbox: /home/peter/Code/peter-oracle/ψ/inbox
repo: laris-co/peter-oracle
notes: Frontend dev, Thai timezone
Integration with /talk-to
/talk-to should read ψ/contacts.json before routing:
- Parse agent name from arguments
- Check
ψ/contacts.json→ found? Use registered transports - Not found? → Ask: "I don't know {name}. Run /contacts add {name}?"
- After registration → retry the message
ARGUMENTS: $ARGUMENTS
More from soul-brews-studio/arra-oracle-skills
recap
Session orientation and awareness — retro summaries, handoffs, git state, focus. Use when starting a session, after /jump, lost your place, switching context, or when user asks "now", "where are we", "what are we doing", "status", "recap". Do NOT trigger for "standup" or "morning check" (use /standup), or session mining "dig", "past sessions" (use /dig).
22learn
Explore a codebase with parallel Haiku agents — clone, read, and document. Modes — --fast (1 agent), default (3), --deep (5). Use when user says "learn [repo]", "explore codebase", "study this repo", or shares a GitHub URL to study. Do NOT trigger for finding projects (use /trace), session mining (use /dig), or cloning for active development (use /incubate).
21project
Clone and track external repos. Use when user shares GitHub URL to study or develop, or says "search repos", "find repo", "where is [project]". Actions - learn (clone for study), search/find (search repos), list (show tracked). For active development, use /incubate.
20rrr
Create session retrospective with AI diary and lessons learned. Use when user says "rrr", "retrospective", "wrap up session", "session summary", or at end of work session.
20forward
Create handoff + enter plan mode for next session. Use when user says "forward", "handoff", "wrap up", or before ending session.
20oracle-soul-sync-update
Sync Oracle instruments with the family. Check and update skills to latest version. Use when user says "soul-sync", "sync", "calibrate", "update", or before /awaken.
19