SISO Project Team — a team in a box

One repo every project team is stood up from: a Project Agent Zero, ephemeral owners, Qwen and Luna arms, and the shared services a team runs — its herdr space, its browser, its Plane project, its intent ledger, this front end. Dogfooded first on SISO Internal Labs, which now runs on it: its Project Agent Zero lives in pane 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.

The shape — three tiers under one person, one box per project

Shaan talks in his own words · sees console cards and this page · decides credentials, money, production Personal Agent Zero — tier 0, every project sisodias/siso-agent-zero-protocol: intent, estate, plan, ledger · reads each team's digest · can talk to any Project Agent Zero One project team — one per project · one herdr space · one team folder in the project's companion repo brief ↓ · digest ↑ Project Agent Zero — Opus on Claude Code · one pane · resident, mostly idle his words → intent ledger → Plane → brief · spawns one owner per domain · closes them · keeps the front end true Owner: tokensOpus · Claude Code · ephemeral Owner: healthbrief → prove → handoff → exit …one per domain,none longer than the brief Arm: Qwen3.8-27B — the pool, freeCodex harness · model_provider siso-poolconvert · grep · draft · bulk-edit Arm: Luna — GPT-5.6, Codex planCodex harness · profile SISObounded implementation · repo read · tests brief ↓ · one az-send report ↑ brief file ↓ · one RETURN message ↑ · herdr spawns, herdr carries the reply Shared services of the team herdr spaceone workspace, its own panes camofoxown instance, userId = team siso-browselogged in once, proves pages Plane projectthe board Shaan looks at intent ledgerevery word he said, verbatim front end + team.yaml Product repos (code)clean: AGENTS.md ≤120 lines, one CI, queueno state, briefs or decisions in here Companion repo — the team's hometeam.yaml · intent/ · briefs/ · handoffs/ · docssymlinked into each code repo as .agents/ sisodias/siso-project-teamthe package: 3 role skills, tools/,this page — improvements stick here
The team you have been talking to as "Agent Zero" this week was really the Project Agent Zero of SISO Internal Labs. The personal Agent Zero above it is 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.

What Shaan said, and the mechanism each sentence becomes

His words (2026-09-11, verbatim)MechanismState
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 itThree 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 repoThree 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 skillstools/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 camofoxOne 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 importantEach 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 itREADME 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 planeteam.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 ittools/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 agentsowner: 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 anywaystools/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 loopKeep 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 versionedTwo 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

The box — what a team is made of

The package (this repo)

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

One team (a folder, in its companion repo)

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.

The three roles — front doors, not personas

BRAIN

project-agent-zero

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.

OWNERS

owner

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.

ARMS

worker-contract

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.

Three roles is the cap. The Oracle diet (below) measured well-run agent repos at ~0 personas and ≤3 as the ceiling; the tool skills each role carries are the existing SISO ones, not new ones.

Harness by role — as ruled today

RoleModelHarnessSpawned byReports toToday
Project Agent ZeroOpusClaude Codenew-team.sh --az-panespawn-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 consoleLabs: runs headless from the laptop, no pane
OwnerOpusClaude CodeProject Agent Zero, spawn-worker --harness claude --briefAgent Zero's pane, one az-sendLabs: nine owners in w1, resident
Arm — LunaGPT-5.6 LunaCodex CLI, profile SISOthe owner, spawn-worker --harness codex --model lunathe owner's pane, one RETURNlaptop only: Codex 0.153.4 is not installed on the VPS
Arm — Qwenqwen3.8-27b (pool, free)Codex CLI, model_provider = siso-pool (codex/config.pool.toml, key from the environment)the owner, --model qwenthe owner's pane, one RETURNpool 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
Fallbackthe owner's own built-in sub-agents (Claude Agent tool)the ownerrule written into project-owner

What exists, what was built today, what to build, what not to

EXISTS verified 2026-09-11

BUILT TODAY in this repo

Build — in order, smallest change that removes the biggest failure

#ChangeRemovesSizeNeeds
1Labs gets its Project Agent Zero pane; az-notify retargets Done 2026-09-11: pane w1: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
2az-send proven against root's herdr on the VPS Done; briefs forbid raw pane send-*.stranded dispatches
3Codex on the VPSDone: 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 pricesKaggle capacity
4camofox per teamDone: 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
5tools/intent-to-planeDone; 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)
6Ephemeral owners in practiceIn 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
7The Team tabDispatched 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 statusone owner
8Second teamDone: 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
9Private servingDone: 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

DON'T BUILD

ONLY SHAAN open decisions carried from the 11:18Z draft

Aligned with the Oracle unslop plan — one box, not two

The full study — inventory, what it cost, keep, avoid, and the ten adoptions now folded into the skills above — is Lessons from Oracle. Oracle is the project SISO spent the most tokens on; its good and bad infrastructure is the template's training data.

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 stepWhere it livesIn this box
1 · gate + merge queue, no ceremonyeach code repobriefs say "lands through the repo's gate"; owners never hand-roll a landing
2 · instruction diet: AGENTS.md ≤120 lines, skills ≤8, personas ≤3each code repothree roles, tool skills reused, workers/AGENTS.md is four lines
3 · worktree lifecycle as a script, ≤3 live laneseach code repoowners use the repo's script; the box does not own worktrees
4 · one tracker, one owners filePlane + the companionteam.yaml → owners.live_today is the owners file; Plane is the tracker
5 · agent credentials without a browsersiso-credentialsevery role skill says: that skill before asking anyone
7 · verification surfaces, not screenshots in chatdev server per worktree + DOM probesiso-browse over camofox is the team's probe; the handoff carries the path
9 · one line of telemetry per sessionSessionStart hookherdr pane list + tokens rollup already exist; the Agents tab (build 7) is the view
10 · boot in <10k tokensorientation = AGENTS.md + the agent-zero skill + the Plane itemthe read orders above are that list; measure them on the second team
Where the two agree exactly: state, briefs, decisions and evidence live in the companion repo, never in a product repo; the tier-0 protocol repo is the "all projects" level and gets the front door registered, not a copy. The Oracle team's oracle-agents is, in this vocabulary, its team folder — the first candidate for build item 8.

Rulings recorded today

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.