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
95%
Does it follow best practices?
Impact
96%
1.20xAverage score across 45 eval scenarios
Passed
No known issues
Orchestrates the full slice lifecycle: from creation through testing, boundary review, and extraction. Chains four phases with hard gates between them.
bundle exec hanami generate slice <name>slices/
└── <name>/
├── action.rb
├── actions/
├── lib/
│ └── <name>/
│ ├── operations/
│ ├── repositories/
│ └── views/
└── config/Quality Check:
Example action spec (RSpec):
# spec/slices/<name>/actions/index_spec.rb
RSpec.describe <Name>::Actions::Index do
let(:app) { <Name>::Slice.rack_app }
it "returns 200" do
get "/"
expect(last_response.status).to eq(200)
end
endRun the slice in isolation:
HANAMI_SLICE=<name> bundle exec rspec spec/slices/<name>/HARD GATE — Tests Pass in Isolation:
All slice tests MUST pass with only the target slice loaded.
DO NOT proceed if cross-slice dependencies cause test failures.
Fix isolation issues before continuing.Boundary Violation vs. Valid Cross-Slice Call:
# ❌ Direct import — VIOLATION
require "slices/billing/lib/billing/repositories/invoice_repo"
# ✅ Public API call — CORRECT
Hanami.app["billing.actions.invoices.create"].call(params)HARD GATE — Boundaries Verified:
NO Critical boundary violations may remain unaddressed.
Every Critical finding must have a resolution plan.
DO NOT proceed with unaddressed isolation breaches.Deps keys and require paths after moving files:
# Before (app module)
include Deps["repositories.users"]
# After (inside target slice)
include Deps["<name>.repositories.users"]bundle exec rspec| Scenario | Recovery |
|---|---|
| Slice creation fails (missing directory) | Verify the parent slices/ directory exists. Check permissions. |
| Tests fail due to cross-slice imports | Identify the violating import. Replace with public API call or refactor. |
| Boundary review finds critical violation | Document the finding, assign an owner, create a resolution plan. |
| Extraction breaks existing tests | Check namespace changes. Verify Deps keys and require paths were updated. |
| Slice has no clear bounded context | Ask: "What single domain does this slice serve?" If unclear, reconsider extraction. |
## Slice Lifecycle Complete: [Slice Name]
### Phase 1 — Creation
- Slice: `slices/[name]/`
- Actions: [N] defined
- Internal structure: operations, repositories, relations, views
### Phase 2 — Testing
- Action specs: [N] passing
- Operation specs: [N] passing
- Repository specs: [N] passing
- Isolation: Verified / Issues Found
### Phase 3 — Boundary Review
- Critical findings: [N]
- Suggestions: [N]
- Notes: [N]
- Overall health: Good / Needs attention
### Phase 4 — Extraction (if applicable)
- Files moved: [N]
- Namespaces updated: [N]
- Tests passing after extraction: [N]/[N].tessl-plugin
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17
scenario-18
scenario-19
scenario-20
scenario-21
scenario-22
scenario-23
scenario-24
scenario-25
scenario-26
scenario-27
scenario-28
scenario-29
scenario-30
scenario-31
scenario-32
scenario-33
scenario-34
scenario-35
scenario-36
scenario-37
scenario-38
scenario-39
scenario-40
scenario-41
scenario-42
scenario-43
scenario-44
scenario-45
skills
actions
build-json-api
create-action
handle-errors
validate-params
context
load-context
db
create-changeset
create-repository
define-relation
write-migration
dry-monads
handle-result-pattern
dry-rb
create-operation
create-validation-contract
personas
providers
configure-providers
implement-di
review-security
routing
define-routes
slices
configure-slice
create-slice
extract-slice
review-slice-boundaries
test-slice