/sharpen-later)
Capture a friction bookmark in one tool call and return to the user's task
in the same turn. A dedicated /sharpen-saw session investigates it later.
The Same-Turn Contract
-
Log it with one command.
scripts/later.pysits in this skill's directory: replace<skill-dir>with that directory.python3 <skill-dir>/scripts/later.py "<what the user said went wrong>" \ --agent-note "<the failing command, tool or rule, in one line>" \ --cat <category>
--cat |
Use for |
|---|---|
cli-gap |
A CLI that hung, prompted, or needed a flag you guessed. |
rule-violation |
An instruction that existed and was not followed. |
skill-gap |
A skill that was missing, or present and never loaded. |
hook-gap |
Something a hook or permission rule should have caught. |
tool-bug |
A harness tool that misbehaved. |
ui-glitch |
Output that rendered wrong for the user. |
perf |
Work that was needlessly slow or token-heavy. |
review-escape |
A real defect a human reviewer caught after local review |
other |
Anything else. |
- Echo the receipt. Put the printed
📌 Logged for /sharpen-saw (...)line first in your reply. - Resume. Continue the interrupted task in the same turn.
Guardrails
- Infer
--catand--agent-notefrom the conversation and proceed; the user already said everything they wanted to say. - Keep the detour to that single command. Root causes, transcript reading, and
edits to rules, skills or CLIs all belong to the later
/sharpen-sawsession, which finds the surrounding steps from the bookmark's session and timestamp.
Details
- Bookmarks append to
${XDG_STATE_HOME:-~/.local/state}/sharpen-saw/later.jsonl(--later-fileoverrides). - The session id comes from
$CLAUDE_CODE_SESSION_ID; under another agent, pass--session <id>. A subagent logs against its parent session. - Needs Python 3.9+ and nothing else.