@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 CHANGED
@@ -4,6 +4,9 @@
4
4
  [![License: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-blue.svg?style=flat-square)](LICENSE)
5
5
  [![Node.js >=20](https://img.shields.io/badge/node-%3E%3D20-brightgreen?style=flat-square)](https://nodejs.org/)
6
6
 
7
+ ![Factorai.sh Banner](assets/bg.png)
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. Do NOT use for pull requests use git-pr instead.
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 ONE logical change:
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 <file1> <file2>
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
- Use `git add -A` only when ALL changes belong to the same logical unit.
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 ONE logical change:
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)