{
 "schema_version": 1,
 "generated": "2026-10-23",
 "id": "qkal-canny--block-unverified-done-claims",
 "repo": "qkal/Canny",
 "repo_url": "https://github.com/qkal/Canny",
 "repo_slug": "qkal-canny",
 "title": "Stop an agent from finishing before a test passes",
 "page_title": "How to stop an agent from finishing before a test passes with Canny",
 "summary": "Blocks the agent's Stop when code changed and no test, build, lint or type-check has passed since.",
 "who": "A developer using Claude Code or Codex CLI who keeps getting 'done' messages on code that was never run.",
 "problem": "An agent edits code, runs nothing, and reports the work as finished. A rules file only asks the model to remember to test, and nothing checks it did.",
 "outcome": "The agent's Stop is refused until a check exits 0 after the last code edit, and the project's test command is named to it at session start.",
 "steps": [
  "Confirm `node --version` prints 22 or newer.",
  "Run `git clone https://github.com/qkal/canny.git ~/.canny/src` to fetch the repository.",
  "From the root of your project, run `node ~/.canny/src/dist/cli.js init`.",
  "Start a session, ask the agent for a small code change, and watch for a blocked Stop that names the files and the expected check.",
  "Run `node ~/.canny/src/dist/cli.js status` to confirm the session and its events are recorded."
 ],
 "agent_prompt": "Install Canny from https://github.com/qkal/canny into ~/.canny/src by cloning it, then run `node ~/.canny/src/dist/cli.js init` from the root of <project-path>. Report the hook entries written and run `node ~/.canny/src/dist/cli.js status` to confirm at least one event is recorded.",
 "agents": [
  "claude-code",
  "codex"
 ],
 "difficulty": "Intermediate",
 "time": "30 minutes",
 "basis": "readme",
 "caveat": "On Codex, the hooks only take effect after you run /hooks and trust them, and on Claude Code the agent may need a restart before events appear.",
 "category": "Software and DevOps",
 "tags": [
  "Software and DevOps"
 ],
 "lang": "typescript",
 "requirements": [
  "git installed",
  "Node.js 22 or newer",
  "Claude Code or Codex CLI installed in the project",
  "A terminal to run the install commands",
  "Repository is not on npm, so install is a git clone"
 ],
 "risk": "none",
 "seen_in_the_wild": false,
 "mentioned_publicly": false,
 "risks": [],
 "best": true,
 "score": 1.0,
 "evidence": [],
 "url": "https://dedupedai.com/use-cases/qkal-canny/block-unverified-done-claims/",
 "md": "https://dedupedai.com/use-cases/qkal-canny/block-unverified-done-claims/index.md",
 "disclaimer": "Deduped lists open-source repositories that belong to other people. We do not own, maintain, audit, or vouch for any of them, and a repo appearing here is not an endorsement or a safety check. The use cases, steps, and prompts are written by AI and may be incomplete, outdated, or just wrong. Where a use case is marked \"Seen in the wild\", we link to public posts where someone described something similar, but we have not verified those posts and the use case itself is still our AI's own write-up. Use all of this at your own risk. Only run code, commands, or agents on systems and accounts you are authorized to use, and read the code and every command before you run it, especially anything that touches credentials, files, or the network. Nothing here is professional, security, legal, or financial advice. All trademarks and project names belong to their respective owners, and their use here does not imply affiliation. Content is provided as is, without warranties of any kind. Found a mistake, a safety problem, or something you want removed? Email hello@dedupedai.com and we will look at it promptly.",
 "api": "https://dedupedai.com/api/v1/usecases/qkal-canny--block-unverified-done-claims.json",
 "api_version": "v1"
}
