chief-clancy 0.1.7 → 0.2.0-beta.2

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.
@@ -46,10 +46,14 @@ Jira
46
46
  [4] Queue status {CLANCY_JQL_STATUS:-To Do}
47
47
  [5] Sprint filter {on if CLANCY_JQL_SPRINT set, else off}
48
48
  [6] Label filter {CLANCY_LABEL if set, else off — only pick up tickets with this label}
49
+ [7] Pickup status {CLANCY_STATUS_IN_PROGRESS if set, else off — move ticket on pickup}
50
+ [8] Done status {CLANCY_STATUS_DONE if set, else off — move ticket on completion}
49
51
 
50
52
  {If Linear:}
51
53
  Linear
52
54
  [4] Label filter {CLANCY_LABEL if set, else off — only pick up issues with this label}
55
+ [5] Pickup status {CLANCY_STATUS_IN_PROGRESS if set, else off — move issue on pickup}
56
+ [6] Done status {CLANCY_STATUS_DONE if set, else off — move issue on completion}
53
57
 
54
58
  Optional enhancements
55
59
  [{N}] Figma MCP {enabled if FIGMA_API_KEY set, else not set}
@@ -62,7 +66,7 @@ Optional enhancements
62
66
  Which setting would you like to change?
63
67
  ```
64
68
 
65
- Number each option sequentially. Show only the board-specific section that matches the configured board. If Jira: show [4] queue status, [5] sprint, [6] label. If Linear: show [4] label. If GitHub: no board-specific options.
69
+ Number each option sequentially. Show only the board-specific section that matches the configured board. If Jira: show [4] queue status, [5] sprint, [6] label, [7] pickup status, [8] done status. If Linear: show [4] label, [5] pickup status, [6] done status. If GitHub: no board-specific options.
66
70
 
67
71
  ---
68
72
 
@@ -164,6 +168,40 @@ If [2]: remove `CLANCY_LABEL` from `.clancy/.env`.
164
168
 
165
169
  ---
166
170
 
171
+ ### [7] Jira In Progress status (Jira only)
172
+
173
+ ```
174
+ Jira In Progress status — current: {value or "off"}
175
+ When set, Clancy moves a ticket to this status when it starts working on it.
176
+ Must match the exact column name shown in your Jira board.
177
+
178
+ [1] Set status name
179
+ [2] Off (do not transition on pickup)
180
+ [3] Cancel
181
+ ```
182
+
183
+ If [1]: prompt `What status name should Clancy use for In Progress? (e.g. In Progress, In Dev, Doing)` then write `CLANCY_STATUS_IN_PROGRESS=<value>` to `.clancy/.env`.
184
+ If [2]: remove `CLANCY_STATUS_IN_PROGRESS` from `.clancy/.env`.
185
+
186
+ ---
187
+
188
+ ### [8] Jira Done status (Jira only)
189
+
190
+ ```
191
+ Jira Done status — current: {value or "off"}
192
+ When set, Clancy moves a ticket to this status after completing it.
193
+ Must match the exact column name shown in your Jira board.
194
+
195
+ [1] Set status name
196
+ [2] Off (do not transition on completion)
197
+ [3] Cancel
198
+ ```
199
+
200
+ If [1]: prompt `What status name should Clancy use for Done? (e.g. Done, Complete, Closed)` then write `CLANCY_STATUS_DONE=<value>` to `.clancy/.env`.
201
+ If [2]: remove `CLANCY_STATUS_DONE` from `.clancy/.env`.
202
+
203
+ ---
204
+
167
205
  ### [4] Linear label filter (Linear only)
168
206
 
169
207
  ```
@@ -181,6 +219,40 @@ If [2]: remove `CLANCY_LABEL` from `.clancy/.env`.
181
219
 
182
220
  ---
183
221
 
