Curated library of 16 public Ruby AI agent skills: 10 atomic skills (YARD docs, service objects, calculator pattern, API clients, DDD, bug triage, code review, skill routing), 5 process-discipline skills (TDD, refactoring, review, security, test planning), and 1 planning skill (TDD task generation). Zero agents — this is a foundational library consumed by framework-specific tiles like rails-agent-skills and hanakai-yaku.
95
96%
Does it follow best practices?
Impact
95%
1.05xAverage score across 16 eval scenarios
Passed
No known issues
| Scenario | Primary Skill |
|---|---|
| Fallback: unfamiliar codebase / ambiguity | define-domain-language or model-domain |
| Choosing where to start testing | test-planning-process |
| Reviewing code | review-process |
| Fixing a bug | triage-bug |
Non-negotiable: no implementation code until a test exists, runs, and fails for the right reason (feature missing, not config/syntax).
ALWAYS identify the matching skill and name it explicitly as the next skill to use before responding further.Triages and decomposes any Ruby request into ordered sub-tasks, then delegates to the correct specialized skill. Enforces the test-first/TDD mandate across all code-producing work.
When a task arrives, identify the matching skill from the tables below and name it explicitly as the next skill to use before responding further.
In an active response, make the routing statement, such as Next skill: skills/process/tdd-process or Next skill: skills/patterns/create-service-object, the first substantive line before analysis or implementation. When multiple skills may apply, immediately follow the routing line with one concise priority/chain statement, such as Priority: tdd-process > write-yard-docs; Chain: tdd-process then write-yard-docs, before any analysis or implementation.
| Skill | Use when... |
|---|---|
| define-domain-language | Extracting ubiquitous language or glossary definitions |
| review-domain-boundaries | Auditing context boundaries and language leakage |
| model-domain | Tactical DDD design (aggregates, entities, value objects, domain services) |
| write-yard-docs | Writing or reviewing inline YARD documentation for public Ruby APIs |
| create-service-object | Creating a service object (PORO .call pattern) |
| implement-calculator-pattern | Implementing polymorphic variant-based calculators (Strategy + Factory) |
| integrate-api-client | Designing HTTP integrations (layered client/fetcher/builder pattern) |
| triage-bug | Investigating a bug, reproducing via failing test, and creating a repair plan |
| respond-to-review | Receiving code review feedback and addressing comments |
| tdd-process | General engineering loop: Red-Green-Refactor process gates and checkpoints |
| refactor-process | Safely refactoring code while preserving behavior under characterization tests |
| review-process | Reviewing changesets (severity taxonomies, structured findings, re-review) |
| security-review-process | Reviewing code for general Ruby security flaws (secrets, injections) |
| test-planning-process | Choosing test boundaries (unit vs integration) and test scenarios |
When multiple skills could apply, state this priority rule immediately after the routing statement:
Priority: TDD → Planning → Domain discovery → Process/refactor → Domain implementation.Use test-planning-process when the first failing test is not obvious.
Key disambiguation signals:
review-process vs review-domain-boundaries: use review-domain-boundaries when auditing boundaries between subsystems; use review-process when doing a standard code review of a specific changeset.test-planning-process vs tdd-process: use test-planning-process when mapping what scenarios and boundaries to test; use tdd-process to execute the Red-Green-Refactor loop.Fallback for ambiguous requests: If no clear skill match, label this explicitly as Fallback: define-domain-language or Fallback: model-domain depending on whether terminology or architecture is the source of ambiguity.
Sub-skills are invoked by stating their name as the next skill to apply, e.g. "Next skill: skills/process/tdd-process", before proceeding with that skill's instructions.
TDD Feature Loop (primary daily workflow): skills/process/test-planning-process → skills/process/tdd-process → skills/docs/write-yard-docs → PR
Bug fix: skills/testing/triage-bug → [GATE: reproduction test fails] → skills/process/tdd-process → fix → verify passes
Multi-concern review: skills/process/security-review-process (if input/secrets touched) → skills/process/review-process (general code review)
Routing statement: Clearly state the next skill being invoked as the first substantive line of the response.
Next skill: skills/process/tdd-process
This is a feature request. I will start by writing a failing test scenario.Put this routing statement before any deeper analysis. If multiple skills apply, immediately follow it with one concise priority/chain statement before analysis or implementation:
Next skill: skills/process/security-review-process
Priority: security-review-process > review-process; Chain: security-review-process then review-process.
This pull request contains custom parser rules and input validation, so we will perform a security review first followed by general code review.Language: Generated artifacts and output MUST be in English unless explicitly requested otherwise.
| Skill | When to chain |
|---|---|
| define-domain-language | Default for ambiguous requirements |
docs
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
skills
code-quality
respond-to-review
ddd
define-domain-language
model-domain
review-domain-boundaries
docs
write-yard-docs
orchestration
skill-router
patterns
create-service-object
implement-calculator-pattern
planning
generate-tdd-tasks
process
testing
triage-bug