From 8e19dbb9609b311a0cfe28100ac5df3a664b1b14 Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Sat, 31 Oct 2026 19:21:28 +0100 Subject: [PATCH] docs(democracy): let an agent end its own hung job after 60 min without progress and a standstill probe Co-Authored-By: Claude Opus 5.5 (1M context) --- skills/cleanup/SKILL.md | 2 ++ skills/democracy/SKILL.md | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/skills/cleanup/SKILL.md b/skills/cleanup/SKILL.md index f3d0168..8e7f6dc 100644 --- a/skills/cleanup/SKILL.md +++ b/skills/cleanup/SKILL.md @@ -152,6 +152,8 @@ ticked items. Revise repeats call 1; nothing is deleted before `Execute`. free space: not for a priority slot, not at a disk stop. Free idle items, ask the operator for an exception, or wait; an owner's own disk guard only alerts the chair, and only the operator can order a running job down. + A hung job is not freed through cleanup: the `democracy` skill's hang rule + lets only its owner end it. - Idle running stacks go down through the project's teardown target, never by removing their containers or volumes underneath them. - Archive-first items: copy out, verify the copy, then delete. diff --git a/skills/democracy/SKILL.md b/skills/democracy/SKILL.md index b1db8be..cc8006b 100644 --- a/skills/democracy/SKILL.md +++ b/skills/democracy/SKILL.md @@ -84,7 +84,13 @@ records the result. projected disk stop. It grants nothing new, frees idle items through the `cleanup` flow, asks the operator for an exception, or waits. An owner's own disk guard only alerts the chair and takes nothing down; only the - operator can order a running job down. + operator can order a running job down. The one exception is a hang: an + agent may end its own job, a stuck step inside it, or a process its own + ended session left behind, once at least 60 minutes passed without log + progress and a probe shows standstill (no fresh child process, no network + traffic, CPU time not moving). It secures the live state first and then + reports the timestamp, the step, the probe and the command. A peer's hung + job goes to its owner, and to the operator when the owner does not answer. - Handover is explicit: the outgoing chair sends every peer the new holder, the queue and the running grants, and keeps allocating until the incoming chair confirms. Two allocators never run at once.