CtrlK
BlogDocsLog inGet started
Tessl Logo

evilissimo/software-design

Use before implementing or refactoring software. Contains two skills: (1) Modular Software Design — for designing module boundaries, APIs, layers, abstractions, services, repositories, adapters, or architecture, helping 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; and (2) Software Testing — for writing unit tests, integration tests, or end-to-end tests, creating mocks/stubs/fakes, designing a testing strategy, doing TDD, reviewing test quality, fixing flaky tests, or refactoring test suites, generating risk-focused test plans, picking appropriate test levels, choosing between mocks/fakes/real dependencies, and applying Arrange-Act-Assert patterns with concrete examples.

93

1.12x
Quality

94%

Does it follow best practices?

Impact

92%

1.12x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-4/

{
  "context": "Tests choosing fakes/mocks and behaviour-focused tests.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Behaviour focus",
      "description": "Tests observable returned values, persisted effects, or outgoing side effects rather than private choreography.",
      "max_score": 12
    },
    {
      "name": "Avoid internals",
      "description": "Does not assert private methods or exact internal call order except where the outgoing interaction is the behaviour.",
      "max_score": 10
    },
    {
      "name": "Fakes preferred",
      "description": "Uses fakes or spies for owned repo/payment/email boundaries rather than heavy mocks for everything.",
      "max_score": 12
    },
    {
      "name": "Mock rationale",
      "description": "Uses mocks only for side effects that are the behaviour, such as sending receipt email, or explains why.",
      "max_score": 10
    },
    {
      "name": "Own types",
      "description": "Substitutes owned interfaces/adapters rather than mocking third-party library objects directly.",
      "max_score": 8
    },
    {
      "name": "Public seam",
      "description": "Tests through the service public API or stable seam production uses.",
      "max_score": 10
    },
    {
      "name": "AAA",
      "description": "Tests are arranged in Arrange-Act-Assert form with short domain names.",
      "max_score": 10
    },
    {
      "name": "Precise assertions",
      "description": "Assertions check coherent behaviours and meaningful values, not broad snapshots or weak existence checks.",
      "max_score": 10
    },
    {
      "name": "Refactor support",
      "description": "Explains why rewritten tests should survive harmless internal refactoring.",
      "max_score": 10
    },
    {
      "name": "Smell review",
      "description": "Identifies over-mocking/overspecification in the old suite.",
      "max_score": 8
    }
  ]
}

evals

tile.json