Pipeline Overview

The end-to-end Propel workflow: from user idea to validated implementation, with human checkpoints at every phase transition.

The Problem Propel Solves

An unconstrained LLM will skip straight to implementation when you say "implement X." Without guardrails, Claude fills in gaps with the mean of its training data — plausible-looking but often wrong implementations built from averaged patterns rather than project-specific knowledge.

Vague requests like "build a can transport task with robosuite" lead to implementations that look reasonable but silently diverge from what you actually need. Claude fills architectural gaps with defaults instead of asking. The result: hours of debugging code that was wrong from the start because the problem was never properly scoped.

Propel solves this by injecting a structured workflow into every Claude session — a pipeline of gates, questioners, investigations, and auditors that forces investigation before implementation and human approval before phase transitions.

End-to-End Flow

The complete Propel pipeline has 12 phases, connected by 5 gates and 2 questioner checkpoints:

User idea → Gate 0Q0 → Investigation → Gate 1Q1 → Design → Gate 2 → Implementation → Gate 3 (loop) → Validation → Debugging → Gate 4 → Training → Retrospective

Each phase serves a distinct purpose in the pipeline:

PhasePurposeKey Output
IntakeScope the work with disjunctive questionsConfirmed scope statement
Gate 0Human approves scope before any work beginsGo/no-go decision
Questioner Q0Ground the work in concrete referencesReference sources, architecture patterns, benchmarks
InvestigationTrace code paths, document architecture, discover risksLiving scratch/ README with findings
Gate 1Human reviews findings, makes design decisionsApproved findings + design decisions
Questioner Q1Nail down implementation detailsBinding implementation constraints
DesignPaper-to-code mapping, regression risk analysisComponent list with equation mappings
Gate 2Human reviews and approves implementation planApproved plan with scope estimate
ImplementationBuild each component with auditor reviewImplemented + audited components
Gate 3Per-component audit results presented to humanClean pass or issue resolution
ValidationShape, gradient, overfit, and regression gatesValidation evidence
DebuggingRoot-cause analysis with evidence-backed diagnosisClassified diagnosis (code bug / design issue / config)
Gate 4Human approves diagnosis before fix is appliedApproved fix plan
TrainingLaunch and monitor training runsTraining results
RetrospectiveCapture learnings and failed attemptsRegistry entry with failed attempts table

Pipeline Diagram

The following diagram shows which phases are active in each mode. Filled blocks () indicate active phases; diamond blocks () indicate questioner checkpoints:

                    Researcher          Engineer            Debugger            Trainer
                    ──────────          ────────            ────────            ───────
Gate 0  Intake      ██████████          ██████████          ██████████
                        |                   |                   |
  Q0    Questioner      ◆◆◆◆◆◆◆◆◆◆          ◆◆◆◆◆◆◆◆◆◆
        (grounding)     |                   |
        Investigation   ██████████          ██████████          ██████████
                        |                   |                   |
Gate 1  Post-Invest.    ██████████          ██████████          ██████████
                        |                   |                   |
  Q1    Questioner      ◆◆◆◆◆◆◆◆◆◆          ◆◆◆◆◆◆◆◆◆◆          |
        (details)                           |                   |
        Design                              ██████████          |
                                            |                   |
Gate 2  Post-Design                         ██████████          |
                                            |                   |
        Implementation                      ██████████          |
                                            |               ┌────┴─────┐
Gate 3  Mid-Impl.                           ██████████      | classify |
                                            |               | evidence |
        Validation                          ██████████      | lit srch |
                                                            └────┬─────┘
        Training                            ██████████           |         ┌──────────┐
                                            |                   |         | scan,    |
        Debugging                           ██████████          ██████████ | launch,  |
                                            |                   |         | monitor  |
Gate 4  Post-Debug                          ██████████          ██████████ └────┬─────┘
                                            |                   |              |
        Retrospective   ██████████          ██████████          ██████████ ██████████
                                                                          (runtime only)

Mode Filtering

Not every session uses the full pipeline. Propel's four modes filter which phases and gates are active, so you only engage the checkpoints relevant to your task.

Gates by Mode

