@@ -214,81 +214,63 @@ class OrderStatus(StrEnum):
214214
215215## What's Inside
216216
217- ```
217+ ```text
218218python-clean-architecture/
219219├── .claude-plugin/
220- │ ├── plugin.json Plugin manifest
221- │ └── marketplace.json Marketplace catalog
222- ├── README.md This file
223- ├── LICENSE MIT license
220+ │ ├── plugin.json
221+ │ └── marketplace.json
222+ ├── README.md
223+ ├── LICENSE
224224├── commands/
225- │ ├── review-architecture.md Full architecture review
226- │ ├── review-api-design.md Review REST API conventions
227- │ ├── check-quality.md Quick 22-rule quality check
228- │ ├── suggest-patterns.md Recommend Pythonic patterns
229- │ ├── decouple.md Find coupling, suggest DI
230- │ ├── make-pythonic.md Refactor to Pythonic patterns
231- │ ├── extract-god-class.md Split god classes
232- │ ├── scaffold-api.md Generate FastAPI project
233- │ ├── scaffold-tests.md Generate stub-based tests
234- │ └── add-endpoint.md Scaffold endpoint across layers
235- └── skills/
236- └── clean-architecture/
237- ├── SKILL.md Core skill (loaded when triggered)
238- ├── references/
239- │ ├── design-principles.md 7 principles with refactoring recipes
240- │ ├── layered-architecture.md 3-layer FastAPI guide with full code
241- │ ├── testable-api.md Stub-based testing strategy
242- │ ├── testing-advanced.md Pytest, property-based, stateful testing
243- │ ├── rest-api-design.md HTTP methods, status codes, OpenAPI
244- │ ├── code-quality.md 22 rules + code review checklist
245- │ ├── classes-and-dataclasses.md Classes vs dataclasses decision guide
246- │ ├── function-design.md Pure functions, closures, partial, HOFs
247- │ ├── data-structures.md Choosing the right data structure
248- │ ├── error-handling.md Custom exceptions, context managers
249- │ ├── monadic-error-handling.md Railway-oriented Result types
250- │ ├── types-and-type-hints.md Python's type system, Callable types
251- │ ├── project-organization.md Modules, packages, folder structure
252- │ ├── context-managers.md __ enter__ /__ exit__ , @contextmanager
253- │ ├── decorators.md Retry, logging, timing, parameterized
254- │ ├── async-patterns.md Async/await, gather, TaskGroup
255- │ ├── pydantic-validation.md Pydantic v2 validators, ConfigDict
256- │ ├── pattern-matching.md match/case structural patterns
257- │ ├── grasp-principles.md GRASP: 9 principles for responsibility assignment
258- │ ├── domain-driven-design.md DDD: domain models, ubiquitous language
259- │ ├── pythonic-patterns.md Quick reference for all 25 patterns
260- │ └── patterns/
261- │ ├── strategy.md Full OOP → functional progression
262- │ ├── abstract-factory.md Tuples of functions + partial
263- │ ├── bridge.md Bound methods, when to stop
264- │ ├── command.md Undo closures, batch commands
265- │ ├── notification.md Observer → Mediator → Pub/Sub
266- │ ├── registry.md Dict mapping, importlib plugins
267- │ ├── template-method.md Free function + Protocol
268- │ ├── pipeline.md Chain of Responsibility, compose
269- │ ├── functional.md Callback, Wrapper, Builder
270- │ ├── value-objects.md Validated domain primitives
271- │ ├── event-sourcing.md Immutable events, projections
272- │ ├── cqrs.md Separate read/write models
273- │ ├── builder.md Fluent API, frozen product
274- │ ├── unit-of-work.md Transaction context managers
275- │ ├── singleton.md Module-level instance, metaclass
276- │ ├── state.md Protocol-based state objects
277- │ ├── adapter.md Composition + partial adaptation
278- │ ├── facade.md Simplified subsystem interface
279- │ ├── repository.md Separating storage from access
280- │ ├── fluent-interface.md Method chaining, domain verbs
281- │ ├── retry.md Exponential backoff decorator
282- │ ├── lazy-loading.md cache, cached_property, generators
283- │ └── plugin-architecture.md Config-driven, importlib discovery
284- └── examples/
285- └── fastapi-hotel-api/ Complete working FastAPI project
286- ├── main.py
287- ├── models/ Pydantic models + DataInterface Protocol
288- ├── operations/ Business logic (accepts Protocol)
289- ├── routers/ API endpoints (composition root)
290- └── db/ SQLAlchemy + generic DBInterface
291-
225+ │ ├── review-architecture.md
226+ │ ├── review-api-design.md
227+ │ ├── check-quality.md
228+ │ ├── suggest-patterns.md
229+ │ ├── decouple.md
230+ │ ├── make-pythonic.md
231+ │ ├── extract-god-class.md
232+ │ ├── scaffold-api.md
233+ │ ├── scaffold-tests.md
234+ │ └── add-endpoint.md
235+ └── skills/clean-architecture/
236+ ├── SKILL.md
237+ ├── references/
238+ │ ├── design-principles.md
239+ │ ├── layered-architecture.md
240+ │ ├── testable-api.md
241+ │ ├── testing-advanced.md
242+ │ ├── rest-api-design.md
243+ │ ├── code-quality.md
244+ │ ├── classes-and-dataclasses.md
245+ │ ├── function-design.md
246+ │ ├── data-structures.md
247+ │ ├── error-handling.md
248+ │ ├── monadic-error-handling.md
249+ │ ├── types-and-type-hints.md
250+ │ ├── project-organization.md
251+ │ ├── context-managers.md
252+ │ ├── decorators.md
253+ │ ├── async-patterns.md
254+ │ ├── pydantic-validation.md
255+ │ ├── pattern-matching.md
256+ │ ├── grasp-principles.md
257+ │ ├── domain-driven-design.md
258+ │ ├── pythonic-patterns.md
259+ │ └── patterns/ (25 pattern files)
260+ │ ├── strategy.md
261+ │ ├── registry.md
262+ │ ├── command.md
263+ │ ├── builder.md
264+ │ ├── repository.md
265+ │ ├── cqrs.md
266+ │ └── ...
267+ └── examples/
268+ └── fastapi-hotel-api/
269+ ├── main.py
270+ ├── models/
271+ ├── operations/
272+ ├── routers/
273+ └── db/
292274```
293275
294276## Key Concepts
0 commit comments