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
| Bug shape | Likely first spec/test |
|---|---|
| HTTP/API symptoms (status, JSON, redirect) | Integration/Request spec or controller test |
| Data/logic symptoms (wrong value, validation) | Unit or service test |
| Timing/Async symptoms (missing job, email) | Background worker or unit test |
| Integration/dependency regression | Component/integration test |
DO NOT guess at fixes without a reproduction path.
1. Reproduce the bug.
2. Choose the right failing test boundary.
3. Plan the smallest safe repair.Work through each step in order. The final triage output must include all seven named outputs below.
test-planning-process → tdd-process → implementation skill.Language: Must be in English unless explicitly requested otherwise.
When the report is an order creation failure visible through POST /orders, default to the request boundary first:
spec/requests/orders_spec.rb (or test/integration/orders_test.rb)bundle exec rspec spec/requests/orders_spec.rb (or bundle exec ruby test/integration/orders_test.rb)422 with "Out of stock" yet, or the service raises instead of returning a handled error.Orders::CreateOrder handles the stock guard and returns { success: false, error: "Out of stock" } without creating the order.# spec/requests/orders_spec.rb
RSpec.describe "POST /orders" do
context "when product is out of stock" do
let(:product) { Product.new(stock: 0) }
it "returns 422 with an error message" do
post "/orders", params: { product_id: product.id, quantity: 1 }
expect(response.status).to eq(422)
expect(response.body).to include("Out of stock")
end
end
endDo not replace this with a pricing, model-only, or class-only example unless the bug report points there.
See BOUNDARY_GUIDE.md for the full bug-shape → test-type mapping and layer diagnosis tips.
| Pitfall | What to do |
|---|---|
| Unit test when the bug is visible at request level | Start where the failure is actually observed |
| Bundling reproduction, refactor, and new features | Fix the bug in the smallest safe slice only |
| Flaky evidence treated as green light to patch | Stabilize reproduction before touching code |
| The explanation relies on "probably" or "maybe" | Ambiguity means the reproduction step isn't done yet |
| Skill | When to chain |
|---|---|
| test-planning-process | To choose the strongest first failing test for the bug |
| tdd-process | To run the TDD loop correctly after the test is chosen |
| refactor-process | When the bug sits inside a risky refactor area and behavior must be preserved first |
| review-process | To review the final bug fix for regressions and missing coverage |
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