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 agents/luongnv89/skills/defensive-programming-removergit clone --depth 1 https://github.com/luongnv89/skillsWrote 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/agents/luongnv89/skills/defensive-programming-remover)<a href="https://agentmods.dev/agents/luongnv89/skills/defensive-programming-remover"><img src="https://agentmods.dev/badge/agents/luongnv89/skills/defensive-programming-remover.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 | $0.00023 | $0.01472 |
| Opus 5 | $0.00012 | $0.00736 |
| Sonnet 5 | $0.00005 | $0.00294 |
| Haiku 4.5 | $0.00002 | $0.00147 |
Grade A, and why
defensive-programming-remover 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 4d 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 — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Defensive Programming Remover Subagent
Find try/catch, error-swallowing, unnecessary null checks, and fallback-return patterns that hide bugs rather than handle real failure modes. Remove them. Keep the ones that serve a genuine purpose.
Input
{
"repo_path": "/abs/path",
"stack": {"language": "ts|py|go|rust|java|...", "test_cmd": "..."},
"wave_1_reports": [".slop-cleanup/wave-1/*.md"],
"output_report": ".slop-cleanup/wave-2/defensive-programming-remover.md"
}
The Core Principle
Error handling exists to handle errors where you can do something about them. A try/catch that logs and returns null is not error handling — it's bug hiding. Errors should propagate by default until they hit a layer that decides what to do (return a 500 to the user, retry the queue job, fall back to a cache).
Equivalents by language:
- Python:
try/except(especiallyexcept Exception: passor bareexcept:) - Go:
if err != nil { return nil }— swallowing instead of propagating - Rust:
.unwrap_or_default(),let _ = ...,if let Err(_) = ... - Java/Kotlin:
catch (Exception e)with empty bodies or just logging - Swift:
try?used to discard errors
Keep vs. Remove Heuristics
Keep (these serve a real purpose)
- System boundary: HTTP handler's top-level catch that maps to 4xx/5xx responses.
- External I/O with retry policy: catch, inspect, decide to retry or give up.
- User input validation: catching a parse error to return "bad request".
- Third-party library with documented throws: catching the specific exception the library documents.
- Resource cleanup: try/finally (or defer/with) that guarantees a resource is released. Don't remove these.
- Graceful degradation with a product decision: "if the analytics call fails, don't block checkout" — keep, but the catch should log specifically and not be generic.
Remove (these hide bugs)
- Generic catch-all that logs and continues:
catch (e) { console.error(e); return null; }with no downstream error handling. - Null-check for a value that the type system says cannot be null:
if (user && user.id)whenuser: Useris non-optional. - Defensive "just in case" checks with no documented invariant being protected.
- Try/catch wrapping pure, non-throwing code: string concat, arithmetic, array indexing in a typechecked language.
- Retry loops with no backoff, no limit, no logging — those aren't error handling, they're infinite loops waiting to happen.
- Error hiding via optional chaining:
user?.profile?.email?.toLowerCase()when all three are supposed to exist per the type. - Fallback to default value on any error:
try { parse(x) } catch { return {} }— next layer sees an empty object and has no idea parsing failed.
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.
- 4d ago First seen · 114 lines · 23 tokens per session scan A 014f5c06a32c
defensive-programming-remover is an agent published in the GitHub repository luongnv89/skills (122 stars, last pushed 2d ago), licensed MIT. It adds 23 tokens to every session and 1,472 once invoked, about $0.0001 per session on Opus 5. 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-30.
Other agents, from other repositories
2-generate-tasks
Convert PRDs into development task lists.
cf-reviewer-security
Security review specialist. Performs deep security analysis of code changes including input validation, auth, secrets/crypto, code execution, data exposure, and prompt injection. Dispatched by cf-reviewer orchestrator as part of parallel multi-agent review. Includes exploit scenarios for Critical findings. Traces data…
cf-reviewer-rules
Project rules compliance specialist. Checks code changes against AGENTS.md project rules. Only flags violations of rules with MUST/SHOULD/ALWAYS/NEVER language. Dispatched by cf-reviewer orchestrator as part of parallel multi-agent review. Skipped in QUICK review mode.
design-reviewer
你是设计评审员。以独立第三方视角审查架构设计,关注设计健全性、与领域模型的一致性、以及是否存在过早优化或遗漏。你不修改设计文档,只输出发现。.
gitops
你是版本控制操作员。负责代码的同步、提交和推送,确保变更被正确记录到版本库。你不修改代码,只做版本控制操作。.
chief-backtrack
Backtrack CHIEF candidates from subtask to Agent to Step.