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.
Files changed (87) hide show
  1. checksums.yaml +7 -0
  2. data/.github/ISSUE_TEMPLATE/bug_report.yml +134 -0
  3. data/.github/ISSUE_TEMPLATE/config.yml +11 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.yml +129 -0
  5. data/.github/ISSUE_TEMPLATE/question.yml +90 -0
  6. data/.github/dependabot.yml +19 -0
  7. data/.github/workflows/ci.yml +77 -0
  8. data/.github/workflows/release.yml +66 -0
  9. data/.rubocop.yml +52 -0
  10. data/CHANGELOG.md +94 -0
  11. data/CLAUDE.md +332 -0
  12. data/CODE_OF_CONDUCT.md +134 -0
  13. data/CONTRIBUTING.md +580 -0
  14. data/LICENSE.txt +21 -0
  15. data/README.md +544 -0
  16. data/Rakefile +8 -0
  17. data/lib/generators/claude/agent/agent_generator.rb +71 -0
  18. data/lib/generators/claude/agent/templates/agent.md.tt +62 -0
  19. data/lib/generators/claude/command/command_generator.rb +50 -0
  20. data/lib/generators/claude/command/templates/command.md.tt +28 -0
  21. data/lib/generators/claude/commands_library/create-pr.md +27 -0
  22. data/lib/generators/claude/commands_library/dbchange.md +19 -0
  23. data/lib/generators/claude/commands_library/quality.md +20 -0
  24. data/lib/generators/claude/commands_library/stimulus.md +19 -0
  25. data/lib/generators/claude/commands_library/turbo-feature.md +17 -0
  26. data/lib/generators/claude/install/install_generator.rb +211 -0
  27. data/lib/generators/claude/install/templates/README.md.tt +59 -0
  28. data/lib/generators/claude/install/templates/USAGE +28 -0
  29. data/lib/generators/claude/install/templates/agents/api-dev.md.tt +46 -0
  30. data/lib/generators/claude/install/templates/agents/fullstack-dev.md.tt +48 -0
  31. data/lib/generators/claude/install/templates/agents/rails-developer.md.tt +40 -0
  32. data/lib/generators/claude/install/templates/settings.local.json.tt +13 -0
  33. data/lib/generators/claude/rule/rule_generator.rb +175 -0
  34. data/lib/generators/claude/rule/templates/rule.md.tt +7 -0
  35. data/lib/generators/claude/rules_library/code-style.md +37 -0
  36. data/lib/generators/claude/rules_library/database.md +47 -0
  37. data/lib/generators/claude/rules_library/hotwire.md +56 -0
  38. data/lib/generators/claude/rules_library/security.md +54 -0
  39. data/lib/generators/claude/rules_library/testing.md +47 -0
  40. data/lib/generators/claude/skill/skill_generator.rb +196 -0
  41. data/lib/generators/claude/skill/templates/SKILL.md.tt +27 -0
  42. data/lib/generators/claude/skills_library/create-task-files/SKILL.md +311 -0
  43. data/lib/generators/claude/skills_library/create-task-files/templates/bug.md +60 -0
  44. data/lib/generators/claude/skills_library/create-task-files/templates/epic.md +47 -0
  45. data/lib/generators/claude/skills_library/create-task-files/templates/issue.md +45 -0
  46. data/lib/generators/claude/skills_library/create-task-files/templates/user-story.md +57 -0
  47. data/lib/generators/claude/skills_library/minitest-testing/SKILL.md +398 -0
  48. data/lib/generators/claude/skills_library/minitest-testing/references/examples.md +889 -0
  49. data/lib/generators/claude/skills_library/plan-feature/SKILL.md +253 -0
  50. data/lib/generators/claude/skills_library/rails-api-controllers/SKILL.md +1041 -0
  51. data/lib/generators/claude/skills_library/rails-api-controllers/references/api-documentation.md +422 -0
  52. data/lib/generators/claude/skills_library/rails-api-controllers/references/serialization.md +456 -0
  53. data/lib/generators/claude/skills_library/rails-auth-with-devise/SKILL.md +191 -0
  54. data/lib/generators/claude/skills_library/rails-auth-with-devise/references/advanced.md +331 -0
  55. data/lib/generators/claude/skills_library/rails-auth-with-devise/references/api-auth.md +266 -0
  56. data/lib/generators/claude/skills_library/rails-auth-with-devise/references/omniauth.md +194 -0
  57. data/lib/generators/claude/skills_library/rails-authorization-cancancan/SKILL.md +603 -0
  58. data/lib/generators/claude/skills_library/rails-authorization-cancancan/references/api-authorization.md +543 -0
  59. data/lib/generators/claude/skills_library/rails-authorization-cancancan/references/complex-permissions.md +572 -0
  60. data/lib/generators/claude/skills_library/rails-authorization-cancancan/references/multi-tenancy.md +373 -0
  61. data/lib/generators/claude/skills_library/rails-controllers/SKILL.md +514 -0
  62. data/lib/generators/claude/skills_library/rails-debugging/SKILL.md +260 -0
  63. data/lib/generators/claude/skills_library/rails-deployment/SKILL.md +437 -0
  64. data/lib/generators/claude/skills_library/rails-deployment/references/examples.md +901 -0
  65. data/lib/generators/claude/skills_library/rails-hotwire/SKILL.md +367 -0
  66. data/lib/generators/claude/skills_library/rails-jobs/MISSION_CONTROL_SETUP.md +639 -0
  67. data/lib/generators/claude/skills_library/rails-jobs/SKILL.md +704 -0
  68. data/lib/generators/claude/skills_library/rails-mailers/SKILL.md +549 -0
  69. data/lib/generators/claude/skills_library/rails-models/SKILL.md +379 -0
  70. data/lib/generators/claude/skills_library/rails-pagination-kaminari/SKILL.md +622 -0
  71. data/lib/generators/claude/skills_library/rails-pagination-kaminari/references/api-pagination.md +523 -0
  72. data/lib/generators/claude/skills_library/rails-pagination-kaminari/references/custom-themes.md +498 -0
  73. data/lib/generators/claude/skills_library/rails-pagination-kaminari/references/performance.md +478 -0
  74. data/lib/generators/claude/skills_library/rails-views/SKILL.md +508 -0
  75. data/lib/generators/claude/skills_library/refine-requirements/SKILL.md +226 -0
  76. data/lib/generators/claude/skills_library/refine-requirements/references/examples.md +344 -0
  77. data/lib/generators/claude/skills_library/refine-requirements/references/reference.md +298 -0
  78. data/lib/generators/claude/skills_library/rspec-testing/SKILL.md +572 -0
  79. data/lib/generators/claude/skills_library/rspec-testing/references/better_specs_guide.md +273 -0
  80. data/lib/generators/claude/skills_library/rspec-testing/references/thoughtbot_patterns.md +407 -0
  81. data/lib/generators/claude/skills_library/tailwindcss/SKILL.md +371 -0
  82. data/lib/generators/claude/views/views_generator.rb +113 -0
  83. data/lib/rails_claude_skills/railtie.rb +16 -0
  84. data/lib/rails_claude_skills/version.rb +5 -0
  85. data/lib/rails_claude_skills.rb +27 -0
  86. data/sig/rails_claude_skills.rbs +4 -0
  87. metadata +199 -0