222
+ ### [5] Linear In Progress status (Linear only)
223
+
224
+ ```
225
+ Linear In Progress status — current: {value or "off"}
226
+ When set, Clancy moves an issue to this workflow state when it starts working on it.
227
+ Must match the exact state name shown in your Linear board column header.
228
+
229
+ [1] Set state name
230
+ [2] Off (do not transition on pickup)
231
+ [3] Cancel
232
+ ```
233
+
234
+ If [1]: prompt `What workflow state name should Clancy use for In Progress? (e.g. In Progress, In Dev, Doing)` then write `CLANCY_STATUS_IN_PROGRESS=<value>` to `.clancy/.env`.
235
+ If [2]: remove `CLANCY_STATUS_IN_PROGRESS` from `.clancy/.env`.
236
+
237
+ ---
238
+
239
+ ### [6] Linear Done status (Linear only)
240
+
241
+ ```
242
+ Linear Done status — current: {value or "off"}
243
+ When set, Clancy moves an issue to this workflow state after completing it.
244
+ Must match the exact state name shown in your Linear board column header.
245
+
246
+ [1] Set state name
247
+ [2] Off (do not transition on completion)
248
+ [3] Cancel
249
+ ```
250
+
251
+ If [1]: prompt `What workflow state name should Clancy use for Done? (e.g. Done, Complete, Closed)` then write `CLANCY_STATUS_DONE=<value>` to `.clancy/.env`.
252
+ If [2]: remove `CLANCY_STATUS_DONE` from `.clancy/.env`.
253
+
254
+ ---
255
+
184
256
  ### Figma MCP
185
257
 
186
258
  ```
@@ -336,50 +408,9 @@ When updating a value:
336
408
 
337
409
  ---
338
410
 
339
- ### Save as global defaults
340
-
341
- At the bottom of the settings menu (before Exit), show:
342
-
343
- ```
344
- [{N}] Save as defaults save current settings for all future projects
345
- ```
346
-
347
- When selected:
348
-
349
- 1. Read the current `.clancy/.env` and extract only the non-credential, non-board-specific settings:
350
- - `MAX_ITERATIONS`
351
- - `CLANCY_MODEL`
352
- - `CLANCY_BASE_BRANCH`
353
- - `PLAYWRIGHT_ENABLED`
354
- - `PLAYWRIGHT_STARTUP_WAIT`
355
-
356
- 2. Write these to `~/.clancy/defaults.json`:
357
- ```json
358
- {
359
- "MAX_ITERATIONS": "5",
360
- "CLANCY_MODEL": "claude-sonnet-4-6",
361
- "CLANCY_BASE_BRANCH": "main"
362
- }
363
- ```
364
-
365
- 3. Print: `✓ Defaults saved to ~/.clancy/defaults.json — new projects will inherit these settings.`
366
-
367
- 4. Loop back to the settings menu.
368
-
369
- **Never save credentials, board-specific settings (status filter, sprint, label), or webhook URLs to global defaults.**
370
-
371
- ---
372
-
373
- ## Step 6 — Load global defaults during init
374
-
375
- When `/clancy:init` creates `.clancy/.env`, check if `~/.clancy/defaults.json` exists. If so, pre-populate the `.env` with those values instead of the built-in defaults. The user's answers during init still take priority — defaults are only used for settings that init doesn't ask about (max iterations, model, etc.).
376
-
377
- ---
378
-
379
411
  ## Notes
380
412
 
381
413
  - All changes are written to `.clancy/.env` immediately after confirmation
382
414
  - Switching boards verifies credentials before making any changes — nothing is written if verification fails
383
415
  - `/clancy:init` remains available for a full re-setup (re-scaffolds scripts and docs)
384
416
  - This command never restarts any servers or triggers any ticket processing
385
- - Global defaults (`~/.clancy/defaults.json`) are optional — if the file doesn't exist, built-in defaults are used
@@ -35,9 +35,33 @@ Continue? (yes / no)
35
35
  ```
36
36
 
37
37
  - `no` → print "Nothing removed." and stop
