Source profileQuality 97/100

yonatangross/orchestkit/src/skills/architecture-patterns/SKILL.md

architecture-patterns

Architecture validation and patterns for clean architecture, backend structure enforcement, project structure validation, test standards, and context-aware sizing. Use when designing system boundaries, enforcing layered architecture, validating project structure, defining test standards, or choosing the right architecture tier for project scope.

Source repository stars
223
Declared platforms
1
Static risk flags
0
Last source update
2026-08-24
Source checked
2026-08-25

Decision brief

What it does: where it fits

Consolidated architecture validation and enforcement patterns covering clean architecture, backend layer separation, project structure conventions, and test standards. Each category has individual rule files in rules/ loaded on-demand. House scars and dated decisions rescued fro…

Best for

  • Use when designing system boundaries, enforcing layered architecture, validating project structure, defining test standards, or choosing the right architecture tier for project scope.

Not for

  • Not every project needs architecture patterns. Match complexity to project tier:
  • Rule of thumb: If a pattern shows OVERKILL for the detected tier, do NOT use it. Use the simpler alternative. A take-home with hexagonal architecture signals over-engineering, not skill.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeDeclaredSource recordInstall path and trigger
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/yonatangross/orchestkit --skill "src/skills/architecture-patterns"
Safe inspection promptEditorial

Inspect the Agent Skill "architecture-patterns" from https://github.com/yonatangross/orchestkit/blob/4e5c1327b7d7902022ee69328e12db1f6a88f390/src/skills/architecture-patterns/SKILL.md at commit 4e5c1327b7d7902022ee69328e12db1f6a88f390. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Quick Start

    Review the “Quick Start” section in the pinned source before continuing.

    Review and apply the “Quick Start” source section.
  2. 02

    Quick Reference

    Total: 13 rules across 5 categories

    Total: 13 rules across 5 categories
  3. 03

    Clean Architecture: Dependency Inversion via Protocol

    class IUserRepository(Protocol): async def getbyid(self, id: str) - User | None: ...

    class IUserRepository(Protocol): async def getbyid(self, id: str) - User | None: ...class UserService: def init(self, repo: IUserRepository): self.repo = repo Depends on abstraction, not concretion
  4. 04

    FastAPI DI chain: DB - Repository - Service

    def getuserservice(db: AsyncSession = Depends(getdb)) - UserService: return UserService(PostgresUserRepository(db))

    def getuserservice(db: AsyncSession = Depends(getdb)) - UserService: return UserService(PostgresUserRepository(db))
  5. 05

    Project Structure: Unidirectional Import Architecture

    shared/lib - components - features - app (lowest) (highest)

    shared/lib - components - features - app (lowest) (highest)

Permission review

Static risk signals and limitations

No configured static risk pattern was detected

This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score97/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars223SourceRepository attention, not individual Skill quality
Compatibility1 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
yonatangross/orchestkit
Skill path
src/skills/architecture-patterns/SKILL.md
Commit
4e5c1327b7d7902022ee69328e12db1f6a88f390
License
MIT
Collected
2026-08-25
Default branch
main
View the original SKILL.md

Architecture Patterns

Consolidated architecture validation and enforcement patterns covering clean architecture, backend layer separation, project structure conventions, and test standards. Each category has individual rule files in rules/ loaded on-demand. House scars and dated decisions rescued from retired reference tutorials live in references/ork-delta.md; the tutorials themselves are upstream's job (see "Upstream coverage" below).

Quick Reference

CategoryRulesImpactWhen to Use
Clean Architecture3HIGHSOLID principles, hexagonal architecture, ports & adapters, DDD
Project Structure2HIGHFolder conventions, nesting depth, import direction, barrel files
Backend Layers3HIGHRouter/service/repository separation, DI, file naming
Test Standards3MEDIUMAAA pattern, naming conventions, coverage thresholds
Right-Sizing2HIGHArchitecture tier selection, over-engineering prevention, context-aware enforcement

Total: 13 rules across 5 categories

Quick Start

# Clean Architecture: Dependency Inversion via Protocol
class IUserRepository(Protocol):
    async def get_by_id(self, id: str) -> User | None: ...

class UserService:
    def __init__(self, repo: IUserRepository):
        self._repo = repo  # Depends on abstraction, not concretion

# FastAPI DI chain: DB -> Repository -> Service
def get_user_service(db: AsyncSession = Depends(get_db)) -> UserService:
    return UserService(PostgresUserRepository(db))
# Project Structure: Unidirectional Import Architecture
shared/lib  ->  components  ->  features  ->  app
(lowest)                                    (highest)

# Backend Layers: Strict Separation
Routers (HTTP) -> Services (Business Logic) -> Repositories (Data Access)

Clean Architecture

SOLID principles, hexagonal architecture, ports and adapters, and DDD tactical patterns for maintainable backends.

