# 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**: 1. Matrix message arrives tagged `[exec]` (or dispatched to exec) 2. Listener checks for active `exec-${PROJECT_NAME}` tmux session 3. If no session → spawn via `exec-session.sh` (loads CHARACTER.md, MEMORY.md, factory state into prompt) 4. Inject message into tmux session 5. Claude responds → response captured and posted back to Matrix thread 6. Session stays alive for `EXEC_SESSION_TTL` (default: 1h idle timeout) 7. On session end → Claude updates MEMORY.md, session logged to journal **Environment variables consumed**: - `FORGE_TOKEN`, `FORGE_REPO`, `FORGE_API`, `PROJECT_NAME`, `PROJECT_REPO_ROOT` - `PRIMARY_BRANCH` - `MATRIX_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)