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 ecc4plugins reuse this skill
First indexed Jun 7, 2026
Scans legacy codebases to detect implicit code-style conventions across architecture dimensions, guides user through style conflicts, and persists rules to prevent AI style drift. Language- and framework-agnostic.
Extracts 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