Gate / QuestionerResearcherEngineerDebuggerTrainer
Gate 0 (Intake)ActiveActiveActive
Q0 (Grounding)ActiveActive
Gate 1 (Post-Investigation)ActiveActiveActive
Q1 (Details)ActiveActive
Gate 2 (Post-Design)Active
Gate 3 (Mid-Implementation)Active
Gate 4 (Post-Debug)ActiveActiveActive (runtime only)

Phases by Mode

PhaseResearcherEngineerDebuggerTrainer
IntakeActiveActiveActive
InvestigationActiveActiveActive
DesignActive
ImplementationActive
ValidationActive
TrainingActiveActive
DebuggingActiveActiveActive (runtime only)
RetrospectiveActiveActiveActiveActive
Mode Summary

Researcher: Stays in the understanding phase — literature, investigation, and retrospective only. Engineer: Full pipeline with all phases and gates. Debugger: Focused on root-cause analysis with classify-evidence-diagnose protocol. Trainer: Skips to training execution, fixes runtime bugs only.

The Injection Mechanism

An unconstrained Claude will ignore the pipeline and skip to implementation. Propel prevents this through a hook-based injection system that loads the full workflow into Claude's context before it sees your first message.

How It Works

propel init
  ↓
Copies skills/, agents/, commands/, hooks/ into .claude/
Merges hook config into .claude/settings.local.json
  ↓
User starts `claude`
  ↓
SessionStart hook fires → runs session-start.sh
  ↓
Injects full using-propel/SKILL.md content as JSON into Claude's context
(Also injects: active investigations, project profile, registry entries)
  ↓
Claude's context now contains:
  1. Core principles (core/CORE.md — non-negotiable mindset rules)
  2. The gate protocol (5 mandatory gates)
  3. The skill routing table (which skill for which trigger)
  4. The auditor dispatch rules (which agent after which code change)
  5. Active investigation state (scratch/ READMEs)
  6. Project profile (.propel/profile.md, if it exists)
  7. Current mode + mode_selection_needed (.propel/mode.json)
  8. Empty repo flag (whether to use progressive CLAUDE.md building)

What Each Layer Provides

LayerWhat It ProvidesHow It Enters Context
Core principlesNon-negotiable mindset rules: evidence over agreement, anti-sycophancy, context discipline, self-reflection, loop-breakingSessionStart hook injects core/CORE.md
SessionStart hookInjects core + using-propel skill + investigation state on every session start, resume, and compaction.claude/settings.local.json hooks config
PreCompact hookRe-injects context before Claude compresses old messages, so instructions survive compactionSame hook, different trigger
Skill descriptionsClaude Code loads all .claude/skills/*/SKILL.md descriptions — Claude matches triggers against user inputBuilt-in Claude Code feature
Agent descriptionsClaude Code loads all .claude/agents/*.md descriptions — Claude dispatches based on description matchBuilt-in Claude Code feature
CLAUDE.mdProject-level instructions read on every sessionBuilt-in Claude Code feature
Project profile.propel/profile.md — conventions Claude should follow silentlySessionStart hook reads it
Mode state.propel/mode.json — controls which skills and gates are activeSessionStart hook reads it

Redundant Constraint Layers

Propel's reliability comes from redundancy. No single layer is critical — if one fails, the others still constrain Claude. This is the difference between "please follow this process" and having the process embedded in every layer of context.

Skill description match  →  "activates before any action"
Hook injection           →  full routing table in context
CLAUDE.md                →  "This project uses the Propel research workflow"
Auditor dispatch rules   →  agents auto-run after code changes

The system is prompt-based, not mechanically enforced. There is no code-level gate that blocks Claude from skipping a step. Claude follows the workflow because:

  1. The hook injects the full routing table into context before Claude sees your first message
  2. The using-propel skill description says "activates before any action" — Claude Code's skill matching prioritizes this
  3. The instructions are specific and structured (routing tables, not vague guidelines)
  4. The PreCompact hook re-injects on compaction, so instructions survive long sessions
When It Might Slip

Very long sessions where context is heavily compressed (the PreCompact hook mitigates this). If the user explicitly says "skip the gates." Ambiguous requests that don't clearly match any routing table trigger. If Claude skips a gate, say: "You skipped Gate 0 — go back and ask scoping questions." Claude will see the instructions in its context and correct.