Mode System
Not every session needs the full pipeline. Modes filter which skills, gates, and auditors are active — so you get exactly the workflow you need.
Why Modes Exist
The full Propel pipeline has five gates, two questioner checkpoints, a dozen skills, and eight auditor agents. That is the right amount of structure when you are building a new paper-derived component from scratch. But it is far too much when you just need to launch a training run or track down a NaN.
Modes solve this by filtering the pipeline down to what the current task actually requires. A Researcher does not need implementation gates. A Trainer does not need design reviews. A Debugger needs investigation and diagnosis, but not the full design-implement-validate cycle. Each mode activates only the phases, gates, and skills that match the work.
Modes are filters, not silos. The underlying skills and gates are the same across all modes — modes just control which ones are active. You can switch modes at any time without losing context.
How to Switch Modes
There are two ways to select a mode:
At Session Start: /intro
When you start a new session, the /intro command presents all four modes and asks you to choose. If no mode is selected and you just describe a task, Propel defaults to Engineer Mode (the full pipeline).
Anytime: /switch
Switch modes at any point during a session with the /switch command:
/switch researcher
/switch engineer
/switch debugger
/switch trainer
The switch takes effect immediately — no /clear needed. The using-propel skill reads the updated mode file and routes accordingly.
Mode State Persistence
The current mode is stored in .propel/mode.json:
{
"mode": "engineer",
"switched_at": "2026-03-28T14:30:00Z",
"previous_mode": "researcher"
}
This file survives /clear. When the session-start hook fires (on every session start, resume, and compaction), it reads .propel/mode.json and injects the current mode into Claude's context. Your mode choice persists across context resets.
If .propel/mode.json does not exist, the hook sets "mode_selection_needed": true and Claude presents the mode selection prompt before anything else.
Mode Comparison
| Property | Researcher | Engineer | Debugger | Trainer |
|---|---|---|---|---|
| Active Gates | G0 G1 | G0 Q0 G1 Q1 G2 G3 G4 | G0 G1 G4 | G4 (runtime only) |
| Key Skills | investigation, deep-research, paper-extraction, think-deeply, retrospective, context-hygiene | All skills active | investigation, systematic-debugging, deep-research, think-deeply, verification-before-completion | trainer-mode, systematic-debugging (runtime only), context-hygiene |
| Use Case | Literature reviews, understanding a domain, processing papers | Full development: design, implement, validate, debug | Root-cause analysis, evidence-backed diagnosis | Launch training, fix runtime errors, monitor runs |
| Does NOT | Implement code, create designs, launch training | (no restrictions) | Build new features, create design plans, launch training | Change logic, modify architecture, add features |
Pipeline Phase Activation
Each mode activates different phases of the Propel pipeline. The diagram below shows which phases are active (filled) and inactive (empty) in each mode:
Researcher Engineer Debugger Trainer
---------- -------- -------- -------
Gate 0 Intake [========] [========] [========]
Q0 Grounding [========] [========]
Investigation[========] [========] [========]
Gate 1 Post-Invest.[========] [========] [========]
Q1 Details [========]
Design [========]
Gate 2 Post-Design [========]
Implementation [========]
Gate 3 Mid-Impl. [========] classify
Validation [========] evidence
Training [========] [========]
Debugging [========] [========]
Gate 4 Post-Debug [========] [========] (runtime)
Retrospective [========] [========] [========] [========]
Out-of-Scope Handling
When a request does not match the current mode, Propel does not silently fail or attempt the work anyway. Instead, it names the mismatch and suggests the correct mode:
| Situation | Current Mode | Response |
|---|---|---|
| User asks for code implementation | Researcher | "That's an implementation task. Switch to Engineer Mode with /switch engineer to get the full design-implement-validate workflow." |
| User asks to build a new feature | Debugger | "That's a new feature, not a bug fix. Switch to Engineer Mode with /switch engineer." |
| User asks to launch training | Debugger | "That's a training task. Switch to Trainer Mode with /switch trainer." |
| User asks for architecture changes | Trainer | "That's a logic change, not a runtime bug. Switch to Engineer Mode with /switch engineer." |
| User asks for literature review | Trainer | "That's a research task. Switch to Researcher Mode with /switch researcher." |
If you are unsure which mode to use, just describe what you want to do when starting a session. The /intro command will suggest the right mode based on your description.