Steering Signals
Paddles does not use one generic control score. It applies a family of controller-owned steering signals that bias the turn loop when evidence starts to matter more than priors.
prompt prior
↓
interpretation context
↓
planner proposes next action
↓
controller steering layer
├─ context strain: context degraded
├─ action bias: act on a likely file
├─ premise challenge: refine or stop and judge
├─ compaction cue: tighten active context
└─ budget boundary: terminate bounded recursion
↓
next action or grounded synthesis
The key rule is simple: the user can supply the starting premise, but gathered sources get to revise it.
Signal Families
| System | Trigger | Effect |
|---|---|---|
| Context strain | Truncation during context assembly | Surfaces degraded context quality |
| Action bias | Mutation turn is still avoiding file action | Adds a planner review note that biases the next move toward a likely target file |
| Premise challenge | Quiet steps or evidence weakens the original premise | Adds a planner review note or refinement trigger so the model must judge the sources explicitly |
| Compaction cue | Active context is getting noisy | Summarizes/prunes low-value artifacts while preserving locators; today this is still mostly heuristic |
| Budget boundary | Hard recursion caps are reached | Stops the loop and forces an honest answer |
Context Strain
A StrainTracker accumulates truncation events during context assembly for each turn. When the turn's context has been fully assembled, the tracker computes a ContextStrain value:
- Level — Low, Medium, High, or Critical based on the number of truncation events
- Truncation count — total number of individual truncation events
- Factors — which sources were truncated (memory, artifacts, thread summaries, evidence budget)
Strain Levels
| Level | Truncation events | Meaning |
|---|---|---|
| Low | 0 | No significant truncation |
| Medium | 1-2 | Minor truncation, one or two sources affected |
| High | 3-5 | Significant truncation across multiple sources |
| Critical | 6+ | Severe context degradation |
When strain is non-nominal, the system emits a ContextStrain turn event. This is observational: it tells the operator that the working set was degraded.
Action Bias
Action bias encodes the principle that action produces information.
On edit-oriented turns, once the harness already has plausible file evidence, repeated non-file work becomes lower value than reading or editing the likely target. The controller now adds an action-bias review note back into the planner loop, and the planner must judge whether the proposed move should stand or be replaced by a file-targeting action.
Premise Challenge
Premise challenge is what makes the harness intellectually honest.
It operates in two modes:
- Quiet-step refinement — if the loop has real evidence but several steps add nothing new, the controller derives a refined interpretation context.
- Premise judgement — if the prompt asserts a failure but the gathered sources weaken or contradict that claim, the controller adds a premise-challenge review note and asks the planner to judge the sources before spending more budget.
This is how Paddles avoids blindly trusting the operator once the evidence says otherwise.
Compaction Cue
Compaction cue keeps the active context small enough to stay useful. The controller can summarize or prune low-value retained artifacts while preserving typed locators to the deeper records in transit or on disk.
Today that compaction path is still mostly heuristic. The interface is designed for deeper recursive self-assessment, but the current adapters do not yet fully delegate compaction judgement back to the model.
Budget Boundary
Budget boundary is the hard outer wall. Step, search, inspect, and read limits are all explicit. When they are exhausted, the loop stops and synthesis proceeds from the evidence actually gathered.
What Operators See
Steering signals are visible in both the transcript and the trace model. In the TUI, context strain appears as a turn step:
• Context strain: medium
└ 2 truncation(s), factors: [memory-truncated, artifact-truncated]
In transit traces and the web forensic inspector, steering signals and influence snapshots carry:
- a signal kind
- a magnitude estimate
- a summary
- source-attributed contribution estimates
Manifold Route
The web UI also exposes a dedicated /manifold route. It is a higher-level projection of the same trace data:
- three steering gates:
evidence,convergence, andcontainment - replay time across the horizontal axis
- gate family across the lane stack
- force magnitude as depth in the scene
That route is intentionally metaphorical. It is not a second reasoning engine and it does not invent hidden runtime state. Every manifold state is projected from exact recorded steering-signal snapshots and lineage anchors, and the raw signal kinds remain available behind the selected gate state.
For that reason, the manifold route must stay accountable to the forensic inspector:
- selecting a manifold state reveals the exact source record behind it
- the route can jump back to the precise forensic inspector on that record
- raw and rendered payload inspection still lives in the forensic route, not in the manifold metaphor
Resolver-backed edit convergence is now visible there too. When a selected
signal came from deterministic entity resolution, the manifold readout shows
whether the target was resolved, ambiguous, or missing, along with the
authored path or candidate set that produced that state.
The route also stays local-first. It is rendered from the same locally served web shell and does not rely on external visualization CDNs.
What To Read Next
- Turn Loop — where the steering layer sits in the full cycle
- Recursive Planning — how steering signals change planner behavior
- Context Tiers — how content moves between tiers and gets truncated