CtrlK
BlogDocsLog inGet started
Tessl Logo

igmarin/ruby-core-skills

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

1.05x
Quality

96%

Does it follow best practices?

Impact

95%

1.05x

Average score across 16 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

TESTING.mdskills/patterns/implement-calculator-pattern/

Strategy + Factory + Null Object — RSpec Examples

Component RED/GREEN Proof

For each component, show the focused command and checkpoint before moving on:

- Component: Factory
- First command: `bundle exec rspec spec/services/pricing_calculator/factory_spec.rb`
- Expected RED: missing dispatch/fallback behavior or uninitialized component constant
- GREEN rerun: `bundle exec rspec spec/services/pricing_calculator/factory_spec.rb` passes

Factory Spec (all dispatch branches)

RSpec.describe PricingCalculator::Factory do
  describe '.for' do
    let(:order) { create(:order) }

    context 'when plan is nil' do
      before { order.update!(plan: nil) }
      it { expect(described_class.for(order)).to be_a(PricingCalculator::NullService) }
    end

    context 'when plan is inactive' do
      before { order.plan.update!(active: false) }
      it { expect(described_class.for(order)).to be_a(PricingCalculator::NullService) }
    end

    context 'when plan is standard' do
      before { order.plan.update!(name: 'standard', active: true) }
      it { expect(described_class.for(order)).to be_a(PricingCalculator::StandardPricingService) }
    end

    context 'when plan name is unknown' do
      before { order.plan.update!(name: 'enterprise', active: true) }
      it { expect(described_class.for(order)).to be_a(PricingCalculator::NullService) }
    end
  end
end

NullService Spec

RSpec.describe PricingCalculator::NullService do
  let(:order) { create(:order) }

  it 'always returns nil' do
    expect(described_class.new(order).calculate).to be_nil
  end

  context 'when the order is nil' do
    let(:order) { nil }

    it 'still returns nil' do
      expect(described_class.new(order).calculate).to be_nil
    end
  end
end

Concrete Service Spec

RSpec.describe PricingCalculator::StandardPricingService do
  let(:order) { create(:order, :with_standard_plan, base_price: 100) }

  describe '#calculate' do
    it 'returns the discounted price for standard plans' do
      expect(described_class.new(order).calculate).to eq(90)
    end

    context 'when plan is inactive' do
      before { order.plan.update!(active: false) }
      it { expect(described_class.new(order).calculate).to be_nil }
    end

    context 'when plan is nil' do
      before { order.update!(plan: nil) }
      it { expect(described_class.new(order).calculate).to be_nil }
    end
  end
end

skills

README.md

tile.json