PTENES
Diagnostic skill · Claude Code

Your config is bloated. Find out what still earns its keep.

Ablation audit of your CLAUDE.md, your skills, and your hooks. It only reads, classifies, and proposes — it never changes anything.

A table covered with discarded instruction sheets, with a single short sheet in the center
What it is

A skill that audits your setup—and doesn’t touch it

Every line in your config is guilty of complexity until proven useful. The skill reads everything, classifies each instruction, and delivers a report with the minimum proposed version. Applying it is your decision, in a separate request.

🔍 Complete diagnosis

Classifies each instruction as context, guardrail, criterion, verification, integration, procedure, micromanagement, redundancy, legacy, or unproven.

🔒 Read-only

No edits, no rm, no mv, no commits. An audit that starts changing things is one you can't trust.

🧪 Test plan

Ends with an A/B/C ablation plan using real tasks from your project — to prove the change before adopting it.

The vision

Why Claude Code deletes its own prompt

Boris Cherny created Claude Code at Anthropic. The thesis, in one sentence: configuration gets stale.

About every ~6 months, especially when a major model launches: delete your CLAUDE.md, delete your skills, delete your hooks — and see what the model does without them. Boris Cherny · talk at Y Combinator, one day after the Opus 5 launch

Config is a dated fix

Every instruction you write fixes a specific model’s weakness. When the next model no longer has that weakness, the line becomes dead weight—and keeps being reread every time it’s used.

More than 80% removed

That’s what happened in Claude Code itself with the arrival of Opus 5. What remains of the system prompt is almost entirely about safety, permissions, static analysis, and the interface.

Over-specifying is the common mistake

Scripting “do A, then B, then C” worked with older models. Today it keeps the model from finding a better approach. Write the task + guardrails + completion criteria.

Verification is the lever

A short prompt with a real way for the model to check its own work beats a giant prompt without verification. Produce → observe → compare → stopping condition.

The 4-step rebuild

1. Delete the config→ 2. Use it in real work→ 3. Observe where it trips up→ 4. Restore only what failed 2×

The fourth step is the one that matters: you're terrible at predicting which instructions the model needs, and every line you keep costs context in every run.

Infographic: less prompting, more intelligence — before and after the 80% cut
Core principles: new models don’t need old fixes; only reintroduce an instruction if the failure happens again.
Infographic: less prompting, better results — objective, guardrails, verification, and autonomy
The fundamental shift: out goes the step-by-step guide with exceptions; in comes a clear objective + guardrails + verification + autonomy.
Why clean things up

The sediment everyone accumulates

If you’ve been using Claude Code for a few months, you probably have at least three of these:

SymptomWhat it usually is
CLAUDE.md of 300 lines with dated exceptionsfixes for models that are no longer around
The same rule in the CLAUDE.md and in 3 skillsredundancy that turns into conflict when one of the copies changes
400-line skill teaching “how to think”generic reasoning the model can already do on its own
Rigid 12-step processmicromanagement that blocks the better path
Two conflicting rulesthe model picks one, and you don’t know which
Nothing saying how to check what got it rightthe most costly gap of all

The cost adds up: context burned on every call, reduced autonomy, inconsistent behavior, and zombie rules nobody deletes because nobody remembers what they’re holding together anymore.

The goal no is to maximize the reduction. It’s to maximize quality + autonomy + verifiability ÷ complexity — that’s why the skill explicitly preserves what the model can’t infer: project identity, paths and sources of truth, branding, security, compliance, integrations, and interface contracts.

How it works

Inventory → classification → decision → report

Each instruction gets a category and a decision. Without enough evidence, the skill prefers TEST a KEEP.

Read CLAUDE.md + skills + hooks→ Classify each instruction→ Decide KEEP/SIMPLIFY/MOVE/MERGE/TEST/REMOVE→ Audit skill by skill→ Report in 10 sections

Instruction categories

CONTEXTO · GUARDRAIL · CRITÉRIO DE QUALIDADE · VERIFICAÇÃO · INTEGRAÇÃO/FERRAMENTA · PROCEDIMENTO REPETÍVEL · MICROGERENCIAMENTO · REDUNDÂNCIA · LEGADO/OBSOLETA · AMBÍGUA/NÃO COMPROVADA

Diagnosis by skill

KEEP · SIMPLIFY · MERGE · SPLIT · LOAD-ON-DEMAND · CONVERT-TO-CONTEXT · DELETE-CANDIDATE

What the report includes

#Section
1Executive summary — the 5 biggest issues
2Metrics — count by decision and estimated reduction in %
3Issues by file (severity + rationale)
4Candidates for removal (reason, risk, how to test)
5Redundancies and conflicts
6Skills — function, diagnosis, recommendation
7CLAUDE.md proposed minimum
8Proposed skills in a reduced version
9Ablation plan — versions A / B / C on real tasks
10Top 10 changes by impact ÷ risk
User guide · step by step

Install and run

