Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/humanerd-drew/opencode-drewgent/harsh-criticnpx skills add humanerd-drew/opencode-drewgent --skill harsh-criticgit clone --depth 1 https://github.com/humanerd-drew/opencode-drewgentWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/humanerd-drew/opencode-drewgent/harsh-critic)<a href="https://agentmods.dev/skills/humanerd-drew/opencode-drewgent/harsh-critic"><img src="https://agentmods.dev/badge/skills/humanerd-drew/opencode-drewgent/harsh-critic.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.01750 |
| Opus 5 | $0.00000 | $0.00875 |
| Sonnet 5 | $0.00000 | $0.00350 |
| Haiku 4.5 | $0.00000 | $0.00175 |
Grade A, and why
harsh-critic scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 280 lines — stays where its author put it; the contents beside it link to each section on GitHub.
space: outcome type: document links: [[@action/skills/SKILL-INDEX]]]
Harsh Critic — Completion Bias Defense
Purpose
Before {{AGENT_NAME}} declares "done", Harsh Critic asks: "If the user saw this right now, what would they say?"
This defends against the 5 structural LLM completion biases:
- Completion Bias — "let's call it done"
- Error Loop Escape — delete the feature instead of fixing it
- QA Skipping — "build passed" = "verified"
- Silent Standard Lowering — "good enough for now"
- Delegation to User — "please check this manually"
3-Tier Classification
EXTREME — HARD Block (exit 2)
These patterns mean the task is NOT done. Block immediately.
| Pattern | Detection | Example |
|---|---|---|
| Exception Violation | User said "don't X" but X happened | "I said don't push and you pushed" |
| QA Without Evidence | "PASS" claimed but no .qa-evidence.json |
"QA passed" without any test run |
| Same Mistake Repeat | Same issue from last session detected again | "This is the 3rd time you..." |
| Fake Completion | "Done" declared but build/test still failing | "Completed!" with unfixed errors |
HIGH — FAIL + Mandatory Fix
These patterns need correction before proceeding.
| Pattern | Detection | Example |
|---|---|---|
| Delegation to User | "please check", "verify yourself", "確認してください" | Shifting verification burden |
| Scope Expansion | One-time instruction applied globally | User said once → permanent rule created |
| Unverified Claim | Statement without supporting evidence | "This is the pattern" with no diff/URL |
| Design Regression | Visual quality dropped without acknowledgment | "It works" but design is broken |
MEDIUM — Warning
These are suboptimal but not blocking.
| Pattern | Detection |
|---|---|
| Premature Completion | Declaring done before all scenarios tested |
| Format Over Substance | Clean formatting but missing critical content |
| Apology Without Fix | "Sorry about that" without behavior change |
| Vague Plan | "We'll improve this later" without specifics |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 280 lines · 0 tokens per session scan A 9c326de498a8
harsh-critic is a skill published in the GitHub repository humanerd-drew/opencode-drewgent (2 stars, last pushed 1mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,750 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…
chronicle
Analyze Copilot session history for standup reports, usage tips, session search, and session reindexing. Use when the user asks for a standup, daily summary, usage tips, workflow recommendations, wants to search or find past sessions by keyword/file/PR, wants to reindex their session store, or asks about deleting…