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
The Dependency Rule states that source code dependencies can only point inward toward higher-level policies. Inner circles must never reference outer circles.
Incorrect (inner layer imports from outer layer):
// domain/entities/Order.ts - ENTITY LAYER
import { OrderRepository } from '../../infrastructure/OrderRepository'
import { EmailService } from '../../infrastructure/EmailService'
export class Order {
constructor(
private repo: OrderRepository, // Changes to repo implementation break Order
private email: EmailService
) {}
async complete() {
await this.repo.save(this)
await this.email.notify(this.customerId) // Cannot test without email server
}
}Correct (inner layer defines interface, outer layer implements):
// domain/entities/Order.ts - ENTITY LAYER
export interface OrderPersistence {
save(order: Order): Promise<void>
}
export interface NotificationPort {
notify(customerId: string): Promise<void>
}
export class Order {
constructor(
private repo: OrderPersistence,
private email: NotificationPort
) {}
async complete() {
await this.repo.save(this)
await this.email.notify(this.customerId)
}
}
// infrastructure/OrderRepository.ts - INFRASTRUCTURE LAYER
import { Order, OrderPersistence } from '../domain/entities/Order'
export class OrderRepository implements OrderPersistence {
async save(order: Order): Promise<void> { /* DB implementation */ }
}Benefits:
Reference: The Clean Architecture
Install with Tessl CLI
npx tessl i pantheon-ai/software-design-principles@0.1.4evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
references