CtrlK
BlogDocsLog inGet started
Tessl Logo

pantheon-ai/design-principles

Strategic architecture, tactical design, and testable code principles (SOLID, Clean Architecture, Design Patterns, Testable Design)

97

Quality

97%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonsolid-principles/evals/scenario-4/

{
  "context": "Agent must split a fat interface into role-specific interfaces aligned to actual client usage, without over-granularizing into single-method interfaces",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Read-only interface produced with correct methods",
      "description": "A read-only interface file exists containing findById, findAll, and findByFilter — no write or admin methods",
      "max_score": 20
    },
    {
      "name": "Write interface produced with correct methods",
      "description": "A writable interface file exists containing at minimum save and delete (and may extend or include read methods)",
      "max_score": 20
    },
    {
      "name": "Admin interface produced with correct methods",
      "description": "An admin interface file exists containing truncate, exportDump, and importDump — no read or write methods",
      "max_score": 20
    },
    {
      "name": "No single-method interfaces created",
      "description": "No produced interface contains only one method when the client that uses it always calls multiple methods from the same role group",
      "max_score": 15
    },
    {
      "name": "isp-analysis.md identifies the ISP violation correctly",
      "description": "isp-analysis.md names at least one client (e.g., ReportingService or AdminMigrationTool) that was forced to depend on methods it never uses",
      "max_score": 15
    },
    {
      "name": "isp-analysis.md explains the resolution",
      "description": "isp-analysis.md explains that splitting by client role means each client only depends on the interface relevant to its own usage",
      "max_score": 10
    }
  ]
}

tile.json