Skip to content

fix: receipt machinery enforce-readiness (S404 dogfood findings) - #19

Merged
Nazim22 merged 2 commits into
mainfrom
dae/ll-s404-receipt-fixes
Aug 3, 2026
Merged

fix: receipt machinery enforce-readiness (S404 dogfood findings)#19
Nazim22 merged 2 commits into
mainfrom
dae/ll-s404-receipt-fixes

Conversation

@Nazim22

@Nazim22 Nazim22 commented Aug 3, 2026

Copy link
Copy Markdown
Owner

What

Closes the S404 advisory-dogfood defects (issues #18, #9-partial):

  • init --mode advisory|enforce; --dry-run now writes nothing (planClaudeCodeInstall)
  • Obligation extraction skips system-injected spans (task-notifications, system-reminders, prior [LEADLINE] blocks)
  • Unsatisfiable obligations abstain: nonexistent correction target → immediate ABSTAIN; else 3rd corrective fire or 15-min age → one append-only ABSTAIN row (failure: unsatisfiable, fire count), obligation retired, call proceeds — enforce can never permanently lock a tool
  • Correction budget keyed on the obligation (rule.id), not the invocation — proven against the real S404 pattern (varying commands + fresh tool_use_id per call); budget resets on genuine satisfaction/approval
  • Trace rows schema-validated at write (no empty attempted/null rule_id)
  • Injection context bounded (1200-byte cap, word-safe truncation)
  • CI smoke actually exercises the init path (the --help || short-circuit is gone)

Review

Built by Daedalus (dae/ll-s404-receipt-fixes, base 0218f52). Reviewed at 5e9c6f5 — one blocker (invocation-keyed budget, executable repro) — corrected additively in e88fbc2, re-reviewed and re-proven: repro shows DENY→ASK→ABSTAIN→ALLOW on all production shapes; 250/250.

🤖 Generated with Claude Code

@Nazim22
Nazim22 merged commit 090be77 into main Aug 3, 2026
6 checks passed
@Nazim22
Nazim22 deleted the dae/ll-s404-receipt-fixes branch August 3, 2026 21:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant