---
name: research-abort
description: "Force the Top-Level Dual-System Loop to escalate an in-flight research question to the human reviewer immediately. Emits an ESCALATED verdict with reason=operator_abort; loop enters TERMINAL-ESCALATED and freezes. No mid-cycle interruption."
---

# /research-abort

## Usage

```
/research-abort <question_id> [reason?]
```

## Purpose

Operator-initiated hard-trump escalation. Use when the operator determines that the loop should be stopped and handed to human review regardless of loop state (examples: operator spotted a question-framing error, Charter is known to be mis-calibrated, operator has new information that makes the question moot).

## Behavior

1. Coordinator verifies `question_id` corresponds to an in-flight (non-TERMINAL) question. If already terminated, returns `{error: "already_terminated", final_artifact_ref}`.
2. Coordinator WAITS for the current sub-cycle boundary before acting. It does NOT interrupt RAM Router or Evaluator Router mid-cycle. (Mid-cycle interruption risks Isolation Verifier alarms and incomplete audit trails.)
3. At the next sub-cycle boundary:
   - Coordinator constructs an ESCALATED verdict with `reason: operator_abort` (or the operator's provided reason).
   - Transitions per T9 to TERMINAL-ESCALATED.
   - Assembles the escalation package per `ESCALATION_PROTOCOL.md` Section 3.1.
   - Transmits to `charter.escalation_receiver_id`.
   - Emits acknowledgement to operator.

## Response

```
{
  question_id: <id>,
  abort_accepted: true,
  action_at: <next_sub_cycle_boundary_ts>,
  final_artifact_ref: <ref>,
  receiver_id: <charter.escalation_receiver_id>
}
```

## Discipline

- `/research-abort` is the ONLY operator-facing path to force an escalation. No other command mutates loop state.
- The coordinator does NOT accept an abort with `reason: override_escalation` -- there is no "cancel the abort" path.
- `/research-abort` does NOT produce a PASS artifact. It produces an ESCALATED artifact.
- Abort does NOT bypass zero-overlap. The coordinator still never reads RAM or Evaluator substate.
- Abort does NOT mutate Charter. Any threshold concerns go through Charter-amendment channel.

## Failure Modes

| Condition | Response |
|---|---|
| `question_id` not found | `{error: "unknown_question_id"}` |
| Already TERMINAL | `{error: "already_terminated", final_artifact_ref}` |
| Sub-cycle boundary not reached within timeout | Abort is queued; coordinator emits `{abort_accepted: true, action_at: ...}` and waits |

## Related Commands

- `/research` -- start a new dual-system loop.
- `/research-status` -- read-only loop inspection.
