ECC is a free, MIT-licensed set of rules, skills, agents, memory and hooks for Claude Code, Codex and Cursor. It's config files in folders that your assistant reads — no model change, no magic.
What's in this guide
1. The problems it fixes
If you use an AI coding assistant daily, this list will feel familiar:
- It forgets everything between sessions. Every morning you re-explain your architecture.
- You retype the same prompts — "write tests," "follow our conventions" — forever.
- Inconsistent style. Every file looks like a different developer wrote it, because effectively one did.
- Weak verification. Code that looks right and was never run.
- No project standards the assistant reliably respects.
- Security as an afterthought — nobody audits the config files the agent itself reads.
2. The core idea
Most people chasing better output reach for a bigger prompt. A longer CLAUDE.md. More instructions crammed into context. It works for about a session and a half.
Don't make the model smarter. Make its environment smarter.
The model doesn't change. Everything around it does — and that's the whole pitch. Here's roughly what handles what:
| Problem | What handles it |
|---|---|
| Forgets your project | Memory (session-lifecycle hooks) |
| Retyping prompts | Skills — reusable workflows |
| Inconsistent style | Rules — always-follow guidelines |
| Weak verification | Agents (code-reviewer, tdd-guide) |
| Manual repetition | Hooks that fire on tool events |
| Unaudited config | AgentShield security scan |
3. Installing it (real commands)
ECC ships as a Claude Code plugin. Two commands, run inside Claude Code.
/plugin marketplace add https://github.com/affaan-m/ECC
/plugin install ecc@ecc
Requirement: Claude Code CLI v2.1.0 or later — earlier versions handle plugin hooks differently. Check with claude --version.
Read the hooks before you install. ECC ships hooks that run automatically on tool events — that's code executing on your machine. Skim the hooks/ folder first. That advice applies to this repo and every other one you install.
Want a smaller footprint?
There's a script install with profiles. minimal skips hooks entirely.
./install.sh --profile minimal --target claude
.\install.ps1 --profile minimal --target claude
Not sure which pieces you need? Describe the job in plain English and it recommends components:
npx ecc consult "security reviews" --target claude
Three identifiers that aren't interchangeable
| Thing | Identifier |
|---|---|
| GitHub repo | affaan-m/ECC |
| Claude plugin | ecc@ecc |
| npm package | ecc-universal |
4. Two things that break setups
Both are silent. Neither throws an obvious error. Fix them at install time and you avoid the two failure modes that make people give up on this.
① Don't stack install methods
Two install paths exist and they conflict. Running /plugin install and then install.sh --profile full leaves you with duplicate, competing configs. Pick one path and stay on it.
② Rules don't come with the plugin
Rules are markdown files ECC defines — they aren't a Claude Code plugin primitive, so nothing auto-installs them. If your coding standards are being ignored after a clean install, this is why. Copy them in by hand.
git clone https://github.com/affaan-m/ECC.git
mkdir -p ~/.claude/rules/ecc
cp -R rules/common ~/.claude/rules/ecc/
cp -R rules/typescript ~/.claude/rules/ecc/
One more if you install components manually: Claude Code loads skills only from direct children of ~/.claude/skills. Nest them under ~/.claude/skills/ecc/ and they silently never load.
If something's already broken
node scripts/ecc.js doctor
node scripts/ecc.js repair
node scripts/uninstall.js --dry-run
Worth knowing before you commit: uninstall is a documented, dry-runnable path. This isn't a one-way door.
5. What's actually inside
Rules
Always-follow guidelines: coding style, git workflow, testing, performance, security. Split into common/ plus language folders — typescript/, python/, golang/, swift/, php/.
Skills
Reusable expert workflows — TDD, security review, verification loops, refactoring, search-first research. This is where the project is actively moving; new development lands here first.
Agents
Specialized subagents with limited scope: planner, architect, code-reviewer, security-reviewer, tdd-guide, build-error-resolver, plus language-specific reviewers for Go, Python, Rust, Java, Kotlin, C++ and TypeScript.
Memory
Session-lifecycle hooks that persist summaries, learned patterns and metrics under ~/.claude — so the assistant doesn't restart from zero every morning.
Hooks
Automations firing on tool events (PreToolUse, PostToolUse, Stop) — format code, run tests, update docs, save memory. Tunable with ECC_HOOK_PROFILE, set to minimal, standard or strict.
Commands
Slash-command entry points — /plan, /code-review, /build-fix, /quality-gate, /test-coverage, /security-scan. On a plugin install they're namespaced: /ecc:plan.
6. The security scan people skip
Your assistant reads config files — CLAUDE.md, settings.json, MCP configs, hook definitions, agent definitions, skills. Every one is an input, and inputs can be poisoned.
AgentShield scans exactly that surface:
npx ecc-agentshield scan
npx ecc-agentshield scan --fix
Five categories: secrets detection, permission auditing, hook injection analysis, MCP server risk profiling, agent config review. Reports come as terminal, JSON, Markdown or HTML, and it exits with code 2 on critical findings so you can gate a CI build on it.
If you run MCP servers you didn't write yourself, run this before anything else in the repo.
7. The three official guides
The repo is code; the reasoning lives in three companion guides. Bookmark these — they're worth more than any summary:
- The Shorthand Guide — setup, foundations, philosophy. Start here.
- The Longform Guide — token optimization, memory persistence, evals, parallelization.
- The Security Guide — attack vectors, sandboxing, sanitization, AgentShield.
8. Is it worth it?
Worth it if you use an AI coding assistant most days, work in a real codebase with standards worth enforcing, and you're tired of re-explaining your project every session. Memory and rules alone carry it.
Skip it if you use AI coding occasionally or for one-off scripts. There's a lot of it, and you'll spend longer configuring than you save.
Three things to know before you commit
- Context cost is real. Rules and memory load into your context every session. That's the tradeoff for persistence — the Longform Guide covers token optimization, and it's worth reading before you install everything.
- It installs to
~/.claude, not your repo. This is your machine's setup, not something your team inherits by cloning. Teammates each install their own. - It's a fast-moving, single-maintainer project. MIT-licensed and free, which is great for adoption — just know that before a team workflow depends on it.
The underlying idea holds even if you never install it: most bad AI coding output is a context problem, not a model problem. Fix what surrounds the model and the same model does noticeably better work.
Repo: github.com/affaan-m/ECC — free, MIT licensed, by @affaan-m. Not affiliated — I just think it's the right way to think about this.
Want the next one first?
The Input Daily — a 5-minute AI brief every weekday. 3 stories that matter, 1 tool worth trying, 1 prompt to steal.
Free. Every morning. Unsubscribe in one click. Privacy Policy.
You're all set.
The Input Daily lands in your inbox tomorrow morning. While you're here — the rest of the guides are free too.
Browse all free guides →