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-42/

{
  "context": "Checks whether the final artifact follows the add-background-jobs instructions from the published hanakai-yaku plugin.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "instruction-1",
      "description": "The submitted artifact follows this skill instruction: Use this workflow when integrating background jobs in Hanami 2.x.",
      "max_score": 10
    },
    {
      "name": "instruction-2",
      "description": "The submitted artifact follows this skill instruction: **[Register Job Adapter]** — Load skill: `register-provider`",
      "max_score": 10
    },
    {
      "name": "instruction-3",
      "description": "The submitted artifact follows this skill instruction: Create `config/providers/background_jobs.rb`",
      "max_score": 10
    },
    {
      "name": "instruction-4",
      "description": "The submitted artifact follows this skill instruction: Register the adapter client in the `start` block",
      "max_score": 10
    },
    {
      "name": "instruction-5",
      "description": "The submitted artifact follows this skill instruction: **Validation:** Verify registration with `MyApp::App[\"jobs.client\"]` in a Hanami console or container lookup spec. It should return `Sidekiq::Client` without raising `Dry::Container::Error`.",
      "max_score": 10
    },
    {
      "name": "instruction-6",
      "description": "The submitted artifact follows this skill instruction: **[Inject into Action]** — Load skill: `inject-dependencies`",
      "max_score": 10
    },
    {
      "name": "instruction-7",
      "description": "The submitted artifact follows this skill instruction: Inject job adapter into Action",
      "max_score": 10
    },
    {
      "name": "instruction-8",
      "description": "The submitted artifact follows this skill instruction: class Create < MyApp::Action",
      "max_score": 10
    },
    {
      "name": "instruction-9",
      "description": "The submitted artifact follows this skill instruction: **[Enqueue from Action]** — Load skill: `create-action`",
      "max_score": 10
    },
    {
      "name": "instruction-10",
      "description": "The submitted artifact follows this skill instruction: **[Write Job Specs]** — Load skill: `write-action-spec`",
      "max_score": 10
    }
  ]
}

README.md

tile.json