Self-contained skill: one file SKILL.md. No dependencies, no build.

1

Clone the repository

O SKILL.md stays at the root—installation is a cp.

git clone https://github.com/inematds/audit-ablacaocc.git
2

Install as a global skill

Applies to every project on your machine.

mkdir -p ~/.claude/skills/audit-ablacao
cp audit-ablacaocc/SKILL.md ~/.claude/skills/audit-ablacao/SKILL.md
3

…or only within a project

That way, the skill versions alongside the code and doesn't leak into other projects.

mkdir -p .claude/skills/audit-ablacao
cp /caminho/audit-ablacaocc/SKILL.md .claude/skills/audit-ablacao/SKILL.md
4

Restart the session and call directly

Explicit invocation removes trigger guesswork.

/audit-ablacao  # or: "run an ablation audit of my global CLAUDE.md"
5

Choose the scope

Global every ~6 months or when a model launches; per project when the CLAUDE.md exceeds ~150 lines; for a skill set when 3+ compete for the same trigger.

/audit-ablacao audita as skills deste projeto # scope in natural language
6

Apply it in another session

The skill doesn't apply anything — by design. Take the Top 10 by impact ÷ risk, apply it, use it in real work for a few days, and bring back an instruction only if the same failure happens again.

# ablation baseline used internally at Anthropic:
CLAUDE_CODE_SIMPLE=1 claude  # runs without any system prompt
Tip in practice

Get the most out of skills—by calling them directly or using them within projects

This practice changes the outcome more than any prompt adjustment, and naturally complements the cleanup: what gets removed from the CLAUDE.md isn’t lost; it becomes a skill.

📦 A skill is a procedure, not a global rule

Rule in CLAUDE.md is read in every execution, including the 90% that have nothing to do with it. Within a skill, it only costs context when the task calls for it—that’s the MOVE e o LOAD-ON-DEMAND of the report.

🎯 Calling it directly ends trigger roulette

/nome-da-skill doesn’t depend on the description matching what you say. When several skills compete for the same topic, explicit invocation breaks the tie—and removes the need for a routing rule in the CLAUDE.md.

🗂️ A project skill is versioned with the code

In .claude/skills/, the procedure travels with the repo, goes into the PR, is reviewable, and doesn't contaminate other projects.

🔧 A skill is the right unit to fix

When the model stumbles, there are three remedies: a better prompt (unclear instruction), skill (no repeatable procedure) or MCP (missing unreachable context). Choosing correctly avoids the reflex to dump another rule into CLAUDE.md.

In practice: the CLAUDE.md keeps only what’s true always — identity, guardrails, sources of truth, security. Everything else (procedure, format, recipe, integration) becomes a skill, invoked directly when you know what you want.

Recommended cycle

Run, cut, use, observe, repeat

Ablation isn't a one-time event. It's maintenance.

1 · Run
Audit within the chosen scopeGlobal, project, or set of skills.
2 · Cut
Top 10 by impact ÷ riskIn a separate session — the skill doesn’t apply.
3 · Use
Real work for a few daysNot in a hypothetical test. This is where the failure shows up.
4 · Restore
Only what failed twiceAnd in the shortest form possible.
5 · Repeat
About every ~6 months or when a model launchesThe reason for an old failure may have disappeared.
Practical guide

Publish to Git and the portal

The process this repository itself followed. It works for any INEMA skill or project.

1

Repo structure

The guide goes in guia/, never in the root — the root is for code. And it's a page within in the project repo, never a separate repository.

audit-ablacaocc/
├── SKILL.md        # a skill (root = installable with a cp)
├── README.md
├── capa/capa.png   # cover 1280x720 (skill capa-inema)
├── guia/index.html # self-contained landing page + guide
└── doc/            # source material
2

Git — from zero to push

Check the author before before committing: an author that doesn’t match the destination account is the #1 reason a deploy gets blocked afterward.

git init -b main
git config user.name  "inematds"
git config user.email "inematds@gmail.com"
git add -A && git commit -m "feat: skill audit-ablacao + guia"
gh repo create inematds/audit-ablacaocc --public --source=. --remote=origin --push
3

GitHub Pages

First create the .github/workflows/pages.yml (full YAML in the README) — the legacy "deploy from a branch" build stalls. Since the guide is in guia/, the public URL ends in /guia/.

# with .github/workflows/pages.yml committed:
gh api -X POST repos/inematds/audit-ablacaocc/pages -f build_type=workflow
gh api repos/inematds/audit-ablacaocc/pages -q .html_url
4

Portal (inema.club)

Once the Pages URL is responding, publish to the 3 INEMA surfaces — portal, inemabuscas, and PRO catalog.

/atualiza-portal https://inematds.github.io/audit-ablacaocc/guia/
5

Definition of "published"

Publish = commit + push to origin. Deployment is automatic via git webhook → Vercel / Pages: no opening the dashboard, checking status, or triggering another deploy.

# done when the push reaches origin and Pages returns 200