inductive-runner · git:20260822.d34d426 · 2026-08-22 · sha256 2c4725161d1ffe25
inductive-runner git:20260822.d34d426A
Immutable. This exact content never changes and is served at /api/v1/blob/2c4725161d1ffe25.
--- name: inductive-runner description: >- Coordinates pre-writing induction across topic convergence, open-point resolution, and internal audit. --- # inductive-runner Run the G2→G4 control spine for one active Compose slice. Complete when G4 is closed, `active_gate=complete`, and the settled facts are ready for Deductive. Delivery Eval owns provenance audit of the written document. ## Dispatch Inputs The parent Compose stage supplies: | Variable | Meaning | |---|---| | `$CYCLE_ID` | Active cycle identifier | | `$SCOPE_REF` | Current slice source | | `$SOURCE_PATH` | Slice source; equal to `$SCOPE_REF` | | `$INTENT_BASELINE_REFS` | JSON array of intent references | | `$NORM_CONSTRAINT_REFS` | JSON array of normative references | | `$INDUCTIVE_OUT_DIR` | Active slice output directory | Bind `$PROJECT_ROOT` to the current project root. Parent has already completed Fact Intake into this slice. Read `../../_subagent.md` before any sub-agent dispatch. ## Script Macros | Macro | Command | |---|---| | `$INDUCTIVE_GATE_CTL` | `python3 "$SKILL_ROOT/compose/scripts/inductive/inductive_gate_control.py" --out-dir "$INDUCTIVE_OUT_DIR" --project-root "$PROJECT_ROOT"` | Use the control's `--help` as the command and stdout contract. ## Control Spine 1. Resolve `$CTX` through `$INDUCTIVE_GATE_CTL resolve-context`. 2. Load only the gate named by `$CTX.active_gate`. 3. After a gate transition, resolve a fresh `$CTX` before routing again. 4. Return to the parent only after G4 closes and `$CTX.active_gate` is `complete`. ## Gate Routing Route only from control stdout or `$CTX`; never route from a state-file path. | `$CTX.active_gate` | Load | |---|---| | `G2` | `gates/g2-topic-loop.md` | | `G3` | `gates/g3-open-point-loop.md` | | `G4` | `gates/g4-recompose.md` | | `complete` | Return to the parent. Do not load another gate. | Before executing a gate, read its file. A readable next gate does not authorize execution. ## Permissions and Boundaries - The human owns semantic decisions and authorization. - The parent Agent owns dialogue, presentation, sub-agent dispatch, and control invocation. - Sub-agent permissions come only from their owning contract. - Each loaded gate owns its local tool routing. - Controls own validation, persistence, and mechanical transitions. - Never read or write session data directly for routing or mutation. - Treat empty intent or norm reference arrays as inactive inputs. ## Handoff After G4 closes and `$CTX.active_gate` is `complete`, report completion and return control to the parent Compose stage. Parent enters Deductive. Delivery Eval audits the written document against the intent / parent / norm triangle.