rails_claude_skills 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.github/ISSUE_TEMPLATE/bug_report.yml +134 -0
- data/.github/ISSUE_TEMPLATE/config.yml +11 -0
- data/.github/ISSUE_TEMPLATE/feature_request.yml +129 -0
- data/.github/ISSUE_TEMPLATE/question.yml +90 -0
- data/.github/dependabot.yml +19 -0
- data/.github/workflows/ci.yml +77 -0
- data/.github/workflows/release.yml +66 -0
- data/.rubocop.yml +52 -0
- data/CHANGELOG.md +94 -0
- data/CLAUDE.md +332 -0
- data/CODE_OF_CONDUCT.md +134 -0
- data/CONTRIBUTING.md +580 -0
- data/LICENSE.txt +21 -0
- data/README.md +544 -0
- data/Rakefile +8 -0
- data/lib/generators/claude/agent/agent_generator.rb +71 -0
- data/lib/generators/claude/agent/templates/agent.md.tt +62 -0
- data/lib/generators/claude/command/command_generator.rb +50 -0
- data/lib/generators/claude/command/templates/command.md.tt +28 -0
- data/lib/generators/claude/commands_library/create-pr.md +27 -0
- data/lib/generators/claude/commands_library/dbchange.md +19 -0
- data/lib/generators/claude/commands_library/quality.md +20 -0
- data/lib/generators/claude/commands_library/stimulus.md +19 -0
- data/lib/generators/claude/commands_library/turbo-feature.md +17 -0
- data/lib/generators/claude/install/install_generator.rb +211 -0
- data/lib/generators/claude/install/templates/README.md.tt +59 -0
- data/lib/generators/claude/install/templates/USAGE +28 -0
- data/lib/generators/claude/install/templates/agents/api-dev.md.tt +46 -0
- data/lib/generators/claude/install/templates/agents/fullstack-dev.md.tt +48 -0
- data/lib/generators/claude/install/templates/agents/rails-developer.md.tt +40 -0
- data/lib/generators/claude/install/templates/settings.local.json.tt +13 -0
- data/lib/generators/claude/rule/rule_generator.rb +175 -0
- data/lib/generators/claude/rule/templates/rule.md.tt +7 -0
- data/lib/generators/claude/rules_library/code-style.md +37 -0
- data/lib/generators/claude/rules_library/database.md +47 -0
- data/lib/generators/claude/rules_library/hotwire.md +56 -0
- data/lib/generators/claude/rules_library/security.md +54 -0
- data/lib/generators/claude/rules_library/testing.md +47 -0
- data/lib/generators/claude/skill/skill_generator.rb +196 -0
- data/lib/generators/claude/skill/templates/SKILL.md.tt +27 -0
- data/lib/generators/claude/skills_library/create-task-files/SKILL.md +311 -0
- data/lib/generators/claude/skills_library/create-task-files/templates/bug.md +60 -0
- data/lib/generators/claude/skills_library/create-task-files/templates/epic.md +47 -0
- data/lib/generators/claude/skills_library/create-task-files/templates/issue.md +45 -0
- data/lib/generators/claude/skills_library/create-task-files/templates/user-story.md +57 -0
- data/lib/generators/claude/skills_library/minitest-testing/SKILL.md +398 -0
- data/lib/generators/claude/skills_library/minitest-testing/references/examples.md +889 -0
- data/lib/generators/claude/skills_library/plan-feature/SKILL.md +253 -0
- data/lib/generators/claude/skills_library/rails-api-controllers/SKILL.md +1041 -0
- data/lib/generators/claude/skills_library/rails-api-controllers/references/api-documentation.md +422 -0
- data/lib/generators/claude/skills_library/rails-api-controllers/references/serialization.md +456 -0
- data/lib/generators/claude/skills_library/rails-auth-with-devise/SKILL.md +191 -0
- data/lib/generators/claude/skills_library/rails-auth-with-devise/references/advanced.md +331 -0
- data/lib/generators/claude/skills_library/rails-auth-with-devise/references/api-auth.md +266 -0
- data/lib/generators/claude/skills_library/rails-auth-with-devise/references/omniauth.md +194 -0
- data/lib/generators/claude/skills_library/rails-authorization-cancancan/SKILL.md +603 -0
- data/lib/generators/claude/skills_library/rails-authorization-cancancan/references/api-authorization.md +543 -0
- data/lib/generators/claude/skills_library/rails-authorization-cancancan/references/complex-permissions.md +572 -0
- data/lib/generators/claude/skills_library/rails-authorization-cancancan/references/multi-tenancy.md +373 -0
- data/lib/generators/claude/skills_library/rails-controllers/SKILL.md +514 -0
- data/lib/generators/claude/skills_library/rails-debugging/SKILL.md +260 -0
- data/lib/generators/claude/skills_library/rails-deployment/SKILL.md +437 -0
- data/lib/generators/claude/skills_library/rails-deployment/references/examples.md +901 -0
- data/lib/generators/claude/skills_library/rails-hotwire/SKILL.md +367 -0
- data/lib/generators/claude/skills_library/rails-jobs/MISSION_CONTROL_SETUP.md +639 -0
- data/lib/generators/claude/skills_library/rails-jobs/SKILL.md +704 -0
- data/lib/generators/claude/skills_library/rails-mailers/SKILL.md +549 -0
- data/lib/generators/claude/skills_library/rails-models/SKILL.md +379 -0
- data/lib/generators/claude/skills_library/rails-pagination-kaminari/SKILL.md +622 -0
- data/lib/generators/claude/skills_library/rails-pagination-kaminari/references/api-pagination.md +523 -0
- data/lib/generators/claude/skills_library/rails-pagination-kaminari/references/custom-themes.md +498 -0
- data/lib/generators/claude/skills_library/rails-pagination-kaminari/references/performance.md +478 -0
- data/lib/generators/claude/skills_library/rails-views/SKILL.md +508 -0
- data/lib/generators/claude/skills_library/refine-requirements/SKILL.md +226 -0
- data/lib/generators/claude/skills_library/refine-requirements/references/examples.md +344 -0
- data/lib/generators/claude/skills_library/refine-requirements/references/reference.md +298 -0
- data/lib/generators/claude/skills_library/rspec-testing/SKILL.md +572 -0
- data/lib/generators/claude/skills_library/rspec-testing/references/better_specs_guide.md +273 -0
- data/lib/generators/claude/skills_library/rspec-testing/references/thoughtbot_patterns.md +407 -0
- data/lib/generators/claude/skills_library/tailwindcss/SKILL.md +371 -0
- data/lib/generators/claude/views/views_generator.rb +113 -0
- data/lib/rails_claude_skills/railtie.rb +16 -0
- data/lib/rails_claude_skills/version.rb +5 -0
- data/lib/rails_claude_skills.rb +27 -0
- data/sig/rails_claude_skills.rbs +4 -0
- metadata +199 -0
data/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,580 @@
|
|
|
1
|
+
# Contributing to Rails Claude Skills
|
|
2
|
+
|
|
3
|
+
First off, thank you for considering contributing to Rails Claude Skills! It's people like you that make this gem better for the entire Rails community.
|
|
4
|
+
|
|
5
|
+
## Quick Links
|
|
6
|
+
|
|
7
|
+
- 🐛 [Report a Bug](https://github.com/Shoebtamboli/rails_claude_skills/issues/new?template=bug_report.yml)
|
|
8
|
+
- ✨ [Request a Feature](https://github.com/Shoebtamboli/rails_claude_skills/issues/new?template=feature_request.yml)
|
|
9
|
+
- ❓ [Ask a Question](https://github.com/Shoebtamboli/rails_claude_skills/issues/new?template=question.yml)
|
|
10
|
+
- 💬 [Join Discussions](https://github.com/Shoebtamboli/rails_claude_skills/discussions)
|
|
11
|
+
- 📖 [Read the Docs](https://github.com/Shoebtamboli/rails_claude_skills/blob/main/README.md)
|
|
12
|
+
|
|
13
|
+
## Table of Contents
|
|
14
|
+
|
|
15
|
+
- [Code of Conduct](#code-of-conduct)
|
|
16
|
+
- [How Can I Contribute?](#how-can-i-contribute)
|
|
17
|
+
- [Reporting Bugs](#-reporting-bugs)
|
|
18
|
+
- [Suggesting Features](#-suggesting-features)
|
|
19
|
+
- [Asking Questions](#-asking-questions)
|
|
20
|
+
- [Contributing Content](#contributing-content)
|
|
21
|
+
- [Development Setup](#development-setup)
|
|
22
|
+
- [Project Structure](#project-structure)
|
|
23
|
+
- [Adding New Content](#adding-new-content)
|
|
24
|
+
- [Adding a New Skill](#adding-a-new-skill)
|
|
25
|
+
- [Adding a New Command](#adding-a-new-command)
|
|
26
|
+
- [Adding a New Rule](#adding-a-new-rule)
|
|
27
|
+
- [Testing Your Changes](#testing-your-changes)
|
|
28
|
+
- [Submitting Changes](#submitting-changes)
|
|
29
|
+
- [Style Guidelines](#style-guidelines)
|
|
30
|
+
- [Questions?](#questions)
|
|
31
|
+
|
|
32
|
+
## Code of Conduct
|
|
33
|
+
|
|
34
|
+
This project and everyone participating in it is governed by our [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior by [opening a confidential issue](https://github.com/Shoebtamboli/rails_claude_skills/issues/new?template=question.yml) or contacting the maintainers directly.
|
|
35
|
+
|
|
36
|
+
Key expectations:
|
|
37
|
+
- Be respectful and inclusive
|
|
38
|
+
- Welcome newcomers and help them learn
|
|
39
|
+
- Give and accept constructive feedback gracefully
|
|
40
|
+
- Focus on what's best for the community
|
|
41
|
+
- Show empathy and kindness
|
|
42
|
+
|
|
43
|
+
Please read the full [Code of Conduct](CODE_OF_CONDUCT.md) for detailed guidelines.
|
|
44
|
+
|
|
45
|
+
## How Can I Contribute?
|
|
46
|
+
|
|
47
|
+
There are many ways to contribute to Rails Claude Skills:
|
|
48
|
+
|
|
49
|
+
### 🐛 Reporting Bugs
|
|
50
|
+
|
|
51
|
+
Found a bug? Help us fix it!
|
|
52
|
+
|
|
53
|
+
**[Create a Bug Report →](https://github.com/Shoebtamboli/rails_claude_skills/issues/new?template=bug_report.yml)**
|
|
54
|
+
|
|
55
|
+
Our bug report template will guide you through providing all the necessary information:
|
|
56
|
+
- Steps to reproduce the issue
|
|
57
|
+
- Expected vs actual behavior
|
|
58
|
+
- Environment details (Ruby, Rails, gem versions)
|
|
59
|
+
- Relevant code snippets or error messages
|
|
60
|
+
|
|
61
|
+
Before submitting, please search existing issues to avoid duplicates.
|
|
62
|
+
|
|
63
|
+
### ✨ Suggesting Features
|
|
64
|
+
|
|
65
|
+
Have an idea for a new feature or enhancement?
|
|
66
|
+
|
|
67
|
+
**[Request a Feature →](https://github.com/Shoebtamboli/rails_claude_skills/issues/new?template=feature_request.yml)**
|
|
68
|
+
|
|
69
|
+
The feature request template helps you describe:
|
|
70
|
+
- The problem you're trying to solve
|
|
71
|
+
- Your proposed solution
|
|
72
|
+
- Use cases and benefits
|
|
73
|
+
- Examples from other tools
|
|
74
|
+
|
|
75
|
+
We especially welcome suggestions for:
|
|
76
|
+
- New skills for popular gems or Rails patterns
|
|
77
|
+
- New commands for common workflows
|
|
78
|
+
- New rules for best practices
|
|
79
|
+
- Improvements to existing generators
|
|
80
|
+
|
|
81
|
+
### ❓ Asking Questions
|
|
82
|
+
|
|
83
|
+
Need help or want to discuss something?
|
|
84
|
+
|
|
85
|
+
**[Ask a Question →](https://github.com/Shoebtamboli/rails_claude_skills/issues/new?template=question.yml)**
|
|
86
|
+
|
|
87
|
+
Or join the conversation in [GitHub Discussions](https://github.com/Shoebtamboli/rails_claude_skills/discussions)!
|
|
88
|
+
|
|
89
|
+
### Contributing Content
|
|
90
|
+
|
|
91
|
+
The easiest way to contribute! We welcome:
|
|
92
|
+
|
|
93
|
+
1. **New Skills** - Rails patterns, gems, best practices
|
|
94
|
+
2. **New Commands** - Useful slash commands for common workflows
|
|
95
|
+
3. **New Rules** - Project guidelines and conventions
|
|
96
|
+
4. **Improved Documentation** - Clearer examples, better explanations
|
|
97
|
+
5. **Bug Fixes** - Fixing issues in existing generators
|
|
98
|
+
|
|
99
|
+
## Development Setup
|
|
100
|
+
|
|
101
|
+
### 1. Fork and Clone
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Fork the repository on GitHub, then:
|
|
105
|
+
git clone https://github.com/YOUR-USERNAME/rails_claude_skills.git
|
|
106
|
+
cd rails_claude_skills
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### 2. Install Dependencies
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
bundle install
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 3. Run Tests
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
bundle exec rspec
|
|
119
|
+
bundle exec rubocop
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### 4. Create a Branch
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
git checkout -b feature/my-new-skill
|
|
126
|
+
# or
|
|
127
|
+
git checkout -b fix/generator-bug
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Project Structure
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
rails_claude_skills/
|
|
134
|
+
├── lib/
|
|
135
|
+
│ ├── generators/claude/
|
|
136
|
+
│ │ ├── install/ # Install generator
|
|
137
|
+
│ │ ├── skill/ # Skill generator
|
|
138
|
+
│ │ ├── agent/ # Agent generator
|
|
139
|
+
│ │ ├── command/ # Command generator
|
|
140
|
+
│ │ ├── rule/ # Rule generator
|
|
141
|
+
│ │ ├── views/ # Views generator
|
|
142
|
+
│ │ ├── skills_library/ # Pre-built skills
|
|
143
|
+
│ │ ├── commands_library/ # Pre-built commands
|
|
144
|
+
│ │ └── rules_library/ # Pre-built rules
|
|
145
|
+
│ └── rails_claude_skills/
|
|
146
|
+
│ ├── version.rb
|
|
147
|
+
│ └── railtie.rb
|
|
148
|
+
├── spec/ # Tests
|
|
149
|
+
├── CHANGELOG.md
|
|
150
|
+
├── CLAUDE.md # Internal documentation
|
|
151
|
+
└── README.md
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Adding New Content
|
|
155
|
+
|
|
156
|
+
### Adding a New Skill
|
|
157
|
+
|
|
158
|
+
Skills are the most common contribution. Here's how:
|
|
159
|
+
|
|
160
|
+
**1. Create the skill directory:**
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
mkdir -p lib/generators/claude/skills_library/my-new-skill
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**2. Create SKILL.md with frontmatter:**
|
|
167
|
+
|
|
168
|
+
```markdown
|
|
169
|
+
---
|
|
170
|
+
name: my-new-skill
|
|
171
|
+
description: Brief description of what this skill covers
|
|
172
|
+
version: 1.0.0
|
|
173
|
+
tags:
|
|
174
|
+
- relevant
|
|
175
|
+
- tags
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
# My New Skill
|
|
179
|
+
|
|
180
|
+
## Quick Reference
|
|
181
|
+
|
|
182
|
+
| Pattern | Example |
|
|
183
|
+
|---------|---------|
|
|
184
|
+
| Key pattern | `code example` |
|
|
185
|
+
|
|
186
|
+
## Overview
|
|
187
|
+
|
|
188
|
+
Explain what this skill covers and when to use it.
|
|
189
|
+
|
|
190
|
+
## Common Patterns
|
|
191
|
+
|
|
192
|
+
### Pattern Name
|
|
193
|
+
|
|
194
|
+
```ruby
|
|
195
|
+
# Code example
|
|
196
|
+
class Example
|
|
197
|
+
# ...
|
|
198
|
+
end
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Best Practices
|
|
202
|
+
|
|
203
|
+
- Guideline 1
|
|
204
|
+
- Guideline 2
|
|
205
|
+
|
|
206
|
+
## Common Pitfalls
|
|
207
|
+
|
|
208
|
+
- What to avoid
|
|
209
|
+
- Why it matters
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**3. (Optional) Add reference files:**
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
mkdir lib/generators/claude/skills_library/my-new-skill/references
|
|
216
|
+
# Add example files, templates, etc.
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
**4. Test it:**
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
# In a test Rails app
|
|
223
|
+
rails g claude:views my-new-skill
|
|
224
|
+
cat .claude/skills/my-new-skill/SKILL.md
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
**5. Add to a preset (if appropriate):**
|
|
228
|
+
|
|
229
|
+
Edit `lib/generators/claude/install/install_generator.rb`:
|
|
230
|
+
|
|
231
|
+
```ruby
|
|
232
|
+
def install_fullstack_preset
|
|
233
|
+
# ... existing skills ...
|
|
234
|
+
install_skill("my-new-skill") # Add here
|
|
235
|
+
end
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Adding a New Command
|
|
239
|
+
|
|
240
|
+
**1. Create the command file:**
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
touch lib/generators/claude/commands_library/my-command.md
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**2. Add content with frontmatter:**
|
|
247
|
+
|
|
248
|
+
```markdown
|
|
249
|
+
---
|
|
250
|
+
description: What this command does
|
|
251
|
+
argument-hint: [optional_args]
|
|
252
|
+
allowed-tools: Bash, Read, Edit, Write
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## My Command
|
|
256
|
+
|
|
257
|
+
Detailed instructions for Claude on what this command should do.
|
|
258
|
+
|
|
259
|
+
### Usage
|
|
260
|
+
|
|
261
|
+
```
|
|
262
|
+
/my-command [arguments]
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Arguments
|
|
266
|
+
|
|
267
|
+
- `$ARGUMENTS` - All arguments as a string
|
|
268
|
+
- `$1` - First argument
|
|
269
|
+
- `$2` - Second argument
|
|
270
|
+
|
|
271
|
+
### Example
|
|
272
|
+
|
|
273
|
+
When user runs `/my-command production`:
|
|
274
|
+
1. First step
|
|
275
|
+
2. Second step
|
|
276
|
+
3. Final step
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
**3. Test it:**
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
rails g claude:views my-command --type=command
|
|
283
|
+
cat .claude/commands/my-command.md
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Adding a New Rule
|
|
287
|
+
|
|
288
|
+
**1. Create the rule file:**
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
touch lib/generators/claude/rules_library/my-rule.md
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
**2. Add content (frontmatter optional):**
|
|
295
|
+
|
|
296
|
+
```markdown
|
|
297
|
+
---
|
|
298
|
+
paths: app/specific/**/*
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
# My Rule
|
|
302
|
+
|
|
303
|
+
## Purpose
|
|
304
|
+
|
|
305
|
+
Explain what these rules enforce and why.
|
|
306
|
+
|
|
307
|
+
## Guidelines
|
|
308
|
+
|
|
309
|
+
- Specific guideline 1
|
|
310
|
+
- Specific guideline 2
|
|
311
|
+
- Specific guideline 3
|
|
312
|
+
|
|
313
|
+
## Examples
|
|
314
|
+
|
|
315
|
+
### Good
|
|
316
|
+
```ruby
|
|
317
|
+
# Example of following the rule
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
### Bad
|
|
321
|
+
```ruby
|
|
322
|
+
# Example of violating the rule
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
## Rationale
|
|
326
|
+
|
|
327
|
+
Why these rules matter for the project.
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
**3. Test it:**
|
|
331
|
+
|
|
332
|
+
```bash
|
|
333
|
+
rails g claude:views my-rule --type=rule
|
|
334
|
+
cat .claude/rules/my-rule.md
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
## Testing Your Changes
|
|
338
|
+
|
|
339
|
+
### Running Tests
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
# Run all tests
|
|
343
|
+
bundle exec rspec
|
|
344
|
+
|
|
345
|
+
# Run specific test
|
|
346
|
+
bundle exec rspec spec/rails_claude_skills_spec.rb
|
|
347
|
+
|
|
348
|
+
# Run linter
|
|
349
|
+
bundle exec rubocop
|
|
350
|
+
|
|
351
|
+
# Auto-fix style issues
|
|
352
|
+
bundle exec rubocop -a
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### Manual Testing
|
|
356
|
+
|
|
357
|
+
**Test in a real Rails app:**
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
# Create test Rails app
|
|
361
|
+
rails new test-app
|
|
362
|
+
cd test-app
|
|
363
|
+
|
|
364
|
+
# Add your local gem to Gemfile
|
|
365
|
+
echo "gem 'rails_claude_skills', path: '/path/to/your/rails_claude_skills'" >> Gemfile
|
|
366
|
+
bundle install
|
|
367
|
+
|
|
368
|
+
# Test generators
|
|
369
|
+
rails g claude:install --preset=fullstack
|
|
370
|
+
rails g claude:skill test-skill
|
|
371
|
+
rails g claude:views my-new-skill
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
### What to Test
|
|
375
|
+
|
|
376
|
+
- ✅ Generator creates expected files
|
|
377
|
+
- ✅ Files have correct content
|
|
378
|
+
- ✅ Frontmatter is valid YAML
|
|
379
|
+
- ✅ No typos or formatting issues
|
|
380
|
+
- ✅ Examples actually work
|
|
381
|
+
- ✅ Follows existing patterns
|
|
382
|
+
|
|
383
|
+
## Submitting Changes
|
|
384
|
+
|
|
385
|
+
### 1. Update CHANGELOG.md
|
|
386
|
+
|
|
387
|
+
Add your changes to the `[Unreleased]` section of CHANGELOG.md:
|
|
388
|
+
|
|
389
|
+
```markdown
|
|
390
|
+
## [Unreleased]
|
|
391
|
+
|
|
392
|
+
### Added
|
|
393
|
+
- New skill: rails-action-mailer
|
|
394
|
+
|
|
395
|
+
### Fixed
|
|
396
|
+
- Install generator typo in basic preset
|
|
397
|
+
|
|
398
|
+
### Changed
|
|
399
|
+
- Simplified skill generator templates
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
Use these categories:
|
|
403
|
+
- **Added** - New features, skills, commands, rules
|
|
404
|
+
- **Changed** - Changes to existing functionality
|
|
405
|
+
- **Deprecated** - Soon-to-be removed features
|
|
406
|
+
- **Removed** - Removed features
|
|
407
|
+
- **Fixed** - Bug fixes
|
|
408
|
+
- **Security** - Security improvements
|
|
409
|
+
|
|
410
|
+
### 2. Commit Your Changes
|
|
411
|
+
|
|
412
|
+
```bash
|
|
413
|
+
# Stage your changes
|
|
414
|
+
git add .
|
|
415
|
+
|
|
416
|
+
# Commit with a clear message
|
|
417
|
+
git commit -m "Add skill for ActionMailer patterns"
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
**Good commit messages:**
|
|
421
|
+
- `Add skill: rails-action-mailer`
|
|
422
|
+
- `Fix: Install generator typo in basic preset`
|
|
423
|
+
- `Docs: Improve README installation section`
|
|
424
|
+
- `Refactor: Simplify skill generator templates`
|
|
425
|
+
|
|
426
|
+
### 3. Push to Your Fork
|
|
427
|
+
|
|
428
|
+
```bash
|
|
429
|
+
git push origin feature/my-new-skill
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
### 4. Create Pull Request
|
|
433
|
+
|
|
434
|
+
- Go to the original repository on GitHub
|
|
435
|
+
- Click "Pull Request"
|
|
436
|
+
- Select your branch
|
|
437
|
+
- Fill in the PR template:
|
|
438
|
+
|
|
439
|
+
```markdown
|
|
440
|
+
## Description
|
|
441
|
+
Brief description of what this PR does
|
|
442
|
+
|
|
443
|
+
## Type of Change
|
|
444
|
+
- [ ] New skill/command/rule
|
|
445
|
+
- [ ] Bug fix
|
|
446
|
+
- [ ] Enhancement to existing content
|
|
447
|
+
- [ ] Documentation improvement
|
|
448
|
+
|
|
449
|
+
## Checklist
|
|
450
|
+
- [ ] I've tested this locally in a Rails app
|
|
451
|
+
- [ ] RuboCop passes (`bundle exec rubocop`)
|
|
452
|
+
- [ ] Tests pass (`bundle exec rspec`)
|
|
453
|
+
- [ ] I've updated CHANGELOG.md (if needed)
|
|
454
|
+
- [ ] Documentation is clear and accurate
|
|
455
|
+
|
|
456
|
+
## Screenshots (if applicable)
|
|
457
|
+
Show the generated files or output
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
### 5. Respond to Feedback
|
|
461
|
+
|
|
462
|
+
- Be open to suggestions
|
|
463
|
+
- Make requested changes promptly
|
|
464
|
+
- Ask questions if anything is unclear
|
|
465
|
+
- Be patient - reviews take time
|
|
466
|
+
|
|
467
|
+
## Style Guidelines
|
|
468
|
+
|
|
469
|
+
### Ruby Code
|
|
470
|
+
|
|
471
|
+
Follow the existing `.rubocop.yml` configuration:
|
|
472
|
+
|
|
473
|
+
- Use double quotes for strings
|
|
474
|
+
- 2-space indentation
|
|
475
|
+
- Max line length: 150 characters
|
|
476
|
+
- Descriptive variable names
|
|
477
|
+
|
|
478
|
+
### Markdown (Skills, Commands, Rules)
|
|
479
|
+
|
|
480
|
+
```markdown
|
|
481
|
+
# Clear headings hierarchy
|
|
482
|
+
## Use sentence case
|
|
483
|
+
### Not Title Case
|
|
484
|
+
|
|
485
|
+
- Lists with proper grammar
|
|
486
|
+
- One idea per bullet point
|
|
487
|
+
- End with periods if complete sentences
|
|
488
|
+
|
|
489
|
+
Code blocks with language specified:
|
|
490
|
+
```ruby
|
|
491
|
+
# Always specify the language
|
|
492
|
+
class Example
|
|
493
|
+
end
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
### YAML Frontmatter
|
|
497
|
+
|
|
498
|
+
```yaml
|
|
499
|
+
---
|
|
500
|
+
# Use lowercase-with-dashes for names
|
|
501
|
+
name: my-skill-name
|
|
502
|
+
|
|
503
|
+
# Clear, concise descriptions
|
|
504
|
+
description: Brief description under 80 chars
|
|
505
|
+
|
|
506
|
+
# Semantic versioning
|
|
507
|
+
version: 1.0.0
|
|
508
|
+
|
|
509
|
+
# Relevant, searchable tags
|
|
510
|
+
tags:
|
|
511
|
+
- activerecord
|
|
512
|
+
- database
|
|
513
|
+
---
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
### File Naming
|
|
517
|
+
|
|
518
|
+
- Skills: `lib/generators/claude/skills_library/skill-name/`
|
|
519
|
+
- Commands: `lib/generators/claude/commands_library/command-name.md`
|
|
520
|
+
- Rules: `lib/generators/claude/rules_library/rule-name.md`
|
|
521
|
+
- Use kebab-case (dashes, not underscores)
|
|
522
|
+
|
|
523
|
+
## Content Guidelines
|
|
524
|
+
|
|
525
|
+
### Quality Standards
|
|
526
|
+
|
|
527
|
+
**Skills should:**
|
|
528
|
+
- ✅ Focus on one topic/gem/pattern
|
|
529
|
+
- ✅ Include Quick Reference table
|
|
530
|
+
- ✅ Provide working code examples
|
|
531
|
+
- ✅ Explain the "why" not just "what"
|
|
532
|
+
- ✅ Cover common pitfalls
|
|
533
|
+
- ✅ Be maintained (update with Rails versions)
|
|
534
|
+
|
|
535
|
+
**Commands should:**
|
|
536
|
+
- ✅ Solve a specific workflow problem
|
|
537
|
+
- ✅ Have clear argument handling
|
|
538
|
+
- ✅ Include usage examples
|
|
539
|
+
- ✅ Specify allowed tools
|
|
540
|
+
|
|
541
|
+
**Rules should:**
|
|
542
|
+
- ✅ Be specific and actionable
|
|
543
|
+
- ✅ Include examples (good vs bad)
|
|
544
|
+
- ✅ Explain the rationale
|
|
545
|
+
- ✅ Be scoped to relevant paths (if applicable)
|
|
546
|
+
|
|
547
|
+
### What We're Looking For
|
|
548
|
+
|
|
549
|
+
**Great contributions:**
|
|
550
|
+
- 🎯 Solve real problems developers face
|
|
551
|
+
- 📚 Well-documented with examples
|
|
552
|
+
- 🧪 Tested in actual Rails apps
|
|
553
|
+
- 🎨 Follow existing patterns
|
|
554
|
+
- 💡 Include rationale/reasoning
|
|
555
|
+
|
|
556
|
+
**Avoid:**
|
|
557
|
+
- ❌ Overly opinionated content
|
|
558
|
+
- ❌ Copy-pasted from docs without context
|
|
559
|
+
- ❌ Outdated or deprecated patterns
|
|
560
|
+
- ❌ Overly complex examples
|
|
561
|
+
- ❌ Duplicate content
|
|
562
|
+
|
|
563
|
+
## Questions?
|
|
564
|
+
|
|
565
|
+
- 💬 Open a discussion on GitHub
|
|
566
|
+
- 🐛 Create an issue for bugs
|
|
567
|
+
- 📧 Reach out to maintainers
|
|
568
|
+
- 📖 Check existing skills for examples
|
|
569
|
+
|
|
570
|
+
## Recognition
|
|
571
|
+
|
|
572
|
+
Contributors will be:
|
|
573
|
+
- Listed in CHANGELOG.md
|
|
574
|
+
- Credited in release notes
|
|
575
|
+
- Added to README contributors section
|
|
576
|
+
- Appreciated in the Rails community! 🎉
|
|
577
|
+
|
|
578
|
+
---
|
|
579
|
+
|
|
580
|
+
Thank you for contributing to Rails Claude Skills! 🚀
|
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Shoeb Tamboli
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|