-
Notifications
You must be signed in to change notification settings - Fork 2
Operations
Running TRON day to day.
TRON is autonomous between your inputs. ./tron --watch idles and wakes on register work, doing one
bounded tick each time — filling free slots, clearing ahead, advancing — and idles again when there's
nothing to do. It exits cleanly when a STOP file appears. A live tron start console keeps the same
engine ticking while you watch.
Anything no worker can clear routes architect-first. Only what the architect genuinely can't resolve
— an operator-only task (deploys, secrets, production), an external blocker, human eyes, a true impasse —
reaches you as a page (>>ESCALATE), in the terminal and, if configured, on Telegram. The block
parks and its slot frees until you decide. A parked block holds the session open — TRON won't end
with an unresolved wall on the board.
With TELEGRAM_BOT_TOKEN + TELEGRAM_CHAT_ID in a gitignored .env, milestone notes (run start / block
done / run done) and pages ride Telegram, and a page waits for your reply there. Missing keys degrade
gracefully to the terminal. Keys live only in .env.
Crash-safety is built into every tick — decisions are recorded as they happen (events.jsonl), so a
restart resumes from the truth. At boot the engine sweeps: stray agent processes are killed, unverified
branches are preserved as orphan/*, and their blocks are re-dispatched fresh. Nothing is double-spawned
and no landed work is lost. (Stale worktree arenas from a killed run are also swept at boot.)
TRON ends only when the whole pipeline is settled — nothing building, nothing waiting on a wall,
the architect idle. Ending releases the whole fleet (workers never close themselves). stop in the
console does the same on demand.
Every module ships selftests (no agents, no tokens). Run the suite before trusting a change:
python3 engine/tron.py --selftest && python3 engine/gate.py && \
python3 engine/glossary.py && python3 engine/events.py && \
python3 engine/workflow.py && python3 engine/bpmn.py && \
python3 evaluation/harness.py --selftestThe same suite runs in CI on every push. A generated doc that has drifted from its source fails the
matching module's doc-sync selftest — regenerate with --write.
-
A worker looks stuck. It isn't killed on silence alone — the engine probes, re-issues once, then
pages (talk-first). Watch
events.jsonl(or the run transcript) for the sequence. -
Blocks aren't dispatching. A block is dispatchable only once its file is ready and every dependency
has landed on trunk; the architect authors ahead. Raise
max_parallelif slots sit free with ready work. -
A
>>DONEwon't stand. The truth gate bounced it — commits missing, trunk touched, tests red, or the>>CONFIRMEDper-criterion evidence was incomplete. Aftergate_failsbounces it escalates. -
The session won't end. Something is still live — most often a parked wall awaiting your decision.
pipelineshows it. -
A generated doc looks wrong. It's generated — edit the source (
glossary.py/workflow.toml/events.py) and run the module's--write, never the.mdby hand.
See also: Concepts · Architecture.