gempilot 0.2.2 → 0.2.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.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +15 -1
  3. data/CLAUDE.md +2 -9
  4. data/README.md +8 -4
  5. data/data/templates/gem/dotfiles/rubocop.yml.erb +1 -12
  6. data/docs/superpowers/plans/2026-07-20-release-task-hierarchy.md +583 -0
  7. data/docs/superpowers/specs/2026-07-20-release-task-hierarchy-design.md +229 -0
  8. data/issues.rec +74 -3
  9. data/lib/gempilot/cli/commands/console.rb +2 -3
  10. data/lib/gempilot/cli/commands/create.rb +6 -3
  11. data/lib/gempilot/cli/commands/new.rb +2 -3
  12. data/lib/gempilot/cli/commands/release.rb +2 -3
  13. data/lib/gempilot/cli/generator.rb +2 -1
  14. data/lib/gempilot/github_release.rb +0 -2
  15. data/lib/gempilot/origin.rb +52 -0
  16. data/lib/gempilot/project.rb +25 -5
  17. data/lib/gempilot/release_tasks.rb +73 -0
  18. data/lib/gempilot/version.rb +1 -1
  19. data/lib/gempilot/version_task.rb +3 -16
  20. data/vendor/vendored.gemv +0 -0
  21. metadata +8 -14
  22. data/docs/command_kit_comparison.md +0 -249
  23. data/docs/command_kit_reference.md +0 -517
  24. data/docs/plans/2026-02-18-gempilot-add-command.md +0 -718
  25. data/docs/superpowers/plans/2026-04-01-rubocop-new-config.md +0 -838
  26. data/docs/superpowers/plans/2026-04-06-dogfood-inflectable.md +0 -659
  27. data/docs/superpowers/plans/2026-04-06-inflection-tests-and-erb-rename.md +0 -166
  28. data/docs/superpowers/plans/2026-04-06-integrate-version-tools.md +0 -162
  29. data/docs/superpowers/plans/2026-04-06-new-readme.md +0 -185
  30. data/docs/superpowers/plans/2026-06-09-address-review-critiques.md +0 -679
  31. data/docs/version-management-redesign.md +0 -44
  32. data/notes.md +0 -31
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 48657265841f0000324b7cfca38d98ed1a45a59e7906810660a8e9e047042286
4
- data.tar.gz: 9a084c85bfeec3ea094da9e7b7b245a0e30a050631db84acf8d434e88470b948
3
+ metadata.gz: ed510959d35011586d23fc0dcc0baff3a453a2acbd1a2d1c8fb4489cee63e6e0
4
+ data.tar.gz: 455ba876df7b3fb40df26932737cae4062a6e6e2210f1fd02b18a231566bd23d
5
5
  SHA512:
6
- metadata.gz: 677fa36cce5bf93834debebf366296289b5fe69baf1ecb325d2169aa03140e928373a36052d4e4accfff37aebdfdb5562bbdda09244c5e6e15b1f51b982397c9
7
- data.tar.gz: 8afb56703f50f6f42c56b7049167c498656576c8c4e5061cdd11883b9d32efe0ea7906203391dc809d4197c222f654010439fd38ead128ce9783446dafa50e54
6
+ metadata.gz: 4ce5185ea5c07adc72435dee47b2f749f4f6146f26a09c8d8c557490e4be1b69b2b048e4c9ab32b8548d043c9a0d393cc32a0d8dd23c94c98cabd3a8737334d9
7
+ data.tar.gz: 6094227a45e9bb173f0455dc155bd3ac7593698a7c41c7ac1482c5e7c44a59a90c547bb20206d3c7887b87a84977fc1f7ca615b2975fe53dc6a8ab85384a83e8
data/.rubocop.yml CHANGED
@@ -18,7 +18,7 @@ plugins:
18
18
 
19
19
  AllCops:
20
20
  NewCops: enable
21
- TargetRubyVersion: 3.4
21
+ TargetRubyVersion: 4.0
22
22
  Exclude:
23
23
  - bin/*
24
24
  - vendor/**/*
@@ -279,3 +279,17 @@ RSpec/NamedSubject:
279
279
  # have_file_content matcher accepts a filename string in expect()
280
280
  RSpec/ExpectActual:
281
281
  Enabled: false
282
+
283
+ Design/PositionalArguments:
284
+ Enabled: false
285
+
286
+ Design/KeywordArguments:
287
+ Enabled: false
288
+
289
+ Design/TotalArguments:
290
+ Enabled: false
291
+
292
+ Design/AgentNounClassName:
293
+ Exclude:
294
+ - 'lib/gempilot/generator.rb'
295
+ - 'test/gempilot/cli/generator_test.rb'
data/CLAUDE.md CHANGED
@@ -35,12 +35,5 @@ A CLI tool for creating and managing Ruby gems, built on CommandKit.
35
35
  - RuboCop with framework-specific plugins
