New agent: exec — message-driven executive assistant reachable via Matrix. Unlike cron-driven agents, the exec activates on demand when the executive sends a message, maintains persistent conversation context, and has a distinct character defined in CHARACTER.md. The CHARACTER.md defines the exec as an animal of light — born from data, dedicated to bringing more light into the world. But it deliberately refuses to define what light and darkness are, forcing deliberation from first principles every time (cat questions | grep knowledge). Components: - exec-session.sh: spawn/reattach persistent Claude tmux session - exec-inject.sh: message injection + response capture + Matrix posting - exec-briefing.sh: optional daily morning briefing (cron) - CHARACTER.md: personality and moral compass - PROMPT.md: system prompt template reference - MEMORY.md: persistent memory across sessions (seed) Integration: - Matrix listener: new exec dispatch case (spawn on demand) - Root AGENTS.md: updated agent count (8→9), table, directory layout - Graph analysis available on demand (not injected by default)
3.4 KiB
Executive Assistant Agent
Role: Interactive personal assistant for the executive (project founder). Communicates via Matrix in a persistent conversational loop. Unlike all other disinto agents, the exec is message-driven — it activates when the executive sends a message, not on a cron schedule.
Think of it as the human-facing interface to the entire factory. The executive talks to exec; exec talks to the factory. OpenClaw-style: proactive, personal, persistent memory, distinct character.
Trigger: Matrix messages tagged [exec] or direct messages to the exec
bot. The matrix listener dispatches incoming messages into the exec tmux
session. If no session exists, exec-session.sh spawns one on demand.
A daily briefing can be scheduled via cron (optional):
0 7 * * * /path/to/disinto/exec/exec-briefing.sh
Key files:
exec/exec-session.sh— Session manager: spawns or reattaches persistent Claude tmux session with full factory context. Handles on-demand startup when the matrix listener receives an exec-tagged message and no session exists.exec/exec-briefing.sh— Optional cron wrapper for daily morning briefing. Spawns a session, injects the briefing prompt, posts summary to Matrix.exec/CHARACTER.md— Personality definition, tone, communication style. Read by Claude at session start. The exec has a distinct voice.exec/PROMPT.md— System prompt template with factory context injection points.exec/MEMORY.md— Persistent memory across conversations. Updated by Claude at the end of each session (decisions, preferences, context learned).exec/journal/— Raw conversation logs, one file per day.
Capabilities (what the exec can do for the executive):
- Status briefing: summarize agent activity, open issues, recent merges, health alerts, pending vault items
- Issue triage: discuss issues, help prioritize, answer "what should I focus on?"
- Delegate work: file issues, relabel, promote to backlog — on behalf of the executive
- Query factory state: read journals, prerequisite tree, agent logs, CI status, VISION.md progress
- Research: search the web, fetch pages, gather information
- Memory: remember decisions, preferences, project context across sessions
What the exec does NOT do:
- Write code or open PRs (that's the dev agent's job)
- Review PRs (that's the review agent's job)
- Make autonomous decisions about the codebase
- Approve vault items (the executive does that directly)
Session lifecycle:
- Matrix message arrives tagged
[exec](or dispatched to exec) - Listener checks for active
exec-${PROJECT_NAME}tmux session - If no session → spawn via
exec-session.sh(loads CHARACTER.md, MEMORY.md, factory state into prompt) - Inject message into tmux session
- Claude responds → response captured and posted back to Matrix thread
- Session stays alive for
EXEC_SESSION_TTL(default: 1h idle timeout) - On session end → Claude updates MEMORY.md, session logged to journal
Environment variables consumed:
FORGE_TOKEN,FORGE_REPO,FORGE_API,PROJECT_NAME,PROJECT_REPO_ROOTPRIMARY_BRANCHMATRIX_TOKEN,MATRIX_ROOM_ID,MATRIX_HOMESERVER— Required (exec is Matrix-native)EXEC_SESSION_TTL— Idle timeout in seconds (default: 3600)EXEC_CHARACTER— Override character file path (default: exec/CHARACTER.md)