v0.5.0
Ledger release: she watches tool outcomes directly now, catches repeated silent failures, and nags before work starts.
Features:
- PostToolUse ledger records edited files, verification runs, normalized failures, and redacted event details; Stop prefers ledger evidence and requires verification newer than the last edit.
- Silent-recovery guard injects context after repeated normalized failures, throttled per signature.
- Promise-no-act Stop precheck blocks final “I’ll do it next” style replies without a following tool call.
- Implementation prompts get a one-time evidence contract; question/explanation prompts do not.
- scripts/gate-stats.mjs summarizes block→pass conversion, gave_up rate, and gate counts from gate events.
Hygiene:
- Gate labels/summaries/block instructions moved into ko/en/ja corpora.
- State writes use tmp+rename atomic writes; hook entry scripts fail open with one-line messages.
Fixes from pre-release review:
- Nested hookSpecificOutput for context injection.
- Promise-no-act avoids ordinary sign-offs.
- TODOs in new untracked files are caught.
- Runner/mutating detection anchors to command position.
- Short/question prompts no longer manufacture requirement blocks.
- events.jsonl stores compact redacted summaries.
- Requirement evidence uses content-word majority matching.
- Stop reads transcript tail only.
- SessionStart greetings localized to ko/en/ja.
- Give-up confession is model-visible in final retry block.
- Ledger falls back to hardened failure-text detection without exit code.