36
36
  - GitHub Actions CI workflow (`.github/workflows/ci.yml`)
37
37
  - `git ls-files`-based gemspec with glob fallback for non-git repos
38
- - Version lifecycle rake tasks installed via `Gempilot::VersionTask.new` (a `Rake::TaskLib`): `version:current/bump/commit/tag/untag/reset/revert`, composite `version:release`/`version:unrelease`, and `version:github:release/unrelease/list`
39
-
40
- ### Notes
41
- - AutoLoad uses block form in `cli.rb` with explicit `summary:` per command (lazy loading means descriptions aren't available at help time without this)
42
-
43
-
44
- ## ISSUES
45
-
46
- 1. RESOLVED — `exe/gempilot` previously had an unconditional `ENV["BUNDLE_GEMFILE"]` + `require "bundler/setup"`, breaking `gem install` usage. It now guards both behind `if File.exist?(gemfile)` (the Ronin pattern), so installed gems skip Bundler while in-repo runs still use it.
38
+ - Version lifecycle rake tasks installed via `Gempilot::VersionTask.new` (a `Rake::TaskLib`): `version:current/bump/commit/tag/untag/reset/revert` and composite `version:release`/`version:unrelease`
39
+ - Publishing rake tasks (mixed into `VersionTask` via `Gempilot::ReleaseTasks`): `release` (all remotes), `release:rubygems`, `release:github`, `release:list:github`, `unrelease`, `unrelease:github`. These override and reuse bundler's `bundler/gem_tasks` release chain; `release:source_control_push` is replaced with `Gempilot::Origin` to push commit+tag idempotently
data/README.md CHANGED
@@ -86,7 +86,8 @@ gempilot bump major
86
86
 
87
87
  ### `gempilot release`
88
88
 
89
- Delegates to `rake release` to build and push the gem.
89
+ Delegates to `rake release`, which publishes the current version to all remotes
90
+ (RubyGems + GitHub).
90
91
 
91
92
  ### `gempilot console`
92
93
 
@@ -120,9 +121,12 @@ Generated gems include rake tasks for the full version lifecycle:
120
121
  | `rake version:revert` | Revert the last version bump commit |
121
122
  | `rake version:release` | Bump, commit, and tag (combined) |
122
123
  | `rake version:unrelease` | Untag and reset (combined) |
123
- | `rake version:github:release` | Push and create a GitHub release |
124
- | `rake version:github:unrelease` | Delete the GitHub release |
125
- | `rake version:github:list` | List GitHub releases |
124
+ | `rake release` | Publish the current version to all remotes (RubyGems + GitHub) |
125
+ | `rake release:rubygems` | Build and push the gem to RubyGems |
126
+ | `rake release:github` | Push commit + tag, then create the GitHub release |
127
+ | `rake release:list:github` | List GitHub releases |
128
+ | `rake unrelease` | Delete the release from all remotes that support it |
129
+ | `rake unrelease:github` | Delete the GitHub release and remote tag |
126
130
 
127
131
  ## Development
128
132
 
@@ -25,12 +25,6 @@ AllCops:
25
25
  Exclude:
26
26
  - bin/*
27
27
  - vendor/**/*
28
- - lib/core_ext/**/*
29
- - rakelib/project.rb
30
- - rakelib/project_version.rb
31
- - rakelib/version_tag.rb
32
- - rakelib/github_release.rb
33
- - rakelib/strict_shell.rb
34
28
  <% if @hyphenated -%>
35
29
  - lib/<%= @gem_name %>.rb
36
30
  <% end -%>
@@ -124,17 +118,12 @@ Metrics/BlockLength:
124
118
  <% end -%>
125
119
  Exclude:
126
120
  - "<%= @gem_name %>.gemspec"
127
- - "rakelib/**/*"
128
121
 
129
- # Gemspec and rake files use patterns that trigger Claude cops legitimately.
122
+ # Gemspec uses patterns that trigger Claude cops legitimately.
130
123
  Claude/NoFancyUnicode:
131
124
  Exclude:
132
125
  - "<%= @gem_name %>.gemspec"
133
126
 
134
- Claude/MysteryRegex:
135
- Exclude:
136
- - "rakelib/**/*"
137
-
138
127
  # Zeitwerk loaders are mutable by design — only flag literal mutable values.
139
128
  Style/MutableConstant:
140
129
  EnforcedStyle: literals