| name | one-way-door |
| description | Classify a pending decision as reversible or irreversible before it is acted on, and route irreversible ones to the caller instead of auto-deciding. Triggers: "is this a one-way door", "can we undo this", "should I just decide this", "the models disagree with me", before any auto-decided approval gate. |
| practices | ["design-by-contract","fail-safe-defaults"] |
| skill_api_version | 1 |
| hexagonal_role | domain |
| consumes | [] |
| produces | ["decision-classification.v1"] |
| context_rel | [{"kind":"supplier-to","with":"premortem"},{"kind":"supplier-to","with":"council"}] |
| user-invocable | true |
| metadata | {"tier":"judgment","dependencies":[],"capabilities":["classify_decision_reversibility","escalate_user_challenge"],"effects":["write_advisory_decision_classification"],"canonical_status":"canonical","disposition":"keep_strategy","stability":"experimental"} |
/one-way-door
Classify one pending decision as two-way (cheap to undo, may be auto-decided)
or one-way (expensive or impossible to undo, always surfaced to the caller).
Return the classification and stop. This skill decides who decides. It never
decides the underlying question and it never performs the action.
Insight: an agent's confidence is uncorrelated with a decision's
reversibility, so confidence is the wrong gate. Reversibility is a property of
the decision itself, is knowable before acting, and can be declared in advance
instead of inferred from how the question happened to be worded.
The failure mode this exists to prevent: an agent auto-approves an
irreversible step because the surrounding batch of decisions was routine and the
step read as one more item in the list. Dropped table, force-push over a
colleague's work, rotated credential, published post. The batch is why it
happens: nineteen two-way decisions train the reflex that answers the twentieth.
dcg guards destructive commands at the shell boundary. This guards
destructive decisions at the judgment boundary, before any command exists.
Modes
| Trigger phrases | Mode | Entry point |
|---|
| "is this a one-way door", "can we undo this", "classify this decision" | classify | the four layers below |
| "should I just decide this", "auto-decide the rest" | gate a batch | classify each, act only on two-way |
| "the models disagree with me", "both reviewers say I'm wrong" | user challenge | the packet below |
Inputs
Required: a one-line summary of the pending decision, and the effect it would
have if answered wrong.
Optional: a declared decision id from references/decision-registry.md, and the
skill or lane raising it.
Non-goals. This skill does not answer the decision, rank options, execute
anything, or record the caller's answer. It does not gate shell commands — that
is dcg. It does not model caller preferences or build a profile of how the
caller usually answers; a preference that suppresses questions is exactly the
mechanism that must never reach a one-way door.
Procedure
Apply the four layers in order and stop at the first that fires.
- Declared registry (primary). Look the decision id up in
. If present, use its declared . A
declaration in a checked-in file outranks anything inferred from prose,
because prose gets reworded and a reworded question must not silently change
class.