| @@ -16,7 +16,7 @@ it can shell out to the others. · 15 unmodified lines |
| 16 | 2. Every agent's system file gets **exactly one line** pointing at it: | 16 | 2. Every agent's system file gets **exactly one line** pointing at it: |
| 17 | | 17 | |
| 18 | ``` | 18 | ``` |
| 19 | Shared primitives (hosts/SSH, subagent CLIs, models.env) live in `~/.model/`. Read `~/.model/README.md` on launch. | 19 | Shared primitives (hosts/SSH, subagent CLIs, models.env) live in `~/.model/`. Read `~/.model/README.md` on launch and append a row to `~/.model/log.csv` when the session ends. |
| 20 | ``` | 20 | ``` |
| 21 | | 21 | |
| 22 | Append it to `~/.claude/CLAUDE.md`, `~/.codex/AGENTS.md`, | 22 | Append it to `~/.claude/CLAUDE.md`, `~/.codex/AGENTS.md`, |
| @@ -37,10 +37,27 @@ read Markdown, so the format is Markdown. · 14 unmodified lines |
| 37 | | `hosts.md` | Every machine: IPs, SSH command, sudo, what runs there | | 37 | | `hosts.md` | Every machine: IPs, SSH command, sudo, what runs there | |
| 38 | | `subagents.md` | How to invoke every other agent CLI headlessly | | 38 | | `subagents.md` | How to invoke every other agent CLI headlessly | |
| 39 | | `models.env` | Shared env, sectioned per agent, `chmod 600` | | 39 | | `models.env` | Shared env, sectioned per agent, `chmod 600` | |
| | 40 | | `log.csv` | Session log every agent appends to | |
| 40 | | 41 | |
| 41 | Templates for all four are in [`template/`](template/). Copy them, fill them | 42 | Templates for all five are in [`template/`](template/). Copy them, fill them |
| 42 | with your own facts, and never commit the result. | 43 | with your own facts, and never commit the result. |
| 43 | | 44 | |
| | 45 | ## The session log |
| | 46 | |
| | 47 | One CSV, every agent, one row per session, appended when the session ends: |
| | 48 | |
| | 49 | ``` |
| | 50 | date,company,model,description,resume |
| | 51 | 2026-07-28,anthropic,fable 5,added the session log to the standard,claude --resume 9cbb2d13-ef46-450b-a999-a4aeb82aff82 |
| | 52 | 2026-07-28,xai,grok-4.5,swept the quant repo for dead code,grok --resume 41c9 |
| | 53 | ``` |
| | 54 | |
| | 55 | CSV rather than Markdown so one table serves every agent and you can still |
| | 56 | filter it: `grep -i ',anthropic,' ~/.model/log.csv` or |
| | 57 | `awk -F, '$3=="fable 5"'`. The `resume` column is whatever that CLI needs to |
| | 58 | pick the session back up, so one row is enough to get back into any past |
| | 59 | session from any agent. |
| | 60 | |
| 44 | ## Adding a primitive | 61 | ## Adding a primitive |
| 45 | | 62 | |
| 46 | New topic gets a new `<topic>.md` and one row in the local `README.md` table. | 63 | New topic gets a new `<topic>.md` and one row in the local `README.md` table. |
| @@ -79,7 +96,7 @@ cp template/* ~/.model/ · 32 unmodified lines |
| 79 | mv ~/.model/models.env.example ~/.model/models.env | 96 | mv ~/.model/models.env.example ~/.model/models.env |
| 80 | chmod 600 ~/.model/models.env | 97 | chmod 600 ~/.model/models.env |
| 81 | | 98 | |
| 82 | LINE='Shared primitives (hosts/SSH, subagent CLIs, models.env) live in `~/.model/`. Read `~/.model/README.md` on launch.' | 99 | LINE='Shared primitives (hosts/SSH, subagent CLIs, models.env) live in `~/.model/`. Read `~/.model/README.md` on launch and append a row to `~/.model/log.csv` when the session ends.' |
| 83 | for f in ~/.claude/CLAUDE.md ~/.codex/AGENTS.md ~/.gemini/GEMINI.md \ | 100 | for f in ~/.claude/CLAUDE.md ~/.codex/AGENTS.md ~/.gemini/GEMINI.md \ |
| 84 | ~/.grok/AGENTS.md ~/.config/opencode/AGENTS.md; do | 101 | ~/.grok/AGENTS.md ~/.config/opencode/AGENTS.md; do |
| 85 | mkdir -p "$(dirname "$f")" | 102 | mkdir -p "$(dirname "$f")" |