What Runs Without You Asking

You describe the problem. Propel picks the mode, routes the skills, dispatches the subagents, and tells you what it did. The only thing it will not do on your behalf is decide.

The Automation Contract

A framework that requires you to remember /investigation before investigating, or a flag before wanting a second opinion, has moved the cognitive load it was supposed to remove. The trigger tables throughout these docs are instructions to the agent, not a menu for you.

Three rules follow from that, and they are the ones that decay first in a long session:

  1. Announce; don't ask permission for process. "Dispatching three investigators in parallel — call graph, config wiring, and the reward path." Not "would you like me to investigate?" Process belongs to the agent. Decisions belong to you, and those get a gate.
  2. Never wait to be told to dispatch. If the auto-dispatch table says an auditor applies, it runs. You find out from the narration, not from a permission prompt.
  3. If the agent catches itself writing "you can run X if you want" — it should stop, and run X.
Everything mechanical is Propel's job. Everything that decides what the experiment means is yours. That line is the product — see Who Decides What.

What Fires, and When

TriggerWhat fires automatically
Your first messageMode selection, announced in one line with its reason
A new taskGate 0 scoping questions, one at a time, then Q0 grounding
A question needing several files tracedSeveral investigator subagents in parallel, one question each
Findings assembledCodex consult, then Gate 1
Design completeCodex consult, then Gate 2
An approved planimplementer, then spec-reviewer, one component at a time
Any source editA PostToolUse hook names the required auditors
An approved training commandtrainer-operator, in its own context
A root cause identifiedCodex consult, then Gate 4
Three failed attemptsThe 3-strike break: stop, and ask what assumption all three share
~15 substantive turnscontext-hygiene — update the README, suggest /clear
~20 turns without oneretrospective suggestion

Hooks: Mechanism, Not Memory

Propel used to say "auditors are auto-dispatched", which really meant "a skill file reminds the model to remember". Memory is not a mechanism, and it is the first thing to go thirty turns into a session.

Four hooks make the important parts deterministic, executed by the harness rather than recalled by a model:

HookEventWhat it does
session-start.shSessionStart, PreCompactInjects the core principles, the dual-model policy, the active mode, and any open investigations
working-memory.shSessionStart, PreCompactInjects past experiments and architectures so nothing gets re-proposed
route.shUserPromptSubmitRe-states the active mode, the Codex state, and six routing rules — every turn, so they don't decay as context fills
auditor-dispatch.shPostToolUse on Edit|Write|MultiEdit|NotebookEditLooks at the file just written and states which auditors are now required

The dispatch hook inspects the path and the file contents: silent-bug-detector for model / loss / data / training surfaces, jax-logic-auditor when JAX transforms are actually present in the file, env-researcher for environment wrappers, regression-guard for everything. It skips scratch/, .claude/, sessions/ and non-source files entirely.

The hook states the requirement; the model still has to satisfy it. That's a meaningful improvement over pure memory, not a guarantee — which is why the auditors' findings appear in the Gate 3 card where you can see whether they actually ran.

Why Subagents, Not Just More Context

Every worker agent exists for the same reason: context is the scarce resource, and the work that consumes the most of it produces the least of the reasoning you actually need.

The alternative — doing all of that in the main conversation — means that by the time you reach the design decision, the context is full of log tails and unverified claims, and the model is reasoning next to them. Hallucination risk grows with context. Spending someone else's context is the cheapest fix available.

One question per investigator. A single agent with a broad brief ("understand the codebase") returns a shallow summary of everything and an answer to nothing — and burns the context the specific questions needed. Four narrow agents return four answers with evidence.

What Never Automates

The list is short and it does not grow:

Overriding It

CommandEffect
/switch <mode>Override the automatically selected mode. Marks it selected_by: user, which makes Propel ask before auto-switching away from it.
/disable-codexSingle-model gates for this project.
/introThe full tour, including the four-mode menu, if you'd rather choose explicitly.
/primerReload project context after a /clear.

If you correct an auto-selected mode, Propel says so in one line — that's signal about where the inference went wrong, and it's worth seeing.