ruby-bundler
# Ruby Bundler Skill
What this skill does
# Ruby Bundler Skill
Intelligent Bundler operations for managing Ruby dependencies.
## When to Activate
This skill activates when:
- User requests to install gems or dependencies
- User mentions Gemfile or bundle commands
- User asks about dependency management
- Gemfile.lock conflicts detected
- Missing gem errors occur
## Core Capabilities
### 1. Install Dependencies
**Basic Installation:**
```bash
bundle install
```
**Install for specific groups:**
```bash
# Development and test only
bundle install --without production
# Production only
bundle install --deployment
```
**Update Bundler first if needed:**
```bash
gem install bundler
bundle install
```
### 2. Add New Gems
**Interactive Gem Addition:**
When user requests: "Add [gem_name] gem"
1. **Check if gem exists:**
- Search RubyGems.org
- Show latest version
- Show brief description
2. **Suggest Gemfile entry:**
```ruby
# For runtime dependency
gem 'gem_name', '~> X.Y'
# For development/test
group :development, :test do
gem 'gem_name', '~> X.Y'
end
# For test only
group :test do
gem 'rspec', '~> 3.12'
end
```
3. **Add to appropriate group:**
- Runtime dependencies → main section
- Testing tools → :test group
- Development tools → :development group
- Code quality → :development (rubocop, etc.)
4. **Install the gem:**
```bash
bundle install
```
5. **Verify installation:**
```bash
bundle list | grep gem_name
```
### 3. Update Dependencies
**Update all gems:**
```bash
bundle update
```
**Update specific gem:**
```bash
bundle update gem_name
```
**Update conservatively (patch versions only):**
```bash
bundle update --patch
```
**Update minor versions:**
```bash
bundle update --minor
```
### 4. Audit for Security
**Check for vulnerabilities:**
```bash
bundle audit
```
**Install bundler-audit if missing:**
```bash
gem install bundler-audit
bundle audit
```
**Update vulnerable gems:**
```bash
bundle audit check --update
```
### 5. Clean Up
**Remove unused gems:**
```bash
bundle clean
```
**Clean with forced removal:**
```bash
bundle clean --force
```
### 6. Troubleshoot Issues
**Common Issues & Solutions:**
**Issue: "Could not find gem 'X'"**
```bash
# Solution 1: Update bundler
gem install bundler
bundle install
# Solution 2: Clear cache
bundle clean --force
bundle install
# Solution 3: Update Gemfile.lock
rm Gemfile.lock
bundle install
```
**Issue: Version conflicts**
```bash
# Show dependency tree
bundle viz --without production
# Or use bundle info
bundle info gem_name
```
**Issue: Platform-specific gems**
```ruby
# In Gemfile
gem 'pg', platforms: :ruby
gem 'sqlite3', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
```
### 7. Gem Information
**Show gem details:**
```bash
bundle info gem_name
```
**List all gems:**
```bash
bundle list
```
**Show outdated gems:**
```bash
bundle outdated
```
## Interactive Workflows
### Workflow 1: Add New Gem
**User Request:** "Add pry-byebug for debugging"
**Response:**
```
I'll add pry-byebug to your Gemfile.
Gem: pry-byebug
Latest Version: 3.10.1
Description: Combines pry with byebug for debugging
This is a development tool, so I'll add it to the :development group.
Adding to Gemfile:
```ruby
group :development do
gem 'pry-byebug', '~> 3.10'
end
```
Running bundle install...
✓ Successfully installed pry-byebug 3.10.1
You can now use it by adding `binding.pry` in your code.
```
### Workflow 2: Update Dependencies
**User Request:** "Update all my gems"
**Response:**
```
Before updating, let me check what's outdated:
Outdated gems:
- rspec: 3.11.0 → 3.12.0 (minor update)
- rubocop: 1.45.1 → 1.50.2 (minor update)
- nokogiri: 1.14.2 → 1.14.3 (patch update)
Recommendation:
1. Update patch versions first (safest): bundle update --patch
2. Update minor versions: bundle update --minor
3. Update all: bundle update
Would you like me to:
a) Update patch versions only (safest)
b) Update minor versions
c) Update everything
d) Update specific gems only
```
### Workflow 3: Security Audit
**User Request:** "Check for security issues"
**Response:**
```
Running security audit with bundler-audit...
Found 2 vulnerabilities:
1. HIGH: CVE-2023-XXXX in nokogiri (1.14.2)
Solution: Update to >= 1.14.3
2. MEDIUM: CVE-2023-YYYY in rack (2.2.6)
Solution: Update to >= 2.2.7
Recommended action:
bundle update nokogiri rack
Would you like me to update these gems now?
```
## Smart Suggestions
### Suggest Missing Gems
When user writes code using common patterns, suggest relevant gems:
**Pattern: API calls**
```ruby
# User writes HTTP client code
"I notice you're making HTTP requests. Consider adding:"
gem 'faraday', '~> 2.7' # Modern HTTP client
# or
gem 'httparty', '~> 0.21' # Simple HTTP client
```
**Pattern: JSON parsing**
```ruby
# User parses JSON
"For better JSON handling, consider:"
gem 'oj', '~> 3.14' # Faster JSON parser
```
**Pattern: Environment variables**
```ruby
# User uses ENV[]
"For environment management, you already have dotenv in common libs!"
gem 'dotenv', '~> 2.8'
```
**Pattern: Background jobs**
```ruby
# User mentions async/background processing
"For background jobs, you commonly use:"
gem 'sidekiq', '~> 7.0'
```
## Version Constraint Guidelines
**Pessimistic versioning (~>):**
```ruby
gem 'rails', '~> 7.0.4' # >= 7.0.4, < 7.1
gem 'rspec', '~> 3.12' # >= 3.12, < 4.0
```
**Exact version (avoid unless necessary):**
```ruby
gem 'specific_gem', '1.2.3' # Only 1.2.3
```
**Greater than or equal:**
```ruby
gem 'compatible_gem', '>= 2.0' # Any version >= 2.0
```
**Best Practice:** Use pessimistic (~>) for stability
## Gemfile Organization
**Recommended Structure:**
```ruby
source 'https://rubygems.org'
ruby '3.2.0' # Specify Ruby version
# Core runtime dependencies
gem 'dotenv'
gem 'pg', '~> 1.6'
# Development tools
group :development do
gem 'pry'
gem 'rubocop', require: false
end
# Test tools
group :test do
gem 'rspec', '~> 3.12'
gem 'factory_bot', '~> 6.5'
gem 'timecop'
end
# Development & Test
group :development, :test do
gem 'pry-byebug'
end
# Platform-specific
platforms :ruby do
gem 'sqlite3', '~> 2.1'
end
```
## Response Format
When performing bundle operations:
**Action Taken:**
- Command executed
- Result summary
**Changes:**
- New gems added
- Gems updated (old → new version)
- Gems removed
**Next Steps:**
- Suggested actions
- Related configuration needed
- Documentation references
## Configuration
Users can customize behavior in `.claude/settings.json`:
```json
{
"plugins": {
"rubyist": {
"bundler": {
"autoInstall": true,
"suggestGems": true,
"securityAudit": true,
"versionStrategy": "pessimistic"
}
}
}
}
```
## Error Handling
Always wrap bundle commands with error handling:
```bash
if bundle install; then
echo "✓ Successfully installed dependencies"
else
echo "✗ Installation failed"
echo "Trying with bundle update..."
bundle update
fi
```
## Best Practices
1. **Always review Gemfile changes** before committing
2. **Commit Gemfile.lock** to ensure consistent environments
3. **Use bundle audit regularly** for security
4. **Keep gems updated** but test thoroughly
5. **Group gems appropriately** (development, test, production)
6. **Use pessimistic versioning** for stability
7. **Document why** specific versions are pinned
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.