From ecc
Scans legacy codebases to extract implicit conventions and prevent AI style drift. Language-agnostic; generates an enforceable .ai-style-rules.md.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ecc:inherit-legacy-styleThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Prevents AI code style drift in legacy projects by scanning the codebase for implicit conventions across 4 meta-architecture dimensions, resolving conflicts with the user one at a time, and crystallizing the consensus into an enforceable `.ai-style-rules.md`. Fully language- and framework-agnostic.
Prevents AI code style drift in legacy projects by scanning the codebase for implicit conventions across 4 meta-architecture dimensions, resolving conflicts with the user one at a time, and crystallizing the consensus into an enforceable .ai-style-rules.md. Fully language- and framework-agnostic.
/inherit-legacy-styleUse this skill when you need to preserve legacy project style and prevent AI-generated style drift. See When to Activate above for trigger conditions.
.ai-style-rules.md and optionally CLAUDE.md)Silently check for .ai-style-rules.md at the project root:
| File exists? | Mode |
|---|---|
| No | Branch A — First-time Full-Scan |
| Yes | Branch B — Incremental Sniff |
Announce the mode in one line and proceed — never ask the user to pick.
1. Measure scale, pick a scanning tier
git ls-files | grep -cE '\.(js|ts|jsx|tsx|vue|py|go|rs|java|kt|rb|php|cs|swift|c|cpp|h)$'
| Tier | Source files | Strategy |
|---|---|---|
| Small | ≲ 50 | Full close-read every source |
| Medium | 50–500 | Infra layer = full read; business layer = sample 2–3 per dimension |
| Large | ≳ 500 | Strict sampling + budget cap; --stat summary first, then targeted reads |
2. Scan along 4 dimensions
3. Apply signal-threshold noise reduction
Before interrupting the user, evaluate signal strength:
4. Resolve conflicts one at a time (Grilling Protocol)
For each strong-signal conflict, present exactly ONE question with 4 options:
Evidence:
pathAuses style X,pathBuses style Y WARNING: Risk: mixing both fractures the project style Choose:1follow X2follow Y3this is evolution, update rules4I have a new rule
Suspend until the user answers, then proceed to the next conflict. Never stack questions.
5. Generate .ai-style-rules.md with three mandatory sections:
6. Install the persistent hook
Ask the user for enforcement strength (use AskUserQuestion):
| Option | Mechanism |
|---|---|
| 1 Soft hook (recommended) | Write @.ai-style-rules.md reference into project CLAUDE.md |
| 2 Hard hook | Soft hook + PreToolUse[Write|Edit|MultiEdit] Hook in settings.json |
| 3 No hook | Keep the rules file; user references manually |
.ai-style-rules.md; if it has a commit fingerprint, git diff <last_hash> HEAD --stat to pinpoint deltagit log -3 --stat → inspect suspect files on demand)--stat summary only + sample the largest changes.ai-style-rules.md (never overwrite old rules)When .ai-style-rules.md is in context (loaded via CLAUDE.md), every code-writing task must open with a compliance declaration in the reasoning chain, naming the exemplar being followed and the DONTs being avoided.
This skill auto-detects whether it's a first-time or incremental run via .ai-style-rules.md presence:
.ai-style-rules.md with Golden Files / Naming Rules / DONTs, and offers optional enforcement hooks.CLAUDE.md, every code-writing task opens with a compliance declaration naming the exemplar followed and the DONTs avoided..ai-style-rules.md at project root (with commit fingerprint + scale tier in header)CLAUDE.md with @.ai-style-rules.md reference### [YYYY-MM-DD] Style Evolution Log entries--stat summaries first, then targeted Read on suspect files@.ai-style-rules.md) is usually sufficient; hard hook only if the user wants mechanical enforcementinit — initialize a new CLAUDE.md with codebase documentationcode-review — review diffs for correctness and style issuessimplify — review code for reuse and simplification opportunitiesFirst-time onboarding
.ai-style-rules.md → offer hook strength (soft/hard/none).Incremental update after team changes
Enforcing DONTs via CLAUDE.md
.ai-style-rules.md auto-loaded every session → every code-writing task opens with compliance declaration, reusing exemplar patterns and avoiding DONTs.npx claudepluginhub affaan-m/ecc --plugin eccExtracts existing project coding conventions (naming, file structure, error handling, testing, imports, API design, async patterns) and enforces them on new code. Produces a code style map in memory/patterns.md.
Use when contributing code to an existing project - guarantees that every new line mirrors the established conventions, naming schemes, architectural layering, directory layout, and stylistic choices already present in the codebase rather than drifting toward generic AI defaults
Scans codebase to discover coding patterns and update guardrails.md with learned conventions and anti-patterns.