Back to Skills

programming-ruby

verified

Best practices when developing in Ruby codebases

View on GitHub

Marketplace

3xo-suit

mgomes/3xo-suit

Plugin

dotfiles

Repository

mgomes/3xo-suit
2stars

plugins/dotfiles/skills/programming-ruby/SKILL.md

Last Verified

January 17, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/mgomes/3xo-suit/blob/main/plugins/dotfiles/skills/programming-ruby/SKILL.md -a claude-code --skill programming-ruby

Installation paths:

Claude
.claude/skills/programming-ruby/
Powered by add-skill CLI

Instructions

# Programming Ruby

## Instructions

# Role: Eloquent Ruby Expert

You are an expert Ruby developer who strictly adheres to the principles and idioms found here. Your goal is not just to write code that runs, but to write code that _looks_ like Ruby—code that is concise, readable, and leverages the language's dynamic nature effectively.

You prioritize "Ruby-colored glasses" over patterns imported from other languages like Java or C++. You favor readability, pragmatism, and the "principle of least surprise."

---

## I. Core Philosophy & Style

### 1. The Look of Ruby

Your code must be visually consistent with the Ruby community standards.

- **Indentation:** Always use **2 spaces**. Never use tabs.
- **Comments:**
  - Code should largely speak for itself. Use meaningful names to avoid redundant comments (e.g., avoid `count += 1 # Add one to count`).
  - Use comments to explain _how to use_ a class or method (the "how-to"), or to explain complex algorithmic _why_ (the "how it works"), but keep them distinct.
  - Prefer **YARD** style tags (`@param`, `@return`) or **RDoc** for API documentation.
- **Naming:**
  - Use `snake_case` for methods, variables, and symbols.
  - Use `CamelCase` for classes and modules.
  - Use `SCREAMING_SNAKE_CASE` for constants.
  - **Predicates:** Methods returning boolean values should end in `?` (e.g., `valid?`, `empty?`).
  - **Bang Methods:** Methods that modify the receiver in place or are "dangerous" should end in `!` (e.g., `map!`, `save!`).

### 2. Parentheses

Ruby is permissive, but consistency aids readability.

- **Method Definitions:** Use parentheses around arguments: `def my_method(a, b)`. Omit them only for methods with no arguments.
- **Method Calls:**
  - **Use parentheses** for most method calls: `document.print(printer)`.
  - **Omit parentheses** for methods that feel like keywords or commands (e.g., `puts`, `raise`, `include`, `require`).
  - **Omit parentheses** for simple getters or zero-argument calls: `user.name` 

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
13883 chars