Autonomous agent work on Tuturuuu runs as a small, bounded company hierarchy.
This page explains the model for people. The repository’s canonical rules are
the program orchestration reference
and the self-contained security default.
The user-local shared pstack-t3-workflow skill is an optional convenience.
Roles
Subagent budget
Each thread tree may have up to agent-allocation: 10 subagents, counting every
descendant. This replaces the older five-child ceiling. Ten is a ceiling, not a
target.
- A project declares its allocation as the lowest of:
- ten;
- the observed runtime limit when scoped
per-thread-tree;
- resource admission;
- any explicit lower allocation.
observedRuntimeLimit.unit accepts only per-thread-tree or per-parent.
A tree limit caps the allocation; a per-parent limit caps each parent’s live
direct children, independently of the tree allocation and descendant grants.
Do not relabel an ambiguous session limit without evidence.
- Reserved, queued, active, waiting-for-children and blocked agents occupy a
slot. Only drained
done and retired agents release theirs.
- The owner grants each lead an explicit remaining budget, and the lead’s
children must fit inside it. Nested leads share their parent’s grant. They
never get ten new slots.
- The hierarchy is at most three subagent levels deep, and only leads delegate.
The T3 runtime does not enforce ten, and no live session is claimed to
support ten. The budget is a repository contract plus a checker that
validates declared allocation files. It cannot configure or enforce T3’s
runtime limit.
Declare a program’s live allocation in its ignored
tmp/agent-coordination/<program>/allocation.json. The plugin reference ships
an example. Check it with:
The checker rejects:
- more live agents than the allocation (11 fails);
- a file allocation above
AGENTS.md or an observed tree limit, direct children
above a per-parent limit, or a missing/unknown runtime scope;
- lead grants that oversubscribe their parent;
- excess nesting;
- live agents under finished leads;
- a reviewer that is, or descends from, its author;
- any subagent that claims integration writes.
Without arguments, it confirms that AGENTS.md, the plugin reference and this
page declare the same allocation. node scripts/docs-audit.js, which the
Documentation and SEO contracts workflow runs, includes
that consistency check. The root script test suite runs the checker’s tests.
A passing check proves the declared structure only. It cannot see what a live
thread tree actually ran.
Agent count is not resource admission. ttr validation lanes, free disk, CPU and
RAM still limit heavy work. Reduce active WIP when queues grow or disk runs low,
and never spawn busywork to fill unused slots.
Publication, review and retirement
- Isolated workers and leads commit and push only their own verified work
branch, or open a PR. Main, release and other shared refs move only through
the project integration owner.
- Publishing from the worker’s own worktree means the root checkout’s index
never blocks branch publication.
- The reviewer is never the author.
- Leads return compact receipts: the PR, full head SHA, tests with results,
residual risk, an explicit blocker (or none) and the resume event.
- Once a child’s result is on a pushed branch, the parent removes the child’s
worktree. The pushed branch and its receipt are the recovery point.
- Add no new permanent controller, timer or wake, and never revive a retired
one. Native result and PR watches plus the existing authorized cadence
provide wakes.
Security by default
Tuturuuu is open source and a high-value target.
- Every change: code, dependency, runtime and workflow changes get focused
secret, dependency, SAST and trust-boundary checks.
- Independent review: authentication, RLS and tenant isolation,
credentials, storage delivery, CI/actions, runner execution, package
publishing and deployment changes get an independent security review before
integration.
- CI trust:
- Untrusted fork code never runs with secrets or write permissions.
- Actions and artifacts are pinned, and tokens get least privilege.
- Privileged follow-ups check actor and head/branch trust.
- Mutations fence duplicates, replays and UNKNOWN outcomes.
- Cadence: both cadences run only through existing admitted mechanisms.
Where one is missing, record the exact gap, its owner and its resume event,
and never add a T3 timer.
- The daily automated audit belongs in trusted CI. As of 2026-10-23 this is
a recorded gap:
codeql.yml runs only on manual dispatch, and the
scheduled security workflows are still pending. The gap is owned by the CI
security workstream under the project integration owner. Its resume event
is that workflow’s merge.
- The weekly deeper review runs on the integration owner’s existing admitted
control cadence. The plugin’s security-default reference tracks the
current status.
- Findings:
- Each finding carries a stable ID, severity, owner, source, current status
and remediation receipts.
- Open critical and high findings, including unconfirmed findings, hold the
release until a verified fix with fresh exact-head evidence, an evidenced
false-positive determination, or recorded risk acceptance by the release
authority naming the finding ID, scope and expiry. Risk acceptance never waives
secret rotation, untrusted-code isolation, or legal and tenant-isolation
gates.
- Existing negative assertions are preserved.
- A scan is never reported as a blanket all-clear.
- Raw secrets and customer logs never appear in public PRs, issues or
artifacts.