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.jsondesign-patterns/evals/scenario-3/

{
  "context": "Agent must produce a gateway that fully translates external CRM data to domain types, preventing external model leakage",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "CrmGateway.ts produces a Customer domain object",
      "description": "The getCustomer method (or equivalent) returns a Customer object with all five fields: id, fullName, email, isPremium, createdAt",
      "max_score": 25
    },
    {
      "name": "Full name is assembled from f_name and l_name",
      "description": "CrmGateway.ts concatenates f_name and l_name into fullName — not just using one field",
      "max_score": 15
    },
    {
      "name": "acct_type is correctly mapped to isPremium",
      "description": "CrmGateway.ts maps 'PRE' to true and 'STD' to false for the isPremium field",
      "max_score": 15
    },
    {
      "name": "reg_ts is converted to a Date",
      "description": "CrmGateway.ts converts the reg_ts string to a Date object for the createdAt field (e.g. new Date(reg_ts))",
      "max_score": 15
    },
    {
      "name": "No CrmApiResponse fields leak outside CrmGateway.ts",
      "description": "CrmGateway.ts does not export CrmApiResponse or return it; only Customer is returned to callers",
      "max_score": 20
    },
    {
      "name": "acl-analysis.md explains domain pollution risk and ACL resolution",
      "description": "acl-analysis.md contains one paragraph on what pollution would look like (e.g. cust_id and acct_type used in domain code) and one paragraph on how the ACL isolates it",
      "max_score": 10
    }
  ]
}

tile.json