RuleFileKey Pattern
Hexagonal Architecture${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/rules/clean-hexagonal.mdDriving/driven ports, adapter implementations, layer structure
SOLID & Dependency Rule${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/rules/clean-dependency-rule.mdProtocol-based interfaces, dependency inversion, FastAPI DI
DDD Tactical Patterns${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/rules/clean-ports-adapters.mdEntities, value objects, aggregate roots, domain events

Design review checklist: ${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/checklists/solid-checklist.md. Domain entity scaffold: ${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/scripts/domain-entity-template.py.

Key Decisions

DecisionRecommendation
Protocol vs ABCProtocol (structural typing)
Dataclass vs PydanticDataclass for domain, Pydantic for API
Repository granularityOne per aggregate root
Transaction boundaryService layer, not repository
Event publishingCollect in aggregate, publish after commit

Project Structure

Feature-based organization, max nesting depth, unidirectional imports, and barrel file prevention.

RuleFileKey Pattern
Folder Structure & Nesting${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/rules/structure-folders.mdReact/Next.js and FastAPI layouts, 4-level max nesting, barrel file rules
Import Direction & Location${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/references/structure-import-direction.mdUnidirectional imports, cross-feature prevention, component/hook placement

Blocking Rules

RuleCheck
Max NestingMax 4 levels from src/ or app/
No Barrel FilesNo index.ts re-exports (tree-shaking issues)
Component LocationReact components in components/ or features/ only
Hook LocationCustom hooks in hooks/ or features/*/hooks/ only
Import DirectionUnidirectional: shared -> components -> features -> app

Backend Layers

FastAPI Clean Architecture with router/service/repository layer separation and blocking validation.

RuleFileKey Pattern
Layer Separation${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/rules/backend-layers.mdRouter/service/repository boundaries, forbidden patterns, async rules
Dependency Injection${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/rules/backend-di.mdDepends() chains, blocked DI patterns, violation detection
File Naming & Exceptions${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/rules/backend-repository.mdNaming conventions, async rules, domain exceptions

House scars for this category (exception-to-HTTP status map, import-level violation greps, DI override teardown): ${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/references/ork-delta.md.

Layer Boundaries

LayerResponsibilityForbidden
RoutersHTTP concerns, request parsing, auth checksDatabase operations, business logic
ServicesBusiness logic, validation, orchestrationHTTPException, Request objects
RepositoriesData access, queries, persistenceHTTP concerns, business logic

Test Standards

Testing best practices with AAA pattern, naming conventions, isolation, and coverage thresholds.

RuleFileKey Pattern
AAA Pattern & Isolation${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/rules/testing-aaa.mdArrange-Act-Assert, test isolation, parameterized tests
Naming Conventions${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/references/testing-naming-conventions.mdDescriptive behavior-focused names for Python and TypeScript
Coverage & Location${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/rules/testing-coverage.mdCoverage thresholds, fixture scopes, and (per references/ork-delta.md) the no-co-location rule

Coverage Requirements

AreaMinimumTarget
Overall80%90%
Business Logic90%100%
Critical Paths95%100%
New Code100%100%

Right-Sizing

Context-aware backend architecture enforcement. Rules adjust strictness based on project tier detected by scope-appropriate-architecture.

Enforcement procedure:

  1. Read project tier from scope-appropriate-architecture context (set during brainstorm/implement Step 0)
  2. If no tier set, auto-detect using signals in Read("${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/rules/right-sizing-tiers.md")
  3. Apply tier-based enforcement matrix — skip rules marked OFF for detected tier
  4. Security rules are tier-independent — always enforce SQL parameterization, input validation, auth checks
RuleFileKey Pattern
Architecture Sizing Tiers${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/rules/right-sizing-tiers.mdInterview/MVP/production/enterprise sizing matrix, LOC estimates, detection signals
Right-Sizing Decision Guide${CLAUDE_PLUGIN_ROOT}/skills/architecture-patterns/rules/right-sizing-decision.mdORM, auth, error handling, testing recommendations per tier, over-engineering tax

Tier-Based Rule Enforcement

RuleInterviewMVPProductionEnterprise
Layer separationOFFWARNBLOCKBLOCK
Repository patternOFFOFFWARNBLOCK
Domain exceptionsOFFOFFBLOCKBLOCK
Dependency injectionOFFWARNBLOCKBLOCK
OpenAPI documentationOFFOFFWARNBLOCK

Manual override: User can set tier explicitly to bypass auto-detection (e.g., "I want enterprise patterns for this take-home to demonstrate skill").

Decision Flowchart

Is this a take-home or hackathon?
  YES --> Flat architecture. Single file or 3-5 files. Done.
  NO  -->

Is this a prototype or MVP with < 3 months runway?
  YES --> Simple layered. Routes + services + models. No abstractions.
  NO  -->

Do you have > 5 engineers or complex domain rules?
  YES --> Clean architecture with ports/adapters.
  NO  --> Layered architecture. Add abstractions only when pain appears.

When NOT to Use

Not every project needs architecture patterns. Match complexity to project tier:

PatternInterviewHackathonMVPGrowthEnterpriseSimpler Alternative
Repository patternOVERKILL (~200 LOC)OVERKILLBORDERLINEAPPROPRIATEREQUIREDDirect ORM calls in service (~20 LOC)
DI containersOVERKILL (~150 LOC)OVERKILLLIGHT ONLYAPPROPRIATEREQUIREDConstructor params or module-level singletons (~10 LOC)
Event-driven archOVERKILL (~300 LOC)OVERKILLOVERKILLSELECTIVEAPPROPRIATEDirect function calls between services (~30 LOC)
Hexagonal architectureOVERKILL (~400 LOC)OVERKILLOVERKILLBORDERLINEAPPROPRIATEFlat modules with imports (~50 LOC)
Strict layer separationOVERKILL (~250 LOC)OVERKILLWARNBLOCKBLOCKRoutes + models in same file (~40 LOC)
Domain exceptionsOVERKILL (~100 LOC)OVERKILLOVERKILLBLOCKBLOCKBuilt-in ValueError/HTTPException (~5 LOC)

Rule of thumb: If a pattern shows OVERKILL for the detected tier, do NOT use it. Use the simpler alternative. A take-home with hexagonal architecture signals over-engineering, not skill.

Anti-Patterns (FORBIDDEN)

# CLEAN ARCHITECTURE
# NEVER import infrastructure in domain layer
from app.infrastructure.database import engine  # In domain layer!

# NEVER leak ORM models to API layer
@router.get("/users/{id}")
async def get_user(id: str, db: Session) -> UserModel:  # Returns ORM model!

# NEVER have domain depend on framework
from fastapi import HTTPException
class UserService:
    def get(self, id: str):
        raise HTTPException(404)  # Framework in domain!

# PROJECT STRUCTURE
# NEVER create files deeper than 4 levels from src/
# NEVER create barrel files (index.ts re-exports)
# NEVER import from higher layers (features importing from app)
# NEVER import across features (use shared/ for common code)

# BACKEND LAYERS
# NEVER use database operations in routers
# NEVER raise HTTPException in services
# NEVER instantiate services without Depends()

# TEST STANDARDS
# NEVER mix test files with source code
# NEVER use non-descriptive test names (test1, test, works)
# NEVER share mutable state between tests without reset

Upstream coverage (do not restate)

Long-form tutorials on these topics were removed from this skill (2026-07-31 wrap-plus-delta campaign). Read them at the first-party source; only floors, scars, and house decisions belong here (see references/ork-delta.md).

TopicFirst-party source
Hexagonal architecture, ports and adapters walkthroughAlistair Cockburn, https://alistair.cockburn.us/hexagonal-architecture/ and Architecture Patterns with Python, https://www.cosmicpython.com/
SOLID principles tutorial (Protocol-based)Architecture Patterns with Python, https://www.cosmicpython.com/ and Python Protocol spec, https://typing.python.org/en/latest/spec/protocol.html
DDD tactical patterns (entities, value objects, aggregates, domain events)Architecture Patterns with Python, https://www.cosmicpython.com/
FastAPI dependency injection, auth dependencies, DI test overridesFastAPI docs (context7: /tiangolo/fastapi), https://fastapi.tiangolo.com/tutorial/dependencies/ and skill ork:python-backend
Router/service/repository layer walkthroughFastAPI bigger applications, https://fastapi.tiangolo.com/tutorial/bigger-applications/ and skill ork:python-backend
Full FastAPI clean-architecture example appFastAPI full-stack template, https://github.com/fastapi/full-stack-fastapi-template
Next.js folder layout and structure-violation catalogNext.js project structure docs, https://nextjs.org/docs/app/getting-started/project-structure (skill vercel:nextjs)
AAA pattern, isolation, parameterized tests, fixture scoping, coverage configSkill ork:testing-unit; pytest docs, https://docs.pytest.org/en/stable/ and Vitest coverage, https://vitest.dev/config/#coverage

Related Skills

  • ork:scope-appropriate-architecture - Project tier detection that drives right-sizing enforcement
  • ork:quality-gates - YAGNI gate uses tier context to validate complexity
  • ork:distributed-systems - Distributed locking, resilience, idempotency patterns
  • ork:api-design - REST API design, versioning, error handling
  • ork:testing-unit - Unit testing: AAA pattern, fixtures, mocking, factories
  • ork:testing-e2e - E2E testing: Playwright, page objects, visual regression
  • ork:testing-integration - Integration testing: API endpoints, database, contracts
  • ork:python-backend - FastAPI, SQLAlchemy, asyncio patterns
  • ork:database-patterns - Schema design, query optimization, migrations

Frequently asked questions

What to verify before installation and use

What does the architecture-patterns source document cover?

Consolidated architecture validation and enforcement patterns covering clean architecture, backend layer separation, project structure conventions, and test standards. Each category has individual rule files in rules/ loaded on-demand. House scars and dated decisions rescued fro…

How do I install architecture-patterns?

The source record exposes this install command: npx skills add https://github.com/yonatangross/orchestkit --skill "src/skills/architecture-patterns". Inspect the command and pinned source before running it.

Which Agent platforms does the source record declare?

The pinned source record declares support for: claude code.

Alternatives

Compare before choosing