simplicity-architect

Enforce simplicity-first decisions in software architecture and implementation.

Updated Nov 16, 2025
One-click install
npx skills add https://github.com/FlorinPopaCodes/claude-marketplace --skill simplicity-architect
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: simplicity-architect
Source: https://github.com/FlorinPopaCodes/claude-marketplace/tree/main/plugins/simplicity-architect
Command: npx skills add https://github.com/FlorinPopaCodes/claude-marketplace --skill simplicity-architect

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you avoid over-engineering, premature optimization, and unnecessary complexity in software architecture. It guides decision-making towards the simplest, most effective solutions, leading to more maintainable, stable, and cost-efficient systems.

Core Features & Use Cases

  • Decision Framework: Provides a structured approach to evaluate technical solutions based on current needs, existing tools, and operational stability, ensuring you choose the "simplest thing that could possibly work."
  • Complexity Red Flags: Identifies common pitfalls and assumptions (e.g., "future scaling," "architectural purity") that often lead to over-engineering, helping you resist adding unnecessary components.
  • Use Case: When considering adding new infrastructure like a Redis cache, microservices, or a message queue, this Skill helps you determine if it's truly necessary now or if a simpler, existing solution suffices, saving development time and operational overhead.

Quick Start

Apply the simplicity-architect skill to review my proposed architecture for adding a new user authentication service.

Frequently Asked Questions about simplicity-architect

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I avoid over-engineering my software architecture?

Over-engineering happens when you add complexity beyond current requirements. Start with the simplest solution that meets today's needs, document assumptions about future scaling, and defer infrastructure decisions like caching or microservices until they're genuinely necessary. This approach keeps systems maintainable and reduces operational overhead.

When should I add a cache, message queue, or microservice to my system?

Add infrastructure only when your existing solution demonstrably fails to meet current requirements—not anticipated future ones. Evaluate whether simpler alternatives (database optimization, synchronous processing) suffice first. This decision framework prevents premature complexity while preserving the option to scale later.

What is YAGNI and how does it apply to software design?

YAGNI—You Aren't Gonna Need It—means avoiding features and abstractions you don't need today. In design, it means preferring concrete implementations over generic frameworks, proven technologies over cutting-edge ones, and direct solutions over preemptive architectural layers. This keeps codebases focused and easier to maintain.

How do I identify complexity red flags in my architecture decisions?

Red flags include designing for speculative future scaling, over-abstracting to achieve architectural purity, choosing unfamiliar technology stacks, and adding components without current operational pressure. Questioning these assumptions and favoring boring, proven tools helps you resist unnecessary complexity.

Can I use this simplicity-first approach for refactoring and feature implementation?

Yes. The simplicity-first philosophy applies across architecting, designing, refactoring, and implementing features. When planning changes, evaluate trade-offs between adding abstraction and maintaining current simplicity, ensuring each decision aligns with actual requirements, not hypothetical ones.

What's the best way to balance maintainability with avoiding premature optimization?

Maintainability and simplicity reinforce each other. Write code that's easy to understand and modify today rather than optimizing for scenarios you may never face. Progressive layering—adding complexity only when measurement shows it's needed—keeps systems both maintainable and performant.