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
Entities encapsulate enterprise-wide business rules that would exist regardless of automation. They must not contain application-specific logic, persistence code, or UI concerns.
Incorrect (entity mixed with infrastructure concerns):
class Invoice {
id: string
items: LineItem[]
status: InvoiceStatus
dueDate: Date
calculateTotal(): Money {
return this.items.reduce((sum, item) => sum.add(item.amount), Money.zero())
}
isOverdue(): boolean {
return this.status === InvoiceStatus.Unpaid && new Date() > this.dueDate
}
markPaid(): void {
this.status = InvoiceStatus.Paid
database.invoices.update(this) // Entity cannot be tested without database
emailService.send(this.customerEmail, 'Payment received') // Coupled to email system
}
}Correct (entity contains only business rules):
class Invoice {
id: string
items: LineItem[]
status: InvoiceStatus
dueDate: Date
calculateTotal(): Money {
return this.items.reduce((sum, item) => sum.add(item.amount), Money.zero())
}
isOverdue(): boolean {
return this.status === InvoiceStatus.Unpaid && new Date() > this.dueDate
}
markPaid(): void {
if (this.status !== InvoiceStatus.Unpaid) {
throw new InvalidOperationError('Invoice already processed')
}
this.status = InvoiceStatus.Paid
}
}Benefits:
Reference: Clean Architecture - Entities
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