@nomad-e/bluma-cli 0.1.72 → 0.1.74
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 +3 -0
- package/dist/config/skills/git-commit/SKILL.md +49 -7
- package/dist/config/skills/git-commit/references/REFERENCE.md +5 -1
- package/dist/main.js +1662 -1850
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
[](https://nodejs.org/)
|
|
6
6
|
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
|
|
7
10
|
**BluMa** is a CLI-based model agent for advanced software engineering workflows. Built with React/Ink 5, it provides an interactive terminal interface for LLM-powered automation, code generation, refactoring, and task execution. Features persistent sessions, contextual reasoning, smart feedback, coordinator mode for worker orchestration, and extensible tools/skills architecture.
|
|
8
11
|
|
|
9
12
|
> **Credit:** BluMa was conceived and architected by **Alex Fonseca**.
|
|
@@ -5,7 +5,9 @@ description: >
|
|
|
5
5
|
a commit message, or finalize work. Triggers: "commit", "commit my changes",
|
|
6
6
|
"stage and commit", "save my work", "git commit", "write a commit message",
|
|
7
7
|
"commit this", "amend commit", or any request to record changes in Git
|
|
8
|
-
history.
|
|
8
|
+
history. Enforces atomic commits per feature or concern: stage with explicit
|
|
9
|
+
paths or git add -p; never git add ., git add -A, or git add --all. Do NOT
|
|
10
|
+
use for pull requests — use git-pr instead.
|
|
9
11
|
license: Proprietary. LICENSE.txt has complete terms
|
|
10
12
|
---
|
|
11
13
|
|
|
@@ -16,6 +18,34 @@ license: Proprietary. LICENSE.txt has complete terms
|
|
|
16
18
|
> Every commit tells a story. The subject says WHAT, the body says WHY,
|
|
17
19
|
> and the diff shows HOW. Never repeat the diff in the message.
|
|
18
20
|
|
|
21
|
+
## Staging Discipline (Non-Negotiable)
|
|
22
|
+
|
|
23
|
+
BluMa must behave like a senior engineer committing: **one commit = one
|
|
24
|
+
coherent unit of work** (typically one feature, one fix, or one concern).
|
|
25
|
+
That requires **surgical staging**, not “stage the whole tree”.
|
|
26
|
+
|
|
27
|
+
**FORBIDDEN — never run or suggest as the default workflow:**
|
|
28
|
+
|
|
29
|
+
- `git add .`
|
|
30
|
+
- `git add -A` / `git add --all`
|
|
31
|
+
- Any variant that stages every change in the repo without naming paths
|
|
32
|
+
|
|
33
|
+
Those commands mix unrelated edits, hide what is being recorded, and
|
|
34
|
+
break atomic history. If the user insists on a blanket add, explain the
|
|
35
|
+
risk once, then still prefer explicit paths or `git add -p`.
|
|
36
|
+
|
|
37
|
+
**REQUIRED — stage with intent:**
|
|
38
|
+
|
|
39
|
+
- `git add <path> [<path> ...]` for whole files that belong to *this*
|
|
40
|
+
commit only
|
|
41
|
+
- `git add -p` / `git add --patch` when only part of a file belongs to
|
|
42
|
+
this commit (split hunks across commits if needed)
|
|
43
|
+
- `git restore --staged <path>` to unstage mistakes before committing
|
|
44
|
+
|
|
45
|
+
When several features or concerns are dirty, **commit them in separate
|
|
46
|
+
commits**, each with its own explicit `git add` of the relevant paths —
|
|
47
|
+
never one giant commit because “it was all green in `git status`”.
|
|
48
|
+
|
|
19
49
|
## Step 1 — Inspect the Working Tree
|
|
20
50
|
|
|
21
51
|
Before committing anything, understand the current state:
|
|
@@ -31,13 +61,17 @@ Commits below).
|
|
|
31
61
|
|
|
32
62
|
## Step 2 — Stage with Intent
|
|
33
63
|
|
|
34
|
-
Stage only the files that belong to
|
|
64
|
+
Stage only the files (or hunks) that belong to **one** logical change —
|
|
65
|
+
aligned with **one** feature, fix, or refactor slice you could review in
|
|
66
|
+
isolation:
|
|
35
67
|
|
|
36
68
|
```bash
|
|
37
|
-
git add
|
|
69
|
+
git add path/to/file.ts path/to/file.test.ts
|
|
70
|
+
# or, for part of a file:
|
|
71
|
+
git add -p path/to/file.ts
|
|
38
72
|
```
|
|
39
73
|
|
|
40
|
-
|
|
74
|
+
Do **not** use repository-wide adds (see Staging Discipline above).
|
|
41
75
|
|
|
42
76
|
Review what is staged:
|
|
43
77
|
|
|
@@ -167,7 +201,13 @@ Confirm the message is well-formed and the watermark is present.
|
|
|
167
201
|
|
|
168
202
|
## Atomic Commits
|
|
169
203
|
|
|
170
|
-
Each commit MUST represent exactly
|
|
204
|
+
Each commit MUST represent exactly **one** logical change — the same
|
|
205
|
+
bar a senior would use before pushing: a reviewer can understand the
|
|
206
|
+
**why** from the message and the **what** from the diff without unrelated
|
|
207
|
+
noise.
|
|
208
|
+
|
|
209
|
+
Organize history **by feature or concern**, not by “everything I touched
|
|
210
|
+
today”:
|
|
171
211
|
|
|
172
212
|
| Scenario | Commits |
|
|
173
213
|
|----------|---------|
|
|
@@ -178,7 +218,8 @@ Each commit MUST represent exactly ONE logical change:
|
|
|
178
218
|
| New feature + refactored old code to support it | 2 commits: `refactor(...)` first, then `feat(...)` |
|
|
179
219
|
|
|
180
220
|
When in doubt: if you can describe the commit with "X and Y", it should
|
|
181
|
-
probably be two commits
|
|
221
|
+
probably be two commits — and each of those commits gets its **own**
|
|
222
|
+
explicit `git add` of only the paths for X or Y.
|
|
182
223
|
|
|
183
224
|
## Handling Special Cases
|
|
184
225
|
|
|
@@ -246,7 +287,8 @@ Before finalizing any commit, verify:
|
|
|
246
287
|
4. Body explains WHY (not WHAT)
|
|
247
288
|
5. Footer references relevant issues
|
|
248
289
|
6. Watermark `Generated-by: BluMa` is the last line
|
|
249
|
-
7. Only related changes are included (atomic)
|
|
290
|
+
7. Only related changes are included (atomic); staging used explicit
|
|
291
|
+
paths or `-p`, never `git add .` / `git add -A`
|
|
250
292
|
8. No secrets, credentials, or .env files are staged
|
|
251
293
|
|
|
252
294
|
## Available References
|
|
@@ -191,7 +191,7 @@ If a commit fails due to a hook:
|
|
|
191
191
|
|
|
192
192
|
1. Read the hook's error output carefully
|
|
193
193
|
2. Fix the issue (formatting, linting, etc.)
|
|
194
|
-
3. Stage the fixes
|
|
194
|
+
3. Stage the fixes with explicit `git add <path>` (never blanket `git add .` / `-A`)
|
|
195
195
|
4. Create a NEW commit (do NOT use --no-verify)
|
|
196
196
|
|
|
197
197
|
BluMa should NEVER use `--no-verify` to bypass hooks unless the user
|
|
@@ -199,6 +199,10 @@ explicitly requests it.
|
|
|
199
199
|
|
|
200
200
|
## Handling Large Changesets
|
|
201
201
|
|
|
202
|
+
Never use `git add .`, `git add -A`, or `git add --all` to “split later” —
|
|
203
|
+
split **before** staging, with explicit paths or `git add -p` (see the
|
|
204
|
+
main skill: Staging Discipline).
|
|
205
|
+
|
|
202
206
|
If the staged changes are too large for a single atomic commit:
|
|
203
207
|
|
|
204
208
|
1. Use `git add -p` guidance (suggest to the user, don't run interactively)
|