brewtools:agent-deadline

Installation
SKILL.md

Agent Deadline

Installer/configurator skill. It wires two self-contained hooks (PreToolUse guard + SubagentStop cleanup) that put a SOFT wall-clock budget on every subagent — or configures/removes them. All runtime behavior lives in the hook files and in a JSON config; this skill only decides mode, scope and budget, then delegates the file work to the brewcode:hook-creator agent following the runbook.

Claude Code has NO wall-clock timeout for subagents, and maxTurns kills the agent and discards its final report. These hooks kill nothing — at 80% of the budget the agent gets one non-blocking "wrap up" directive, and past 100% every tool except the finalization set is denied, so the agent is FORCED to write its report instead of losing it.

What the hooks do (informational — skill does NOT implement)

Hook Event Behavior
agent-deadline-guard.mjs PreToolUse (.*) tracks elapsed per agent_id; 80% -> one additionalContext warning; 100% -> permissionDecision:"deny" for everything outside the finalization set; hardStopRatiox budget (default 2x) -> allowance shrinks to Write, Edit
agent-deadline-cleanup.mjs SubagentStop deletes the finished agent's state file

Finalization set — advertised in the guard's directives: Read, Write, Edit, MultiEdit, NotebookEdit, TodoWrite, TaskUpdate.

Actually allowed past 100%: those 7 plus TaskCreate, BashOutput, TaskOutput. The 3 extras are deliberately NOT named in the directive text — naming BashOutput invites a poll loop, while an agent that genuinely needs to harvest an in-flight job still gets through. Declared list ⊂ real list is by design, not a bug.

AskUserQuestion is DENIED on purpose: a subagent parked on a human answer is unbounded wall-clock time, exactly the failure this guard exists to stop.

Installs
1
GitHub Stars
31
First Seen
Aug 4, 2026
brewtools:agent-deadline — kochetkov-ma/claude-brewcode