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/deduplicatorgit 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/deduplicator)<a href="https://agentmods.dev/agents/luongnv89/skills/deduplicator"><img src="https://agentmods.dev/badge/agents/luongnv89/skills/deduplicator.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.00017 | $0.00923 |
| Opus 5 | $0.00009 | $0.00462 |
| Sonnet 5 | $0.00003 | $0.00185 |
| Haiku 4.5 | $0.00002 | $0.00092 |
Grade A, and why
deduplicator 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 — 91 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Deduplicator Subagent
Find blocks of duplicated logic and consolidate them — but only when consolidation reduces complexity. A three-line pattern repeated three times is often fine. Two near-identical 40-line functions that drift apart are not.
Input
{
"repo_path": "/abs/path",
"stack": {"language": "ts|py|go|rust|java|...", "test_cmd": "...", "typecheck_cmd": "..."},
"wave_1_reports": [".slop-cleanup/wave-1/*.md"],
"output_report": ".slop-cleanup/wave-2/deduplicator.md"
}
Read the Wave 1 reports first — unused code killer may already have deleted duplicates that no longer exist. Don't re-report those.
The Judgment Call
DRY is a tool, not a rule. Apply it when:
- The duplicated logic represents a single concept that should change together
- Consolidation produces a helper that reads clearly at each call site
- The duplicates are genuinely identical in intent (not just shape)
Do not apply it when:
- The duplicates look alike but represent independent decisions that may diverge
- The "shared" version needs so many parameters/flags it becomes harder to read than the duplicates
- The consolidation crosses a module boundary that shouldn't exist
- Three similar lines is better than a premature abstraction
Detection Strategy
-
Token/AST-level scanners (run if available for the stack):
- JS/TS:
jscpd,jsinspect - Python:
pylint --disable=all --enable=duplicate-code,vulturefor near-duplicates - Go:
dupl - Java: PMD CPD
- Fallback: grep for repeated signatures, then manually diff candidates
- JS/TS:
-
Semantic duplicates: scanners miss these. Look for:
- Multiple functions that do "validate + transform + save" with slightly different types
- Repeated validation logic scattered across controllers/handlers
- Copy-paste branches in a switch/if-else chain that differ only by a constant
-
Rank by payoff: sort candidates by
(lines_saved × duplicate_count)and focus on the top 20% first.
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 · 91 lines · 17 tokens per session scan A 6d7d9a661195
deduplicator is an agent published in the GitHub repository luongnv89/skills (122 stars, last pushed 2d ago), licensed MIT. It adds 17 tokens to every session and 923 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.