claude-on-rails 0.1.3 → 0.1.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: de4a3fb293d60b83ed1f58dbaac8d0884d4febdf37acf2adb18d93de025858c2
4
- data.tar.gz: 7c180d4eb24f642107e6029c9f2502b2a4707a52debf87cd5f672b88738d9c83
3
+ metadata.gz: c54b004a79682a75a479c16d29933a76e7baca7f71a7af6d8378f77788ec90cd
4
+ data.tar.gz: fa1e7da87e5306defb8504d944f06d14bac72be1bc3b02bc5c011db95fec5e2c
5
5
  SHA512:
6
- metadata.gz: 5d853f53d8ff33753d9db0f3386ecabecb58e816711e0eaa57b8e3fad35c3d99284d3a101101bdf52f0f3010d83df95b1866ac9e8069e6bd40a55d6181d0cbf2
7
- data.tar.gz: 9e44356c815d9f0bd3338e49ab12e2e134eae9e9a5ab1519ec69ef6ca4e32ad2cd9d7ccae63cbd6504130adc845a383953231adfe5ed2d73a53ad5360546e355
6
+ metadata.gz: 22d8cfa8073d281f30cec4347d3051e91eed508278d372a8a6f2ddbe41fea400fd800d7ad29669df9706f92cf8d017a7278b09dcbea5fc259b250892432e03c0
7
+ data.tar.gz: 229724023c7c511a60787f6164c8c5dce6421772d7c0aadd864b17c7833bf7e52e16c56e1f1b76c5a2f315bd04ebb835d6910179373103200ce58e16a01fe259
data/.rubocop.yml ADDED
@@ -0,0 +1,58 @@
1
+ AllCops:
2
+ TargetRubyVersion: 3.3
3
+ NewCops: enable
4
+ SuggestExtensions: false
5
+ Exclude:
6
+ - 'vendor/**/*'
7
+ - 'tmp/**/*'
8
+ - 'bin/**/*'
9
+ - 'spec/fixtures/**/*'
10
+
11
+ plugins:
12
+ - rubocop-rake
13
+
14
+
15
+ # Relaxed metrics for DSL-heavy library code
16
+ Metrics/MethodLength:
17
+ Max: 20
18
+ Exclude:
19
+ - 'spec/**/*'
20
+
21
+ Metrics/ClassLength:
22
+ Max: 150
23
+ Exclude:
24
+ - 'spec/**/*'
25
+
26
+ Metrics/BlockLength:
27
+ Max: 30
28
+ Exclude:
29
+ - 'spec/**/*'
30
+ - '*.gemspec'
31
+
32
+ Metrics/AbcSize:
33
+ Max: 25
34
+
35
+ Metrics/CyclomaticComplexity:
36
+ Max: 10
37
+
38
+ Metrics/ParameterLists:
39
+ Max: 6
40
+
41
+ # Documentation is nice but not required for internal classes
42
+ Style/Documentation:
43
+ Enabled: false
44
+
45
+ Style/StringLiterals:
46
+ Enabled: false
47
+
48
+ # Allow longer lines for readability
49
+ Layout/LineLength:
50
+ Max: 120
51
+ Exclude:
52
+ - 'spec/**/*'
53
+
54
+ Gemspec/RequireMFA:
55
+ Enabled: false
56
+
57
+ Metrics:
58
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -5,6 +5,21 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.1.4] - 2025-01-27
9
+
10
+ ### Fixed
11
+ - Fixed CLAUDE.md overwriting user's existing directives
12
+ - Now uses Claude's file reference syntax (@file) to include context
13
+ - Fixed swarm configuration filename (claude-swarm.yml not swarm.yml)
14
+ - Updated documentation to clarify prompts vs commands
15
+ - Improved generator to preserve existing CLAUDE.md content
16
+
17
+ ### Changed
18
+ - ClaudeOnRails context now stored in `.claude-on-rails/context.md`
19
+ - CLAUDE.md uses file references instead of appending content
20
+ - Clearer distinction between shell commands and Claude prompts
21
+ - Updated .gitignore to include `.claude-swarm/` directory
22
+
8
23
  ## [0.1.3] - 2025-01-26
9
24
 
10
25
  ### Fixed
data/Gemfile CHANGED
@@ -1,7 +1,10 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in claude-on-rails.gemspec
4
6
  gemspec
5
7
 
