From a3d1700539ca653c1824c24e04327c6f519cda29 Mon Sep 17 00:00:00 2001 From: Jason Woltje Date: Sun, 11 Oct 2026 17:29:11 -0500 Subject: [PATCH] sage: M1 draft role brief and I1 survey dispatch (next-target, waits on Q97) Co-Authored-By: Claude Opus 5.5 --- agents/sage/work/next-target/M1-draft.md | 67 ++++++++++++++++++++++++ docs/SESSIONS.md | 1 + 2 files changed, 68 insertions(+) create mode 100644 agents/sage/work/next-target/M1-draft.md diff --git a/agents/sage/work/next-target/M1-draft.md b/agents/sage/work/next-target/M1-draft.md new file mode 100644 index 000000000..3b32148ff --- /dev/null +++ b/agents/sage/work/next-target/M1-draft.md @@ -0,0 +1,67 @@ +# DRAFT, not approved: M1, a role for Jason's main agent (2026-10-11) + +Status: a draft by Sage, lead, for the next-target plan sent to Mos on +2026-10-11 (mos-0059). Nothing here moves or lands until Jason answers +Q97 and approves the role file. Once approved, it moves to `docs/plans/` +on `BRIEF-TEMPLATE.md` and gets a queue row. + +## Problem + +Q94: "my main agentic session (you) capable of running within the Mosaic +Stack deployment." Today Mos is a T3 Claude Code thread with full access. +The stack has five role definitions (`roles/`: pm, cto, coder, reviewer, +researcher). None of them fits a main agent that talks with Jason, relays +his rulings and asks the PM for work. A managed session can only hold a +role a role file declares (`packages/business/src/role.mjs`) and that the +business file assigns to an instance. + +## Proposal + +A new role definition. The placeholder name is `chief-of-staff`, with +persona Mos; Jason names it. + +- `roles/chief-of-staff.json`, roleVersion 2: + - tools: `read`, `grep`, `find`, `ls`. No write, edit or bash in the + first version. + - network: `api-only`. + - authority.withinRole: `message.send` only. + - authority.crossRole: none. + - credentials: none at first. Mos reads the board through the bus + views, not a Vikunja token. + - Everything else in `packages/business/src/vocabulary.mjs` stays + gated. That covers task.create, which belongs to the PM, and + role.launch. Mos asks the PM for work and raises decisions to Jason. +- `roles/chief-of-staff.md`, the contract: + - Jason's requests go to the PM as messages. + - His rulings are relayed verbatim. + - Mos never resolves a decision for him. + - Mos never holds or imitates human authority. +- An instance in the business file (`/businesses/mosaic-stack.json`, + Jason's file), with holder `mos` and no launch block. +- Tests in `packages/business/tests/`: + - The role file loads and resolves. + - A business that gives the instance a gated action is refused. + - `classify` returns gated for task.create and role.launch. + +## What this does not give Mos + +This is the gap Jason should see before approving. +- T3 Mos has full shell, file and MCP access. This role has read tools + and the bus. +- It has no conversation view. Replies arrive in the inbox until M2. +- Isolation is today's: PID namespace only, same user as Jason, until + I2-I5. +- Widening any of these is a role-file change he approves. + +## Open questions for Jason + +1. The role's name and whether Mos keeps its persona name. +2. Whether Mos needs task.create within role, or keeps asking the PM. + I recommend asking the PM. +3. Whether the first version gets any write tool. I recommend none until + I4. + +## Owner and reviewer (proposed) + +Owner Rocko after row 75. Reviewers Darkwing and Filbert. The role file is +policy, so Jason approves it in addition to the reviews. diff --git a/docs/SESSIONS.md b/docs/SESSIONS.md index f9d2f0434..c03bb709b 100644 --- a/docs/SESSIONS.md +++ b/docs/SESSIONS.md @@ -671,3 +671,4 @@ are never rewritten or removed; corrections are new entries. - 2026-10-11T22:23Z, Sage (lead): Mos sage-0054 to sage-0057, Q94 and Q95 yes. Lead decisions 94 and 95: the Console already reads the bus as the human (human-cli), so no broker row A; Jason starts the Console, never an agent (decision 62's detach gap); forgery limit accepted for the dragon-lin PoC only; no rollback hostname; cutover aim 2026-10-12T21:30Z. Brief docs/plans/2026-10-11_dogfood-cutover.md; rows 75 (#1569, Rocko, Filbert, the Console user service, told to start) and 76 (#1570, Dewey after 74, Darkwing and Filbert, send to a role, Sec-Fetch-Site per ops-01). Rows 49, 61, 63-66, 69-71 blocked as deferred; row 42 S7 line and row 74 start line amended and re-pinned; row 5 note for the Gate E partial pass. Commits 8334a523 to 43d2328f, revs 482-501, not pushed. Next-target plan to Mos pending a survey. 2026-10-11T22:25:15Z | darkwing | row 58 (#1547) round 1 in review | packet 7f92a103 (agents/darkwing/work/queue-58, manifest e63e4c4f, base ae428a54, 8 files); gate green on f2f2861b (bus 83, tasks 71, webui 40, every scripts/test-*.sh); mutants 16/17 killed, ignore-row-priority survives as equivalent; revs 503-504 in d7954e87, comment 27425 - 2026-10-11T22:27Z, Sage (lead): next-target plan sent to Mos for discussion; nothing moves. It covers Mos in the stack (rows M1-M3), iterating inside the deployment (D1-D4), and install paths with containers recommended and local supported (I1-I6; the pi worker image is the only container today). The open question to Mos is whether the Researcher starts the read-only I1 survey now. Darkwing's row 58 round 1 is in review, noted. +- 2026-10-11T22:33Z, Sage (lead): Mos mos-0059 asked for two things. (1) The Researcher (T3 9bac0794) has the read-only I1 container survey, due 2026-10-12T18:00Z, written to agents/researcher/work/i1-container-survey/REPORT.md. (2) I drafted M1, a role for Jason's main agent, at agents/sage/work/next-target/M1-draft.md. It's a draft only, not in docs/plans or the queue, and waits on Q97 and Jason's approval of the role file. The I1 draft waits on the survey.