Skill Library

Skills are not documentation.
They are executable instructions that guide AI agents through structured workflows.

A curated library of 16 skills that encode Ruby development discipline — from test-first coding to domain modeling to security review. No agents. No frameworks. Just pure, composable workflow knowledge.

How it works Browse all 16 skills

Without structure, AI coding is a guessing game

An agent told to "add a feature" writes code first and asks questions later. It skips tests, ignores domain boundaries, and leaves no documentation. You spend more time reviewing and fixing than you saved.

  • Implementation before tests
  • No domain modeling before code
  • Inconsistent patterns across services
  • Security and review are afterthoughts
Ad-hoc AI Coding Write implementation ↑ Skips test Discover bugs in review ↑ No boundary checks Rewrite everything ↑ Inconsistent patterns

A skill is a workflow gate, not a knowledge article

Each skill defines a sequence of checkpoints the agent must pass before it can continue. Think of it as a checklist with teeth.

Hard Gates

Non-negotiable checkpoints. An agent cannot proceed until each gate is satisfied. For example: test must exist and fail for the right reason before any implementation code is written.

Structured Process

Numbered steps with inline examples. The agent follows a concrete sequence — not vague advice. Every output has a defined format.

Composable

Each skill lists its integration points — which skill comes next. The skill-router chains them into complete workflows like TDD Feature Loop or Bug Fix.

Three kinds of skills, one consistent format

Every skill lives in its own directory with a SKILL.md entry point. The type determines what the agent does with it.

Process-Discipline

5 skills

Define rigorous gates and workflows that the agent must follow. They enforce how work is done.

  • tdd-process
  • refactor-process
  • review-process
  • security-review-process
  • test-planning-process
Atomic

10 skills

Define concrete patterns and structures. They encode what the output should look like.

  • create-service-object
  • implement-calculator-pattern
  • integrate-api-client
  • define-domain-language
  • model-domain
  • review-domain-boundaries
  • triage-bug
  • respond-to-review
  • write-yard-docs
  • skill-router
Planning

1 skill

Breaks features into structured task lists. It plans before the agent builds.

  • generate-tdd-tasks

Tests gate everything

Every code-producing skill in this library enforces the same rule. No implementation code exists until a failing test proves the need for it. This is the red-green-refactor loop, wired directly into every skill.

Write test → Run test → Verify it FAILS
for the right reason → Implement → Verify it PASSES

Every skill has a HARD-GATE section. The agent cannot proceed past it.

RED Write failing test Does it fail for the right reason? No rewrite Yes GREEN Minimal implementation REFACTOR Improve without changing behavior

Skills chain into complete workflows

No single skill does everything. They compose. The output of one feeds into the next, guided by the skill-router.

test-planning-process
tdd-process
refactor-process
linters ✓
write-yard-docs
review-process
respond-to-review

The default TDD Feature Loop: 8 skills composed into one workflow

Bug Fix Workflow

triage-bug test-planning-process tdd-process refactor-process

Domain Discovery

define-domain-language model-domain review-domain-boundaries

A concrete example: tdd-process

Let's walk through what the agent actually sees when it loads this skill. Here's the real gate sequence from skills/process/tdd-process/SKILL.md.

1

Test Exists

A test file exists for the change. Cannot write code without it.

2

Test Runs

The test executes without syntax errors or missing dependencies.

3

Fails Right

The test fails for the expected reason — not a typo, not a missing file.

4

Minimal Impl

Write the smallest change that makes the test pass. Nothing more.

5

Test Passes

The test suite is green. The gate is satisfied.

# Step 1: Write the failing test (RSpec)
RSpec.describe Calculator do
  describe ".add" do
    it "returns the sum of two numbers" do
      result = Calculator.add(2, 3)
      expect(result).to eq(5)
    end
  end
end

# Run: rspec spec/calculator_spec.rb
# Expected: 1 example, 1 failure
# Failure: uninitialized constant Calculator

# Step 4: Minimal implementation (only after confirming failure)
class Calculator
  def self.add(a, b)
    a + b
  end
end

# Step 5: Run again
# Expected: 1 example, 0 failures ✓

The skill-router picks the right skill for the task

The agent doesn't need to know all 16 skills. It asks the router, and the router responds with the exact path to load.

