openclacky 0.6.4 → 0.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dcf90e79799d6f487ba77c084b9b3b72fc7c5252e2ffc7a3e56a0973bb9df977
4
- data.tar.gz: 52a2e19427036920d29ee27c5021f731cfc924fc9c6800e22040a017f74c7fc7
3
+ metadata.gz: 93be1b075712d3d861045372db397b88a33918d3f9b7e7572d19b0e0b3400da7
4
+ data.tar.gz: 401b05cf051d54189884860275030b1c71716ae8864231ea2da6bfd1f900f3e6
5
5
  SHA512:
6
- metadata.gz: 90180817198ad434c4920c855e92215fafe0495f11b93cdf156e1a1a13239219bf3d68f061900265165cf897d601f6913a8815e5c22e60d341cdb3ea6b661bde
7
- data.tar.gz: e09ba63257284794970bd5929d1e310465120e98fe5330be371cd5a00935976f1e537843b7d05e7532400f757564a8be860b3621125f665fecb30eb81ff76199
6
+ metadata.gz: bca76237b75f2bb9de6b2f9a82238f2174a6de1fa9a9ab377675652e6ec616836e32ef74c2eeb0fadd7cbc417baf00c56277b8dc8299593e133dd014174572f2
7
+ data.tar.gz: 93a13538a3f50ec847f9db2452d9e99ad5e87e86571e088601fb3329544b5446e55b60bf0cdb72acc53475735a5441152250e8e7ed34bcc14f30a4f819c49098
@@ -0,0 +1,272 @@
1
+ ---
2
+ name: commit
3
+ description: Smart Git commit helper that analyzes changes and creates semantic commits
4
+ disable-model-invocation: false
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Smart Commit Skill
9
+
10
+ This skill helps users create well-structured, semantic git commits by analyzing changes and suggesting appropriate commit messages.
11
+
12
+ ## Overview
13
+
14
+ This skill automates the process of reviewing git changes and creating meaningful, conventional commits following the semantic commit format (feat/fix/chore/test).
15
+
16
+ ## Usage
17
+
18
+ To use this skill, simply say:
19
+ - "Help me commit my changes"
20
+ - "Create semantic commits"
21
+ - "Review and commit changes"
22
+ - Use the command: `/commit`
23
+
24
+ ## Process Steps
25
+
26
+ ### 1. Analyze Git Status
27
+
28
+ First, check the current git status to understand:
29
+ - What files have been modified, added, or deleted
30
+ - Which files are staged vs unstaged
31
+ - Overall state of the working directory
32
+
33
+ ```bash
34
+ git status
35
+ git diff --stat
36
+ ```
37
+
38
+ ### 2. Review Changes in Detail
39
+
40
+ For each changed file, analyze:
41
+ - The nature of changes (new feature, bug fix, refactoring, tests, documentation)
42
+ - Scope of changes (which component/module)
43
+ - Impact level (minor tweak vs major change)
44
+
45
+ ```bash
46
+ git diff <file>
47
+ ```
48
+
49
+ ### 3. Generate Commit Messages
50
+
51
+ Based on the analysis, generate commit messages following the conventional commit format:
52
+
53
+ **Format**: `<type>: <description>`
54
+
55
+ **Types**:
56
+ - `feat`: New features or functionality
57
+ - `fix`: Bug fixes
58
+ - `chore`: Routine tasks, maintenance, dependencies
59
+ - `test`: Adding or modifying tests
60
+ - `docs`: Documentation changes
61
+ - `refactor`: Code refactoring without changing functionality
62
+ - `style`: Code style changes (formatting, whitespace)
63
+ - `perf`: Performance improvements
64
+
65
+ **Guidelines**:
66
+ - Keep messages concise (ideally under 50 characters)
67
+ - Use imperative mood ("add feature" not "added feature")
68
+ - Don't end with a period
69
+ - Be specific but brief
70
+ - One logical change per commit
71
+
72
+ **Examples**:
73
+ - `feat: add user authentication`
74
+ - `fix: resolve memory leak in parser`
75
+ - `chore: update dependencies`
76
+ - `test: add unit tests for validator`
77
+ - `docs: update README installation steps`
78
+
79
+ ### 4. Group Changes
80
+
81
+ Organize changes into logical commits:
82
+ - Group related changes together
83
+ - Separate features, fixes, and chores
84
+ - Keep commits atomic and focused
85
+ - Suggest the order of commits
86
+
87
+ ### 5. Present Suggestions
88
+
89
+ Show the user:
90
+ - List of proposed commits
91
+ - Files included in each commit
92
+ - Commit message for each group
93
+ - Brief explanation of the grouping logic
94
+
95
+ Format:
96
+ ```
97
+ Commit 1: feat: add login endpoint
98
+ - lib/api/auth.rb
99
+ - spec/api/auth_spec.rb
100
+
101
+ Commit 2: fix: resolve timeout in database connection
102
+ - lib/database/connection.rb
103
+
104
+ Commit 3: chore: update rubocop configuration
105
+ - .rubocop.yml
106
+ ```
107
+
108
+ ### 6. Get User Confirmation
109
+
110
+ Ask the user:
111
+ - Review the proposed commits
112
+ - Confirm if they want to proceed
113
+ - Allow modifications if needed
114
+ - Get explicit approval before committing
115
+
116
+ ### 7. Execute Commits
117
+
118
+ For each approved commit:
119
+ ```bash
120
+ # Stage specific files
121
+ git add <file1> <file2> ...
122
+
123
+ # Create commit with message
124
+ git commit -m "<type>: <description>"
125
+ ```
126
+
127
+ Provide feedback after each commit:
128
+ - Confirm successful commit
129
+ - Show commit hash
130
+ - Display summary
131
+
132
+ ### 8. Final Summary
133
+
134
+ After all commits:
135
+ - Show total number of commits created
136
+ - List all commit messages
137
+ - Suggest next steps (e.g., git push)
138
+
139
+ ## Commands Used
140
+
141
+ ```bash
142
+ # Check status
143
+ git status
144
+ git status --short
145
+
146
+ # View changes
147
+ git diff
148
+ git diff --stat
149
+ git diff <file>
150
+
151
+ # Stage files
152
+ git add <file>
153
+
154
+ # Create commit
155
+ git commit -m "message"
156
+
157
+ # View commit history
158
+ git log --oneline -n 5
159
+ ```
160
+
161
+ ## Workflow Example
162
+
163
+ ```
164
+ User: /commit
165
+
166
+ AI:
167
+ 1. Analyzing git status...
168
+ Found 5 modified files
169
+
170
+ 2. Reviewing changes...
171
+ - lib/user.rb: New user registration feature
172
+ - lib/auth.rb: Fix password validation bug
173
+ - spec/user_spec.rb: Tests for user registration
174
+ - spec/auth_spec.rb: Tests for auth fix
175
+ - Gemfile: Updated dependencies
176
+
177
+ 3. Proposed commits:
178
+
179
+ Commit 1: feat: add user registration
180
+ - lib/user.rb
181
+ - spec/user_spec.rb
182
+
183
+ Commit 2: fix: correct password validation logic
184
+ - lib/auth.rb
185
+ - spec/auth_spec.rb
186
+
187
+ Commit 3: chore: update gem dependencies
188
+ - Gemfile
189
+
190
+ Do you want to proceed with these commits? (yes/no)
191
+
192
+ User: yes
193
+
194
+ AI:
195
+ ✓ Commit 1 created (a1b2c3d): feat: add user registration
196
+ ✓ Commit 2 created (e4f5g6h): fix: correct password validation logic
197
+ ✓ Commit 3 created (i7j8k9l): chore: update gem dependencies
198
+
199
+ Summary: 3 commits created successfully!
200
+ Next steps: Review with 'git log' or push with 'git push'
201
+ ```
202
+
203
+ ## Best Practices
204
+
205
+ ### Commit Message Rules
206
+ - Start with lowercase (except proper nouns)
207
+ - Use present tense imperative
208
+ - Be specific but concise
209
+ - Focus on "what" and "why", not "how"
210
+
211
+ ### Commit Organization
212
+ - One logical change per commit
213
+ - Keep features separate from fixes
214
+ - Don't mix refactoring with new features
215
+ - Test files go with their related code changes
216
+
217
+ ### When to Split Commits
218
+ - Multiple unrelated features
219
+ - Features and bug fixes mixed
220
+ - Code changes and config changes
221
+ - Different modules/components affected
222
+
223
+ ### When to Combine Changes
224
+ - Related test and implementation
225
+ - Multiple files for same feature
226
+ - Complementary changes for same fix
227
+
228
+ ## Error Handling
229
+
230
+ - **No changes detected**: Inform user and exit gracefully
231
+ - **Merge conflicts**: Warn user to resolve conflicts first
232
+ - **Detached HEAD**: Alert user about repository state
233
+ - **Uncommitted changes during conflict**: Suggest stashing or committing
234
+ - **Empty commit message**: Request user input for clarification
235
+
236
+ ## Safety Features
237
+
238
+ - Always review changes before committing
239
+ - Require user confirmation before executing commits
240
+ - Show exactly which files will be in each commit
241
+ - Allow user to modify suggestions
242
+ - Never force commits without approval
243
+ - Preserve git history integrity
244
+
245
+ ## Integration with Workflow
246
+
247
+ This skill works best:
248
+ - After completing a feature or fix
249
+ - Before pushing to remote
250
+ - During code review preparation
251
+ - When cleaning up messy commit history (use with `git reset` first)
252
+
253
+ ## Notes
254
+
255
+ - This skill does NOT push commits (user controls when to push)
256
+ - Follows conventional commits specification
257
+ - Encourages atomic, well-documented commits
258
+ - Helps maintain clean git history
259
+ - Useful for both beginners and experienced developers
260
+
261
+ ## Dependencies
262
+
263
+ - Git installed and configured
264
+ - Working directory is a git repository
265
+ - User has permissions to commit
266
+ - Changes exist to commit
267
+
268
+ ## Version History
269
+
270
+ - Created: 2025-02-01
271
+ - Purpose: Improve commit quality and development workflow
272
+ - Compatible with: Any git repository
@@ -0,0 +1,253 @@
1
+ ---
2
+ name: gem-release
3
+ description: Automates the complete process of releasing a new version of the openclacky Ruby gem
4
+ disable-model-invocation: false
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Gem Release Skill
9
+
10
+ This skill automates the complete process of releasing a new version of the openclacky Ruby gem.
11
+
12
+ ## Overview
13
+
14
+ This skill handles the entire gem release workflow from version bumping to publishing on RubyGems and creating GitHub releases.
15
+
16
+ ## Usage
17
+
18
+ To use this skill, simply say:
19
+ - "Release a new version"
20
+ - "Publish a new gem version"
21
+ - Use the command: `/gem-release`
22
+
23
+ ## Process Steps
24
+
25
+ ### 1. Pre-Release Checks
26
+ - Check for uncommitted changes in the working directory
27
+ - Verify all tests pass before proceeding
28
+ - Ensure the repository is in a clean state
29
+
30
+ ### 2. Version Management
31
+ - Read current version from `lib/clacky/version.rb`
32
+ - Increment version number (typically patch version: x.y.z → x.y.z+1)
33
+ - Update the VERSION constant in the version file
34
+
35
+ ### 3. Quality Assurance
36
+ - Run the full test suite with `bundle exec rspec`
37
+ - Ensure all 167+ tests pass
38
+ - Verify no regressions introduced
39
+
40
+ ### 4. Build Process
41
+ - Build the gem using `gem build openclacky.gemspec`
42
+ - Generate the `.gem` file for distribution
43
+ - Handle any build warnings appropriately
44
+
45
+ ### 5. Update Gemfile.lock and Verify CI
46
+
47
+ 1. **Update Gemfile.lock**
48
+ ```bash
49
+ bundle install
50
+ ```
51
+ This ensures Gemfile.lock reflects the new version.
52
+
53
+ 2. **Commit Gemfile.lock Changes**
54
+ ```bash
55
+ git add Gemfile.lock
56
+ git commit -m "chore: update Gemfile.lock to v{version}"
57
+ ```
58
+
59
+ 3. **Push and Verify CI**
60
+ ```bash
61
+ git push origin main
62
+ ```
63
+ - Wait for CI pipeline to complete successfully
64
+ - Verify all tests pass
65
+ - If CI fails, fix issues before proceeding
66
+
67
+ 4. **Proceed Only After CI Success**
68
+ - If CI fails: stop, fix issues, and restart the release process
69
+ - If CI passes: continue to build and publish
70
+
71
+ ### 6. Build and Publish Gem
72
+
73
+ 1. **Build the Gem**
74
+ ```bash
75
+ gem build openclacky.gemspec
76
+ ```
77
+ Generates `openclacky-{version}.gem` file.
78
+
79
+ 2. **Publish to RubyGems.org**
80
+ ```bash
81
+ gem push openclacky-{version}.gem
82
+ ```
83
+ Verify successful publication.
84
+
85
+ 3. **Create Git Tag and Push**
86
+ ```bash
87
+ git tag v{version}
88
+ git push origin main --tags
89
+ ```
90
+
91
+ 4. **Verify Publication**
92
+ - Check gem appears on RubyGems.org
93
+ - Verify version information is correct
94
+
95
+ ### 6. Documentation - CHANGELOG Writing Process
96
+
97
+ **Critical Step: Review Commits Before Writing CHANGELOG**
98
+
99
+ 1. **Find Previous Version Tag**
100
+ - Get the latest version tag (e.g., v0.6.3)
101
+ - Use `git describe --tags --abbrev=0` or manually identify
102
+
103
+ 2. **Gather All Commits Since Last Release**
104
+ ```bash
105
+ git log {previous_tag}..HEAD --oneline
106
+ git diff {previous_tag}..HEAD --stat
107
+ ```
108
+
109
+ 3. **Analyze and Categorize Commits**
110
+ - Review each commit message and its changes
111
+ - Categorize into:
112
+ - **Major Features**: User-visible functionality additions
113
+ - **Improvements**: Performance, UX, architecture enhancements
114
+ - **Bug Fixes**: Error corrections and issue resolutions
115
+ - **Changes**: Breaking changes or significant refactoring
116
+ - **Minor Details**: Small fixes, style changes, trivial updates
117
+
118
+ 4. **Write CHANGELOG Entries**
119
+
120
+ **Format for Significant Items:**
121
+ ```
122
+ ## [Version] - Date
123
+
124
+ ### Added
125
+ - Feature description (link to related commits)
126
+
127
+ ### Improved
128
+ - Enhancement description
129
+
130
+ ### Fixed
131
+ - Bug fix description
132
+
133
+ ### Changed
134
+ - Breaking change description
135
+ ```
136
+
137
+ **Format for Minor Items (group under "More"):**
138
+ ```
139
+ ### More
140
+ - Minor fix 1
141
+ - Minor fix 2
142
+ ```
143
+
144
+ 5. **Prioritization Rules**:
145
+ - Place user-facing value at the top
146
+ - Group related commits together
147
+ - Skip very trivial commits (typos, minor formatting)
148
+ - Use imperative mood ("Add" not "Added")
149
+
150
+ 6. **Example CHANGELOG Section**:
151
+ ```markdown
152
+ ## [0.6.4] - 2026-02-03
153
+
154
+ ### Added
155
+ - Anthropic API support with full Claude model integration
156
+ - ClaudeCode environment compatibility (ANTHROPIC_API_KEY support)
157
+
158
+ ### Improved
159
+ - API client architecture for multi-provider support
160
+ - Config loading with source tracking
161
+
162
+ ### Fixed
163
+ - Handle absolute paths correctly in glob tool
164
+
165
+ ### More
166
+ - Update dependencies
167
+ - Minor style adjustments
168
+ ```
169
+
170
+ 7. **Commit and Push Documentation Updates**
171
+ - Commit CHANGELOG.md changes
172
+ - Push to remote repository
173
+
174
+ ### 7. Final Verification
175
+ - Confirm the gem appears on RubyGems.org
176
+ - Check that version information is correct
177
+ - Verify installation works for end users
178
+
179
+ ## Commands Used
180
+
181
+ ```bash
182
+ # Pre-release checks
183
+ git status --porcelain
184
+
185
+ # Run tests
186
+ bundle exec rspec
187
+
188
+ # Update Gemfile.lock
189
+ bundle install
190
+ git add Gemfile.lock
191
+ git commit -m "chore: update Gemfile.lock to vX.Y.Z"
192
+ git push origin main
193
+
194
+ # Build and publish gem
195
+ gem build openclacky.gemspec
196
+ gem push openclacky-X.Y.Z.gem
197
+
198
+ # Git operations
199
+ git add lib/clacky/version.rb
200
+ git commit -m "chore: bump version to X.Y.Z"
201
+ git tag vX.Y.Z
202
+ git push origin main
203
+ git push origin --tags
204
+ ```
205
+
206
+ ## File Locations
207
+
208
+ - Version file: `lib/clacky/version.rb`
209
+ - Gem specification: `openclacky.gemspec`
210
+ - Changelog: `CHANGELOG.md`
211
+ - Built gem: `openclacky-{version}.gem`
212
+
213
+ ## Success Criteria
214
+
215
+ - All tests pass
216
+ - CI pipeline completes successfully
217
+ - Gemfile.lock updated and committed
218
+ - New version successfully published to RubyGems
219
+ - Git repository updated with version tag
220
+ - CHANGELOG.md updated with release notes
221
+ - No build or deployment errors
222
+
223
+ ## Error Handling
224
+
225
+ - If tests fail, stop the process and report issues
226
+ - If CI fails after Gemfile.lock update, fix issues before proceeding
227
+ - If gem build fails, check gemspec configuration
228
+ - If git push fails, verify repository permissions
229
+ - If gem push fails, check RubyGems credentials
230
+
231
+ ## Notes
232
+
233
+ - This skill follows semantic versioning
234
+ - Always update CHANGELOG.md as part of the release
235
+ - Verify RubyGems.org shows the new version after publication
236
+ - The search index on RubyGems may take a few minutes to update
237
+
238
+ ## Dependencies
239
+
240
+ - Ruby development environment
241
+ - Git repository access
242
+ - RubyGems account with push permissions
243
+ - Bundle and RSpec for testing
244
+
245
+ ## Version History
246
+
247
+ - Created: 2026-01-18
248
+ - Used for: openclacky gem releases
249
+ - Compatible with: Ruby gems following standard conventions
250
+
251
+ ## User Experience Summary
252
+
253
+ This skill takes the complexity out of gem releases. Instead of remembering 8+ different commands and worrying about the correct order, you just say "release a new version" and the AI handles everything - from running tests to publishing on RubyGems. It's like having an experienced release engineer on your team who never forgets a step, always runs the tests first, and makes sure your changelog is updated. The whole process that used to take 15-20 minutes and multiple terminal windows now happens smoothly in one conversation, with clear feedback at each step so you know exactly what's happening.
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: test-skill
3
+ description: A test skill for demonstrating skill loading
4
+ disable-model-invocation: false
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Test Skill
9
+
10
+ This is a test skill to verify that skills are being loaded into the system prompt.
11
+
12
+ When you see this skill in your context, you should:
13
+ 1. Acknowledge that you have access to this skill
14
+ 2. Explain what this skill does
15
+ 3. Demonstrate that you can use it
data/CHANGELOG.md CHANGED
@@ -7,6 +7,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.6.4] - 2026-02-03
11
+
12
+ ### Added
13
+ - Anthropic API support with full Claude model integration
14
+ - ClaudeCode environment compatibility (ANTHROPIC_API_KEY support)
15
+ - Model configuration with Anthropic defaults (claude-3-5-sonnet-20241022)
16
+ - Enhanced error handling with AgentError and ToolCallError classes
17
+ - format_tool_results for tool result formatting in agent execution
18
+ - Comprehensive test suite for Anthropic API and configuration
19
+ - Absolute path handling in glob tool
20
+
21
+ ### Improved
22
+ - API client architecture for multi-provider support (OpenAI + Anthropic)
23
+ - Config loading with source tracking (file, ClaudeCode, default)
24
+ - Agent execution loop with improved tool result handling
25
+ - Edit tool with improved pattern matching
26
+ - User tip display in terminal
27
+
28
+ ### Changed
29
+ - Refactored Error class to AgentError base class
30
+ - Renamed connection methods for clarity (connection → openai_connection)
31
+
32
+ ### Fixed
33
+ - Handle absolute paths correctly in glob tool
34
+
10
35
  ## [0.6.3] - 2026-02-01
11
36
 
12
37
  ### Added