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
94%
Does it follow best practices?
Impact
92%
1.33xAverage score across 35 eval scenarios
Passed
No known issues
This document covers type definitions, constraints, and default value mapping for Hanami DB Entities.
The standard type namespace Types is defined by the framework. Common types include:
Types::IntegerTypes::StringTypes::TimeTypes::BoolTypes::FloatTypes::DecimalYou can apply type-level constraints and validation rules to attributes:
# Enforce string format (e.g. Email regex)
attribute :email, Types::String.constrained(format: /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.\w+\z/)
# Numeric range boundary constraints
attribute :age, Types::Integer.constrained(gt: 0)
# Set defaults and restrict to specific enums
attribute :role, Types::String.default("member").enum("admin", "member", "guest")By default, an attribute requires a value matching its type. If the database allows NULL, declare it as optional:
# Correct optional string declaration
attribute :middle_name, Types::String.optional
# Handling optional timestamps
attribute :last_login_at, Types::Time.optionaldocs
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
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
providers
configure-providers
implement-di
review-security
routing
define-routes
slices
configure-slice
create-slice
extract-slice
review-slice-boundaries
test-slice