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.
git clone --depth 1 https://github.com/jonathondouglasyager-debug/claude-error-learningWrote 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/plugins/jonathondouglasyager-debug/claude-error-learning/claude-error-learning)<a href="https://agentmods.dev/plugins/jonathondouglasyager-debug/claude-error-learning/claude-error-learning"><img src="https://agentmods.dev/badge/plugins/jonathondouglasyager-debug/claude-error-learning/claude-error-learning/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/plugins/jonathondouglasyager-debug/claude-error-learning/claude-error-learning"><img src="https://agentmods.dev/badge/plugins/jonathondouglasyager-debug/claude-error-learning/claude-error-learning.svg" alt="Reviewed on agentmods" width="80" height="20"></a>Grade A, and why
error-learning 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 1mo 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 — 69 lines — stays where its author put it; the contents beside it link to each section on GitHub.
{
"name": "error-learning",
"version": "1.1.0",
"description": "Automated error detection, learning, and prevention for Claude Code. Captures errors, tracks fixes, and blocks known-bad patterns with learned suggestions.",
"author": {
"name": "Jonathon Yager",
"url": "https://github.com/jonathondouglasyager-debug"
},
"homepage": "https://github.com/jonathondouglasyager-debug/claude-error-learning",
"repository": "https://github.com/jonathondouglasyager-debug/claude-error-learning",
"license": "MIT",
"keywords": ["error", "learning", "prevention", "hooks", "patterns"],
"hooks": {
"PostToolUseFailure": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/error-logger.py\" 2>/dev/null || python \"${CLAUDE_PLUGIN_ROOT}/hooks/error-logger.py\""
}
]
}
],
"PostToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/fix-tracker.py\" 2>/dev/null || python \"${CLAUDE_PLUGIN_ROOT}/hooks/fix-tracker.py\""
}
]
}
],
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/command-validator.py\" 2>/dev/null || python \"${CLAUDE_PLUGIN_ROOT}/hooks/command-validator.py\""
}
]
}
],
"SessionEnd": [
{
"hooks": [
{
"type": "command",
"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/error-curator.py\" --auto 2>/dev/null || python \"${CLAUDE_PLUGIN_ROOT}/hooks/error-curator.py\" --auto"
}
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/patterWhat it installs
The manifest is a name and a version. 1 command travel with it, and installing the plugin installs all of them — 17 tokens a session between them. Each is measured on its own page, and each can be installed alone.
What ships with it
1 file beside plugin.json in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 1mo ago First seen · 69 lines scan A aa2a6db7548e
error-learning is a plugin published in the GitHub repository jonathondouglasyager-debug/claude-error-learning (3 stars, last pushed 6mo ago), licensed MIT. Its token cost is not measured: this kind of file is read by the harness, not the model. 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 plugins, from other repositories
markdown-health-check
Audits the .claude/ ecosystem — skills, commands, hooks, agents, settings, plugins, memory — for dead references, weak triggers, token bloat, dormant skills, permission drift, hook reliability, memory hygiene, and context bloat. Evidence-grounds every judgment finding before reporting.
write-bash-scripts
Applies Bash style conventions when creating or editing Bash scripts.
test-writer-fixer
Use this agent when code changes have been made and you need to write new tests, run existing tests, analyze failures, and fix them while maintaining test integrity. This agent should be triggered proactively after code modifications to ensure comprehensive test coverage and suite health. Examples:\n\n \nContex.
debugger
Debugging specialist for errors, test failures, and unexpected behavior. Use proactively when encountering any issues.
chronos
Your agent has no idea what time it is. chronos reads the transcript it already writes: a live clock on your statusline, a warning the moment it repeats a failed command, and an honest answer to where the session went.
dependency-validator
Agent plugin for dependency-validator.