Enforce strict three-layer architecture: thin HTTP routes, pure service logic with domain errors, isolated data access with dependency injection.
94
93%
Does it follow best practices?
Impact
97%
1.08xAverage score across 5 eval scenarios
Passed
No known issues
{
"instruction": "Service layer must not reference HTTP objects or framework-specific context",
"relevant_when": "Agent creates a service or business logic layer",
"context": "Services should be callable from any context (routes, background jobs, CLI, tests, other services). HTTP objects (req, res, request, response, ctx, context) and HTTP-specific concepts (status codes, headers, cookies) tie them to the web framework and prevent reuse.",
"sources": [
{
"type": "file",
"filename": "skills/separation-of-concerns/SKILL.md",
"tile": "tessl-labs/separation-of-concerns@0.1.3"
}
],
"checklist": [
{
"name": "no-req-res-in-service",
"rule": "Service/business logic files do not import, accept as parameters, or reference req/res/request/response/ctx/context HTTP objects",
"relevant_when": "Agent creates service layer functions"
},
{
"name": "no-http-status-in-service",
"rule": "Service files do not set or reference HTTP status codes (200, 400, 404, 500 etc.) or import HTTP framework modules",
"relevant_when": "Agent creates service layer error handling"
},
{
"name": "services-accept-plain-data",
"rule": "Service functions accept plain objects, primitives, or typed DTOs as input — not HTTP request objects",
"relevant_when": "Agent defines service function signatures"
}
]
}evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
skills
separation-of-concerns
verifiers