avoid-unnecessary-features-yagni

Installation
SKILL.md

Summary

Do not implement features, abstractions, or extensibility points for hypothetical future use cases. Implement only what is needed to satisfy the current requirements.

Rationale

  • Reduced Complexity: Unused code adds maintenance burden and cognitive load without providing value.
  • Lower Cost: Implementing features that are never used is a waste of time and resources.
  • Better Design: Designing for unknown future requirements often leads to wrong abstractions that are harder to refactor later than simple code.

Guidance

  1. Just in Time: Implement features when you need them, not when you foresee them.
  2. Remove Dead Code: If a feature is no longer used, remove it immediately.
  3. Simple First: Choose the simplest solution that satisfies the current verification plan. Refactor later if requirements change.

Examples

Installs
1
First Seen
Apr 5, 2026
avoid-unnecessary-features-yagni — mew-ton/coding-guidelines