w1:pP on the VPS, its team folder is the companion repo sisodias/siso-internal-labs-agents, and az-notify reaches him, not Shaan. Written 2026-09-11 from what is on the boxes; every "exists" below was read from source that day; "deployed" was seen in a pane. Repo: sisodias/siso-project-team (private; the front door for agents is its AGENTS.md). This page supersedes agent-team-v2, which stays as the record of what broke.siso-agent-zero-protocol — it keeps intent, estate and plan for every project and reads each team's handoffs/DIGEST.md. Owner reports stop landing in Shaan's pane the moment the Labs team has its own Agent Zero pane (build item 1); he stays in the loop through the digest and the console, which is the part that was good about it.| His words (2026-09-11, verbatim) | Mechanism | State |
|---|---|---|
there's a whole agent's agent zero … my personal agent for the whole infrastructure, then there's one per project. The SISO internal is a project so it needs its own agent zero and then owners inside of it | Three tiers. Tier 0 = siso-agent-zero-protocol. Each team has AGENT-ZERO.md + the project-agent-zero skill, one pane in its own space, and reports up through a digest. | DEPLOYED Labs Agent Zero in w1:pP, briefed, writing its state |
we need like a repackageable skill that can be used for every new project team … any feedback and improvements actually stick with a repo | Three role skills in this repo, linked into ~/.claude/skills, never copied — a lesson learned on one team is a commit here and the next team boots with it. | BUILT |
each team will have its own space in a herdr server … and they'll have its own skills | tools/new-team.sh <slug> --herdr --az-pane creates the workspace and the Agent Zero's pane and records both in team.yaml; owners and arms are spawned into that space only. | BUILT tested on the laptop's herdr |
how a team can run its own camofox | One camofox instance per team on the team's box, loopback port, userId = team code, so sessions and cookies never cross teams. The repo has a Dockerfile; nothing runs on the VPS yet. | DEPLOYED two instances on the VPS: siso-camofox@labs on 9377, siso-camofox@byk on 9378, loopback, one userId each; a real fetch proven through the Labs one |
the skill will basically be their front door to their personal operating system … how they're supposed to act … teach them how to use all other skills and navigate what data is important | Each role skill has a cold-start read order, the tool skills it carries and why, how to act, how to report, how to keep the box true. siso-owner stays the "how to think"; these are the "how this team runs". | BUILT |
a nice readme and a nice cloudflare url front end in the readme … agents know how to update the cloudflare whatever when they improve it | README links this page; tools/publish-front deploys docs/ to Pages and refuses to report success until the live page hashes the same as the file. | BUILT |
they'll have the canonical tasks linked to the plane … somehow it's synced with plane | team.yaml → tasks.project; every brief cites Plane: CODE-nn and Intent: intent/<file>. Next: tools/intent-to-plane turns an intent file into work items whose description is his verbatim words. | DEPLOYED tools/intent-to-plane: his entry → a work item titled with his first sentence, description verbatim, label intent, plane: LABS-nn written back into the entry |
every single word i've said to the agent zero is viewable and any future agent can go through it to see what we missed from it | tools/intent-capture: reads Claude Code transcripts and relayed briefs, writes one verbatim file per message with time, session and source, builds an index. Owner relays, system text and tool output are not his words and are excluded. Idempotent. | BUILT Labs: 207 entries, 42,787 words, 9–11 Sep |
if the arms aren't available the owners can just do the work themselves or have built-in sub agents | owner: pool down or plan off → do it inline or use the built-in Agent tool for a bounded piece, and say which in the handoff. | BUILT |
opus is running their harness because they're the best in it … we'll have qwen running in codex for now and luna running in codex … herder can just spawn them … it will message it back to the agent anyways | tools/spawn-worker --harness claude|codex --model opus|luna|qwen: herdr starts the agent in the team's space, then az-send hands it the brief path; the brief ends with the one message it sends back. Qwen becomes a Codex model through codex/config.pool.toml. | DEPLOYED Codex 0.154 on the VPS as siso; Luna proven (LUNA-OK). Qwen wired through siso-pool but the pool is waiting for a Kaggle TPU slot — not ours to fix |
it's kind of good that they've been messaging you, it means you're in the loop | Keep the loop, move the inbox: owners report to the Project Agent Zero's pane; the team's digest and the console keep Shaan and tier 0 in the loop without the fleet typing into his terminal. | DEPLOYED owners → az-notify → the Labs Agent Zero's pane; Shaan's laptop pane is no longer the fleet inbox |
we need two: an agent team template, and a siso internal labs agent space's own repo … everything needs to be in the repo, conversation history, my words, everything, all linked together … it also can be versioned | Two repos. Template siso-project-team (skills, tools, schema, this page; VERSION, CHANGELOG.md, tags; tools/team-upgrade). Team siso-internal-labs-agents: charter, state, briefs, relays, handoffs, intent/, and sessions/ — redacted conversation history of the laptop Agent Zero, the VPS Agent Zero and the owners, with a manifest. Symlinked into the code repo as .agents/. | DEPLOYED v0.3.0 · Labs and Bykonz Yard both running on it |
AGENTS.md the front door: find out who you are, five rules team.yaml the manifest — schema and the first instance (Labs) skills/project-agent-zero/ the brain's front door + COMPACT.md (state prompt) skills/owner/ the ephemeral owner contract skills/worker-contract/ the arm contract + the JOB brief skills/team-front-door/ installable pointer for any host tools/new-team.sh folder, manifest, herdr space, Agent Zero pane tools/spawn-worker owner or arm into the space, brief in hand tools/az-send clear, type, submit, read back — or fail loudly tools/siso-browse one logged-in browser for the team tools/intent-capture his words, verbatim, indexed tools/publish-front docs/ → Pages, hash-checked tools/intent-to-plane his words → linked Plane items tools/fleet-status the three numbers + per-pane context and cost tools/render-front a team's private page from what is true tools/sessions-import conversation history in, secrets out tools/team-upgrade what changed since a team pinned the template tools/az-deliver the host-side forced command: notify, or a read-only fleet dump ops/siso-camofox@.service one camofox per team, loopback codex/config.pool.toml Qwen as a Codex model provider docs/ this page + lessons-from-oracle
team.yaml project · host · herdr space + Agent Zero pane
tasks (Plane) · agent_zero · owners.live_today
arms.pools · browser · front_end · human_only
AGENT-ZERO.md the charter: specifics + domains table
DIGEST.md one dated line per change, for tier 0
intent/ YYYYMMDD-HHMM-id.md + index.html · shaan-intent-log.json
briefs/ TASK-*.md, one per owner
handoffs/ HANDOFF-*.md
workers/AGENTS.md what a Codex arm reads first
Today teams/siso-internal-labs/ lives inside the package to dogfood it. A project with a companion repo (Oracle's oracle-agents, Labs' siso-internal-labs-server) keeps its team folder there via new-team.sh --into. Never in a product repo.
Reads, in order: team.yaml → charter + state → intent, newest first → last three handoffs → Plane → the project's estate skill. Turns every sentence of Shaan's into a work item and a brief. One owner per domain; closes the pane when the handoff lands. Never dispatches arms. Never polls. Speaks to Shaan through the console and one page with a visual. Writes the digest for tier 0. Runs intent-capture and publish-front at close-out.
Loads siso-owner for how to think, this for how the team runs. Boots on the brief, the intent file, the estate skill — nothing else. 20–60k tokens; past 150k, hand off and exit. Done means seen in a browser through the team's browse tool. Mechanical work goes to an arm with a full brief; no arms → inline or built-in sub-agents, said out loud. Shared index: commit -- paths only. One az-send report, then exit.
No judgement, no rediscovery, no scope. The JOB brief has OWNER PANE · INPUT · DO · DO NOT · OUTPUT · CHECK · RETURN · STOP; if any line is missing the owner has not finished thinking. Work inside FILES, run CHECK, return a path and a window, send the one message, stop. Qwen for convert/grep/draft/bulk with everything inline; Luna for a bounded implementation that needs a real repo read.
| Role | Model | Harness | Spawned by | Reports to | Today |
|---|---|---|---|---|---|
| Project Agent Zero | Opus | Claude Code | new-team.sh --az-pane → spawn-worker --harness claude into the team's space (on the VPS through siso-agent, which drops to siso without a second pty so herdr can see it) | tier 0 via handoffs/DIGEST.md; Shaan via the console | Labs: runs headless from the laptop, no pane |
| Owner | Opus | Claude Code | Project Agent Zero, spawn-worker --harness claude --brief | Agent Zero's pane, one az-send | Labs: nine owners in w1, resident |
| Arm — Luna | GPT-5.6 Luna | Codex CLI, profile SISO | the owner, spawn-worker --harness codex --model luna | the owner's pane, one RETURN | laptop only: Codex 0.153.4 is not installed on the VPS |
| Arm — Qwen | qwen3.8-27b (pool, free) | Codex CLI, model_provider = siso-pool (codex/config.pool.toml, key from the environment) | the owner, --model qwen | the owner's pane, one RETURN | pool serving through the VPS tunnel on :18080; Codex missing; pool-qwen carries the gateway key as a script default — move it to an env file |
| Fallback | — | the owner's own built-in sub-agents (Claude Agent tool) | the owner | — | rule written into project-owner |
workspace create, agent start, pane read all work; agent list is empty on the VPS (LABS-7), so panes are addressed by id there. integration install codex exists.plane CLI, 15 projects; on the box PLANE_BASE_URL=http://127.0.0.1:80.SISO pins gpt-5.6-luna; -c model_provider=… overrides per run.pool-qwen --check on the VPS; OpenAI-compatible chat endpoint.siso-browse.siso-owner + the core packet, siso-internal-labs, siso-plane-ops, siso-credentials, console, vps-browser-checks.siso-agent-zero-protocol (tier 0), siso-pool-agent-zero (a hand-built project Agent Zero: brain/memory/sessions/inbox — the prior art for this box), siso-project-os v0.4.1 (project-local packets and lanes), siso-agent-playbook (Bifrost-era fleet skills), siso-harness-lab (the rulings).oracle-agents symlinked into both code repos as .agents/, with the UNSLOP plan and Shaan's 80/20 rule.siso-shell for composed front doors.AGENTS.md, team.yaml, siso-browse), plus the skill map.new-team.sh (folder, manifest, herdr space, Agent Zero pane) — proven on a scratch space; the earlier draft parsed herdr's JSON wrongly and called a pane new that does not exist.spawn-worker — proven with a raw process and a brief handed in.az-send — clear with the raw Ctrl-U byte (herdr rejects every ctrl-u key spelling, so the earlier draft never cleared), type, submit, read back; proven on the VPS against a stranded line.intent-capture — Labs ledger: 207 of Shaan's messages, 42,787 words, one file each plus the flat JSON; one 400k-word context stress test recognised and excluded (the earlier log counted it as 437k words of intent).publish-front and this page, live at the Pages project the earlier draft was waiting for; codex/config.pool.toml.teams/siso-internal-labs/: charter with the domains table, digest file, workers' AGENTS.md, the intent ledger.siso-harness-lab/DECISIONS.md recording today's rulings.| # | Change | Removes | Size | Needs |
|---|---|---|---|---|
| 1 | az-notify retargetsw1:pP as siso; az-notify → forced-command ssh → az-deliver → that pane; laptop resume retired. | silent death, the fleet's inbox in Shaan's terminal | — | — |
| 2 | az-send proven against root's herdr on the VPSpane send-*. | stranded dispatches | — | — |
| 3 | Codex on the VPS — Done: 0.154 as siso, auth carried over, SISO_POOL_KEY in an env file and out of pool-qwen, Luna exec proven. Open: the first Qwen-in-Codex brief, blocked until the pool serves (Kaggle TPU slot). | owners doing arms' work at Opus prices | — | Kaggle capacity |
| 4 | camofox per team — Done: ops/siso-camofox@.service ships with the template, new-team.sh --camofox-port enables it per team; Labs 9377, BYK 9378. siso-browse proven on the app and on the login-gated team page; the 53 scripts moved to /tmp/pw/retired-2026-09-11/. | 53 ad-hoc scripts, leaked browsers, "renders" without proof | — | — |
| 5 | tools/intent-to-plane — Done; first real item LABS-13 created from his words and linked back. | sentences that never became tasks (Storage health took a day to reach anyone) | — | — |
| 6 | Ephemeral owners in practice — In force: the Labs Agent Zero closes owners whose handoffs landed and respawns only with a fresh brief; tools/fleet-status measures context and cost per pane (4.65M tokens resident across ten panes at 14:21) and the three numbers on every state write. | the $591-by-midday resident fleet | — | — |
| 7 | The Team tab — Dispatched as LABS-18: it embeds the team page tools/render-front generates from what is true (manifest, intent, handoffs, fleet numbers), already live at sisolabs.space/agents/ behind the login. | Shaan asking agents for status | one owner | — |
| 8 | Second team — Done: Bykonz Yard from one command — companion repo sisodias/bykonzyard-agents (54 verbatim intents, sessions), herdr space w4, Agent Zero in w4:p2 briefed to audit intent vs what is live, code repo wired as .agents/, its own camofox. What broke became commits: herdr 0.9's agent start, the trust dialog, ESM ignoring NODE_PATH. | a box that only ever fit one project | — | — |
| 9 | Private serving — Done: sisolabs.space/agents/ serves the Labs agent space behind the app's login (anonymous → 401; .git hidden). Intent, briefs, handoffs, ledgers and the team page, on Shaan's own domain. | his verbatim words on a public path | — | — |
team.yaml.tools/render-front reading team.yaml; this page is written by hand exactly once.STATE.md, 2026-09-11 tail): a test encodes the old blanket-deny rule for tools/test_*.py; main there is red until someone says which contract is intended.The Oracle owner's resume brief (oracle-streaming/.agents/briefs/UNSLOP-RESUME.md, 2026-09-11) carries Shaan's 80/20 rule — if we take 80 of their stuff as base and then just add on and make it fit to the 20 of our stuff we'll have something really truly world class
— and a ten-step autonomy stack. This box is the team-side half of the same picture; the repo-side half stays in each code repo.
| Their step | Where it lives | In this box |
|---|---|---|
| 1 · gate + merge queue, no ceremony | each code repo | briefs say "lands through the repo's gate"; owners never hand-roll a landing |
| 2 · instruction diet: AGENTS.md ≤120 lines, skills ≤8, personas ≤3 | each code repo | three roles, tool skills reused, workers/AGENTS.md is four lines |
| 3 · worktree lifecycle as a script, ≤3 live lanes | each code repo | owners use the repo's script; the box does not own worktrees |
| 4 · one tracker, one owners file | Plane + the companion | team.yaml → owners.live_today is the owners file; Plane is the tracker |
| 5 · agent credentials without a browser | siso-credentials | every role skill says: that skill before asking anyone |
| 7 · verification surfaces, not screenshots in chat | dev server per worktree + DOM probe | siso-browse over camofox is the team's probe; the handoff carries the path |
| 9 · one line of telemetry per session | SessionStart hook | herdr pane list + tokens rollup already exist; the Agents tab (build 7) is the view |
| 10 · boot in <10k tokens | orientation = AGENTS.md + the agent-zero skill + the Plane item | the read orders above are that list; measure them on the second team |
oracle-agents is, in this vocabulary, its team folder — the first candidate for build item 8.Added to siso-harness-lab/DECISIONS.md under 2026-09-11, in his words: one Agent Zero per project under a personal Agent Zero; Opus brain and owners on Claude Code, Qwen and Luna arms on Codex spawned by herdr and messaging back (for arms this supersedes the 2026-09-03 "never spawn via herdr"); owners without arms do it themselves or with built-in sub-agents; the team is a repackageable box in sisodias/siso-project-team; every word to an Agent Zero is captured verbatim and viewable.
Evidence read on 2026-09-11: herdr command surfaces on both machines, az-notify and siso-agent sources, ~/.codex/config.toml profiles, pool-qwen, the five overlapping repos' READMEs, the Labs transcripts (three sessions), the seven relayed briefs, the Oracle resume brief at 442a7d7. Scripts were run, not described: new-team.sh --herdr --az-pane, spawn-worker, az-send --host siso-vps, intent-capture twice for idempotence.