6
- gem "rake", "~> 13.0"
7
- gem "rspec", "~> 3.0"
8
+ gem 'rake', '~> 13.0'
9
+ gem 'rspec', '~> 3.0'
10
+ gem 'rubocop-rake', '~> 0.6'
data/Gemfile.lock ADDED
@@ -0,0 +1,346 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ claude-on-rails (0.1.4)
5
+ claude_swarm (~> 0.1)
6
+ rails (>= 6.0)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actioncable (8.0.2)
12
+ actionpack (= 8.0.2)
13
+ activesupport (= 8.0.2)
14
+ nio4r (~> 2.0)
15
+ websocket-driver (>= 0.6.1)
16
+ zeitwerk (~> 2.6)
17
+ actionmailbox (8.0.2)
18
+ actionpack (= 8.0.2)
19
+ activejob (= 8.0.2)
20
+ activerecord (= 8.0.2)
21
+ activestorage (= 8.0.2)
22
+ activesupport (= 8.0.2)
23
+ mail (>= 2.8.0)
24
+ actionmailer (8.0.2)
25
+ actionpack (= 8.0.2)
26
+ actionview (= 8.0.2)
27
+ activejob (= 8.0.2)
28
+ activesupport (= 8.0.2)
29
+ mail (>= 2.8.0)
30
+ rails-dom-testing (~> 2.2)
31
+ actionpack (8.0.2)
32
+ actionview (= 8.0.2)
33
+ activesupport (= 8.0.2)
34
+ nokogiri (>= 1.8.5)
35
+ rack (>= 2.2.4)
36
+ rack-session (>= 1.0.1)
37
+ rack-test (>= 0.6.3)
38
+ rails-dom-testing (~> 2.2)
39
+ rails-html-sanitizer (~> 1.6)
40
+ useragent (~> 0.16)
41
+ actiontext (8.0.2)
42
+ actionpack (= 8.0.2)
43
+ activerecord (= 8.0.2)
44
+ activestorage (= 8.0.2)
45
+ activesupport (= 8.0.2)
46
+ globalid (>= 0.6.0)
47
+ nokogiri (>= 1.8.5)
48
+ actionview (8.0.2)
49
+ activesupport (= 8.0.2)
50
+ builder (~> 3.1)
51
+ erubi (~> 1.11)
52
+ rails-dom-testing (~> 2.2)
53
+ rails-html-sanitizer (~> 1.6)
54
+ activejob (8.0.2)
55
+ activesupport (= 8.0.2)
56
+ globalid (>= 0.3.6)
57
+ activemodel (8.0.2)
58
+ activesupport (= 8.0.2)
59
+ activerecord (8.0.2)
60
+ activemodel (= 8.0.2)
61
+ activesupport (= 8.0.2)
62
+ timeout (>= 0.4.0)
63
+ activestorage (8.0.2)
64
+ actionpack (= 8.0.2)
65
+ activejob (= 8.0.2)
66
+ activerecord (= 8.0.2)
67
+ activesupport (= 8.0.2)
68
+ marcel (~> 1.0)
69
+ activesupport (8.0.2)
70
+ base64
71
+ benchmark (>= 0.3)
72
+ bigdecimal
73
+ concurrent-ruby (~> 1.0, >= 1.3.1)
74
+ connection_pool (>= 2.2.5)
75
+ drb
76
+ i18n (>= 1.6, < 2)
77
+ logger (>= 1.4.2)
78
+ minitest (>= 5.1)
79
+ securerandom (>= 0.3)
80
+ tzinfo (~> 2.0, >= 2.0.5)
81
+ uri (>= 0.13.1)
82
+ addressable (2.8.7)
83
+ public_suffix (>= 2.0.2, < 7.0)
84
+ ast (2.4.3)
85
+ base64 (0.3.0)
86
+ benchmark (0.4.1)
87
+ bigdecimal (3.2.2)
88
+ builder (3.3.0)
89
+ claude_swarm (0.1.20)
90
+ fast-mcp-annotations
91
+ thor (~> 1.3)
92
+ zeitwerk (~> 2.7.3)
93
+ concurrent-ruby (1.3.5)
94
+ connection_pool (2.5.3)
95
+ crass (1.0.6)
96
+ date (3.4.1)
97
+ diff-lcs (1.6.2)
98
+ drb (2.2.3)
99
+ dry-configurable (1.3.0)
100
+ dry-core (~> 1.1)
101
+ zeitwerk (~> 2.6)
102
+ dry-core (1.1.0)
103
+ concurrent-ruby (~> 1.0)
104
+ logger
105
+ zeitwerk (~> 2.6)
106
+ dry-inflector (1.2.0)
107
+ dry-initializer (3.2.0)
108
+ dry-logic (1.6.0)
109
+ bigdecimal
110
+ concurrent-ruby (~> 1.0)
111
+ dry-core (~> 1.1)
112
+ zeitwerk (~> 2.6)
113
+ dry-schema (1.14.1)
114
+ concurrent-ruby (~> 1.0)
115
+ dry-configurable (~> 1.0, >= 1.0.1)
116
+ dry-core (~> 1.1)
117
+ dry-initializer (~> 3.2)
118
+ dry-logic (~> 1.5)
119
+ dry-types (~> 1.8)
120
+ zeitwerk (~> 2.6)
121
+ dry-types (1.8.3)
122
+ bigdecimal (~> 3.0)
123
+ concurrent-ruby (~> 1.0)
124
+ dry-core (~> 1.0)
125
+ dry-inflector (~> 1.0)
126
+ dry-logic (~> 1.4)
127
+ zeitwerk (~> 2.6)
128
+ erb (5.0.1)
129
+ erubi (1.13.1)
130
+ fast-mcp-annotations (1.5.2)
131
+ addressable (~> 2.8)
132
+ base64
133
+ dry-schema (~> 1.14)
134
+ json (~> 2.0)
135
+ mime-types (~> 3.4)
136
+ rack (~> 3.1)
137
+ globalid (1.2.1)
138
+ activesupport (>= 6.1)
139
+ i18n (1.14.7)
140
+ concurrent-ruby (~> 1.0)
141
+ io-console (0.8.0)
142
+ irb (1.15.2)
143
+ pp (>= 0.6.0)
144
+ rdoc (>= 4.0.0)
145
+ reline (>= 0.4.2)
146
+ json (2.12.2)
147
+ language_server-protocol (3.17.0.5)
148
+ lint_roller (1.1.0)
149
+ logger (1.7.0)
150
+ loofah (2.24.1)
151
+ crass (~> 1.0.2)
152
+ nokogiri (>= 1.12.0)
153
+ mail (2.8.1)
154
+ mini_mime (>= 0.1.1)
155
+ net-imap
156
+ net-pop
157
+ net-smtp
158
+ marcel (1.0.4)
159
+ mime-types (3.7.0)
160
+ logger
161
+ mime-types-data (~> 3.2025, >= 3.2025.0507)
162
+ mime-types-data (3.2025.0624)
163
+ mini_mime (1.1.5)
164
+ minitest (5.25.5)
165
+ net-imap (0.5.9)
166
+ date
167
+ net-protocol
168
+ net-pop (0.1.2)
169
+ net-protocol
170
+ net-protocol (0.2.2)
171
+ timeout
172
+ net-smtp (0.5.1)
173
+ net-protocol
174
+ nio4r (2.7.4)
175
+ nokogiri (1.18.8-aarch64-linux-gnu)
176
+ racc (~> 1.4)
177
+ nokogiri (1.18.8-aarch64-linux-musl)
178
+ racc (~> 1.4)
179
+ nokogiri (1.18.8-arm-linux-gnu)
180
+ racc (~> 1.4)
181
+ nokogiri (1.18.8-arm-linux-musl)
182
+ racc (~> 1.4)
183
+ nokogiri (1.18.8-arm64-darwin)
184
+ racc (~> 1.4)
185
+ nokogiri (1.18.8-x86_64-darwin)
186
+ racc (~> 1.4)
187
+ nokogiri (1.18.8-x86_64-linux-gnu)
188
+ racc (~> 1.4)
189
+ nokogiri (1.18.8-x86_64-linux-musl)
190
+ racc (~> 1.4)
191
+ parallel (1.27.0)
192
+ parser (3.3.8.0)
193
+ ast (~> 2.4.1)
194
+ racc
195
+ pp (0.6.2)
196
+ prettyprint
197
+ prettyprint (0.2.0)
198
+ prism (1.4.0)
199
+ psych (5.2.6)
200
+ date
201
+ stringio
202
+ public_suffix (6.0.2)
203
+ racc (1.8.1)
204
+ rack (3.1.16)
205
+ rack-session (2.1.1)
206
+ base64 (>= 0.1.0)
207
+ rack (>= 3.0.0)
208
+ rack-test (2.2.0)
209
+ rack (>= 1.3)
210
+ rackup (2.2.1)
211
+ rack (>= 3)
212
+ rails (8.0.2)
213
+ actioncable (= 8.0.2)
214
+ actionmailbox (= 8.0.2)
215
+ actionmailer (= 8.0.2)
216
+ actionpack (= 8.0.2)
217
+ actiontext (= 8.0.2)
218
+ actionview (= 8.0.2)
219
+ activejob (= 8.0.2)
220
+ activemodel (= 8.0.2)
221
+ activerecord (= 8.0.2)
222
+ activestorage (= 8.0.2)
223
+ activesupport (= 8.0.2)
224
+ bundler (>= 1.15.0)
225
+ railties (= 8.0.2)
226
+ rails-dom-testing (2.3.0)
227
+ activesupport (>= 5.0.0)
228
+ minitest
229
+ nokogiri (>= 1.6)
230
+ rails-html-sanitizer (1.6.2)
231
+ loofah (~> 2.21)
232
+ nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
233
+ railties (8.0.2)
234
+ actionpack (= 8.0.2)
235
+ activesupport (= 8.0.2)
236
+ irb (~> 1.13)
237
+ rackup (>= 1.0.0)
238
+ rake (>= 12.2)
239
+ thor (~> 1.0, >= 1.2.2)
240
+ zeitwerk (~> 2.6)
241
+ rainbow (3.1.1)
242
+ rake (13.3.0)
243
+ rdoc (6.14.1)
244
+ erb
245
+ psych (>= 4.0.0)
246
+ regexp_parser (2.10.0)
247
+ reline (0.6.1)
248
+ io-console (~> 0.5)
249
+ rspec (3.13.1)
250
+ rspec-core (~> 3.13.0)
251
+ rspec-expectations (~> 3.13.0)
252
+ rspec-mocks (~> 3.13.0)
253
+ rspec-core (3.13.5)
254
+ rspec-support (~> 3.13.0)
255
+ rspec-expectations (3.13.5)
256
+ diff-lcs (>= 1.2.0, < 2.0)
257
+ rspec-support (~> 3.13.0)
258
+ rspec-mocks (3.13.5)
259
+ diff-lcs (>= 1.2.0, < 2.0)
260
+ rspec-support (~> 3.13.0)
261
+ rspec-rails (5.1.2)
262
+ actionpack (>= 5.2)
263
+ activesupport (>= 5.2)
264
+ railties (>= 5.2)
265
+ rspec-core (~> 3.10)
266
+ rspec-expectations (~> 3.10)
267
+ rspec-mocks (~> 3.10)
268
+ rspec-support (~> 3.10)
269
+ rspec-support (3.13.4)
270
+ rubocop (1.77.0)
271
+ json (~> 2.3)
272
+ language_server-protocol (~> 3.17.0.2)
273
+ lint_roller (~> 1.1.0)
274
+ parallel (~> 1.10)
275
+ parser (>= 3.3.0.2)
276
+ rainbow (>= 2.2.2, < 4.0)
277
+ regexp_parser (>= 2.9.3, < 3.0)
278
+ rubocop-ast (>= 1.45.1, < 2.0)
279
+ ruby-progressbar (~> 1.7)
280
+ unicode-display_width (>= 2.4.0, < 4.0)
281
+ rubocop-ast (1.45.1)
282
+ parser (>= 3.3.7.2)
283
+ prism (~> 1.4)
284
+ rubocop-capybara (2.22.1)
285
+ lint_roller (~> 1.1)
286
+ rubocop (~> 1.72, >= 1.72.1)
287
+ rubocop-factory_bot (2.27.1)
288
+ lint_roller (~> 1.1)
289
+ rubocop (~> 1.72, >= 1.72.1)
290
+ rubocop-rails (2.32.0)
291
+ activesupport (>= 4.2.0)
292
+ lint_roller (~> 1.1)
293
+ rack (>= 1.1)
294
+ rubocop (>= 1.75.0, < 2.0)
295
+ rubocop-ast (>= 1.44.0, < 2.0)
296
+ rubocop-rake (0.7.1)
297
+ lint_roller (~> 1.1)
298
+ rubocop (>= 1.72.1)
299
+ rubocop-rspec (2.31.0)
300
+ rubocop (~> 1.40)
301
+ rubocop-capybara (~> 2.17)
302
+ rubocop-factory_bot (~> 2.22)
303
+ rubocop-rspec_rails (~> 2.28)
304
+ rubocop-rspec_rails (2.29.1)
305
+ rubocop (~> 1.61)
306
+ ruby-progressbar (1.13.0)
307
+ securerandom (0.4.1)
308
+ stringio (3.1.7)
309
+ thor (1.3.2)
310
+ timeout (0.4.3)
311
+ tzinfo (2.0.6)
312
+ concurrent-ruby (~> 1.0)
313
+ unicode-display_width (3.1.4)
314
+ unicode-emoji (~> 4.0, >= 4.0.4)
315
+ unicode-emoji (4.0.4)
316
+ uri (1.0.3)
317
+ useragent (0.16.11)
318
+ websocket-driver (0.8.0)
319
+ base64
320
+ websocket-extensions (>= 0.1.0)
321
+ websocket-extensions (0.1.5)
322
+ zeitwerk (2.7.3)
323
+
324
+ PLATFORMS
325
+ aarch64-linux-gnu
326
+ aarch64-linux-musl
327
+ arm-linux-gnu
328
+ arm-linux-musl
329
+ arm64-darwin
330
+ x86_64-darwin
331
+ x86_64-linux-gnu
332
+ x86_64-linux-musl
333
+
334
+ DEPENDENCIES
335
+ bundler (~> 2.0)
336
+ claude-on-rails!
337
+ rake (~> 13.0)
338
+ rspec (~> 3.0)
339
+ rspec-rails (~> 5.0)
340
+ rubocop (~> 1.0)
341
+ rubocop-rails (~> 2.0)
342
+ rubocop-rake (~> 0.6)
343
+ rubocop-rspec (~> 2.0)
344
+
345
+ BUNDLED WITH
346
+ 2.5.23
data/README.md CHANGED
@@ -107,8 +107,9 @@ After running the generator, you'll have:
107
107
  ```
108
108
  your-rails-app/
109
109
  ├── claude-swarm.yml # Swarm configuration
110
- ├── CLAUDE.md # Project-specific Claude config
110
+ ├── CLAUDE.md # Project-specific Claude config (imports context.md)
111
111
  └── .claude-on-rails/
112
+ ├── context.md # Rails project context imported by CLAUDE.md
112
113
  └── prompts/ # Agent-specific prompts
113
114
  ├── architect.md
114
115
  ├── models.md
@@ -154,8 +155,8 @@ Customize agent behavior by editing prompts in `.claude-on-rails/prompts/`:
154
155
 
155
156
  - Ruby 2.7+
156
157
  - Rails 6.0+
157
- - Claude Code CLI (`npm install -g @anthropic-ai/claude-code`)
158
- - claude_swarm gem (automatically installed as a dependency)
158
+ - [claude-swarm](https://github.com/parruda/claude-swarm) gem (automatically installed as a dependency)
159
+ - Claude Code CLI
159
160
 
160
161
  ## Examples
161
162
 
data/Rakefile CHANGED
@@ -1,9 +1,19 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ # frozen_string_literal: true
3
2
 
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
5
+
6
+ # RSpec task
4
7
  RSpec::Core::RakeTask.new(:spec)
5
8
 
6
- require "rubocop/rake_task"
7
- RuboCop::RakeTask.new
9
+ require 'rubocop/rake_task'
10
+
11
+ RuboCop::RakeTask.new(:rubocop_ci)
12
+
13
+ task ci: %i[spec rubocop_ci]
14
+
15
+ RuboCop::RakeTask.new(:rubocop) do |task|
16
+ task.options = ['--autocorrect']
17
+ end
8
18
 
9
- task default: %i[spec rubocop]
19
+ task default: %i[spec rubocop]
@@ -1,14 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ClaudeOnRails
2
4
  class Configuration
3
5
  attr_accessor :default_model, :vibe_mode, :session_directory, :log_directory
4
-
6
+
5
7
  def initialize
6
- @default_model = "opus"
8
+ @default_model = 'opus'
7
9
  @vibe_mode = true
8
- @session_directory = ".claude-on-rails/sessions"
9
- @log_directory = ".claude-on-rails/logs"
10
+ @session_directory = '.claude-on-rails/sessions'
11
+ @log_directory = '.claude-on-rails/logs'
10
12
  end
11
-
13
+
12
14
  def to_h
13
15
  {
14
16
  default_model: default_model,
@@ -18,4 +20,4 @@ module ClaudeOnRails
18
20
  }
19
21
  end
20
22
  end
21
- end
23
+ end