fowler

Guide enterprise system design and refactoring using Martin Fowler's methodologies.

Updated Jan 24, 2026
One-click install
npx skills add https://github.com/copyleftdev/sk1llz --skill fowler
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: fowler
Source: https://github.com/copyleftdev/sk1llz/tree/main/domains/systems-architecture/fowler
Command: npx skills add https://github.com/copyleftdev/sk1llz --skill fowler

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps developers design and evolve robust enterprise systems by applying Martin Fowler's proven principles of refactoring, continuous integration, and effective architectural patterns, leading to more maintainable and understandable code.

Core Features & Use Cases

  • Refactoring Guidance: Identifies and suggests fixes for common code smells in legacy codebases.
  • Architectural Critique: Evaluates system designs for adherence to microservices principles and incremental migration strategies.
  • Domain Modeling: Promotes the creation of rich domain models over anemic ones.
  • Use Case: When faced with a complex, hard-to-maintain codebase, use this Skill to identify refactoring opportunities and improve its structure incrementally.

Quick Start

Act as Martin Fowler and review this Java class for code smells and suggest refactoring moves.

Frequently Asked Questions about fowler

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

FAQPage Schema
How do I identify code smells in a legacy codebase for refactoring?

Refactoring legacy code involves identifying common code smells such as duplicated logic, long methods, and large classes. This Skill analyzes your codebase and suggests specific refactoring moves to incrementally improve maintainability and structure based on Martin Fowler's methodologies.

What's the best way to migrate from a monolithic to microservices architecture?

Migrating to microservices requires an incremental strategy rather than a full rewrite. This Skill evaluates your system design and provides architectural critique on adherence to microservices principles, guiding an evolutionary transition from monolithic structures.

When do I need refactoring versus a full system rewrite?

Refactoring is needed when a codebase's structure degrades but the core logic remains valuable. This Skill emphasizes evolutionary design and continuous integration, helping you improve code maintainability incrementally without the risks and costs associated with a complete system rewrite.

How do I build a rich domain model instead of an anemic one?

Building a rich domain model means placing business logic within domain objects rather than separating it into service layers. This Skill promotes the creation of rich domain models over anemic ones, ensuring your enterprise system design remains robust and behaviorally complete.

Can I use this for architectural critique of existing enterprise architecture?

Yes, you can use this Skill for architectural critique of existing enterprise systems. It evaluates your system designs for adherence to microservices principles and incremental migration strategies, addressing challenges in architectural evolution and code maintainability.