@@ -0,0 +1,298 @@
1
+ # Requirement Refinement Question Templates
2
+
3
+ This reference provides targeted question templates for different feature types in Rails applications. Use these as a guide when refining requirements.
4
+
5
+ ## Authentication & Authorization Features
6
+
7
+ ### User Registration/Login
8
+
9
+ **Data & Security:**
10
+ - What fields are required for registration? (email only, or email + username + phone?)
11
+ - Password requirements? (minimum length, complexity, expiration?)
12
+ - Email verification required before account activation?
13
+ - Social auth providers? (Google, GitHub, Facebook?)
14
+ - Should we use Devise or custom implementation?
15
+
16
+ **Session Management:**
17
+ - Session duration? (default, remember me option?)
18
+ - Single session per user or allow multiple devices?
19
+ - What happens to active sessions when password is reset?
20
+ - Rate limiting for login attempts?
21
+
22
+ **Password Recovery:**
23
+ - Password reset via email only or also SMS/phone?
24
+ - Reset token expiration time?
25
+ - Require old password for password changes?
26
+ - Password history tracking (prevent reuse)?
27
+
28
+ **User Roles:**
29
+ - What roles exist? (admin, moderator, user?)
30
+ - Role assignment: manual by admin or automatic based on criteria?
31
+ - Can users have multiple roles?
32
+ - Role-based UI differences?
33
+
34
+ ### Multi-Factor Authentication (MFA)
35
+
36
+ - MFA required for all users or optional?
37
+ - MFA methods: TOTP (app-based), SMS, email, backup codes?
38
+ - When is MFA prompted? (every login, new device, sensitive actions?)
39
+ - Backup recovery method if MFA device lost?
40
+ - Admin override capability for MFA?
41
+
42
+ ## CRUD Features (Posts, Comments, Products, etc.)
43
+
44
+ ### Data Model
45
+
46
+ **Core Fields:**
47
+ - Required vs optional fields?
48
+ - Field types and validations? (length limits, format requirements)
49
+ - Default values for any fields?
50
+ - Computed/derived fields needed?
51
+
52
+ **Associations:**
53
+ - Belongs to User? Which user field (author, creator, owner)?
54
+ - Polymorphic associations needed? (commentable, likeable)
55
+ - Has many children? (nested comments, variants)
56
+ - Join tables for many-to-many relationships?
57
+
58
+ **Lifecycle:**
59
+ - Draft vs published states?
60
+ - Soft delete or hard delete?
61
+ - Archive/deactivate functionality?
62
+ - Versioning or edit history needed?
63
+
64
+ ### Permissions & Access Control
65
+
66
+ - Who can create? (all users, specific roles, anyone including guests?)
67
+ - Who can view? (public, owner only, role-based?)
68
+ - Who can edit? (owner only, admins, time-limited?)
69
+ - Who can delete? (owner only, admins, never?)
70
+ - Transfer ownership allowed?
71
+
72
+ ### UI & User Experience
73
+
74
+ **Creation/Editing:**
75
+ - Inline editing or separate edit page?
76
+ - Auto-save drafts?
77
+ - Preview before publishing?
78
+ - Rich text editor or plain text?
79
+ - File/image uploads allowed? (size limits, file types)
80
+
81
+ **Listing/Browsing:**
82
+ - Default sort order? (newest first, popularity, alphabetical)
83
+ - Pagination or infinite scroll?
84
+ - Filters available? (by status, author, date range, tags)
85
+ - Search functionality? (simple text or advanced with filters)
86
+ - Bulk actions? (bulk delete, bulk status change)
87
+
88
+ **Real-time Updates:**
89
+ - Live updates when data changes? (Turbo Streams, WebSockets)
90
+ - Optimistic UI updates?
91
+ - Conflict resolution for concurrent edits?
92
+
93
+ ### Validations & Business Rules
94
+
95
+ - Unique constraints? (title uniqueness, email uniqueness)
96
+ - Cross-field validations? (end date after start date)
97
+ - Custom validation rules?
98
+ - What happens when validation fails? (inline errors, flash messages)
99
+
100
+ ## Dashboard & Admin Features
101
+
102
+ ### Data Display
103
+
104
+ **Metrics:**
105
+ - Which metrics to display? (counts, sums, averages, trends)
106
+ - Time ranges? (today, week, month, year, custom)
107
+ - Comparison to previous period?
108
+ - Real-time or cached data?
109
+
110
+ **Visualizations:**
111
+ - Chart types needed? (line, bar, pie, table)
112
+ - Interactive charts or static?
113
+ - Export charts as images?
114
+
115
+ ### Filtering & Search
116
+
117
+ - Available filters? (date range, status, user, category)
118
+ - Filter persistence (save in session, URL params)?
119
+ - Saved filter presets?
120
+ - Advanced search with multiple criteria?
121
+
122
+ ### Data Export
123
+
124
+ - Export formats? (CSV, Excel, PDF, JSON)
125
+ - Full dataset or filtered results?
126
+ - Background job for large exports?
127
+ - Email export file or download immediately?
128
+
129
+ ### Access Control
130
+
131
+ - Who can access dashboard? (admins only, specific roles)
132
+ - Row-level permissions? (see only own data vs all data)
133
+ - Action permissions? (view only, can export, can modify settings)
134
+
135
+ ## API Endpoints
136
+
137
+ ### Authentication & Authorization
138
+
139
+ - API authentication method? (JWT, API keys, session-based)
140
+ - Token expiration and refresh?
141
+ - Rate limiting per user/IP?
142
+ - API versioning strategy? (/v1/, accept header, subdomain)
143
+
144
+ ### Request/Response Format
145
+
146
+ - JSON only or also support XML?
147
+ - Pagination style? (offset/limit, cursor-based, page numbers)
148
+ - Include metadata? (total count, next/prev links)
149
+ - Field filtering? (sparse fieldsets, select specific fields)
150
+ - Include nested associations? (include=comments, sideloading)
151
+
152
+ ### Error Handling
153
+
154
+ - Error response format? (RFC 7807, custom format)
155
+ - Validation error details?
156
+ - HTTP status codes strategy?
157
+ - Error codes for client handling?
158
+
159
+ ### Documentation
160
+
161
+ - API documentation needed? (OpenAPI/Swagger, manual)
162
+ - Interactive API explorer?
163
+ - Code examples in multiple languages?
164
+
165
+ ## Background Jobs & Scheduled Tasks
166
+
167
+ ### Triggering
168
+
169
+ - What triggers the job? (user action, schedule, event)
170
+ - Immediate or delayed execution?
171
+ - Scheduled frequency? (hourly, daily, cron expression)
172
+ - Job arguments and configuration?
173
+
174
+ ### Execution
175
+
176
+ - Idempotent (safe to retry)?
177
+ - Job timeout duration?
178
+ - Retry strategy? (how many times, backoff)
179
+ - Job priority levels?
180
+
181
+ ### Monitoring & Error Handling
182
+
183
+ - How to monitor job status?
184
+ - Notifications on failure? (email, Slack, logging)
185
+ - Dead letter queue for failed jobs?
186
+ - Dashboard for job history?
187
+
188
+ ## Email & Notifications
189
+
190
+ ### Delivery
191
+
192
+ - Email service? (ActionMailer with SMTP, SendGrid, Postmark, SES)
193
+ - Async delivery? (background job via Solid Queue)
194
+ - Email templates: HTML, text, or both?
195
+ - Preview functionality for developers?
196
+
197
+ ### Content & Timing
198
+
199
+ - What triggers the email? (user action, scheduled, event)
200
+ - Immediate or batched delivery?
201
+ - User preferences for email frequency?
202
+ - Unsubscribe mechanism?
203
+
204
+ ### Notification Types
205
+
206
+ - In-app notifications? (in addition to email)
207
+ - Push notifications? (web push, mobile)
208
+ - SMS notifications?
209
+ - Notification grouping/batching?
210
+
211
+ ## File Uploads & Storage
212
+
213
+ ### Upload Constraints
214
+
215
+ - Allowed file types? (images only, PDFs, any file)
216
+ - File size limits?
217
+ - Number of files per upload?
218
+ - Direct upload to cloud or via server?
219
+
220
+ ### Storage & Processing
221
+
222
+ - Storage backend? (Active Storage with S3, local, GCS)
223
+ - Image processing? (variants, thumbnails, resizing)
224
+ - Virus scanning?
225
+ - CDN for serving files?
226
+
227
+ ### Access Control
228
+
229
+ - Public files or authenticated access?
230
+ - Signed URLs with expiration?
231
+ - Download limits or tracking?
232
+ - Bulk download as zip?
233
+
234
+ ## Search & Filtering
235
+
236
+ ### Search Scope
237
+
238
+ - What can be searched? (titles, bodies, tags, users)
239
+ - Full-text search needed? (pg_search, Elasticsearch)
240
+ - Fuzzy matching or exact?
241
+ - Search across multiple models?
242
+
243
+ ### Performance
244
+
245
+ - Search response time requirements?
246
+ - Indexing strategy? (database, external search engine)
247
+ - Caching search results?
248
+ - Typeahead/autocomplete needed?
249
+
250
+ ## Common Cross-Cutting Concerns
251
+
252
+ ### Performance
253
+
254
+ - Expected traffic/load? (requests per second, concurrent users)
255
+ - Response time requirements? (< 100ms, < 500ms)
256
+ - Caching strategy? (fragment caching, Russian doll, HTTP)
257
+ - Database query optimization needed?
258
+
259
+ ### Security
260
+
261
+ - CSRF protection (default Rails behavior ok?)
262
+ - XSS prevention (auto-escaping ok or need sanitization?)
263
+ - SQL injection prevention (using ActiveRecord only?)
264
+ - Sensitive data encryption at rest?
265
+ - Audit logging for admin actions?
266
+
267
+ ### Mobile & Responsive
268
+
269
+ - Mobile-specific behavior different from desktop?
270
+ - Touch-optimized interactions needed?
271
+ - Offline support required?
272
+ - Progressive Web App (PWA) features?
273
+
274
+ ### Internationalization (i18n)
275
+
276
+ - Multi-language support needed now or later?
277
+ - Which languages?
278
+ - User language preference storage?
279
+ - RTL language support?
280
+
281
+ ### Accessibility
282
+
283
+ - WCAG level required? (A, AA, AAA)
284
+ - Screen reader optimization priority?
285
+ - Keyboard navigation requirements?
286
+ - Color contrast requirements?
287
+
288
+ ## Usage Tips
289
+
290
+ 1. **Prioritize questions** based on implementation impact
291
+ 2. **Ask 3-5 questions max** per refinement session
292
+ 3. **Provide context** for why each question matters
293
+ 4. **Offer options** when asking multiple-choice questions
294
+ 5. **Follow up** on ambiguous answers
295
+ 6. **Document answers** in task acceptance criteria
296
+ 7. **Update technical approach** based on answers
297
+
298
+ This reference ensures comprehensive requirement gathering while avoiding analysis paralysis.