@nomad-e/bluma-cli 0.1.67 → 0.1.68

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.
package/README.md CHANGED
@@ -160,7 +160,7 @@ npm start
160
160
 
161
161
  ```json
162
162
  {
163
- "model": "gpt-4o",
163
+ "model": "auto",
164
164
  "reasoningEffort": "medium",
165
165
  "outputStyle": "concise",
166
166
  "sandboxMode": "confirm",
@@ -171,7 +171,7 @@ npm start
171
171
 
172
172
  | Setting | Values | Description |
173
173
  |---------|--------|-------------|
174
- | `model` | `gpt-4o`, `gpt-4o-mini`, `claude-sonnet-4-20250514` | LLM model |
174
+ | `model` | `auto` | LLM model (FactorRouter decides) |
175
175
  | `reasoningEffort` | `low`, `medium`, `high` | Reasoning depth |
176
176
  | `outputStyle` | `concise`, `balanced`, `verbose` | Response style |
177
177
  | `sandboxMode` | `confirm`, `auto`, `strict` | Tool execution policy |
@@ -340,7 +340,7 @@
340
340
  "type": "function",
341
341
  "function": {
342
342
  "name": "read_file_lines",
343
- "description": "Reads a slice of a text file (Claude Code Read parity). Use filepath only for up to 2000 lines from line 1, or offset+limit, or start_line+end_line. Optional line_number_prefix formats lines like cat -n.",
343
+ "description": "Reads a slice of a text file (Read parity). Use filepath only for up to 2000 lines from line 1, or offset+limit, or start_line+end_line. Optional line_number_prefix formats lines like cat -n.",
344
344
  "parameters": {
345
345
  "type": "object",
346
346
  "properties": {
@@ -800,7 +800,7 @@
800
800
  "type": "function",
801
801
  "function": {
802
802
  "name": "ask_user_question",
803
- "description": "Ask the user one or more multiple-choice questions in the terminal (Claude Code AskUserQuestion). Blocks until they answer. Only the first question is shown; options must be single-select.",
803
+ "description": "Ask the user one or more multiple-choice questions in the terminal (AskUserQuestion). Blocks until they answer. Only the first question is shown; options must be single-select.",
804
804
  "parameters": {
805
805
  "type": "object",
806
806
  "properties": {
@@ -836,7 +836,7 @@
836
836
  "type": "function",
837
837
  "function": {
838
838
  "name": "enter_plan_mode",
839
- "description": "Enter plan-only mode (Claude Code EnterPlanMode parity). While active, edits, writes, shell, spawn_agent, and artifact creation require user confirmation even if normally auto-approved.",
839
+ "description": "Enter plan-only mode (EnterPlanMode parity). While active, edits, writes, shell, spawn_agent, and artifact creation require user confirmation even if normally auto-approved.",
840
840
  "parameters": {
841
841
  "type": "object",
842
842
  "properties": {
@@ -849,7 +849,7 @@
849
849
  "type": "function",
850
850
  "function": {
851
851
  "name": "exit_plan_mode",
852
- "description": "Leave plan mode (Claude Code ExitPlanMode parity). Restores normal auto-approve rules.",
852
+ "description": "Leave plan mode (ExitPlanMode parity). Restores normal auto-approve rules.",
853
853
  "parameters": {
854
854
  "type": "object",
855
855
  "properties": {
@@ -862,7 +862,7 @@
862
862
  "type": "function",
863
863
  "function": {
864
864
  "name": "task_create",
865
- "description": "Create a session task (Claude Code TaskCreate-style). Tasks are scoped to this session.",
865
+ "description": "Create a session task (TaskCreate-style). Tasks are scoped to this session.",
866
866
  "parameters": {
867
867
  "type": "object",
868
868
  "properties": {
@@ -921,7 +921,7 @@
921
921
  "type": "function",
922
922
  "function": {
923
923
  "name": "task_stop",
924
- "description": "Mark a task as cancelled (Claude TaskStop-style).",
924
+ "description": "Mark a task as cancelled (TaskStop-style).",
925
925
  "parameters": {
926
926
  "type": "object",
927
927
  "properties": { "task_id": { "type": "string" } },
@@ -933,7 +933,7 @@
933
933
  "type": "function",
934
934
  "function": {
935
935
  "name": "list_mcp_resources",
936
- "description": "List resources exposed by connected MCP servers (Claude ListMcpResourcesTool parity).",
936
+ "description": "List resources exposed by connected MCP servers (ListMcpResourcesTool parity).",
937
937
  "parameters": {
938
938
  "type": "object",
939
939
  "properties": {
@@ -946,7 +946,7 @@
946
946
  "type": "function",
947
947
  "function": {
948
948
  "name": "read_mcp_resource",
949
- "description": "Read a resource URI from a named MCP server (Claude ReadMcpResourceTool parity).",
949
+ "description": "Read a resource URI from a named MCP server (ReadMcpResourceTool parity).",
950
950
  "parameters": {
951
951
  "type": "object",
952
952
  "properties": {
@@ -961,7 +961,7 @@
961
961
  "type": "function",
962
962
  "function": {
963
963
  "name": "cron_create",
964
- "description": "Schedule a one-shot or repeating user-visible reminder in this CLI session (Claude CronCreate parity). Fires via user_overlay; timers end when the process exits.",
964
+ "description": "Schedule a one-shot or repeating user-visible reminder in this CLI session (CronCreate parity). Fires via user_overlay; timers end when the process exits.",
965
965
  "parameters": {
966
966
  "type": "object",
967
967
  "properties": {
@@ -0,0 +1,18 @@
1
+ BluMa — Base Language Unit · Model Agent
2
+ Proprietary License
3
+
4
+ Copyright (c) 2024-2026 BluMa Contributors
5
+
6
+ This skill is part of the BluMa CLI distribution.
7
+ It is provided as a bundled native skill and may not be
8
+ redistributed, modified, or used outside of the BluMa agent
9
+ framework without prior written permission.
10
+
11
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
12
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
13
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
14
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
15
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
16
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
17
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
18
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,408 @@
1
+ ---
2
+ name: git-release
3
+ description: >
4
+ Use this skill for any task involving software releases: version bumps,
5
+ changelog generation, git tags, GitHub releases, npm publish, and
6
+ release orchestration. Triggers include: "release", "publish",
7
+ "version bump", "changelog", "create release", "cut release",
8
+ "ship it", "deploy version", "tag release", or any request to
9
+ finalize and publish a new version of the software.
10
+ license: Proprietary. LICENSE.txt has complete terms
11
+ ---
12
+
13
+ # Git Release — Professional Release Engineering
14
+
15
+ ## Overview
16
+
17
+ This skill produces **production-grade** releases with consistent versioning,
18
+ comprehensive changelogs, proper tagging, and full traceability. Every release
19
+ carries a BluMa watermark for auditability.
20
+
21
+ ## Release Types
22
+
23
+ | Type | When to use | Version bump |
24
+ |------|-------------|--------------|
25
+ | `major` | Breaking changes, incompatible API changes | `X.0.0` |
26
+ | `minor` | New features, backward-compatible | `0.X.0` |
27
+ | `patch` | Bug fixes, backward-compatible | `0.0.X` |
28
+ | `premajor` | Pre-release for upcoming major | `X.0.0-beta.0` |
29
+ | `preminor` | Pre-release for upcoming minor | `0.X.0-beta.0` |
30
+ | `prepatch` | Pre-release for upcoming patch | `0.0.X-beta.0` |
31
+ | `prerelease` | Pre-release iteration | `0.0.X-beta.N` |
32
+
33
+ ## Pre-Release Checklist
34
+
35
+ Before ANY release, verify:
36
+
37
+ ```bash
38
+ # 1. Clean working tree
39
+ git status --short
40
+ # Must be empty — no uncommitted changes
41
+
42
+ # 2. On the correct branch
43
+ git branch --show-current
44
+ # Usually main or master for releases
45
+
46
+ # 3. Up to date with remote
47
+ git fetch origin
48
+ git status
49
+ # "Your branch is up to date with 'origin/main'"
50
+
51
+ # 4. Tests pass
52
+ npm test
53
+ # All tests must pass — no exceptions
54
+
55
+ # 5. Build succeeds
56
+ npm run build
57
+ # Clean build with no errors or warnings
58
+
59
+ # 6. Lint passes
60
+ npm run lint
61
+ # No lint errors
62
+
63
+ # 7. Review commits since last tag
64
+ git log v<current>..HEAD --oneline
65
+ # Understand what's being released
66
+ ```
67
+
68
+ If ANY check fails, STOP and fix before proceeding.
69
+
70
+ ## Step 1: Determine Version Bump
71
+
72
+ ### Option A: Automatic (from Conventional Commits)
73
+
74
+ Analyze commits since the last tag:
75
+
76
+ ```bash
77
+ git log v<current>..HEAD --oneline
78
+ ```
79
+
80
+ Determine the highest-impact type:
81
+ - Any `BREAKING CHANGE` or `feat!` → **major**
82
+ - Any `feat` → **minor**
83
+ - Only `fix`, `docs`, `refactor`, `perf`, `test`, `chore` → **patch**
84
+
85
+ ### Option B: Explicit
86
+
87
+ User specifies: `/release minor`, `/release patch`, `/release major`
88
+
89
+ ### Calculate next version:
90
+
91
+ ```bash
92
+ # Current version from package.json
93
+ cat package.json | grep '"version"'
94
+
95
+ # Or from git tag
96
+ git describe --tags --abbrev=0
97
+
98
+ # Bump logic:
99
+ # 0.1.67 + patch = 0.1.68
100
+ # 0.1.67 + minor = 0.2.0
101
+ # 0.1.67 + major = 1.0.0
102
+ ```
103
+
104
+ ## Step 2: Generate Changelog
105
+
106
+ Create a structured CHANGELOG.md entry. Group commits by type:
107
+
108
+ ```markdown
109
+ ## [v0.2.0] - 2026-04-16
110
+
111
+ ### 🚀 Features
112
+ - **(auth)**: add JWT refresh token rotation (#42)
113
+ - **(ui)**: add dark mode toggle
114
+
115
+ ### 🐛 Bug Fixes
116
+ - **(api)**: fix null pointer in session validation (#55)
117
+ - **(cli)**: resolve timeout on large file reads
118
+
119
+ ### ⚡ Performance
120
+ - **(core)**: optimize context compression algorithm
121
+
122
+ ### 🔧 Chores
123
+ - **(deps)**: bump react from 18.2 to 19.0
124
+ - **(ci)**: add Node 22 to test matrix
125
+
126
+ ### 📝 Documentation
127
+ - **(readme)**: update installation instructions
128
+
129
+ ### 💥 Breaking Changes
130
+ - **(api)**: remove deprecated `/v1/legacy` endpoint
131
+
132
+ ---
133
+
134
+ > *Generated by [BluMa — Base Language Unit · Model Agent](https://github.com/Nomad-e/bluma-cli)*
135
+ ```
136
+
137
+ ### Commands to gather data:
138
+
139
+ ```bash
140
+ # All commits since last tag
141
+ git log v<current>..HEAD --format="%h|%s|%an|%ad" --date=short
142
+
143
+ # Commits by type
144
+ git log v<current>..HEAD --oneline --grep="^feat"
145
+ git log v<current>..HEAD --oneline --grep="^fix"
146
+ git log v<current>..HEAD --oneline --grep="^BREAKING"
147
+
148
+ # Diff stats
149
+ git log v<current>..HEAD --stat --oneline
150
+
151
+ # Contributors
152
+ git log v<current>..HEAD --format="%an" | sort | uniq -c | sort -rn
153
+ ```
154
+
155
+ ## Step 3: Update Version
156
+
157
+ ### package.json
158
+
159
+ ```bash
160
+ # Using npm (recommended — updates package.json + package-lock.json)
161
+ npm version <type> --no-git-tag-version
162
+
163
+ # Or manually edit package.json
164
+ # "version": "0.1.68"
165
+ ```
166
+
167
+ ### Other version files (if they exist):
168
+
169
+ - `src/version.ts` or `src/version.js`
170
+ - `src/app/version.ts`
171
+ - `.version`
172
+ - Any file containing the version string
173
+
174
+ Update ALL version references consistently.
175
+
176
+ ## Step 4: Update CHANGELOG.md
177
+
178
+ If CHANGELOG.md exists, prepend the new entry. If not, create it:
179
+
180
+ ```bash
181
+ # Prepend to existing
182
+ # (use edit_tool to insert at top after header)
183
+
184
+ # Or create new
185
+ cat > CHANGELOG.md << 'EOF'
186
+ # Changelog
187
+
188
+ All notable changes to this project will be documented in this file.
189
+
190
+ The format is based on [Keep a Changelog](https://keepachangelog.com/),
191
+ and this project adheres to [Semantic Versioning](https://semver.org/).
192
+
193
+ ## [v0.2.0] - 2026-04-16
194
+ ...
195
+ EOF
196
+ ```
197
+
198
+ ## Step 5: Commit the Release
199
+
200
+ ```bash
201
+ git add -A
202
+ git commit -m "$(cat <<'EOF'
203
+ chore(release): v0.2.0
204
+
205
+ - Bump version to 0.2.0
206
+ - Update CHANGELOG.md
207
+ - Release: minor (new features: JWT refresh, dark mode)
208
+
209
+ Generated-by: BluMa — Base Language Unit · Model Agent
210
+ EOF
211
+ )"
212
+ ```
213
+
214
+ ## Step 6: Tag the Release
215
+
216
+ ```bash
217
+ # Annotated tag (preferred)
218
+ git tag -a v0.2.0 -m "Release v0.2.0
219
+
220
+ Features:
221
+ - JWT refresh token rotation
222
+ - Dark mode toggle
223
+
224
+ Bug fixes:
225
+ - Null pointer in session validation
226
+ - Timeout on large file reads
227
+
228
+ Generated-by: BluMa — Base Language Unit · Model Agent"
229
+
230
+ # Or lightweight tag
231
+ git tag v0.2.0
232
+ ```
233
+
234
+ ## Step 7: Push
235
+
236
+ ```bash
237
+ # Push commit and tag
238
+ git push origin main --tags
239
+
240
+ # Or push commit first, tag separately
241
+ git push origin main
242
+ git push origin v0.2.0
243
+ ```
244
+
245
+ ## Step 8: GitHub Release (if `gh` CLI available)
246
+
247
+ ```bash
248
+ gh release create v0.2.0 \
249
+ --title "v0.2.0 — Feature Release" \
250
+ --notes "$(cat <<'EOF'
251
+ ## What's New
252
+
253
+ ### 🚀 Features
254
+ - JWT refresh token rotation
255
+ - Dark mode toggle
256
+
257
+ ### 🐛 Bug Fixes
258
+ - Null pointer in session validation
259
+ - Timeout on large file reads
260
+
261
+ ### ⚡ Performance
262
+ - Optimized context compression
263
+
264
+ ---
265
+
266
+ > *Generated by [BluMa — Base Language Unit · Model Agent](https://github.com/Nomad-e/bluma-cli)*
267
+ EOF
268
+ )"
269
+ ```
270
+
271
+ ## Step 9: npm Publish (if applicable)
272
+
273
+ ```bash
274
+ # Dry run first
275
+ npm publish --dry-run
276
+
277
+ # Publish
278
+ npm publish
279
+
280
+ # For scoped packages
281
+ npm publish --access public
282
+ ```
283
+
284
+ ## Step 10: Verify
285
+
286
+ ```bash
287
+ # Tag exists
288
+ git tag -l "v0.2.0"
289
+
290
+ # Tag points to correct commit
291
+ git show v0.2.0 --quiet
292
+
293
+ # Remote has the tag
294
+ git ls-remote --tags origin v0.2.0
295
+
296
+ # package.json version matches
297
+ cat package.json | grep '"version"'
298
+
299
+ # GitHub release exists (if created)
300
+ gh release view v0.2.0
301
+ ```
302
+
303
+ ## Rollback Procedure
304
+
305
+ If something goes wrong AFTER pushing:
306
+
307
+ ```bash
308
+ # Delete remote tag (DANGEROUS — coordinate with team)
309
+ git push origin --delete v0.2.0
310
+
311
+ # Delete local tag
312
+ git tag -d v0.2.0
313
+
314
+ # Revert the release commit
315
+ git revert <commit-hash>
316
+ git push origin main
317
+
318
+ # Re-publish npm if needed
319
+ npm unpublish @nomad-e/bluma-cli@0.2.0
320
+ ```
321
+
322
+ ## Release Notes Template
323
+
324
+ For each release, generate notes in this format:
325
+
326
+ ```markdown
327
+ # Release v0.2.0
328
+
329
+ **Date:** 2026-04-16
330
+ **Type:** Minor Release
331
+ **Previous Version:** v0.1.67
332
+
333
+ ## Summary
334
+ Brief 2-3 sentence summary of what this release brings.
335
+
336
+ ## Highlights
337
+ - Feature 1 with user-facing impact
338
+ - Feature 2 with user-facing impact
339
+
340
+ ## All Changes
341
+ ### Features (2)
342
+ - feat(auth): add JWT refresh token rotation (#42)
343
+ - feat(ui): add dark mode toggle
344
+
345
+ ### Bug Fixes (2)
346
+ - fix(api): null pointer in session validation (#55)
347
+ - fix(cli): timeout on large file reads
348
+
349
+ ### Performance (1)
350
+ - perf(core): optimize context compression
351
+
352
+ ### Chores (2)
353
+ - chore(deps): bump react 18.2 → 19.0
354
+ - chore(ci): add Node 22 to test matrix
355
+
356
+ ## Contributors
357
+ - @alex-fonseca (5 commits)
358
+ - @contributor (2 commits)
359
+
360
+ ## Migration Notes
361
+ If breaking changes, describe migration steps.
362
+
363
+ ---
364
+
365
+ > *Generated by [BluMa — Base Language Unit · Model Agent](https://github.com/Nomad-e/bluma-cli)*
366
+ ```
367
+
368
+ ## Quality Standards
369
+
370
+ Every release generated by BluMa MUST:
371
+
372
+ 1. Follow Semantic Versioning strictly.
373
+ 2. Have a comprehensive CHANGELOG.md entry.
374
+ 3. Include an annotated git tag with release summary.
375
+ 4. Pass all pre-release checks (tests, build, lint, clean tree).
376
+ 5. Have a GitHub Release with structured notes (if `gh` available).
377
+ 6. Include the BluMa watermark in commit, tag, and release notes.
378
+ 7. Be verified after push (tag exists, version matches).
379
+
380
+ ## Watermarks
381
+
382
+ **Commit trailer** (last line of release commit):
383
+ ```
384
+ Generated-by: BluMa — Base Language Unit · Model Agent
385
+ ```
386
+
387
+ **Tag annotation** (included in tag message):
388
+ ```
389
+ Generated-by: BluMa — Base Language Unit · Model Agent
390
+ ```
391
+
392
+ **GitHub Release footer** (last line of release notes):
393
+ ```markdown
394
+ ---
395
+
396
+ > *Generated by [BluMa — Base Language Unit · Model Agent](https://github.com/Nomad-e/bluma-cli)*
397
+ ```
398
+
399
+ ## Available References
400
+
401
+ - [Semantic Versioning](https://semver.org/)
402
+ - [Keep a Changelog](https://keepachangelog.com/)
403
+ - [Conventional Commits](https://www.conventionalcommits.org/)
404
+
405
+ ## Next Steps
406
+
407
+ - For commit workflows, see git-commit skill
408
+ - For PR workflows, see git-pr skill