Apply software design principles across architecture and implementation using deterministic decision workflows, SOLID checks, structural patterns, and anti-pattern detection; use when reviewing designs, refactoring modules, or resolving maintainability and coupling risks.
Does it follow best practices?
Evaluation — 99%
↑ 1.01xAgent success when using this tile
Validation for skill structure
Classes that change for the same reasons and at the same times should be in the same component. This is the Common Closure Principle (CCP) - the Single Responsibility Principle for components.
Incorrect (classes that change together are separated):
src/
├── entities/
│ └── Invoice.ts # Changes when billing rules change
├── repositories/
│ └── InvoiceRepository.ts # Changes when billing rules change
├── services/
│ └── InvoiceService.ts # Changes when billing rules change
├── validators/
│ └── InvoiceValidator.ts # Changes when billing rules change
└── mappers/
└── InvoiceMapper.ts # Changes when billing rules change
# A billing rule change touches 5 directories
# Risk of forgetting one, inconsistent changesCorrect (classes that change together are grouped):
src/
├── billing/
│ ├── domain/
│ │ ├── Invoice.ts
│ │ ├── InvoiceLine.ts
│ │ ├── InvoiceRules.ts
│ │ └── InvoiceValidator.ts
│ ├── application/
│ │ ├── CreateInvoiceUseCase.ts
│ │ └── ports/
│ │ └── InvoiceRepository.ts
│ └── infrastructure/
│ ├── PostgresInvoiceRepository.ts
│ └── InvoiceMapper.ts
├── payments/
│ └── ... # Changes for different reasons
└── shipping/
└── ... # Changes for different reasons
# Billing rule change isolated to billing/
# Single PR, single review, single deploymentHow to identify change reasons:
Install with Tessl CLI
npx tessl i pantheon-ai/software-design-principlesevals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
references