Surface and address an unresolved open loop (question / deferred decision / blocker) detected by the daemon in a recent thread. Runs the three-agent /check pipeline scoped to that thread's signals; the user's correction enters the vault tagged from the canonical taxonomy.
Scanned 5/27/2026
Install via CLI
openskills install liminalshruti/liminal-agents---
name: openloop
description: Surface and address an unresolved open loop (question / deferred decision / blocker) detected by the daemon in a recent thread. Runs the three-agent /check pipeline scoped to that thread's signals; the user's correction enters the vault tagged from the canonical taxonomy.
disable-model-invocation: true
allowed-tools: Bash(node *)
argument-hint: "[required: surfacing_id from daemon notification]"
---
# Liminal Agents — Open Loop
The daemon detected a loop — a question raised, a decision deferred, or a blocker stated — in a recent thread, and the loop has persisted across enough ticks to surface. `/openloop` reads the loop and the thread it belongs to, runs the three bounded agents over that scoped context, and captures the user's correction.
This is the same deliberation pipeline as `/check` and `/close`; only the scoping is different.
## Flow
### 1. Run the openloop script
The skill is invoked from a daemon notification. The surfacing_id is required:
```bash
node ${CLAUDE_PLUGIN_ROOT}/skills/openloop/openloop.js --surfacing-id=<uuid>
```
Returns JSON with `vault_id`, `loop` (thread_label / loop_kind / loop_text), `signal_count` (signals in the thread), `signal_summary` for the thread, and the three agent interpretations.
If `vault_id` is `null` and `reason` is `surfacing_not_found`, report it and stop. The daemon may have surfaced the loop from a previous run that is no longer current.
### 2. Present the loop and the three reads
Show the user:
- **Loop** — `{loop_kind}` on `{thread_label}`: `{loop_text}`, verbatim.
- **Thread context** — `signal_summary` for the thread (one paragraph).
- **Three reads** — Architect / Witness / Contrarian on whether the loop is real, what's blocking it, what would close it.
Then:
> "Which reading is wrong, and why? Your correction enters the vault."
### 3. Tag the correction
Map the user's reason to one of the nine canonical correction tags (same taxonomy as `/check` and `/close`): `wrong_frame`, `wrong_intensity`, `wrong_theory`, `right_but_useless`, `right_but_already_known`, `too_generic`, `missed_compensation`, `assumes_facts_not_in_evidence`, `off_by_layer`.
### 4. Store the correction
```bash
node ${CLAUDE_PLUGIN_ROOT}/skills/check/store-correction.js <vault_id> "<agent_name>" "<tag>" "<reason>"
```
Confirm and end the openloop session.
## Voice rules
- No wellness framing. The loop is a structural state, not an emotional one.
- Agents hold their jurisdictions. Do not paraphrase them.
- If the user says the loop is closed (and it just wasn't observed in a signal), write a correction with `right_but_already_known` against whichever agent claimed the loop was open.
No comments yet. Be the first to comment!