feat: add exec agent — interactive executive assistant

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)
This commit is contained in:
disinto-exec 2026-03-25 15:28:29 +00:00
parent d442529ad0
commit d1ba4bc579
10 changed files with 802 additions and 3 deletions

View file

@ -3,10 +3,11 @@
## What this repo is
Disinto is an autonomous code factory. It manages eight agents (dev, review,
gardener, supervisor, planner, predictor, action, vault) that pick up issues from forge,
Disinto is an autonomous code factory. It manages nine agents (dev, review,
gardener, supervisor, planner, predictor, action, vault, exec) that pick up issues from forge,
implement them, review PRs, plan from the vision, gate dangerous actions, and
keep the system healthy — all via cron and `claude -p`.
keep the system healthy — all via cron and `claude -p`. The exec agent is
the human-facing interface: an interactive assistant reachable via Matrix.
See `README.md` for the full architecture and `BOOTSTRAP.md` for setup.
@ -25,6 +26,10 @@ disinto/
│ supervisor/journal/ — daily health logs from each run
│ supervisor-poll.sh — legacy bash orchestrator (superseded)
├── vault/ vault-poll.sh, vault-agent.sh, vault-fire.sh — action gating + procurement
├── exec/ exec-session.sh — interactive executive assistant (Matrix-driven)
│ exec-briefing.sh — optional daily morning briefing
│ CHARACTER.md — personality and moral compass
│ exec/journal/ — conversation logs
├── action/ action-poll.sh, action-agent.sh — operational task execution
├── lib/ env.sh, agent-session.sh, ci-helpers.sh, ci-debug.sh, load-project.sh, parse-deps.sh, matrix_listener.sh, guard.sh, mirrors.sh, build-graph.py
├── projects/ *.toml.example — templates; *.toml — local per-box config (gitignored)
@ -79,6 +84,7 @@ bash dev/phase-test.sh
| Predictor | `predictor/` | Infrastructure pattern detection | [predictor/AGENTS.md](predictor/AGENTS.md) |
| Action | `action/` | Operational task execution | [action/AGENTS.md](action/AGENTS.md) |
| Vault | `vault/` | Action gating + resource procurement | [vault/AGENTS.md](vault/AGENTS.md) |
| Exec | `exec/` | Executive assistant (interactive, Matrix-driven) | [exec/AGENTS.md](exec/AGENTS.md) |
See [lib/AGENTS.md](lib/AGENTS.md) for the full shared helper reference.