CtrlK
BlogDocsLog inGet started
Tessl Logo

igmarin/hanakai-yaku

Curated library of atomic skills and personas for Hanami, dry-rb, and ROM Ruby development. Covers actions, slices, repositories, relations, changesets, providers, DI, operations, TDD, CLI, views, routing, validation, and 10 orchestration personas. Shared Ruby process skills have moved to ruby-core-skills. Uses Markdown + Front-matter architecture.

95

1.20x
Quality

95%

Does it follow best practices?

Impact

96%

1.20x

Average score across 45 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-25/

{
  "context": "Checks whether the final artifact follows the register-provider instructions from the published hanakai-yaku plugin.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "instruction-1",
      "description": "The submitted artifact follows this skill instruction: Use this skill when registering external dependencies (database, mailer, cache, third-party APIs) in the Hanami 2.x DI container.",
      "max_score": 12
    },
    {
      "name": "instruction-2",
      "description": "The submitted artifact follows this skill instruction: Use `prepare` for requiring dependencies and `start` for component initialization. Keep providers focused on a single external dependency or library.",
      "max_score": 11
    },
    {
      "name": "instruction-3",
      "description": "The submitted artifact follows this skill instruction: > Hanami.app[\"mailer.client\"]   # => should return the registered instance without errors",
      "max_score": 11
    },
    {
      "name": "instruction-4",
      "description": "The submitted artifact follows this skill instruction: **Use the built-in database provider**:",
      "max_score": 11
    },
    {
      "name": "instruction-5",
      "description": "The submitted artifact follows this skill instruction: **Register third-party API clients using settings**:",
      "max_score": 11
    },
    {
      "name": "instruction-6",
      "description": "The submitted artifact follows this skill instruction: Always load keys and URLs through `target[:settings]`. Do not reference raw environment variables via `ENV` in providers.",
      "max_score": 11
    },
    {
      "name": "instruction-7",
      "description": "The submitted artifact follows this skill instruction: **Swallow the error** (register a null/fallback object) if the service is optional and the app should still boot without it.",
      "max_score": 11
    },
    {
      "name": "instruction-8",
      "description": "The submitted artifact follows this skill instruction: **Re-raise the error** if the service is required and a missing provider should halt boot.",
      "max_score": 11
    },
    {
      "name": "instruction-9",
      "description": "The submitted artifact follows this skill instruction: **Verify a provider is correctly registered** using the Hanami console or a smoke test:",
      "max_score": 11
    }
  ]
}

README.md

tile.json