{
  "markdown": "# Clean Architecture Plugin for Claude Code\n\nA native Claude Code plugin that enforces and guides implementation of **Clean Architecture** as defined by Robert C. Martin (\"Uncle Bob\") in *Clean Architecture: A Craftsman's Guide to Software Structure and Design*.\n\n## Installation\n\n### Option 1 — Install directly (recommended)\n\nIn any Claude Code session:\n\n```\n/plugin install morcoss/clean-architecture-plugin\n```\n\n> **Note:** `/plugin marketplace add` and `/plugin install` are different commands.\n> - `/plugin marketplace add morcoss/clean-architecture-plugin` — registers this repo as a **marketplace** (a registry), then you still need to install the plugin from it.\n> - `/plugin install morcoss/clean-architecture-plugin` — installs the **plugin directly**. This is what you want.\n\n### Option 2 — Via marketplace (two steps)\n\n```\n/plugin marketplace add morcoss/clean-architecture-plugin\n/plugin install clean-architecture@morcoss-clean-architecture-plugin\n```\n\n### Option 3 — Install from a local clone\n\n```bash\ngit clone https://github.com/morcoss/clean-architecture-plugin.git\n```\n\nThen in Claude Code:\n\n```\n/plugin install /path/to/clean-architecture-plugin\n```\n\n### Option 4 — Point Claude Code directly at the directory\n\n```bash\nclaude --plugin-dir /path/to/clean-architecture-plugin\n```\n\n## Requirements\n\n- Claude Code (latest version)\n- Node.js 18+ (for the MCP server — the dependency scanner, metrics calculator, and scaffolder)\n\nNo `npm install` needed — the MCP server uses only Node.js built-ins.\n\n## Available Commands\n\nAll commands are namespaced under `/clean-architecture:`.\n\n| Command | What it does |\n|---|---|\n| `/clean-architecture:init` | Scaffold a full Clean Architecture project |\n| `/clean-architecture:entity` | Create an Enterprise Business Rule entity |\n| `/clean-architecture:usecase` | Create a Use Case interactor with Input/Output Ports |\n| `/clean-architecture:controller` | Create an Interface Adapter controller |\n| `/clean-architecture:presenter` | Create a Presenter (Humble Object Pattern) |\n| `/clean-architecture:gateway` | Create a Gateway/Repository with data mapper |\n| `/clean-architecture:boundary` | Define and enforce architectural boundaries |\n| `/clean-architecture:solid` | Audit and fix SOLID principle violations |\n| `/clean-architecture:components` | Audit component cohesion (REP/CCP/CRP) and coupling (ADP/SDP/SAP) |\n| `/clean-architecture:check` | Full Dependency Rule violation scan |\n| `/clean-architecture:review` | 100-point Clean Architecture audit scorecard |\n| `/clean-architecture:test` | Create Test Boundary compliant tests by layer |\n| `/clean-architecture:main` | Create/update the Main composition root |\n| `/clean-architecture:diagram` | Generate architecture diagrams (ASCII + Mermaid) |\n| `/clean-architecture:migrate` | Phased migration from any anti-pattern to Clean Architecture |\n\n## MCP Tools (used automatically by Claude)\n\nThe plugin ships an MCP server (`src/server.js`) that gives Claude real file-system analysis capabilities:\n\n| Tool | Description |\n|---|---|\n| `ca_scan` | Scans every source file for Dependency Rule violations — returns severity, file, line, and fix |\n| `ca_metrics` | Calculates Fan-in, Fan-out, Instability (I), Abstractness (A), and Distance from Main Sequence (D) per component |\n| `ca_scaffold` | Creates the full directory and file scaffold for a new Clean Architecture project |\n| `ca_layer_of` | Identifies which layer a file belongs to and checks its imports for compliance |\n| `ca_cycles` | Detects cyclic dependencies between components (ADP check) |\n\n## Real-time Hook\n\nThe plugin registers a **PostToolUse hook** that fires after every file edit. If the file you just wrote violates the Dependency Rule, you'll see a warning inline in Claude Code immediately:\n\n```\n⚠️  CLEAN ARCHITECTURE — DEPENDENCY RULE VIOLATION\n   File:  src/usecases/interactors/PlaceOrderInteractor.ts\n   Layer: USECASES (may only depend on: entities)\n\n   ✗ imports \"../../adapters/gateways/PostgresOrderRepo\" (adapters layer)\n\n   Fix: Define an interface (port) in usecases/ports/ and inject the concrete impl from main/.\n```\n\n## Usage Examples\n\n```\n/clean-architecture:init TypeScript REST API for order management\n/clean-architecture:entity Order\n/clean-architecture:usecase PlaceOrder\n/clean-architecture:check\n/clean-architecture:review\n/clean-architecture:solid src/\n/clean-architecture:migrate src/services/\n```\n\n## Clean Architecture Concepts Covered\n\n**Layers:** Entities → Use Cases → Interface Adapters → Frameworks & Drivers → Main\n\n**Principles:**\n- The Dependency Rule (Chapter 22)\n- SOLID — SRP, OCP, LSP, ISP, DIP (Part III)\n- Component Cohesion — REP, CCP, CRP (Chapter 13)\n- Component Coupling — ADP, SDP, SAP (Chapter 14)\n- Screaming Architecture (Chapter 21)\n- Humble Object Pattern (Chapter 23)\n- Partial Boundaries (Chapter 24)\n- The Main Component (Chapter 26)\n- Test Boundary (Chapter 28)\n- The Database is a Detail (Chapter 30)\n- The Web is a Detail (Chapter 32)\n- Frameworks are Details (Chapter 33)\n\n## Project Structure Generated by `/clean-architecture:init`\n\n```\nsrc/\n├── entities/                 # Enterprise Business Rules (no dependencies)\n├── usecases/\n│   ├── ports/\n│   │   ├── input/            # Input Port interfaces\n│   │   └── output/           # Output Port & Repository interfaces\n│   └── interactors/          # Use Case implementations\n├── adapters/\n│   ├── controllers/          # Framework input → Use Case request model\n│   ├── presenters/           # Use Case response model → View model\n│   └── gateways/             # Repository implementations + data mappers\n│       └── in-memory/        # In-memory repos for unit tests\n├── frameworks/\n│   ├── web/                  # HTTP framework wiring\n│   ├── db/                   # Database drivers & ORM config\n│   └── external/             # Third-party API clients\n└── main/                     # Composition Root — wires everything\ntests/\n├── unit/                     # Pure tests, no I/O\n├── integration/              # Gateway tests with real DB\n└── e2e/                      # Full stack tests\n```\n\n## License\n\nMIT\n",
  "bytes": 6113,
  "sha": "d9af8c528a829128fb768f3c695389bfe76f00acf3ade5c217a1ba7125670d76",
  "repo_slug": "morcoss/clean-architecture-plugin",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_morcoss_clean_architecture_plugin_clean__28f8f53e/readme"
}