From fecf43390a77c609b7a9a0dac701d1cc1e4bcbc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Andr=C3=A9?= Date: Thu, 23 Jul 2026 12:53:20 +0000 Subject: [PATCH] docs(security): document EndConversation as the sanctioned termination path --- .../LIFEOS/DOCUMENTATION/Security/README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/LifeOS/install/LIFEOS/DOCUMENTATION/Security/README.md b/LifeOS/install/LIFEOS/DOCUMENTATION/Security/README.md index 80b758bb08..8552e169e9 100644 --- a/LifeOS/install/LIFEOS/DOCUMENTATION/Security/README.md +++ b/LifeOS/install/LIFEOS/DOCUMENTATION/Security/README.md @@ -62,6 +62,21 @@ Lives in `LIFEOS/LIFEOS_SYSTEM_PROMPT.md` under "Security Protocol". Concretely Loaded at every session start. Survives compaction. Untouched by this simplification. +### Session termination — `EndConversation` + +The sanctioned mechanism for ending a session is the harness's `EndConversation` tool (Claude Code 2.1.214+), not an ad-hoc refusal loop. Scope is narrow and deliberate: + +- **Use it for** sustained abuse directed at the assistant, or persistent jailbreak attempts after the boundary has been stated. +- **Do NOT use it for** ordinary disagreement, a request declined on other grounds, or a task that merely touches a sensitive topic. Declining a request and ending a conversation are different actions with different thresholds. + +It ships as a **deferred tool**: only the name is in context at session start, so its schema must be loaded before it can be called. + +``` +ToolSearch("select:EndConversation") +``` + +Reference: + ## L2 — Native `permissions.deny` In `settings.json`, scoped narrowly to **irrecoverable** ops only. Categories: