Install
$ agentstack add skill-mohamedzhioua-agent-done-or-not-done-or-not Open-source listing, not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
⚠ Flagged1 finding(s); flagged for manual review. · v0.1.0 How review works →
- • Prompt-injection patterns
- • Secret / credential exfiltration
- • Dangerous shell & filesystem operations
- • Untrusted network calls
- • Known-malicious package signatures
- high Pipes remote content directly into a shell (remote code execution).
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
done-or-not
Why this exists
AI agents routinely announce tasks are complete without verifying anything actually ran. This skill enforces a proof gate: the agent must run the real check (tests, build, typecheck, lint, a curl against the endpoint — whatever demonstrates the claim), record a tamper-evident receipt, and only then may it report done.
The gate records: the command, its exit code, and a SHA-256 of its full output. Freshness is judged by the epoch inside the receipt (not file mtime, which touch could forge). A receipt can only clear one stop — it is consumed on use.
When to use
Use whenever you are about to tell the user that a task, build, test, fix, or verification step is finished. A completion claim requires proof from the gate, not confidence or memory.
How to use
Portable skill command
- Identify the command that verifies the work. Choose the smallest check that
actually verifies the claim: tests, build, typecheck, lint, a curl against a running endpoint, or another command with meaningful pass/fail behavior.
- Run the verifying command through the proof gate. This works even when this
skill was installed without the repo-root gate scripts:
``bash npx agent-done-or-not capture --label check -- ``
If the protected repo was initialized with local scripts, these faster local forms are also valid:
``bash bash done-gate.sh capture --label check -- pwsh -File done-gate.ps1 capture --label check -- ``
The gate records the command, its exit code, and a SHA-256 of the output. It exits with the command's own code, so a failing check fails the capture.
- Only report the work complete after a fresh PASSING receipt exists.
- If the check fails, fix the problem and capture again. Never report success
on a red check.
Windows (native PowerShell — no bash required)
npx agent-done-or-not capture --label check --
pwsh -File done-gate.ps1 capture --label check --
# or, on Windows PowerShell 5.1:
powershell -NoProfile -File done-gate.ps1 capture --label check --
Hard enforcement
The Stop gate enforces this rule where the harness supports it: it blocks the agent from ending the turn until a fresh passing receipt exists. Do not work around the gate; produce the proof.
Wire the hard stop hook in Claude Code (settings.json):
{
"hooks": {
"Stop": [{
"hooks": [{
"type": "command",
"command": "bash \"$CLAUDE_PROJECT_DIR/stop-gate.sh\""
}]
}]
}
}
On Windows, replace with:
"command": "powershell -NoProfile -File \"$env:CLAUDE_PROJECT_DIR\\stop-gate.ps1\""
No repo-root scripts? Wire the hook straight through npx instead — it pipes the hook payload on stdin and needs nothing vendored into the repo:
{
"hooks": {
"Stop": [{
"hooks": [{
"type": "command",
"command": "npx agent-done-or-not stop-gate"
}]
}]
}
}
agent-done-or-not init --claude-hook also copies the gate scripts into the repo automatically, so a generated hook that points at local files resolves.
Installation options
| Method | Command | |---|---| | Agent Skill (this) | npx skills add mohamedzhioua/agent-done-or-not | | npm/npx | npx agent-done-or-not capture --label check -- | | One-liner installer | curl -fsSL https://raw.githubusercontent.com/mohamedzhioua/agent-done-or-not/main/install.sh \| sh | | Claude Code Plugin | claude plugin install agent-done-or-not | | Homebrew | brew install mohamedzhioua/tap/agent-done-or-not | | Scoop (Windows) | scoop install agent-done-or-not | | Pre-commit hook | id: agent-done-assert in .pre-commit-config.yaml | | GitHub Action | uses: mohamedzhioua/agent-done-or-not@v0 |
Configuration
| Env var | Default | Purpose | |---|---|---| | AGENT_DONE_TTL | 3600 | Receipt freshness window in seconds | | AGENT_DONE_MAX_RETRIES | 10 | Anti-infinite-loop safety valve | | AGENT_DONE_DIR | /.agent-proof | Where receipts are stored | | AGENT_DONE_SESSION | (from hook payload) | Session isolation | | AGENT_DONE_OFF | — | Set to 1 to disable (escape hatch) | | AGENT_DONE_BIND_STATE | — | Set to 1 to make a git commit/tree/dirty mismatch against the newest passing receipt a hard failure/block instead of an advisory warning |
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: mohamedzhioua
- Source: mohamedzhioua/agent-done-or-not
- License: MIT
- Homepage: https://www.npmjs.com/package/agent-done-or-not
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.