Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ Install or disable them dynamically with the `/plugin` command — enabling you
- [debug-session](./plugins/debug-session)
- [debugger](./plugins/debugger)
- [double-check](./plugins/double-check)
- [nuhuh](./plugins/nuhuh)
- [optimize](./plugins/optimize)
- [performance-benchmarker](./plugins/performance-benchmarker)
- [refractor](./plugins/refractor)
Expand Down
9 changes: 9 additions & 0 deletions plugins/nuhuh/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"name": "nuhuh",
"description": "Your agent said Done. nuhuh runs the experiment and bounces the agent until the receipt is green.",
"version": "0.1.10",
"author": {
"name": "sjh9714"
},
"homepage": "https://github.com/sjh9714/nuhuh"
}
15 changes: 15 additions & 0 deletions plugins/nuhuh/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# nuhuh

Your agent said "Done." nuhuh runs the experiment.

This plugin installs a Stop hook. Every time the agent tries to finish, nuhuh extracts the completion claims from its final message ("all tests pass", "created src/x.ts", "endpoint works") and re-runs reality, fresh. The whole test suite in a clean process, the build, the file on disk, the local endpoint. If a claim is false, the Done is rejected and the failing evidence goes straight back to the agent, which returns to work. After 3 bounces it hands the receipt to you.

Deterministic and local. No LLM calls in the verification path, no API key, nothing leaves your machine. Claims it cannot safely check are marked unverifiable, never failed.

Full documentation, a False Done Rate benchmark, and the source live at [github.com/sjh9714/nuhuh](https://github.com/sjh9714/nuhuh).

Try it without installing anything

```bash
npx nuhuh demo
```
15 changes: 15 additions & 0 deletions plugins/nuhuh/hooks/hooks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "npx --yes nuhuh@0.1.10 gate",
"timeout": 600
}
]
}
]
}
}
9 changes: 9 additions & 0 deletions plugins/nuhuh/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"name": "nuhuh",
"description": "A Stop hook that verifies the agent's completion claims by re-running reality. It extracts every claim from the final message (tests pass, file created, endpoint works) and verifies each one fresh with real exit codes, then bounces a false Done back to the agent with the failing evidence.",
"version": "0.1.10",
"author": {
"name": "sjh9714"
},
"homepage": "https://github.com/sjh9714/nuhuh"
}