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
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 6af4682c59ca62b92b3c29f0e46ee77b8ffd8f22ed345dce1508c04a0ea8026d
|
|
4
|
+
data.tar.gz: c1accd731a912d5a6ed1dd95362085428bec5c06791d806357cd9aead29e187c
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 2c32dae628ca6fd51f125b6e15842bce34bc7d2257f583deb7a3540c05f514cabfb31de082054cdfd5e7d052329087ef17951b2b86083ed20d4c4ea6953782c2
|
|
7
|
+
data.tar.gz: abf938f972e596480a25b1df12a2ca556951e171dd7ee2bff92692ec17894fcce5d93e428b001ca81bab212836b3e1bd71368e9b6ad69c2e8f9b082f56ecad90
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
name: Bug Report
|
|
2
|
+
description: Report a bug or unexpected behavior in Rails Claude Skills
|
|
3
|
+
title: "[Bug]: "
|
|
4
|
+
labels: ["bug", "needs-triage"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thanks for taking the time to report a bug! Please fill out this form as completely as possible.
|
|
10
|
+
|
|
11
|
+
- type: checkboxes
|
|
12
|
+
id: prerequisites
|
|
13
|
+
attributes:
|
|
14
|
+
label: Prerequisites
|
|
15
|
+
description: Before submitting, please verify the following
|
|
16
|
+
options:
|
|
17
|
+
- label: I have searched existing issues to make sure this bug hasn't been reported
|
|
18
|
+
required: true
|
|
19
|
+
- label: I am using a supported Ruby version (3.0+)
|
|
20
|
+
required: true
|
|
21
|
+
- label: I am using a supported Rails version (7.0+)
|
|
22
|
+
required: true
|
|
23
|
+
|
|
24
|
+
- type: textarea
|
|
25
|
+
id: description
|
|
26
|
+
attributes:
|
|
27
|
+
label: Bug Description
|
|
28
|
+
description: A clear and concise description of what the bug is
|
|
29
|
+
placeholder: When I run `rails g claude:install`, I get...
|
|
30
|
+
validations:
|
|
31
|
+
required: true
|
|
32
|
+
|
|
33
|
+
- type: textarea
|
|
34
|
+
id: steps
|
|
35
|
+
attributes:
|
|
36
|
+
label: Steps to Reproduce
|
|
37
|
+
description: Step-by-step instructions to reproduce the issue
|
|
38
|
+
placeholder: |
|
|
39
|
+
1. Create new Rails app: `rails new myapp`
|
|
40
|
+
2. Add gem to Gemfile
|
|
41
|
+
3. Run `bundle install`
|
|
42
|
+
4. Run `rails g claude:install`
|
|
43
|
+
5. See error...
|
|
44
|
+
validations:
|
|
45
|
+
required: true
|
|
46
|
+
|
|
47
|
+
- type: textarea
|
|
48
|
+
id: expected
|
|
49
|
+
attributes:
|
|
50
|
+
label: Expected Behavior
|
|
51
|
+
description: What did you expect to happen?
|
|
52
|
+
placeholder: The install generator should create a `.claude/` directory with skills
|
|
53
|
+
validations:
|
|
54
|
+
required: true
|
|
55
|
+
|
|
56
|
+
- type: textarea
|
|
57
|
+
id: actual
|
|
58
|
+
attributes:
|
|
59
|
+
label: Actual Behavior
|
|
60
|
+
description: What actually happened?
|
|
61
|
+
placeholder: |
|
|
62
|
+
Error message:
|
|
63
|
+
```
|
|
64
|
+
undefined method `titleize' for nil:NilClass
|
|
65
|
+
```
|
|
66
|
+
validations:
|
|
67
|
+
required: true
|
|
68
|
+
|
|
69
|
+
- type: input
|
|
70
|
+
id: gem-version
|
|
71
|
+
attributes:
|
|
72
|
+
label: Gem Version
|
|
73
|
+
description: Which version of rails_claude_skills are you using?
|
|
74
|
+
placeholder: "0.2.0"
|
|
75
|
+
validations:
|
|
76
|
+
required: true
|
|
77
|
+
|
|
78
|
+
- type: input
|
|
79
|
+
id: rails-version
|
|
80
|
+
attributes:
|
|
81
|
+
label: Rails Version
|
|
82
|
+
description: Which version of Rails are you using?
|
|
83
|
+
placeholder: "7.1.3"
|
|
84
|
+
validations:
|
|
85
|
+
required: true
|
|
86
|
+
|
|
87
|
+
- type: input
|
|
88
|
+
id: ruby-version
|
|
89
|
+
attributes:
|
|
90
|
+
label: Ruby Version
|
|
91
|
+
description: Which version of Ruby are you using?
|
|
92
|
+
placeholder: "3.3.0"
|
|
93
|
+
validations:
|
|
94
|
+
required: true
|
|
95
|
+
|
|
96
|
+
- type: dropdown
|
|
97
|
+
id: os
|
|
98
|
+
attributes:
|
|
99
|
+
label: Operating System
|
|
100
|
+
description: Which operating system are you using?
|
|
101
|
+
options:
|
|
102
|
+
- macOS
|
|
103
|
+
- Linux
|
|
104
|
+
- Windows
|
|
105
|
+
- Other
|
|
106
|
+
validations:
|
|
107
|
+
required: true
|
|
108
|
+
|
|
109
|
+
- type: textarea
|
|
110
|
+
id: code-snippets
|
|
111
|
+
attributes:
|
|
112
|
+
label: Relevant Code/Configuration
|
|
113
|
+
description: Please provide any relevant code snippets, configuration files, or logs
|
|
114
|
+
placeholder: |
|
|
115
|
+
```ruby
|
|
116
|
+
# Paste relevant code here
|
|
117
|
+
```
|
|
118
|
+
render: ruby
|
|
119
|
+
|
|
120
|
+
- type: textarea
|
|
121
|
+
id: additional-context
|
|
122
|
+
attributes:
|
|
123
|
+
label: Additional Context
|
|
124
|
+
description: Add any other context about the problem here (screenshots, error logs, etc.)
|
|
125
|
+
placeholder: Any additional information that might help us understand the issue
|
|
126
|
+
|
|
127
|
+
- type: checkboxes
|
|
128
|
+
id: contribution
|
|
129
|
+
attributes:
|
|
130
|
+
label: Would you like to submit a PR for this?
|
|
131
|
+
description: If you're interested in fixing this bug yourself, let us know!
|
|
132
|
+
options:
|
|
133
|
+
- label: I'd like to work on fixing this bug
|
|
134
|
+
required: false
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: 📚 Documentation
|
|
4
|
+
url: https://github.com/Shoebtamboli/rails_claude_skills/blob/main/README.md
|
|
5
|
+
about: Read the full documentation and usage guide
|
|
6
|
+
- name: 💬 GitHub Discussions
|
|
7
|
+
url: https://github.com/Shoebtamboli/rails_claude_skills/discussions
|
|
8
|
+
about: Ask questions and discuss ideas with the community
|
|
9
|
+
- name: 🚀 Contributing Guide
|
|
10
|
+
url: https://github.com/Shoebtamboli/rails_claude_skills/blob/main/CONTRIBUTING.md
|
|
11
|
+
about: Learn how to contribute to Rails Claude Skills
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
name: Feature Request
|
|
2
|
+
description: Suggest a new feature or enhancement for Rails Claude Skills
|
|
3
|
+
title: "[Feature]: "
|
|
4
|
+
labels: ["enhancement", "needs-triage"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Thanks for suggesting a new feature! We appreciate your ideas for improving Rails Claude Skills.
|
|
10
|
+
|
|
11
|
+
- type: checkboxes
|
|
12
|
+
id: prerequisites
|
|
13
|
+
attributes:
|
|
14
|
+
label: Prerequisites
|
|
15
|
+
description: Before submitting, please verify the following
|
|
16
|
+
options:
|
|
17
|
+
- label: I have searched existing issues and discussions to make sure this hasn't been suggested
|
|
18
|
+
required: true
|
|
19
|
+
- label: This feature would be useful to the wider Rails community, not just my specific use case
|
|
20
|
+
required: true
|
|
21
|
+
|
|
22
|
+
- type: dropdown
|
|
23
|
+
id: feature-type
|
|
24
|
+
attributes:
|
|
25
|
+
label: Feature Type
|
|
26
|
+
description: What type of feature are you suggesting?
|
|
27
|
+
options:
|
|
28
|
+
- New Skill (e.g., for a popular gem or Rails pattern)
|
|
29
|
+
- New Command (slash command for common workflows)
|
|
30
|
+
- New Rule (project guidelines or conventions)
|
|
31
|
+
- New Generator (entirely new generator type)
|
|
32
|
+
- Enhancement to Existing Feature
|
|
33
|
+
- Documentation Improvement
|
|
34
|
+
- Other
|
|
35
|
+
validations:
|
|
36
|
+
required: true
|
|
37
|
+
|
|
38
|
+
- type: textarea
|
|
39
|
+
id: problem
|
|
40
|
+
attributes:
|
|
41
|
+
label: Problem Statement
|
|
42
|
+
description: Is your feature request related to a problem? Please describe.
|
|
43
|
+
placeholder: I'm frustrated when I need to... OR It would be helpful if...
|
|
44
|
+
validations:
|
|
45
|
+
required: true
|
|
46
|
+
|
|
47
|
+
- type: textarea
|
|
48
|
+
id: solution
|
|
49
|
+
attributes:
|
|
50
|
+
label: Proposed Solution
|
|
51
|
+
description: Describe the solution you'd like to see
|
|
52
|
+
placeholder: |
|
|
53
|
+
I would like to have a skill/command/rule that...
|
|
54
|
+
|
|
55
|
+
Example usage:
|
|
56
|
+
```bash
|
|
57
|
+
rails g claude:skill devise-authentication
|
|
58
|
+
# or
|
|
59
|
+
/my-command argument
|
|
60
|
+
```
|
|
61
|
+
validations:
|
|
62
|
+
required: true
|
|
63
|
+
|
|
64
|
+
- type: textarea
|
|
65
|
+
id: alternatives
|
|
66
|
+
attributes:
|
|
67
|
+
label: Alternatives Considered
|
|
68
|
+
description: Describe any alternative solutions or features you've considered
|
|
69
|
+
placeholder: I considered using... but that doesn't work because...
|
|
70
|
+
|
|
71
|
+
- type: textarea
|
|
72
|
+
id: examples
|
|
73
|
+
attributes:
|
|
74
|
+
label: Examples from Other Tools
|
|
75
|
+
description: Are there similar features in other gems, tools, or frameworks?
|
|
76
|
+
placeholder: Similar to how gem X handles... or inspired by feature Y in...
|
|
77
|
+
|
|
78
|
+
- type: dropdown
|
|
79
|
+
id: preset
|
|
80
|
+
attributes:
|
|
81
|
+
label: Which Preset Should Include This?
|
|
82
|
+
description: If this is a new skill/command/rule, which preset(s) should include it by default?
|
|
83
|
+
multiple: true
|
|
84
|
+
options:
|
|
85
|
+
- Basic Preset
|
|
86
|
+
- Fullstack Preset
|
|
87
|
+
- API Preset
|
|
88
|
+
- None (users can add manually)
|
|
89
|
+
- Not Applicable
|
|
90
|
+
|
|
91
|
+
- type: textarea
|
|
92
|
+
id: use-cases
|
|
93
|
+
attributes:
|
|
94
|
+
label: Use Cases
|
|
95
|
+
description: Describe specific scenarios where this feature would be helpful
|
|
96
|
+
placeholder: |
|
|
97
|
+
1. When building a multi-tenant SaaS app...
|
|
98
|
+
2. When implementing authentication...
|
|
99
|
+
3. When deploying to production...
|
|
100
|
+
validations:
|
|
101
|
+
required: true
|
|
102
|
+
|
|
103
|
+
- type: textarea
|
|
104
|
+
id: benefits
|
|
105
|
+
attributes:
|
|
106
|
+
label: Benefits
|
|
107
|
+
description: How would this feature benefit Rails developers using Claude Code?
|
|
108
|
+
placeholder: |
|
|
109
|
+
- Saves time by...
|
|
110
|
+
- Reduces errors when...
|
|
111
|
+
- Improves code quality by...
|
|
112
|
+
validations:
|
|
113
|
+
required: true
|
|
114
|
+
|
|
115
|
+
- type: textarea
|
|
116
|
+
id: additional-context
|
|
117
|
+
attributes:
|
|
118
|
+
label: Additional Context
|
|
119
|
+
description: Add any other context, screenshots, code examples, or mockups about the feature
|
|
120
|
+
placeholder: Any additional information that would help us understand your request
|
|
121
|
+
|
|
122
|
+
- type: checkboxes
|
|
123
|
+
id: contribution
|
|
124
|
+
attributes:
|
|
125
|
+
label: Would you like to implement this feature?
|
|
126
|
+
description: If you're interested in contributing this feature yourself, let us know!
|
|
127
|
+
options:
|
|
128
|
+
- label: I'd like to implement this feature and submit a PR
|
|
129
|
+
required: false
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
name: Question or Discussion
|
|
2
|
+
description: Ask a question or start a discussion about Rails Claude Skills
|
|
3
|
+
title: "[Question]: "
|
|
4
|
+
labels: ["question"]
|
|
5
|
+
body:
|
|
6
|
+
- type: markdown
|
|
7
|
+
attributes:
|
|
8
|
+
value: |
|
|
9
|
+
Have a question about Rails Claude Skills? We're here to help!
|
|
10
|
+
|
|
11
|
+
**Note:** For bug reports, please use the "Bug Report" template instead.
|
|
12
|
+
|
|
13
|
+
- type: checkboxes
|
|
14
|
+
id: prerequisites
|
|
15
|
+
attributes:
|
|
16
|
+
label: Prerequisites
|
|
17
|
+
description: Before asking, please check the following
|
|
18
|
+
options:
|
|
19
|
+
- label: I have read the README and documentation
|
|
20
|
+
required: true
|
|
21
|
+
- label: I have searched existing issues and discussions
|
|
22
|
+
required: true
|
|
23
|
+
|
|
24
|
+
- type: dropdown
|
|
25
|
+
id: question-type
|
|
26
|
+
attributes:
|
|
27
|
+
label: Question Type
|
|
28
|
+
description: What type of question do you have?
|
|
29
|
+
options:
|
|
30
|
+
- How do I use a specific feature?
|
|
31
|
+
- How do I create custom content (skill/command/rule)?
|
|
32
|
+
- Best practices or recommendations
|
|
33
|
+
- Integration with other tools/gems
|
|
34
|
+
- General usage question
|
|
35
|
+
- Architecture or design question
|
|
36
|
+
- Other
|
|
37
|
+
validations:
|
|
38
|
+
required: true
|
|
39
|
+
|
|
40
|
+
- type: textarea
|
|
41
|
+
id: question
|
|
42
|
+
attributes:
|
|
43
|
+
label: Your Question
|
|
44
|
+
description: What would you like to know?
|
|
45
|
+
placeholder: |
|
|
46
|
+
How do I...?
|
|
47
|
+
What's the best way to...?
|
|
48
|
+
Can Rails Claude Skills...?
|
|
49
|
+
validations:
|
|
50
|
+
required: true
|
|
51
|
+
|
|
52
|
+
- type: textarea
|
|
53
|
+
id: context
|
|
54
|
+
attributes:
|
|
55
|
+
label: Context
|
|
56
|
+
description: Provide any relevant context about what you're trying to accomplish
|
|
57
|
+
placeholder: |
|
|
58
|
+
I'm working on a project where...
|
|
59
|
+
I'm trying to achieve...
|
|
60
|
+
I've already tried...
|
|
61
|
+
|
|
62
|
+
- type: textarea
|
|
63
|
+
id: attempted
|
|
64
|
+
attributes:
|
|
65
|
+
label: What Have You Tried?
|
|
66
|
+
description: What have you already attempted?
|
|
67
|
+
placeholder: |
|
|
68
|
+
I tried...
|
|
69
|
+
I looked at...
|
|
70
|
+
I read...
|
|
71
|
+
|
|
72
|
+
- type: input
|
|
73
|
+
id: gem-version
|
|
74
|
+
attributes:
|
|
75
|
+
label: Gem Version (if relevant)
|
|
76
|
+
description: Which version of rails_claude_skills are you using?
|
|
77
|
+
placeholder: "0.2.0"
|
|
78
|
+
|
|
79
|
+
- type: input
|
|
80
|
+
id: rails-version
|
|
81
|
+
attributes:
|
|
82
|
+
label: Rails Version (if relevant)
|
|
83
|
+
description: Which version of Rails are you using?
|
|
84
|
+
placeholder: "7.1.3"
|
|
85
|
+
|
|
86
|
+
- type: textarea
|
|
87
|
+
id: additional-info
|
|
88
|
+
attributes:
|
|
89
|
+
label: Additional Information
|
|
90
|
+
description: Any other details that might help us answer your question
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
# Maintain dependencies for Bundler
|
|
4
|
+
- package-ecosystem: "bundler"
|
|
5
|
+
directory: "/"
|
|
6
|
+
schedule:
|
|
7
|
+
interval: "weekly"
|
|
8
|
+
open-pull-requests-limit: 5
|
|
9
|
+
groups:
|
|
10
|
+
rubocop:
|
|
11
|
+
patterns:
|
|
12
|
+
- "rubocop*"
|
|
13
|
+
|
|
14
|
+
# Maintain dependencies for GitHub Actions
|
|
15
|
+
- package-ecosystem: "github-actions"
|
|
16
|
+
directory: "/"
|
|
17
|
+
schedule:
|
|
18
|
+
interval: "weekly"
|
|
19
|
+
open-pull-requests-limit: 5
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
lint:
|
|
11
|
+
name: RuboCop
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v6
|
|
15
|
+
|
|
16
|
+
- name: Set up Ruby
|
|
17
|
+
uses: ruby/setup-ruby@v1
|
|
18
|
+
with:
|
|
19
|
+
ruby-version: '3.2'
|
|
20
|
+
bundler-cache: true
|
|
21
|
+
|
|
22
|
+
- name: Run RuboCop
|
|
23
|
+
run: bundle exec rubocop
|
|
24
|
+
|
|
25
|
+
test:
|
|
26
|
+
name: Test (Ruby ${{ matrix.ruby }} / Rails ${{ matrix.rails }})
|
|
27
|
+
runs-on: ubuntu-latest
|
|
28
|
+
|
|
29
|
+
strategy:
|
|
30
|
+
fail-fast: false
|
|
31
|
+
matrix:
|
|
32
|
+
ruby: ['3.0', '3.1', '3.2', '3.3']
|
|
33
|
+
rails: ['7.0', '7.1', '7.2']
|
|
34
|
+
|
|
35
|
+
env:
|
|
36
|
+
RAILS_VERSION: ${{ matrix.rails }}
|
|
37
|
+
|
|
38
|
+
steps:
|
|
39
|
+
- uses: actions/checkout@v6
|
|
40
|
+
|
|
41
|
+
- name: Set up Ruby
|
|
42
|
+
uses: ruby/setup-ruby@v1
|
|
43
|
+
with:
|
|
44
|
+
ruby-version: ${{ matrix.ruby }}
|
|
45
|
+
bundler-cache: false
|
|
46
|
+
|
|
47
|
+
- name: Install dependencies
|
|
48
|
+
run: |
|
|
49
|
+
gem install bundler
|
|
50
|
+
bundle install --jobs 4 --retry 3
|
|
51
|
+
|
|
52
|
+
- name: Run tests
|
|
53
|
+
run: bundle exec rspec
|
|
54
|
+
|
|
55
|
+
build:
|
|
56
|
+
name: Build Gem
|
|
57
|
+
runs-on: ubuntu-latest
|
|
58
|
+
needs: [lint, test]
|
|
59
|
+
|
|
60
|
+
steps:
|
|
61
|
+
- uses: actions/checkout@v6
|
|
62
|
+
|
|
63
|
+
- name: Set up Ruby
|
|
64
|
+
uses: ruby/setup-ruby@v1
|
|
65
|
+
with:
|
|
66
|
+
ruby-version: '3.2'
|
|
67
|
+
bundler-cache: true
|
|
68
|
+
|
|
69
|
+
- name: Build gem
|
|
70
|
+
run: bundle exec rake build
|
|
71
|
+
|
|
72
|
+
- name: Upload gem artifact
|
|
73
|
+
uses: actions/upload-artifact@v6
|
|
74
|
+
with:
|
|
75
|
+
name: rails_claude_skills-gem
|
|
76
|
+
path: pkg/*.gem
|
|
77
|
+
retention-days: 7
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
inputs:
|
|
8
|
+
version:
|
|
9
|
+
description: 'Version to publish (e.g., 0.1.0)'
|
|
10
|
+
required: false
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
packages: write
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
publish:
|
|
18
|
+
name: Build and Publish Gem
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v6
|
|
23
|
+
|
|
24
|
+
- name: Set up Ruby
|
|
25
|
+
uses: ruby/setup-ruby@v1
|
|
26
|
+
with:
|
|
27
|
+
ruby-version: '3.4'
|
|
28
|
+
bundler-cache: true
|
|
29
|
+
|
|
30
|
+
- name: Run tests
|
|
31
|
+
run: bundle exec rspec
|
|
32
|
+
|
|
33
|
+
- name: Build gem
|
|
34
|
+
run: gem build rails_claude_skills.gemspec
|
|
35
|
+
|
|
36
|
+
- name: Archive gem artifact
|
|
37
|
+
uses: actions/upload-artifact@v6
|
|
38
|
+
with:
|
|
39
|
+
name: rails_claude_skills-gem
|
|
40
|
+
path: "*.gem"
|
|
41
|
+
retention-days: 30
|
|
42
|
+
|
|
43
|
+
- name: Publish to RubyGems
|
|
44
|
+
if: github.event_name == 'release'
|
|
45
|
+
continue-on-error: true
|
|
46
|
+
env:
|
|
47
|
+
GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
|
|
48
|
+
run: |
|
|
49
|
+
mkdir -p ~/.gem
|
|
50
|
+
echo ":rubygems_api_key: ${GEM_HOST_API_KEY}" > ~/.gem/credentials
|
|
51
|
+
chmod 0600 ~/.gem/credentials
|
|
52
|
+
gem push rails_claude_skills-*.gem || echo "::warning::Failed to push to RubyGems"
|
|
53
|
+
rm -f ~/.gem/credentials
|
|
54
|
+
|
|
55
|
+
- name: Publish to GitHub Packages
|
|
56
|
+
if: github.event_name == 'release'
|
|
57
|
+
continue-on-error: true
|
|
58
|
+
env:
|
|
59
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
60
|
+
OWNER: ${{ github.repository_owner }}
|
|
61
|
+
run: |
|
|
62
|
+
mkdir -p ~/.gem
|
|
63
|
+
echo ":github: Bearer ${GITHUB_TOKEN}" > ~/.gem/credentials
|
|
64
|
+
chmod 0600 ~/.gem/credentials
|
|
65
|
+
gem push --key github --host https://rubygems.pkg.github.com/${OWNER} rails_claude_skills-*.gem || echo "::warning::Failed to push to GitHub Packages"
|
|
66
|
+
rm -f ~/.gem/credentials
|
data/.rubocop.yml
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
AllCops:
|
|
2
|
+
TargetRubyVersion: 3.0
|
|
3
|
+
NewCops: enable
|
|
4
|
+
SuggestExtensions: false
|
|
5
|
+
Exclude:
|
|
6
|
+
- 'bin/**/*'
|
|
7
|
+
- 'vendor/**/*'
|
|
8
|
+
- 'tmp/**/*'
|
|
9
|
+
- 'spec/fixtures/**/*'
|
|
10
|
+
|
|
11
|
+
# Gem specific configuration
|
|
12
|
+
Gemspec/RequireMFA:
|
|
13
|
+
Enabled: false
|
|
14
|
+
|
|
15
|
+
Gemspec/DevelopmentDependencies:
|
|
16
|
+
Enabled: false
|
|
17
|
+
|
|
18
|
+
# Style preferences
|
|
19
|
+
Style/Documentation:
|
|
20
|
+
Enabled: false
|
|
21
|
+
|
|
22
|
+
Style/StringLiterals:
|
|
23
|
+
EnforcedStyle: double_quotes
|
|
24
|
+
|
|
25
|
+
Style/StringLiteralsInInterpolation:
|
|
26
|
+
EnforcedStyle: double_quotes
|
|
27
|
+
|
|
28
|
+
# Layout preferences
|
|
29
|
+
Layout/LineLength:
|
|
30
|
+
Max: 150
|
|
31
|
+
|
|
32
|
+
# Metrics
|
|
33
|
+
Metrics/BlockLength:
|
|
34
|
+
Exclude:
|
|
35
|
+
- 'spec/**/*'
|
|
36
|
+
- 'lib/generators/**/*'
|
|
37
|
+
- '*.gemspec'
|
|
38
|
+
|
|
39
|
+
Metrics/MethodLength:
|
|
40
|
+
Max: 25
|
|
41
|
+
Exclude:
|
|
42
|
+
- 'lib/generators/**/*'
|
|
43
|
+
|
|
44
|
+
Metrics/AbcSize:
|
|
45
|
+
Max: 25
|
|
46
|
+
Exclude:
|
|
47
|
+
- 'lib/generators/**/*'
|
|
48
|
+
|
|
49
|
+
Metrics/ClassLength:
|
|
50
|
+
Max: 150
|
|
51
|
+
Exclude:
|
|
52
|
+
- 'lib/generators/**/*'
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
For detailed release notes with auto-generated commit history, see [GitHub Releases](https://github.com/Shoebtamboli/rails_claude_skills/releases).
|
|
9
|
+
|
|
10
|
+
## [Unreleased]
|
|
11
|
+
|
|
12
|
+
No unreleased changes yet.
|
|
13
|
+
|
|
14
|
+
## [0.1.0] - Unreleased
|
|
15
|
+
|
|
16
|
+
### Initial Release (Preparing for Publication)
|
|
17
|
+
|
|
18
|
+
A Rails generator gem that scaffolds Claude AI skills and agents for Rails projects, making AI-assisted development reusable and distributable.
|
|
19
|
+
|
|
20
|
+
### Generators
|
|
21
|
+
- **Install Generator** (`rails g claude:install`) - Initialize Claude skills with three presets (basic, fullstack, api)
|
|
22
|
+
- **Skill Generator** (`rails g claude:skill`) - Create custom skills with templates (generic, model, controller, frontend)
|
|
23
|
+
- **Agent Generator** (`rails g claude:agent`) - Create custom AI agents
|
|
24
|
+
- **Command Generator** (`rails g claude:command`) - Create custom slash commands
|
|
25
|
+
- **Rule Generator** (`rails g claude:rule`) - Create project-specific rules with templates (generic, testing, security, performance)
|
|
26
|
+
- **Views Generator** (`rails g claude:views`) - Copy and customize gem resources (skills, commands, rules)
|
|
27
|
+
|
|
28
|
+
### Pre-built Skills (18 total)
|
|
29
|
+
**Core Rails:**
|
|
30
|
+
- rails-models (ActiveRecord, migrations, validations, associations)
|
|
31
|
+
- rails-controllers (routing, actions, REST conventions)
|
|
32
|
+
- rails-views (ERB templates, helpers, partials)
|
|
33
|
+
|
|
34
|
+
**Full-Stack Development:**
|
|
35
|
+
- rails-hotwire (Turbo Drive, Frames, Streams, Stimulus)
|
|
36
|
+
- tailwindcss (utility-first CSS)
|
|
37
|
+
|
|
38
|
+
**Background Processing & Communication:**
|
|
39
|
+
- rails-jobs (background jobs with Solid Queue)
|
|
40
|
+
- rails-mailers (ActionMailer patterns)
|
|
41
|
+
|
|
42
|
+
**Authentication & Authorization:**
|
|
43
|
+
- rails-auth-with-devise (authentication with Devise, OmniAuth, API auth)
|
|
44
|
+
- rails-authorization-cancancan (role-based access control)
|
|
45
|
+
|
|
46
|
+
**API Development:**
|
|
47
|
+
- rails-api-controllers (RESTful API patterns, versioning, authentication, rate limiting, CORS, pagination)
|
|
48
|
+
|
|
49
|
+
**Testing:**
|
|
50
|
+
- rspec-testing (RSpec patterns and best practices)
|
|
51
|
+
- minitest-testing (Minitest patterns)
|
|
52
|
+
|
|
53
|
+
**Utilities:**
|
|
54
|
+
- rails-debugging (debugging tools and systematic process)
|
|
55
|
+
- rails-pagination-kaminari (pagination patterns)
|
|
56
|
+
- rails-deployment (deployment best practices)
|
|
57
|
+
|
|
58
|
+
**Planning & Organization:**
|
|
59
|
+
- plan-feature (feature planning workflow)
|
|
60
|
+
- refine-requirements (requirements refinement)
|
|
61
|
+
- create-task-files (task file creation)
|
|
62
|
+
|
|
63
|
+
### Pre-built Commands (5 total)
|
|
64
|
+
- quality (run linters and formatters)
|
|
65
|
+
- turbo-feature (scaffold Hotwire Turbo features)
|
|
66
|
+
- stimulus (create Stimulus controllers)
|
|
67
|
+
- create-pr (create GitHub pull requests)
|
|
68
|
+
- dbchange (database migration workflow)
|
|
69
|
+
|
|
70
|
+
### Pre-built Rules (5 total)
|
|
71
|
+
- code-style (coding standards)
|
|
72
|
+
- testing (test requirements)
|
|
73
|
+
- security (security guidelines)
|
|
74
|
+
- database (database best practices)
|
|
75
|
+
- hotwire (Hotwire conventions)
|
|
76
|
+
|
|
77
|
+
### Pre-built Agents
|
|
78
|
+
- rails-developer (Rails MVC development with models, controllers, views)
|
|
79
|
+
- fullstack-dev (Modern full-stack with Hotwire, TailwindCSS, RSpec)
|
|
80
|
+
- api-dev (API-focused development with authentication)
|
|
81
|
+
|
|
82
|
+
### Features
|
|
83
|
+
- Configuration system with settings.local.json
|
|
84
|
+
- Support for Ruby 3.0+ and Rails 7.0+
|
|
85
|
+
- Three installation presets (basic, fullstack, api)
|
|
86
|
+
- Comprehensive documentation and examples
|
|
87
|
+
- CI/CD with GitHub Actions
|
|
88
|
+
|
|
89
|
+
### Documentation & Community
|
|
90
|
+
- Comprehensive README with usage examples
|
|
91
|
+
- CONTRIBUTING.md with detailed contribution guidelines
|
|
92
|
+
- Issue templates (bug report, feature request, question)
|
|
93
|
+
- Code of Conduct (Contributor Covenant 2.1)
|
|
94
|
+
- CHANGELOG following Keep a Changelog format
|