38
- - `yes` → delete both the commands directory and the workflows directory for the chosen location(s), print "✓ Clancy removed from [location]."
38
+ - `yes` → proceed to remove commands, workflows, hooks, and settings entries (Steps 2a–2c)
39
39
 
40
- If "Both" was chosen in Step 1: confirm once for both, remove all four directories, print two confirmation lines.
40
+ If "Both" was chosen in Step 1: confirm once for both, remove everything for both locations.
41
+
42
+ ### Step 2a — Remove command and workflow directories
43
+
44
+ Delete both the commands directory and the workflows directory for the chosen location(s):
45
+ - Project-local: `.claude/commands/clancy/` and `.claude/clancy/`
46
+ - Global: `~/.claude/commands/clancy/` and `~/.claude/clancy/`
47
+
48
+ Print: `✓ Clancy commands removed from [location].`
49
+
50
+ ### Step 2b — Remove hooks
51
+
52
+ For each location being removed, delete these hook files if they exist:
53
+ - Project-local: `.claude/hooks/clancy-check-update.js`, `.claude/hooks/clancy-statusline.js`, `.claude/hooks/clancy-context-monitor.js`
54
+ - Global: `~/.claude/hooks/clancy-check-update.js`, `~/.claude/hooks/clancy-statusline.js`, `~/.claude/hooks/clancy-context-monitor.js`
55
+
56
+ Then remove the Clancy hook registrations from the corresponding `settings.json` (`.claude/settings.json` for local, `~/.claude/settings.json` for global):
57
+ - Remove any entry in `hooks.SessionStart` whose `command` contains `clancy-check-update`
58
+ - Remove any entry in `hooks.PostToolUse` whose `command` contains `clancy-context-monitor`
59
+ - Remove the `statusLine` key if its `command` value contains `clancy-statusline`
60
+ - If removing an entry leaves a `hooks.SessionStart` or `hooks.PostToolUse` array empty, remove the key entirely
61
+
62
+ Also remove the update check cache if it exists: `~/.claude/cache/clancy-update-check.json`
63
+
64
+ If `settings.json` does not exist or cannot be parsed, skip silently — do not create or overwrite it.
41
65
 
42
66
  ---
43
67
 
@@ -108,9 +108,6 @@ Extract only the entries between the installed version and the latest version. D
108
108
  - `.claude/commands/clancy/` will be replaced
109
109
  - `.claude/clancy/workflows/` will be replaced
110
110
 
111
- If you've modified any Clancy files directly, they'll be automatically backed up
112
- to `.claude/clancy/local-patches/` before overwriting.
113
-
114
111
  Your project files are preserved:
115
112
  - `.clancy/` project folder (scripts, docs, .env, progress log) ✓
116
113
  - `CLAUDE.md` ✓
@@ -170,31 +167,6 @@ View full changelog: github.com/Pushedskydiver/clancy/blob/main/CHANGELOG.md
170
167
 
171
168
  ---
172
169
 
173
- ## Step 6 — Check for local patches
174
-
175
- After the update completes, check if the installer backed up any locally modified files:
176
-
177
- Check for `.claude/clancy/local-patches/backup-meta.json` (local install) or `~/.claude/clancy/local-patches/backup-meta.json` (global install).
178
-
179
- **If patches were found:**
180
-
181
- ```
182
- Local patches were backed up before the update.
183
- Your modified files are in .claude/clancy/local-patches/
184
-
185
- To review what changed:
186
- Compare each file in local-patches/ against its counterpart in
187
- .claude/commands/clancy/ or .claude/clancy/workflows/ and manually
188
- reapply any customisations you want to keep.
189
-
190
- Backed up files:
191
- {list from backup-meta.json}
192
- ```
193
-
194
- **If no patches:** Continue normally (no message needed).
195
-
196
- ---
197
-
198
170
  ## Notes
199
171
 
200
172
  - If the user installed globally, the update applies globally