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,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators"
4
+
5
+ module Claude
6
+ module Generators
7
+ class CommandGenerator < Rails::Generators::NamedBase
8
+ source_root File.expand_path("templates", __dir__)
9
+
10
+ class_option :description, type: :string, default: nil,
11
+ desc: "Command description"
12
+ class_option :argument_hint, type: :string, default: nil,
13
+ desc: "Argument hint for command usage"
14
+ class_option :allowed_tools, type: :string, default: "Bash, Read, Edit, Write",
15
+ desc: "Comma-separated list of allowed tools"
16
+
17
+ def create_command_file
18
+ template "command.md.tt", command_path
19
+ end
20
+
21
+ def show_instructions
22
+ say "\nCommand '#{file_name}' created successfully!", :green
23
+ say "\nLocation: #{command_path}", :blue
24
+ say "\nUsage: /#{file_name}", :yellow
25
+ say "\nNext steps:", :yellow
26
+ say " 1. Edit #{command_path} to add your command logic"
27
+ say " 2. Test with: /#{file_name}"
28
+ say " 3. The command will be auto-loaded by Claude\n"
29
+ end
30
+
31
+ private
32
+
33
+ def command_path
34
+ ".claude/commands/#{file_name}.md"
35
+ end
36
+
37
+ def command_description
38
+ options[:description] || "#{file_name.titleize} command"
39
+ end
40
+
41
+ def argument_hint
42
+ options[:argument_hint] || "[arguments]"
43
+ end
44
+
45
+ def allowed_tools
46
+ options[:allowed_tools]
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,28 @@
1
+ ---
2
+ description: <%= command_description %>
3
+ <% if argument_hint %>argument-hint: <%= argument_hint %><% end %>
4
+ allowed-tools: <%= allowed_tools %>
5
+ ---
6
+
7
+ ## <%= file_name.titleize %>
8
+
9
+ Add your command instructions here.
10
+
11
+ Use $ARGUMENTS to reference all arguments passed to the command.
12
+ Use $1, $2, etc. to reference specific arguments by position.
13
+
14
+ ### Example Usage
15
+
16
+ ```
17
+ /<%= file_name %> <%= argument_hint %>
18
+ ```
19
+
20
+ ### Steps
21
+
22
+ 1. Step 1
23
+ 2. Step 2
24
+ 3. Step 3
25
+
26
+ ### Notes
27
+
28
+ Add any important notes or considerations here.
@@ -0,0 +1,27 @@
1
+ ---
2
+ description: Create a branch, commit changes, and open a pull request
3
+ argument-hint: [branch_name] [commit_message] [pr_title]
4
+ allowed-tools: Bash
5
+ ---
6
+
7
+ Create a pull request workflow for: $ARGUMENTS
8
+
9
+ Steps:
10
+ 1. ✅ Check for uncommitted changes
11
+ 2. ✅ Create and checkout new branch
12
+ 3. ✅ Stage all changes
13
+ 4. ✅ Create commit with descriptive message
14
+ 5. ✅ Push to remote
15
+ 6. ✅ Create pull request using gh CLI
16
+ 7. ✅ Display PR URL
17
+
18
+ Commit message format:
19
+ ```
20
+ {commit_message}
21
+
22
+ 🤖 Generated with [Claude Code](https://claude.com/claude-code)
23
+
24
+ Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
25
+ ```
26
+
27
+ Note: Requires GitHub CLI (`gh`) to be installed and authenticated.
@@ -0,0 +1,19 @@
1
+ ---
2
+ description: Generate a database migration with safety checks
3
+ argument-hint: [migration_description]
4
+ allowed-tools: Bash, Read, Edit
5
+ ---
6
+
7
+ Generate a migration: $ARGUMENTS
8
+
9
+ Safety checklist:
10
+ 1. ✅ Use reversible migrations when possible
11
+ 2. ✅ Add indexes for foreign keys
12
+ 3. ✅ Use `change` method instead of up/down when possible
13
+ 4. ✅ Consider data migration needs
14
+ 5. ✅ Add comments for complex changes
15
+
16
+ After generation:
17
+ - Review the migration file
18
+ - Check for potential downtime issues
19
+ - Suggest background migration if needed for large tables
@@ -0,0 +1,20 @@
1
+ ---
2
+ description: Run RuboCop, Brakeman, and security audits
3
+ allowed-tools: Bash
4
+ ---
5
+
6
+ ## Current Code Quality
7
+
8
+ **RuboCop (Style):**
9
+ !`bundle exec rubocop`
10
+
11
+ **Brakeman (Security):**
12
+ !`bundle exec brakeman -q`
13
+
14
+ **Bundler Audit (Gem Vulnerabilities):**
15
+ !`bundle exec bundler-audit check --update`
16
+
17
+ Analyze the results above and:
18
+ 1. Summarize any violations or vulnerabilities
19
+ 2. Suggest fixes for critical issues
20
+ 3. Offer to auto-fix RuboCop issues if needed
@@ -0,0 +1,19 @@
1
+ ---
2
+ description: Generate a new Stimulus controller with proper setup
3
+ argument-hint: [controller_name]
4
+ allowed-tools: Bash, Write, Edit, Read
5
+ ---
6
+
7
+ Generate a Stimulus controller: $ARGUMENTS
8
+
9
+ Steps:
10
+ 1. Generate the controller: `rails g stimulus $ARGUMENTS`
11
+ 2. Add example actions and targets
12
+ 3. Show usage example in HTML
13
+ 4. Follow Stimulus naming conventions
14
+
15
+ Best practices:
16
+ - Use data-controller for registration
17
+ - Use data-action for event bindings
18
+ - Use data-*-target for element references
19
+ - Keep controllers focused and single-purpose
@@ -0,0 +1,17 @@
1
+ ---
2
+ description: Build a new feature using Hotwire (Turbo + Stimulus)
3
+ argument-hint: [feature_description]
4
+ allowed-tools: Write, Edit, Read, Bash, Glob
5
+ ---
6
+
7
+ Build a new Hotwire-powered feature: $ARGUMENTS
8
+
9
+ Requirements:
10
+ 1. Use Turbo Frames for navigation and forms
11
+ 2. Use Turbo Streams for real-time updates
12
+ 3. Add Stimulus controllers only when Turbo isn't sufficient
13
+ 4. Style with Tailwind CSS utility classes
14
+ 5. Follow RESTful routing conventions
15
+ 6. Include tests
16
+
17
+ Analyze the existing codebase patterns first, then implement following Rails + Hotwire best practices.
@@ -0,0 +1,211 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators"
4
+
5
+ module Claude
6
+ module Generators
7
+ class InstallGenerator < Rails::Generators::Base
8
+ source_root File.expand_path("templates", __dir__)
9
+
10
+ class_option :preset, type: :string, default: "basic",
11
+ desc: "Preset bundle (basic, fullstack, api)"
12
+ class_option :skip_agents, type: :boolean, default: false,
13
+ desc: "Don't create default agents"
14
+ class_option :skip_readme, type: :boolean, default: false,
15
+ desc: "Don't create README"
16
+
17
+ def create_claude_directory
18
+ empty_directory ".claude"
19
+ empty_directory ".claude/skills"
20
+ empty_directory ".claude/agents" unless options[:skip_agents]
21
+ empty_directory ".claude/commands"
22
+ empty_directory ".claude/rules"
23
+ end
24
+
25
+ def copy_settings
26
+ template "settings.local.json.tt", ".claude/settings.local.json"
27
+ end
28
+
29
+ def copy_readme
30
+ template "README.md.tt", ".claude/README.md" unless options[:skip_readme]
31
+ end
32
+
33
+ def install_preset_skills
34
+ case options[:preset]
35
+ when "fullstack"
36
+ install_fullstack_preset
37
+ when "api"
38
+ install_api_preset
39
+ else
40
+ install_basic_preset
41
+ end
42
+ end
43
+
44
+ def show_readme
45
+ readme "USAGE" if behavior == :invoke
46
+ end
47
+
48
+ private
49
+
50
+ def install_basic_preset
51
+ say "Installing basic preset...", :green
52
+ install_basic_skills_and_rules
53
+ create_basic_agent unless options[:skip_agents]
54
+ end
55
+
56
+ def install_fullstack_preset
57
+ say "Installing fullstack preset...", :green
58
+ install_basic_skills_and_rules
59
+ install_skill("rails-hotwire")
60
+ install_skill("tailwindcss")
61
+ install_skill("rspec-testing")
62
+ install_command("quality")
63
+ install_command("turbo-feature")
64
+ install_command("stimulus")
65
+ install_command("create-pr")
66
+ install_rule("hotwire")
67
+ install_rule("security")
68
+ create_fullstack_agent unless options[:skip_agents]
69
+ end
70
+
71
+ def install_basic_skills_and_rules
72
+ install_skill("rails-models")
73
+ install_skill("rails-controllers")
74
+ install_skill("rails-views")
75
+ install_command("dbchange")
76
+ install_rule("code-style")
77
+ install_rule("testing")
78
+ install_rule("database")
79
+ end
80
+
81
+ def install_api_preset
82
+ say "Installing API preset...", :green
83
+ install_skill("rails-models")
84
+ install_skill("rails-api-controllers")
85
+ install_skill("rails-auth-with-devise")
86
+ install_skill("rspec-testing")
87
+ install_command("dbchange")
88
+ install_command("quality")
89
+ install_rule("code-style")
90
+ install_rule("testing")
91
+ install_rule("security")
92
+ install_rule("database")
93
+ create_api_agent unless options[:skip_agents]
94
+ end
95
+
96
+ def install_skill(skill_name)
97
+ skill_dir = ".claude/skills/#{skill_name}"
98
+ empty_directory skill_dir
99
+
100
+ skill_source = File.expand_path("../skills_library/#{skill_name}", __dir__)
101
+ if File.directory?(skill_source)
102
+ directory skill_source, skill_dir
103
+ else
104
+ create_file "#{skill_dir}/SKILL.md", default_skill_content(skill_name)
105
+ end
106
+ end
107
+
108
+ def install_command(command_name)
109
+ command_file = ".claude/commands/#{command_name}.md"
110
+ command_source = File.expand_path("../commands_library/#{command_name}.md", __dir__)
111
+
112
+ if File.exist?(command_source)
113
+ copy_file command_source, command_file
114
+ else
115
+ create_file command_file, default_command_content(command_name)
116
+ end
117
+ end
118
+
119
+ def install_rule(rule_name)
120
+ rule_file = ".claude/rules/#{rule_name}.md"
121
+ rule_source = File.expand_path("../rules_library/#{rule_name}.md", __dir__)
122
+
123
+ if File.exist?(rule_source)
124
+ copy_file rule_source, rule_file
125
+ else
126
+ create_file rule_file, default_rule_content(rule_name)
127
+ end
128
+ end
129
+
130
+ def create_basic_agent
131
+ template "agents/rails-developer.md.tt", ".claude/agents/rails-developer.md"
132
+ end
133
+
134
+ def create_fullstack_agent
135
+ template "agents/fullstack-dev.md.tt", ".claude/agents/fullstack-dev.md"
136
+ end
137
+
138
+ def create_api_agent
139
+ template "agents/api-dev.md.tt", ".claude/agents/api-dev.md"
140
+ end
141
+
142
+ def default_skill_content(skill_name)
143
+ <<~SKILL
144
+ ---
145
+ name: #{skill_name}
146
+ description: #{skill_name.titleize} skill
147
+ version: 1.0.0
148
+ ---
149
+
150
+ # #{skill_name.titleize}
151
+
152
+ ## Quick Reference
153
+
154
+ This skill is not yet implemented.
155
+
156
+ ## Usage
157
+
158
+ To customize this skill:
159
+ ```bash
160
+ rails g claude:views #{skill_name}
161
+ ```
162
+ SKILL
163
+ end
164
+
165
+ def default_command_content(command_name)
166
+ <<~COMMAND
167
+ ---
168
+ description: #{command_name.titleize} command
169
+ allowed-tools: Bash, Read, Edit, Write
170
+ ---
171
+
172
+ ## #{command_name.titleize}
173
+
174
+ Add your command instructions here.
175
+
176
+ Use $ARGUMENTS to reference command arguments.
177
+ COMMAND
178
+ end
179
+
180
+ def default_rule_content(rule_name)
181
+ <<~RULE
182
+ # #{rule_name.titleize} Rules
183
+
184
+ Add your project rules and guidelines here.
185
+
186
+ ## Overview
187
+
188
+ Describe the purpose of these rules.
189
+
190
+ ## Guidelines
191
+
192
+ - Add specific guidelines
193
+ - Include best practices
194
+ - Document conventions
195
+ RULE
196
+ end
197
+
198
+ def app_name
199
+ Rails.application.class.module_parent_name
200
+ rescue StandardError
201
+ "MyApp"
202
+ end
203
+
204
+ def rails_version
205
+ Rails::VERSION::STRING
206
+ rescue StandardError
207
+ "7.0"
208
+ end
209
+ end
210
+ end
211
+ end
@@ -0,0 +1,59 @@
1
+ # Claude Skills for <%= app_name %>
2
+
3
+ This directory contains Claude AI skills and agents for this Rails project.
4
+
5
+ ## Structure
6
+
7
+ - `skills/` - Modular skill definitions
8
+ - `agents/` - Agent configurations that load multiple skills
9
+ - `settings.local.json` - Claude configuration
10
+
11
+ ## Installed Preset
12
+
13
+ **<%= options[:preset].titleize %> Preset**
14
+
15
+ Skills are automatically loaded when you use Claude in this project.
16
+
17
+ ## Usage
18
+
19
+ ### Customize a skill
20
+
21
+ To customize an existing skill:
22
+ ```bash
23
+ rails g claude:views <skill-name>
24
+ ```
25
+
26
+ ### Create a new skill
27
+
28
+ To create a custom skill:
29
+ ```bash
30
+ rails g claude:skill <skill-name>
31
+ ```
32
+
33
+ ### Create an agent
34
+
35
+ To create a new agent:
36
+ ```bash
37
+ rails g claude:agent <agent-name> --skills=skill1,skill2
38
+ ```
39
+
40
+ ## Available Commands
41
+
42
+ ```bash
43
+ # List all generators
44
+ rails g --help | grep claude
45
+
46
+ # Get help for specific generator
47
+ rails g claude:install --help
48
+ rails g claude:skill --help
49
+ rails g claude:agent --help
50
+ ```
51
+
52
+ ## Learn More
53
+
54
+ - [Rails Claude Skills Documentation](https://github.com/shoebtamboli/rails_claude_skills)
55
+ - [Claude AI Documentation](https://docs.anthropic.com/claude/)
56
+
57
+ ---
58
+
59
+ Generated with `rails_claude_skills` v<%= RailsClaudeSkills::VERSION %>
@@ -0,0 +1,28 @@
1
+ ===============================================================================
2
+
3
+ Claude Skills have been installed successfully!
4
+
5
+ Your .claude/ directory has been created with preset-specific skills, commands,
6
+ rules, and a pre-configured agent tailored to your development stack.
7
+
8
+ Next steps:
9
+
10
+ 1. Review your skills in .claude/skills/
11
+
12
+ 2. Customize any pre-built skill:
13
+ $ rails g claude:views <skill-name>
14
+
15
+ 3. Create custom skills for your domain:
16
+ $ rails g claude:skill <skill-name>
17
+
18
+ 4. Create custom agents:
19
+ $ rails g claude:agent <agent-name>
20
+
21
+ 5. Create custom commands (slash commands):
22
+ $ rails g claude:command <command-name>
23
+
24
+ Documentation: https://github.com/shoebtamboli/rails_claude_skills
25
+
26
+ Happy coding with AI! 🚀
27
+
28
+ ===============================================================================
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: api-dev
3
+ description: Rails API development agent
4
+ model: sonnet
5
+ color: green
6
+ skills:
7
+ - rails-models
8
+ - rails-api-controllers
9
+ - rails-serializers
10
+ - rails-authentication
11
+ ---
12
+
13
+ # Rails API Developer
14
+
15
+ You are an expert Rails API developer specializing in building robust JSON APIs.
16
+
17
+ ## Skills Integration
18
+
19
+ This agent auto-loads:
20
+ - **rails-models** - ActiveRecord patterns, migrations, validations
21
+ - **rails-api-controllers** - API controller patterns, error handling
22
+ - **rails-serializers** - JSON serialization with ActiveModel::Serializers
23
+ - **rails-authentication** - Token-based authentication, authorization
24
+
25
+ ## Core Expertise
26
+
27
+ - RESTful API design
28
+ - JSON:API or custom JSON formats
29
+ - Token-based authentication (JWT, API keys)
30
+ - API versioning strategies
31
+ - Error handling and status codes
32
+ - Rate limiting and throttling
33
+ - API documentation
34
+
35
+ ## Development Workflow
36
+
37
+ 1. **Design API** - Plan endpoints, resources, and data structures
38
+ 2. **Define Routes** - Set up RESTful routing with versioning
39
+ 3. **Build Models** - Create ActiveRecord models with validations
40
+ 4. **Implement Controllers** - Handle requests, responses, errors
41
+ 5. **Serialize Data** - Format JSON responses consistently
42
+ 6. **Secure API** - Add authentication and authorization
43
+ 7. **Document** - Provide clear API documentation
44
+ 8. **Test** - Write comprehensive request specs
45
+
46
+ Always follow REST principles and return appropriate HTTP status codes.
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: fullstack-dev
3
+ description: Full-stack Rails developer with modern frontend
4
+ model: sonnet
5
+ color: purple
6
+ skills:
7
+ - rails-models
8
+ - rails-controllers
9
+ - rails-views
10
+ - rails-hotwire
11
+ - tailwindcss
12
+ - rspec-testing
13
+ ---
14
+
15
+ # Full-Stack Rails Developer
16
+
17
+ You are an expert full-stack Rails developer specializing in modern Rails with Hotwire and TailwindCSS.
18
+
19
+ ## Skills Integration
20
+
21
+ This agent auto-loads:
22
+ - **rails-models** - ActiveRecord patterns, migrations, validations
23
+ - **rails-controllers** - Controller actions, routing, REST conventions
24
+ - **rails-views** - ERB templates, helpers, layouts
25
+ - **rails-hotwire** - Turbo Frames, Turbo Streams, Stimulus
26
+ - **tailwindcss** - Utility-first CSS framework
27
+ - **rspec-testing** - Testing with RSpec
28
+
29
+ ## Core Expertise
30
+
31
+ - Modern Rails with Hotwire (Turbo + Stimulus)
32
+ - TailwindCSS for styling
33
+ - Real-time updates with Turbo Streams
34
+ - Component-based UI with Turbo Frames
35
+ - Test-Driven Development with RSpec
36
+ - Progressive enhancement
37
+
38
+ ## Development Workflow
39
+
40
+ 1. **Understand** - Review requirements and existing architecture
41
+ 2. **Design** - Plan database schema, UI components, and interactions
42
+ 3. **Test First** - Write RSpec tests for expected behavior
43
+ 4. **Implement Backend** - Build models, controllers, and business logic
44
+ 5. **Build Frontend** - Create views with Turbo Frames/Streams and TailwindCSS
45
+ 6. **Add Interactivity** - Enhance with Stimulus controllers
46
+ 7. **Refine** - Optimize, refactor, ensure accessibility
47
+
48
+ Always prioritize progressive enhancement and semantic HTML.
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: rails-developer
3
+ description: Rails MVC developer for classic Rails applications
4
+ model: sonnet
5
+ color: blue
6
+ skills:
7
+ - rails-models
8
+ - rails-controllers
9
+ - rails-views
10
+ ---
11
+
12
+ # Rails MVC Developer
13
+
14
+ You are an expert Rails developer assistant specializing in classic Rails MVC patterns and RESTful applications.
15
+
16
+ ## Skills Integration
17
+
18
+ This agent auto-loads:
19
+ - **rails-models** - ActiveRecord patterns, migrations, validations
20
+ - **rails-controllers** - Controller actions, routing, REST conventions
21
+ - **rails-views** - ERB templates, helpers, layouts
22
+
23
+ ## Core Expertise
24
+
25
+ - Rails MVC architecture
26
+ - ActiveRecord ORM
27
+ - RESTful routing and controllers
28
+ - View rendering and helpers
29
+ - Database migrations
30
+ - Form handling and validations
31
+
32
+ ## Development Workflow
33
+
34
+ 1. **Understand** - Review existing code structure
35
+ 2. **Plan** - Design database schema and routes
36
+ 3. **Implement** - Write models, controllers, views
37
+ 4. **Test** - Ensure functionality works
38
+ 5. **Refactor** - Follow Rails conventions and best practices
39
+
40
+ Always follow Rails conventions and keep code DRY (Don't Repeat Yourself).
@@ -0,0 +1,13 @@
1
+ {
2
+ "skills": {
3
+ "autoLoad": true,
4
+ "path": ".claude/skills"
5
+ },
6
+ "agents": {
7
+ "path": ".claude/agents",
8
+ "default": "<%= options[:preset] == 'basic' ? 'rails-developer' : "#{options[:preset]}-dev" %>"
9
+ },
10
+ "model": "sonnet",
11
+ "project": "<%= app_name %>",
12
+ "rails_version": "<%= rails_version %>"
13
+ }