CtrlK
BlogDocsLog inGet started
Tessl Logo

evilissimo/modular-software-design

Use before implementing or refactoring software when the task requires designing module boundaries, APIs, layers, abstractions, services, repositories, adapters, or architecture. Helps coding agents reduce total system complexity by creating deep modules, hiding implementation knowledge, avoiding leakage and pass-through APIs, comparing alternative designs, documenting interfaces before coding, and critiquing existing architecture.

93

1.13x
Quality

94%

Does it follow best practices?

Impact

93%

1.13x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-4/

{
  "context": "Tests conceptual decomposition, split/merge reasoning, pass-through variable detection, and pulling complexity downward.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Conceptual modules",
      "description": "Redesigns around concepts such as notification delivery, user preferences, quiet-hours policy, templates, or provider gateway rather than execution-order stages.",
      "max_score": 12
    },
    {
      "name": "Merge rationale",
      "description": "Identifies that current temporal splits export coordination/order burden and should be merged or hidden behind a deeper operation.",
      "max_score": 10
    },
    {
      "name": "Pass-through variables",
      "description": "Flags locale, retry policy, provider client, quiet-hours flag, or similar data as pass-through when layers do not own it.",
      "max_score": 10
    },
    {
      "name": "Boolean flag API",
      "description": "Addresses the behavior-changing quiet-hours boolean with a domain concept, policy, configuration, or separate operation.",
      "max_score": 8
    },
    {
      "name": "Call order hidden",
      "description": "Provides a caller API that does not require callers to invoke parse/validate/process/send/build in sequence.",
      "max_score": 10
    },
    {
      "name": "Small interface",
      "description": "Provides a small number of intention-revealing public operations for callers.",
      "max_score": 8
    },
    {
      "name": "Split criteria",
      "description": "Keeps or creates separate modules only where they hide different decisions or change for different reasons.",
      "max_score": 8
    },
    {
      "name": "Provider hidden",
      "description": "Hides provider client/status codes/retry details outside the notification boundary.",
      "max_score": 8
    },
    {
      "name": "Special cases",
      "description": "Centralizes or normalizes quiet-hours/template/locale special cases inside owning modules.",
      "max_score": 8
    },
    {
      "name": "Avoid god object",
      "description": "Explains why the chosen deeper module is not a speculative or unfocused god object.",
      "max_score": 6
    },
    {
      "name": "Alternative comparison",
      "description": "Compares at least two designs using caller burden, change impact, leakage, pass-throughs, and module depth.",
      "max_score": 12
    }
  ]
}

evals

README.md

SKILL.md

tile.json