skill-router "Add a new feature" tdd-process generate-tdd-tasks model-domain define-domain-language Code already? Plan first? New domain? Ambiguous?

Router Priority

  1. TDD (code production)
  2. Planning (task breakdown)
  3. Domain discovery (before implementation)
  4. Process / refactor (improve existing code)
  5. Domain implementation (code after modeling)

Zero agents live here. Agents live in framework repos.

This repository is deliberately agent-free. Agents are framework-specific — a Rails agent knows about ActiveRecord, a Hanami agent knows about slices. Both compose skills from here.

rails-agent-skills 9 agents hanakai-yaku 10 agents agnostic-planning-skills 4 agents ruby-core-skills 16 skills · 0 agents depends_on depends_on depends_on agent-mcp-runtime Rust CLI composition engine Framework repos have agents, compose core skills Core is agent-free — pure skill library
agent-mcp-runtime --pack rails --task "Add user authentication"

All 16 skills

Each skill is a directory with a SKILL.md entry point. Load only what the task needs.

Process-Discipline · 5 Skills

tdd-process

Enforces Red-Green-Refactor loop with 5 hard gates. Test must exist and fail before any code is written.

skills/process/tdd-process/

refactor-process

4 gates: characterization tests must pass, one atomic change at a time, no behavior drift.

skills/process/refactor-process/

review-process

Severity taxonomy (Critical/Major/Minor/Nitpick). Structured finding format. Critical blocks merge.

skills/process/review-process/

security-review-process

OWASP Top 10 for Ruby. Input allowlists, no SQL interpolation, no secrets committed.

skills/process/security-review-process/

test-planning-process

Decision grid for test boundaries. First failing test must be identified before coding starts.

skills/process/test-planning-process/

Atomic · 10 Skills

create-service-object

PORO .call pattern with success/error contract. 4 sub-patterns: Standard, Batch, Static, Orchestrator.

skills/patterns/create-service-object/

implement-calculator-pattern

Strategy+Factory pattern. Factory.for(entity).calculate is the only permitted entry point.

skills/patterns/implement-calculator-pattern/

integrate-api-client

5-layer pattern (Auth→Client→Fetcher→Builder→Entity). Security gate: never trust vendor responses.

skills/patterns/integrate-api-client/

define-domain-language

Extract ubiquitous language. Collect terms, resolve synonyms, choose canonical terms, flag ambiguity.

skills/ddd/define-domain-language/

model-domain

Tactical DDD: entities, value objects, aggregates, domain services. Output is model, not code.

skills/ddd/model-domain/

review-domain-boundaries

Detect bounded context leakage. Map entry points, name contexts, find leakage, propose fix.

skills/ddd/review-domain-boundaries/

triage-bug

7-step process: capture, bound, gather evidence, choose failing test, define fix, skeleton test, hand off.

skills/testing/triage-bug/

respond-to-review

7-step review response. 5 feedback categories. Structured push-back format. Implement one item at a time.

skills/code-quality/respond-to-review/

write-yard-docs

Mandatory @param, @return, @raise for every public method. Tagged notes carry actionable context.

skills/docs/write-yard-docs/

skill-router

Entry point. Routes tasks to the correct skill. Disambiguates similar skills. All workflows start here.

skills/orchestration/skill-router/

Planning · 1 Skill

generate-tdd-tasks

Breaks features into TDD task lists. Each task has 5 sub-steps: RED → Run fail → GREEN → Run pass → REFACTOR.

skills/planning/generate-tdd-tasks/

Start with the skill that matches your task

Every agent workflow in this ecosystem begins the same way: the skill-router receives the task, picks the right skill path, and hands control to the first skill in the chain.

Write code

Load skill-router → it routes to generate-tdd-tasks or tdd-process.

Review code

Load review-process or security-review-process directly. Severity-graded findings with structured output.

Model a domain

Load define-domain-languagemodel-domainreview-domain-boundaries.

Install and explore

# Clone the library
git clone https://github.com/igmarin/ruby-core-skills.git

# Browse the skills
ls skills/process/   # 5 process-discipline skills
ls skills/patterns/  # 3 implementation patterns
ls skills/ddd/       # 3 domain-driven design skills
ls skills/testing/   # bug triage
ls skills/code-quality/  # review response
ls skills/docs/     # YARD documentation
ls skills/orchestration/  # skill-router
ls skills/planning/    # task generation