CtrlK
BlogDocsLog inGet started
Tessl Logo

igmarin/hanakai-yaku

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

92

1.33x
Quality

94%

Does it follow best practices?

Impact

92%

1.33x

Average score across 35 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

EXTRACTION_PATTERNS.mdskills/slices/extract-slice/

Extraction Patterns

Before/After Directory Mapping

Before (in app module):
  app/
    actions/
      payments/
        create.rb        # App::Actions::Payments::Create
        index.rb         # App::Actions::Payments::Index
    operations/
      payments/
        process_payment.rb  # App::Operations::Payments::ProcessPayment
    repositories/
      payment_repo.rb      # App::Repositories::PaymentRepo
    relations/
      payments.rb          # App::Relations::Payments

After (extracted to slice):
  slices/payments/
    actions/
      create.rb            # Payments::Actions::Create
      index.rb             # Payments::Actions::Index
    operations/
      process_payment.rb   # Payments::Operations::ProcessPayment
    repositories/
      payment_repo.rb      # Payments::Repositories::PaymentRepo
    relations/
      payments.rb          # Payments::Relations::Payments

Namespace Rewrite Rules

Old namespaceNew namespace
App::Actions::Payments::Payments::Actions::
App::Operations::Payments::Payments::Operations::
App::Repositories::Payments::Repositories::
App::Relations::Payments::Relations::

Deps Key Updates

After extraction, include Deps[...] keys must use the slice-qualified path:

# Before
include Deps["operations.payments.process_payment"]

# After
include Deps["payments.operations.process_payment"]

Common Pitfalls

PitfallFix
Forgot to update require pathsGrep for old paths: rg "require.*app/" slices/
Stale route references in config/routes.rbUpdate slice prefix in routes
Provider still references old namespaceCheck config/providers/ for slice-specific registrations
Test helpers still load old moduleUpdate spec/slices/<slice>/slice_helper.rb
Other slices import the old namespaceUpdate cross-slice references to use the new public API

Post-Extraction Verification

# Run only the extracted slice's tests
bundle exec rspec spec/slices/payments/

# Run full suite to catch regressions
bundle exec rspec

# Find remaining references to old namespace
rg "App::(Actions|Operations|Repositories|Relations)::Payments" slices/ app/

skills

slices

README.md

tile.json