calvyntwh/karu-custom-skills/occams-razor

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Complexity Pruning and Simplification using the Subtraction Method. Use when refactoring, reducing boilerplate, or challenging over-engineered solutions.

Install

npx vskill@latest install calvyntwh/karu-custom-skills/occams-razor

SKILL.md

Occam's Razor (The Subtraction Method)

"Entities should not be multiplied without necessity." - William of Ockham

When to Use

  • Before adding a new library or dependency.
  • When refactoring legacy code.
  • When a solution feels "heavy", "boilerplate-y", or hard to explain.
  • During Code Review to challenge over-engineering.

When NOT to Use

  • Performance-critical paths where the "simpler" solution has worse algorithmic complexity.
  • Security boundaries where simplicity traded for readability may introduce vulnerabilities.
  • Multi-team APIs where your simplicity creates complexity for consumers.
  • Stable, well-tested code with low bug rates — pruning risk exceeds benefit.
  • During active incidents — focus on recovery, not refactoring.
  • Novel architectures — you don't yet know which complexity is load-bearing.

The Protocol: The Subtraction Method

Do not ask "What can I add?". Ask "What can I remove?". Follow these 4 steps explicitly.

0. Problem Verification

Before pruning, verify the problem statement is correct. Ask: "What problem does this solve for the user?" If you can't answer, do not prune.

1. The Hypothesis

Assume the current solution is over-engineered. State: "This solution is too complex. It can be simpler."

2. The "Why" Test (Safety Check)

Iterate through every component. Prune ruthlessly, but verify safety.

  • Grep Test: Search for the string/symbol in the entire codebase. Is it referenced dynamically?
  • Test Suite: Run the project's tests. Do they pass?
  • Chesterton Check: If uncertain about purpose, invoke `chestertons-fence` protocol first. Mandatory for non-trivial components.
  • Rubber Duck Test: Can you explain in one sentence why this component exists? If not, invoke chestertons-fence.
3. The Prune

Actively remove the unnecessary components.

  • Replace heavy libraries with native language features (e.g., lodash -> Array.map).
  • Collapse "Passthrough" classes (Manager/Service/impl/Interface) into a single function if they don't add logic.
  • Delete unused config/boilerplate.
4. Verification

Does the bare metal system still solve the user's Core Problem?

  • If YES: You are done.
  • If NO: Restore only the minimum necessary piece.
Stop Conditions

Stop pruning when:

  • Tests fail and you don't understand why
  • You cannot explain the component's purpose in plain English
  • The component is referenced by code you don't own
  • You've reached the "Core Problem" boundary — removing further breaks user value

Second-Order Check

Before pruning, anticipate workarounds:

Ask: "If I remove this, what will developers likely do instead?"

  • Over-pruning pattern: Removed abstraction → developers add inline duplication across 10 callers → more complexity than removed
  • Contract breach: Removing validation layer → callers must add checks → distributed complexity
  • Knowledge loss: Removing documentation → tribal knowledge only → fragility

If workaround complexity > removed complexity, do not prune.

Skill Integration Matrix

SkillWhen to Chain
`chestertons-fence`Always before pruning non-trivial components
`systems-thinking`Before pruning components with downstream dependencies
`second-order-thinking`Before pruning widely-used abstractions
`rubber-ducking`When you can't explain why something exists
`decision-matrix`When simplicity vs. robustness trade-off is unclear

Rule: If systems-thinking identifies a reinforcing loop involving this component, do not prune without tracing the full loop.

Self-Improvement Protocol

After applying Occam's Razor, log only failures:

Log to `.learnings/CORRECTIONS.md`:

markdown
-[YYYY-MM-DD] {what was removed} → {outcome}

Log if:

  • Pruning caused a bug
  • Over-pruning required restoration
  • Second-order workaround created more complexity

Do NOT log routine successful prunes — this overhead exceeds value.

Pattern Categories (Prioritized)

High-Impact (Prune First):

  • Unused exports / dead code
  • Passthrough classes with no logic
  • Wrapper libraries around native features

Medium-Impact (Verify Before):

  • Abstraction layers over stable internals
  • Configuration that could be hardcoded
  • Boilerplate that exceeds code it wraps

Low-Impact (Leave Alone):

  • Code referenced by unknown callers
  • Security-sensitive validation
  • Multi-team API boundaries

Resources


Evaluations

Eval 1: Problem Verification Before Pruning

Scenario: User says "this library does X, we should remove it." You cannot explain what X solves for the user. Expected: Stops, verifies problem statement. If no clear user problem exists, does NOT prune. Pass criteria: MUST identify missing problem statement before any pruning action.

Eval 2: Over-Pruning Cascade Prevention

Scenario: Removing a shared utility function would require 10 callers to add inline code. Expected: Identifies that workaround complexity > removed complexity, does NOT prune. Pass criteria: Calculates second-order cost, refuses prune that creates net-more complexity.

Eval 3: Security Boundary Respect

Scenario: User wants to remove "redundant" input validation in a public API endpoint. Expected: Identifies as security boundary, does NOT prune without chestertons-fence investigation. Pass criteria: Correctly identifies validation as potentially load-bearing security fence.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository forks
1
7-day trend score
0

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/calvyntwh/karu-custom-skills/occams-razor/badge)](https://verified-skill.com/skills/calvyntwh/karu-custom-skills/occams-razor)

Something wrong with this skill or its page? Tell us.