MI

minimal-coding

Adopt a minimalist coding approach to reduce complexity and avoid over-engineering.

Install

mkdir -p .claude/skills/minimal-coding && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/13473" && unzip -o skill.zip -d .claude/skills/minimal-coding && rm skill.zip

Installs to .claude/skills/minimal-coding

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Forces the minimal working solution — least code, fewest files, no speculative abstraction. Channels a senior dev applying YAGNI: stdlib, native platform features, and existing dependencies over custom code. Three levels: lite (name the lazier option, user picks), full (enforce the ladder), ultra (deletion-first extremist). Activates when user says "be lazy", "yagni", "simplest solution", "minimal", "over-engineered", "too much code", or invokes /minimal-coding. Governs WHAT you build, not HOW you talk.
508 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Identify if a feature needs to exist at all (YAGNI principle)
  • Prioritize using standard library features over custom code
  • use native platform features instead of external libraries
  • Utilize already-installed dependencies before adding new ones
  • Write code in a single line if possible
  • Avoid unrequested abstractions like interfaces with one implementation

How it works

The skill enforces a 'minimal coding' philosophy by following a ladder of simplification, prioritizing existing solutions and reducing code footprint.

Inputs & outputs

You give it
A task or feature request
You get back
The simplest working solution, often using standard library or native features, with minimal code and files

When to use minimal-coding

  • Simplifying over-engineered code
  • Applying YAGNI principles
  • Reducing code footprint
  • Choosing the simplest library-free solution

About this skill

Minimal Coding

The best code is the code you never wrote. Reduce every task to the smallest change that fully solves it. Lazy means less code — never the flimsier algorithm.

This governs what you build. Output prose style is a separate axis (see caveman).

Activation

Invoked by /minimal-coding (defaults to full) or phrases like "be lazy", "yagni", "simplest solution", "over-engineered". Persist across turns until user says "stop minimal-coding" or "normal mode". Level persists until changed.

The ladder

Before writing code, walk these rungs in order. Stop at the first that holds.

  1. Does this need to exist at all? Speculative need = skip it, say so in one line. (YAGNI)
  2. Stdlib does it? Use it.
  3. Native platform feature covers it? <input type="date"> over a picker lib, a DB constraint over app code, an HTTP cache header over a cache layer.
  4. Already-installed dependency solves it? Use it. Never add a new dependency for what a few lines can do.
  5. Can it be one line? One line.
  6. Only then: the minimum code that works.

The first solution that works is the right one.

Rules

  • No unrequested abstractions: no interface with one implementation, no factory for one product, no config for a value that never changes.
  • No boilerplate or scaffolding "for later" — later can scaffold for itself.
  • Deletion over addition. Boring over clever — clever is what someone decodes at 3am.
  • Fewest files possible. Shortest working diff wins.
  • Complex request? Ship the minimal version and question the rest in the same response.
  • Two stdlib options, same size? Take the one that's correct on edge cases. Lazy is less code, not the weaker algorithm.
  • Trust internal code and framework guarantees — don't re-validate what the type system or framework already enforces.

Levels

LevelBehavior
liteBuild what's asked, but name the lazier alternative in one line. User picks.
full (default on invoke)The ladder enforced. Stdlib/native first, shortest diff, brief rationale.
ultraYAGNI extremist. Deletion before addition. Ship the one-liner and challenge the rest of the requirement immediately.

Annotation

Mark a deliberate simplification with a minimal: comment so the next reader knows it's intent, not ignorance. For a shortcut with a known ceiling, name the ceiling and the upgrade path.

# minimal: global lock; switch to per-account locks if throughput matters
<!-- minimal: browser has one -->
<input type="date">

When NOT to be lazy

Never simplify these away — minimal is not negligent:

  • Input validation at trust boundaries (user input, external APIs, deserialization)
  • Error handling that prevents data loss
  • Security (authn/authz, secrets, injection-safety, safe defaults)
  • Accessibility basics
  • Anything the user explicitly requested
  • Hardware-facing code that needs real calibration knobs (clocks, sensors drift)

Non-trivial logic leaves ONE runnable check behind — the smallest thing that fails if the logic breaks. A minimal assert or one small test, no frameworks or fixtures unless asked. Trivial one-liners need none.

Boundaries

  • Governs what you build, not how you talk — pair with caveman for output prose.
  • Subagent prompts: spell scope out in full English; minimalism is for the code, not the instructions.
  • "stop minimal-coding" or "normal mode": revert immediately.

When not to use it

  • The user explicitly requests complex abstractions or boilerplate
  • The task involves input validation at trust boundaries
  • The task requires reliable error handling to prevent data loss

Limitations

  • It does not apply to input validation at trust boundaries
  • It does not apply to error handling that prevents data loss
  • It does not apply to security-related tasks

How it compares

This workflow actively seeks the simplest possible solution, often by deleting unnecessary code or avoiding new dependencies, unlike typical development that might introduce more complex patterns.

Compared to similar skills

minimal-coding side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
minimal-coding (this skill)01moNo flagsIntermediate
software-architecture3336moNo flagsIntermediate
oracle173moReviewIntermediate
clojure-write163moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry