chief-clancy 0.4.0 → 0.5.1
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 +32 -3
- package/dist/bundle/clancy-once.js +23 -23
- package/dist/installer/install.js +64 -12
- package/dist/installer/install.js.map +1 -1
- package/dist/schemas/env.d.ts +16 -0
- package/dist/schemas/env.d.ts.map +1 -1
- package/dist/schemas/env.js +4 -0
- package/dist/schemas/env.js.map +1 -1
- package/package.json +4 -1
- package/src/roles/planner/commands/approve.md +3 -6
- package/src/roles/planner/commands/plan.md +5 -6
- package/src/roles/planner/workflows/approve.md +236 -2
- package/src/roles/planner/workflows/plan.md +398 -2
- package/src/roles/reviewer/workflows/logs.md +14 -6
- package/src/roles/reviewer/workflows/review.md +7 -1
- package/src/roles/setup/commands/help.md +9 -0
- package/src/roles/setup/workflows/init.md +85 -41
- package/src/roles/setup/workflows/map-codebase.md +1 -1
- package/src/roles/setup/workflows/settings.md +137 -44
- package/src/roles/setup/workflows/update-docs.md +5 -2
- package/src/roles/setup/workflows/update.md +29 -25
- package/src/templates/.env.example.github +9 -0
- package/src/templates/.env.example.jira +9 -0
- package/src/templates/.env.example.linear +9 -0
- package/src/templates/CLAUDE.md +4 -1
|
@@ -4,6 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
Full wizard for setting up Clancy in a project. Follow every step exactly. Do not skip steps or reorder them.
|
|
6
6
|
|
|
7
|
+
### Input handling
|
|
8
|
+
|
|
9
|
+
This workflow runs inside a Claude Code session, not a vanilla terminal. Accept natural language responses alongside numbered options and y/N prompts:
|
|
10
|
+
- Affirmative: "y", "yes", "sure", "go ahead", "yep" → treat as yes
|
|
11
|
+
- Negative: "n", "no", "nah", "skip", "not now" → treat as no
|
|
12
|
+
- Board selection: "jira", "github", "linear" → treat as selecting that board
|
|
13
|
+
- Direct values: if the user types a status name like "Selected for Development" instead of picking option [2], accept it directly
|
|
14
|
+
- If a response is ambiguous, ask for clarification
|
|
15
|
+
|
|
7
16
|
---
|
|
8
17
|
|
|
9
18
|
## Step 1 — Detect project state
|
|
@@ -13,9 +22,9 @@ Before asking any questions, silently check:
|
|
|
13
22
|
- Is this an existing project? Check for `package.json`, `.git`, `src/`, `app/`, `lib/`
|
|
14
23
|
- Is a board already configured? Check `.clancy/.env` for `JIRA_BASE_URL`, `GITHUB_TOKEN`, `LINEAR_API_KEY`
|
|
15
24
|
- Does `CLAUDE.md` already exist? Flag for merge — never overwrite
|
|
16
|
-
- Does `.clancy
|
|
25
|
+
- Does `.clancy/.env` already exist? This means init has been completed before — warn and offer re-init or abort. Note: `.clancy/` alone may exist from the installer (runtime scripts) without init having run.
|
|
17
26
|
|
|
18
|
-
If `.clancy
|
|
27
|
+
If `.clancy/.env` exists, output:
|
|
19
28
|
|
|
20
29
|
It looks like Clancy is already set up in this project.
|
|
21
30
|
|
|
@@ -60,9 +69,9 @@ Output:
|
|
|
60
69
|
|
|
61
70
|
"Chief Wiggum reporting for duty."
|
|
62
71
|
|
|
63
|
-
Clancy pulls tickets from your Kanban board, implements them, commits, and squash-merges — one ticket per run, fresh context every time.
|
|
72
|
+
Clancy pulls tickets from your Kanban board, plans and implements them, commits, and squash-merges — one ticket per run, fresh context every time.
|
|
64
73
|
|
|
65
|
-
Let's get you set up.
|
|
74
|
+
Let's get you set up. This takes about 3 minutes (4 steps, then optional extras).
|
|
66
75
|
```
|
|
67
76
|
|
|
68
77
|
---
|
|
@@ -122,7 +131,10 @@ Add this label to any issue you want Clancy to work on.
|
|
|
122
131
|
**Linear** — ask in this order:
|
|
123
132
|
|
|
124
133
|
1. `Paste your Linear API key: (create one at linear.app/settings/api)`
|
|
125
|
-
2.
|
|
134
|
+
2. After verifying the API key (Step Q2b), auto-detect teams by querying `{ teams { nodes { id name } } }`.
|
|
135
|
+
- If exactly 1 team: use it automatically. Show `Using team: {name} ({id})`.
|
|
136
|
+
- If 2+ teams: show a numbered list and let the user pick.
|
|
137
|
+
- If the query fails or returns no teams: fall back to asking manually: `What's your Linear team ID? (find it at linear.app/settings/teams — click your team, copy the ID from the URL)`
|
|
126
138
|
3. `What label should Clancy filter by? Create a "clancy" label in your Linear team and apply it to issues you want Clancy to implement. [clancy]`
|
|
127
139
|
|
|
128
140
|
If a label is entered: store as `CLANCY_LABEL` in `.clancy/.env`. Always wrap the value in double quotes (e.g. `CLANCY_LABEL="clancy"`).
|
|
@@ -147,9 +159,11 @@ On failure, show:
|
|
|
147
159
|
Check your credentials in the values you just entered.
|
|
148
160
|
|
|
149
161
|
[1] Re-enter credentials
|
|
162
|
+
[2] Skip verification (configure later via /clancy:settings)
|
|
150
163
|
```
|
|
151
164
|
|
|
152
|
-
If [1]: go back to Q2 and re-ask all Jira questions.
|
|
165
|
+
If [1]: go back to Q2 and re-ask all Jira questions.
|
|
166
|
+
If [2]: save the unverified credentials and continue with setup. The user can fix them later.
|
|
153
167
|
|
|
154
168
|
**GitHub Issues** — call `GET https://api.github.com/repos/{GITHUB_REPO}` with `Authorization: Bearer {GITHUB_TOKEN}` and `X-GitHub-Api-Version: 2022-11-28`.
|
|
155
169
|
|
|
@@ -164,9 +178,11 @@ On failure, show:
|
|
|
164
178
|
Check your token has `repo` scope and the repo name is correct.
|
|
165
179
|
|
|
166
180
|
[1] Re-enter credentials
|
|
181
|
+
[2] Skip verification (configure later via /clancy:settings)
|
|
167
182
|
```
|
|
168
183
|
|
|
169
|
-
If [1]: go back to Q2 and re-ask all GitHub questions.
|
|
184
|
+
If [1]: go back to Q2 and re-ask all GitHub questions.
|
|
185
|
+
If [2]: save the unverified credentials and continue with setup.
|
|
170
186
|
|
|
171
187
|
**Linear** — call `POST https://api.linear.app/graphql` with `Authorization: {LINEAR_API_KEY}` (no Bearer prefix) and body `{"query": "{ viewer { id name } }"}`.
|
|
172
188
|
|
|
@@ -181,11 +197,13 @@ On failure, show:
|
|
|
181
197
|
Check your API key at linear.app/settings/api.
|
|
182
198
|
|
|
183
199
|
[1] Re-enter credentials
|
|
200
|
+
[2] Skip verification (configure later via /clancy:settings)
|
|
184
201
|
```
|
|
185
202
|
|
|
186
|
-
If [1]: go back to Q2 and re-ask all Linear questions.
|
|
203
|
+
If [1]: go back to Q2 and re-ask all Linear questions.
|
|
204
|
+
If [2]: save the unverified credentials and continue with setup.
|
|
187
205
|
|
|
188
|
-
Never silently continue with unverified credentials — the user must
|
|
206
|
+
Never silently continue with unverified credentials — the user must explicitly choose to re-enter, skip, or exit.
|
|
189
207
|
|
|
190
208
|
---
|
|
191
209
|
|
|
@@ -277,6 +295,33 @@ If no: skip the commit silently. The user can commit manually later.
|
|
|
277
295
|
|
|
278
296
|
---
|
|
279
297
|
|
|
298
|
+
## Step 4c — Optional roles
|
|
299
|
+
|
|
300
|
+
Clancy includes the Implementer, Reviewer, and Setup roles by default. Optional roles add extra capabilities.
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
Clancy includes the Implementer, Reviewer, and Setup roles by default.
|
|
304
|
+
You can enable additional roles:
|
|
305
|
+
|
|
306
|
+
[1] Planner — Refine vague tickets into structured implementation plans
|
|
307
|
+
|
|
308
|
+
Enter roles to enable (e.g. 1 or "all") or press Enter to skip:
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
Accept numbers, role names (e.g. "planner"), "all", or Enter to skip.
|
|
312
|
+
|
|
313
|
+
If any roles are selected:
|
|
314
|
+
- Store as `CLANCY_ROLES="planner"` (comma-separated if multiple) in `.clancy/.env`
|
|
315
|
+
- The selected roles' commands and workflows will be installed on the next `npx chief-clancy` run
|
|
316
|
+
|
|
317
|
+
If skipped (Enter): no `CLANCY_ROLES` line is written — only core roles are installed.
|
|
318
|
+
|
|
319
|
+
The installer reads `CLANCY_ROLES` from `.clancy/.env` to determine which optional role directories to copy. Core roles (implementer, reviewer, setup) are always copied regardless of this setting. After changing `CLANCY_ROLES`, re-run `npx chief-clancy@latest --local` (or `--global`) to apply.
|
|
320
|
+
|
|
321
|
+
Note: as more roles are added in future versions, they appear as additional numbered options here. The flow scales naturally.
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
280
325
|
## Step 5 — Optional enhancements
|
|
281
326
|
|
|
282
327
|
Output:
|
|
@@ -284,13 +329,13 @@ Output:
|
|
|
284
329
|
```
|
|
285
330
|
Clancy is set up. A few optional enhancements are available:
|
|
286
331
|
|
|
287
|
-
1.
|
|
288
|
-
2.
|
|
289
|
-
3.
|
|
290
|
-
4.
|
|
332
|
+
1. Max iterations — set how many tickets /clancy:run processes per session
|
|
333
|
+
2. Figma MCP — fetch design specs when tickets include a Figma URL
|
|
334
|
+
3. Playwright — screenshot and verify UI after implementing tickets
|
|
335
|
+
4. Notifications — post to Slack or Teams when a ticket completes or errors
|
|
291
336
|
|
|
292
337
|
Each takes about 2 minutes to configure, or skip any for now.
|
|
293
|
-
You can always add them later
|
|
338
|
+
You can always add them later via /clancy:settings.
|
|
294
339
|
|
|
295
340
|
Set up optional enhancements? [y/N]
|
|
296
341
|
```
|
|
@@ -299,11 +344,26 @@ If no: skip to Step 6.
|
|
|
299
344
|
|
|
300
345
|
If yes, walk through each in order. After each enhancement (whether configured or skipped), ask before starting the next one: `Set up [enhancement name]? [y/N]`
|
|
301
346
|
|
|
302
|
-
### Enhancement 1:
|
|
347
|
+
### Enhancement 1: Max iterations
|
|
348
|
+
|
|
349
|
+
Output:
|
|
350
|
+
|
|
351
|
+
```
|
|
352
|
+
How many tickets should /clancy:run process before stopping? [5]
|
|
353
|
+
(You can override this per-session with /clancy:run 20)
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
Validate the input is a positive integer between 1 and 100. If invalid, re-prompt.
|
|
357
|
+
|
|
358
|
+
Write `MAX_ITERATIONS=<value>` to `.clancy/.env`.
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
### Enhancement 2: Figma MCP
|
|
303
363
|
|
|
304
364
|
Output: `Fetch design context from Figma when tickets include a Figma URL. Set up Figma MCP? [y/N]`
|
|
305
365
|
|
|
306
|
-
If no: skip to Enhancement
|
|
366
|
+
If no: skip to Enhancement 3.
|
|
307
367
|
|
|
308
368
|
If yes: `Paste your Figma API key: (create one at figma.com/settings → Personal access tokens)`
|
|
309
369
|
|
|
@@ -313,10 +373,7 @@ If a key is entered:
|
|
|
313
373
|
```
|
|
314
374
|
✅ Figma connected: {email}
|
|
315
375
|
|
|
316
|
-
Note: Figma
|
|
317
|
-
Clancy uses 3 MCP calls per ticket (metadata, design context, screenshot).
|
|
318
|
-
Check your plan at figma.com/settings to confirm you have enough MCP calls for your usage.
|
|
319
|
-
Pro plans: 200 calls/day (~66 tickets). Starter: 6 calls/month (not suitable for AFK use).
|
|
376
|
+
Note: Check your Figma plan limits at figma.com/settings — Clancy uses 3 API calls per ticket.
|
|
320
377
|
|
|
321
378
|
Figma MCP enabled.
|
|
322
379
|
```
|
|
@@ -329,23 +386,23 @@ Double-check it at figma.com/settings → Personal access tokens.
|
|
|
329
386
|
[1] Try a different key
|
|
330
387
|
[2] Skip Figma for now
|
|
331
388
|
```
|
|
332
|
-
Never silently continue with an unverified key. If the user picks [1], re-prompt for the key and repeat the verification. If [2], skip to Enhancement
|
|
389
|
+
Never silently continue with an unverified key. If the user picks [1], re-prompt for the key and repeat the verification. If [2], skip to Enhancement 3.
|
|
333
390
|
|
|
334
391
|
Write `FIGMA_API_KEY` to `.clancy/.env`. Add usage note to CLAUDE.md Clancy section.
|
|
335
392
|
|
|
336
393
|
---
|
|
337
394
|
|
|
338
|
-
### Enhancement
|
|
395
|
+
### Enhancement 3: Playwright visual checks
|
|
339
396
|
|
|
340
|
-
If Figma was configured in Enhancement
|
|
397
|
+
If Figma was configured in Enhancement 2, output:
|
|
341
398
|
`Screenshot and verify UI after implementing tickets — and compare against the Figma design when one was fetched. Set up Playwright visual checks? [y/N]`
|
|
342
399
|
|
|
343
400
|
Otherwise output:
|
|
344
401
|
`Screenshot and verify UI after implementing tickets. Set up Playwright visual checks? [y/N]`
|
|
345
402
|
|
|
346
|
-
If no: skip to Enhancement
|
|
403
|
+
If no: skip to Enhancement 4.
|
|
347
404
|
|
|
348
|
-
If yes, continue
|
|
405
|
+
If yes, continue. For Storybook users this is about 5 quick questions; without Storybook, 3 questions.
|
|
349
406
|
|
|
350
407
|
**Step 1: Storybook detection**
|
|
351
408
|
|
|
@@ -431,11 +488,11 @@ Create `.clancy/docs/PLAYWRIGHT.md` — see PLAYWRIGHT.md template in scaffold.m
|
|
|
431
488
|
|
|
432
489
|
---
|
|
433
490
|
|
|
434
|
-
### Enhancement
|
|
491
|
+
### Enhancement 4: Slack / Teams notifications
|
|
435
492
|
|
|
436
493
|
Output: `Post to a channel when a ticket completes or Clancy hits an error. Set up notifications? [y/N]`
|
|
437
494
|
|
|
438
|
-
If no: skip to
|
|
495
|
+
If no: skip to Step 6.
|
|
439
496
|
|
|
440
497
|
If yes: `Paste your Slack or Teams webhook URL:`
|
|
441
498
|
|
|
@@ -454,19 +511,6 @@ Write `CLANCY_NOTIFY_WEBHOOK=<url>` to `.clancy/.env`.
|
|
|
454
511
|
|
|
455
512
|
---
|
|
456
513
|
|
|
457
|
-
### Enhancement 4: Max iterations
|
|
458
|
-
|
|
459
|
-
Output:
|
|
460
|
-
|
|
461
|
-
```
|
|
462
|
-
How many tickets should /clancy:run process before stopping? [5]
|
|
463
|
-
(You can override this per-session with /clancy:run 20)
|
|
464
|
-
```
|
|
465
|
-
|
|
466
|
-
Write `MAX_ITERATIONS=<value>` to `.clancy/.env`.
|
|
467
|
-
|
|
468
|
-
---
|
|
469
|
-
|
|
470
514
|
## Step 6 — Offer map-codebase
|
|
471
515
|
|
|
472
516
|
Output:
|
|
@@ -494,5 +538,5 @@ Output:
|
|
|
494
538
|
- Config: `.clancy/.env`
|
|
495
539
|
- CLAUDE.md: updated
|
|
496
540
|
|
|
497
|
-
"Clancy's on the beat." — Run /clancy:dry-run to preview, /clancy:once to pick up a ticket
|
|
541
|
+
"Clancy's on the beat." — Run /clancy:plan to refine backlog tickets, /clancy:dry-run to preview, or /clancy:once to pick up a ticket.
|
|
498
542
|
```
|
|
@@ -46,7 +46,7 @@ Tell the user agents are running:
|
|
|
46
46
|
🚨 Clancy — Map Codebase
|
|
47
47
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
48
48
|
|
|
49
|
-
"Sending in the task force..." — 5 agents deployed.
|
|
49
|
+
"Sending in the task force..." — 5 agents deployed. Ctrl+C to cancel.
|
|
50
50
|
|
|
51
51
|
🔍 tech → STACK.md, INTEGRATIONS.md
|
|
52
52
|
🔍 arch → ARCHITECTURE.md
|
|
@@ -4,6 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
View and change Clancy configuration. Reads `.clancy/.env`, shows current values, and lets the user update any setting interactively. Loops until the user exits. Never modifies anything other than `.clancy/.env`.
|
|
6
6
|
|
|
7
|
+
### Input handling
|
|
8
|
+
|
|
9
|
+
This workflow runs inside a Claude Code session. Accept natural language alongside option codes:
|
|
10
|
+
- "G1", "max iterations", "change iterations" → all resolve to the max iterations setting
|
|
11
|
+
- "enable planner", "R1", "planner" → all resolve to the Planner role toggle
|
|
12
|
+
- "switch board", "S" → switch board flow
|
|
13
|
+
- If a response is ambiguous, ask for clarification
|
|
14
|
+
|
|
7
15
|
---
|
|
8
16
|
|
|
9
17
|
## Step 1 — Preflight
|
|
@@ -31,55 +39,72 @@ Source `.clancy/.env` silently. Detect which board is configured:
|
|
|
31
39
|
|
|
32
40
|
## Step 3 — Display settings menu
|
|
33
41
|
|
|
34
|
-
Show all current values. Board-specific settings only appear when that board is configured.
|
|
42
|
+
Show all current values. Board-specific settings only appear when that board is configured. Use stable letter/number mnemonics so options don't shift when boards change.
|
|
35
43
|
|
|
36
44
|
```
|
|
37
45
|
🚨 Clancy — Settings
|
|
38
46
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
39
47
|
|
|
40
|
-
"Welcome to headquarters."
|
|
48
|
+
"Welcome to headquarters."
|
|
41
49
|
|
|
42
50
|
General
|
|
43
|
-
[
|
|
44
|
-
[
|
|
45
|
-
[
|
|
51
|
+
[G1] Max iterations {MAX_ITERATIONS:-5} tickets per /clancy:run session
|
|
52
|
+
[G2] Claude model {CLANCY_MODEL:-default} model used for each ticket session
|
|
53
|
+
[G3] Base branch {CLANCY_BASE_BRANCH:-main}
|
|
46
54
|
|
|
47
55
|
{If Jira:}
|
|
48
56
|
Jira
|
|
49
|
-
[
|
|
50
|
-
[
|
|
51
|
-
[
|
|
52
|
-
[
|
|
53
|
-
[
|
|
57
|
+
[B1] Queue status {CLANCY_JQL_STATUS:-To Do}
|
|
58
|
+
[B2] Sprint filter {on if CLANCY_JQL_SPRINT set, else off}
|
|
59
|
+
[B3] Label filter {CLANCY_LABEL if set, else off}
|
|
60
|
+
[B4] Pickup status {CLANCY_STATUS_IN_PROGRESS if set, else off}
|
|
61
|
+
[B5] Done status {CLANCY_STATUS_DONE if set, else off}
|
|
62
|
+
|
|
63
|
+
{If GitHub:}
|
|
64
|
+
GitHub
|
|
65
|
+
(No board-specific settings — labels are managed in GitHub directly)
|
|
54
66
|
|
|
55
67
|
{If Linear:}
|
|
56
68
|
Linear
|
|
57
|
-
[
|
|
58
|
-
[
|
|
59
|
-
[
|
|
69
|
+
[B1] Label filter {CLANCY_LABEL if set, else off}
|
|
70
|
+
[B2] Pickup status {CLANCY_STATUS_IN_PROGRESS if set, else off}
|
|
71
|
+
[B3] Done status {CLANCY_STATUS_DONE if set, else off}
|
|
72
|
+
|
|
73
|
+
Roles
|
|
74
|
+
[R1] Planner {✅ enabled / ─ disabled}
|
|
75
|
+
|
|
76
|
+
{If Planner enabled:}
|
|
77
|
+
Planner
|
|
78
|
+
{If Jira:}
|
|
79
|
+
[P1] Plan queue status {CLANCY_PLAN_STATUS:-Backlog}
|
|
80
|
+
{If GitHub:}
|
|
81
|
+
[P1] Plan label {CLANCY_PLAN_LABEL:-needs-refinement}
|
|
82
|
+
{If Linear:}
|
|
83
|
+
[P1] Plan state type {CLANCY_PLAN_STATE_TYPE:-backlog}
|
|
60
84
|
|
|
61
|
-
|
|
62
|
-
[
|
|
63
|
-
[
|
|
64
|
-
[
|
|
85
|
+
Integrations
|
|
86
|
+
[I1] Figma MCP {enabled if FIGMA_API_KEY set, else not set}
|
|
87
|
+
[I2] Playwright {enabled if PLAYWRIGHT_ENABLED=true, else off}
|
|
88
|
+
[I3] Notifications {configured if CLANCY_NOTIFY_WEBHOOK set, else not set}
|
|
65
89
|
|
|
66
|
-
[
|
|
67
|
-
[
|
|
90
|
+
[S] Switch board currently: {Jira / GitHub Issues / Linear}
|
|
91
|
+
[D] Save as defaults save current settings for all future projects
|
|
92
|
+
[X] Exit
|
|
68
93
|
|
|
69
94
|
Which setting would you like to change?
|
|
70
95
|
```
|
|
71
96
|
|
|
72
|
-
|
|
97
|
+
Accept the user's response as a code (e.g. "G1", "R1"), a setting name (e.g. "max iterations", "model"), or a natural language description (e.g. "change the model", "enable planner"). If ambiguous, clarify. Show only the board-specific section that matches the configured board. The Planner section only appears when the Planner role is enabled.
|
|
73
98
|
|
|
74
99
|
---
|
|
75
100
|
|
|
76
101
|
## Step 4 — Handle each selection
|
|
77
102
|
|
|
78
|
-
After the user picks
|
|
103
|
+
After the user picks an option (by code, name, or description), handle it as below. After saving, print `✅ Saved.` and loop back to Step 3 to show the updated menu.
|
|
79
104
|
|
|
80
105
|
---
|
|
81
106
|
|
|
82
|
-
### [
|
|
107
|
+
### [G1] Max iterations
|
|
83
108
|
|
|
84
109
|
```
|
|
85
110
|
Max iterations — current: {value}
|
|
@@ -89,11 +114,13 @@ How many tickets should /clancy:run process per session?
|
|
|
89
114
|
[2] Enter a different number
|
|
90
115
|
```
|
|
91
116
|
|
|
117
|
+
Validate the input is a positive integer between 1 and 100. If invalid, re-prompt.
|
|
118
|
+
|
|
92
119
|
Write `MAX_ITERATIONS=<value>` to `.clancy/.env`.
|
|
93
120
|
|
|
94
121
|
---
|
|
95
122
|
|
|
96
|
-
### [
|
|
123
|
+
### [G2] Claude model
|
|
97
124
|
|
|
98
125
|
```
|
|
99
126
|
Claude model — current: {value or "default"}
|
|
@@ -111,7 +138,7 @@ Otherwise: write `CLANCY_MODEL=<value>` to `.clancy/.env`.
|
|
|
111
138
|
|
|
112
139
|
---
|
|
113
140
|
|
|
114
|
-
### [
|
|
141
|
+
### [G3] Base branch
|
|
115
142
|
|
|
116
143
|
```
|
|
117
144
|
Base branch — current: {value}
|
|
@@ -124,7 +151,7 @@ Write `CLANCY_BASE_BRANCH=<value>` to `.clancy/.env`.
|
|
|
124
151
|
|
|
125
152
|
---
|
|
126
153
|
|
|
127
|
-
### [
|
|
154
|
+
### [B1] Jira status filter (Jira only)
|
|
128
155
|
|
|
129
156
|
```
|
|
130
157
|
Jira status filter — current: {value}
|
|
@@ -139,7 +166,7 @@ Write `CLANCY_JQL_STATUS=<value>` to `.clancy/.env`.
|
|
|
139
166
|
|
|
140
167
|
---
|
|
141
168
|
|
|
142
|
-
### [
|
|
169
|
+
### [B2] Jira sprint filter (Jira only)
|
|
143
170
|
|
|
144
171
|
```
|
|
145
172
|
Jira sprint filter — current: {on / off}
|
|
@@ -154,7 +181,7 @@ If off: remove `CLANCY_JQL_SPRINT` from `.clancy/.env` (or comment it out).
|
|
|
154
181
|
|
|
155
182
|
---
|
|
156
183
|
|
|
157
|
-
### [
|
|
184
|
+
### [B3] Jira label filter (Jira only)
|
|
158
185
|
|
|
159
186
|
```
|
|
160
187
|
Jira label filter — current: {label name or "off"}
|
|
@@ -171,7 +198,7 @@ If [2]: remove `CLANCY_LABEL` from `.clancy/.env`.
|
|
|
171
198
|
|
|
172
199
|
---
|
|
173
200
|
|
|
174
|
-
### [
|
|
201
|
+
### [B4] Jira In Progress status (Jira only)
|
|
175
202
|
|
|
176
203
|
```
|
|
177
204
|
Jira In Progress status — current: {value or "off"}
|
|
@@ -188,7 +215,7 @@ If [2]: remove `CLANCY_STATUS_IN_PROGRESS` from `.clancy/.env`.
|
|
|
188
215
|
|
|
189
216
|
---
|
|
190
217
|
|
|
191
|
-
### [
|
|
218
|
+
### [B5] Jira Done status (Jira only)
|
|
192
219
|
|
|
193
220
|
```
|
|
194
221
|
Jira Done status — current: {value or "off"}
|
|
@@ -205,7 +232,7 @@ If [2]: remove `CLANCY_STATUS_DONE` from `.clancy/.env`.
|
|
|
205
232
|
|
|
206
233
|
---
|
|
207
234
|
|
|
208
|
-
### [
|
|
235
|
+
### [B1] Linear label filter (Linear only)
|
|
209
236
|
|
|
210
237
|
```
|
|
211
238
|
Linear label filter — current: {label name or "off"}
|
|
@@ -222,7 +249,7 @@ If [2]: remove `CLANCY_LABEL` from `.clancy/.env`.
|
|
|
222
249
|
|
|
223
250
|
---
|
|
224
251
|
|
|
225
|
-
### [
|
|
252
|
+
### [B2] Linear In Progress status (Linear only)
|
|
226
253
|
|
|
227
254
|
```
|
|
228
255
|
Linear In Progress status — current: {value or "off"}
|
|
@@ -239,7 +266,7 @@ If [2]: remove `CLANCY_STATUS_IN_PROGRESS` from `.clancy/.env`.
|
|
|
239
266
|
|
|
240
267
|
---
|
|
241
268
|
|
|
242
|
-
### [
|
|
269
|
+
### [B3] Linear Done status (Linear only)
|
|
243
270
|
|
|
244
271
|
```
|
|
245
272
|
Linear Done status — current: {value or "off"}
|
|
@@ -256,7 +283,79 @@ If [2]: remove `CLANCY_STATUS_DONE` from `.clancy/.env`.
|
|
|
256
283
|
|
|
257
284
|
---
|
|
258
285
|
|
|
259
|
-
###
|
|
286
|
+
### [R1] Planner role
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
Planner role — currently: {enabled / disabled}
|
|
290
|
+
The Planner refines vague backlog tickets into structured implementation plans.
|
|
291
|
+
Commands: /clancy:plan, /clancy:approve
|
|
292
|
+
|
|
293
|
+
[1] Enable
|
|
294
|
+
[2] Disable
|
|
295
|
+
[3] Cancel
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
If enabling:
|
|
299
|
+
- Add `planner` to `CLANCY_ROLES` in `.clancy/.env` (create the key if it doesn't exist, append if other roles are listed)
|
|
300
|
+
- Show `✅ Planner role enabled. Re-run the installer to apply: npx chief-clancy@latest --local (or --global)`
|
|
301
|
+
|
|
302
|
+
If disabling:
|
|
303
|
+
- Remove `planner` from `CLANCY_ROLES` in `.clancy/.env` (if empty after removal, remove the line entirely)
|
|
304
|
+
- Keep planner-specific settings (CLANCY_PLAN_STATUS, etc.) in `.clancy/.env` so re-enabling is frictionless
|
|
305
|
+
- Show `✅ Planner role disabled. Re-run the installer to apply: npx chief-clancy@latest --local (or --global)`
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
### [P1] Plan queue status (Jira only)
|
|
310
|
+
|
|
311
|
+
```
|
|
312
|
+
Plan queue status — current: {value or "Backlog"}
|
|
313
|
+
Which Jira status should /clancy:plan fetch backlog tickets from?
|
|
314
|
+
Common values: Backlog, To Refine, Unrefined
|
|
315
|
+
|
|
316
|
+
[1] Backlog (default)
|
|
317
|
+
[2] Enter a different value
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
If [1]: remove `CLANCY_PLAN_STATUS` from `.clancy/.env` (uses default).
|
|
321
|
+
If [2]: prompt `What status name should /clancy:plan fetch from?` then write `CLANCY_PLAN_STATUS=<value>` to `.clancy/.env`.
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
### [P1] Plan label (GitHub only)
|
|
326
|
+
|
|
327
|
+
```
|
|
328
|
+
Plan label — current: {value or "needs-refinement"}
|
|
329
|
+
Which label marks issues for /clancy:plan to refine?
|
|
330
|
+
Create this label in GitHub first if it doesn't exist.
|
|
331
|
+
|
|
332
|
+
[1] needs-refinement (default)
|
|
333
|
+
[2] Enter a different label name
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
If [1]: remove `CLANCY_PLAN_LABEL` from `.clancy/.env` (uses default).
|
|
337
|
+
If [2]: prompt `What label should /clancy:plan filter by?` then write `CLANCY_PLAN_LABEL=<value>` to `.clancy/.env`.
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
### [P1] Plan state type (Linear only)
|
|
342
|
+
|
|
343
|
+
```
|
|
344
|
+
Plan state type — current: {value or "backlog"}
|
|
345
|
+
Which Linear state type should /clancy:plan fetch issues from?
|
|
346
|
+
|
|
347
|
+
[1] backlog (default)
|
|
348
|
+
[2] triage
|
|
349
|
+
[3] Enter a different value
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
If [1]: remove `CLANCY_PLAN_STATE_TYPE` from `.clancy/.env` (uses default).
|
|
353
|
+
If [2]: write `CLANCY_PLAN_STATE_TYPE=triage` to `.clancy/.env`.
|
|
354
|
+
If [3]: prompt `What state type should /clancy:plan fetch from?` then write `CLANCY_PLAN_STATE_TYPE=<value>` to `.clancy/.env`.
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
### [I1] Figma MCP
|
|
260
359
|
|
|
261
360
|
```
|
|
262
361
|
Figma MCP — current: {enabled / not set}
|
|
@@ -271,7 +370,7 @@ If [2]: remove `FIGMA_API_KEY` from `.clancy/.env`.
|
|
|
271
370
|
|
|
272
371
|
---
|
|
273
372
|
|
|
274
|
-
### Playwright
|
|
373
|
+
### [I2] Playwright
|
|
275
374
|
|
|
276
375
|
```
|
|
277
376
|
Playwright visual checks — current: {enabled / off}
|
|
@@ -288,7 +387,7 @@ If [2] Disable: set `PLAYWRIGHT_ENABLED=false` in `.clancy/.env`.
|
|
|
288
387
|
|
|
289
388
|
---
|
|
290
389
|
|
|
291
|
-
### Notifications
|
|
390
|
+
### [I3] Notifications
|
|
292
391
|
|
|
293
392
|
```
|
|
294
393
|
Notifications — current: {configured / not set}
|
|
@@ -303,7 +402,7 @@ If [2]: remove `CLANCY_NOTIFY_WEBHOOK` from `.clancy/.env`.
|
|
|
303
402
|
|
|
304
403
|
---
|
|
305
404
|
|
|
306
|
-
### Switch board
|
|
405
|
+
### [S] Switch board
|
|
307
406
|
|
|
308
407
|
Show which board is currently active, then offer the other two:
|
|
309
408
|
|
|
@@ -394,7 +493,7 @@ Then loop back to the main settings menu.
|
|
|
394
493
|
|
|
395
494
|
---
|
|
396
495
|
|
|
397
|
-
### Exit
|
|
496
|
+
### [X] Exit
|
|
398
497
|
|
|
399
498
|
Print nothing extra. Stop.
|
|
400
499
|
|
|
@@ -411,13 +510,7 @@ When updating a value:
|
|
|
411
510
|
|
|
412
511
|
---
|
|
413
512
|
|
|
414
|
-
### Save as global defaults
|
|
415
|
-
|
|
416
|
-
At the bottom of the settings menu (before Exit), show:
|
|
417
|
-
|
|
418
|
-
```
|
|
419
|
-
[{N}] Save as defaults save current settings for all future projects
|
|
420
|
-
```
|
|
513
|
+
### [D] Save as global defaults
|
|
421
514
|
|
|
422
515
|
When selected:
|
|
423
516
|
|
|
@@ -50,6 +50,9 @@ If `PLAYWRIGHT_ENABLED=true` and the tech agent is re-running: verify `PLAYWRIGH
|
|
|
50
50
|
## Step 3 — Confirm before running
|
|
51
51
|
|
|
52
52
|
```
|
|
53
|
+
🚨 Clancy — Update Docs
|
|
54
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
55
|
+
|
|
53
56
|
Based on your changes, I'll re-run:
|
|
54
57
|
- {agent list}
|
|
55
58
|
|
|
@@ -81,9 +84,9 @@ git commit -m "docs(clancy): update-docs — refresh .clancy/docs/"
|
|
|
81
84
|
## Step 6 — Final message
|
|
82
85
|
|
|
83
86
|
```
|
|
84
|
-
Docs updated.
|
|
87
|
+
✅ Docs updated — {N} files refreshed.
|
|
85
88
|
|
|
86
89
|
Updated: {file list}
|
|
87
90
|
|
|
88
|
-
Run /clancy:once or /clancy:run when ready.
|
|
91
|
+
"Case files updated." — Run /clancy:once or /clancy:run when ready.
|
|
89
92
|
```
|