chief-clancy 0.8.22 → 0.9.0

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.
Files changed (94) hide show
  1. package/bin/clancy.js +153 -0
  2. package/package.json +8 -88
  3. package/README.md +0 -292
  4. package/dist/bundle/clancy-afk.js +0 -6
  5. package/dist/bundle/clancy-once.js +0 -239
  6. package/dist/installer/file-ops/file-ops.d.ts +0 -32
  7. package/dist/installer/file-ops/file-ops.d.ts.map +0 -1
  8. package/dist/installer/file-ops/file-ops.js +0 -58
  9. package/dist/installer/file-ops/file-ops.js.map +0 -1
  10. package/dist/installer/hook-installer/hook-installer.d.ts +0 -31
  11. package/dist/installer/hook-installer/hook-installer.d.ts.map +0 -1
  12. package/dist/installer/hook-installer/hook-installer.js +0 -137
  13. package/dist/installer/hook-installer/hook-installer.js.map +0 -1
  14. package/dist/installer/install.d.ts +0 -3
  15. package/dist/installer/install.d.ts.map +0 -1
  16. package/dist/installer/install.js +0 -270
  17. package/dist/installer/install.js.map +0 -1
  18. package/dist/installer/manifest/manifest.d.ts +0 -41
  19. package/dist/installer/manifest/manifest.d.ts.map +0 -1
  20. package/dist/installer/manifest/manifest.js +0 -97
  21. package/dist/installer/manifest/manifest.js.map +0 -1
  22. package/dist/installer/prompts/prompts.d.ts +0 -33
  23. package/dist/installer/prompts/prompts.d.ts.map +0 -1
  24. package/dist/installer/prompts/prompts.js +0 -55
  25. package/dist/installer/prompts/prompts.js.map +0 -1
  26. package/dist/installer/role-filter/role-filter.d.ts +0 -15
  27. package/dist/installer/role-filter/role-filter.d.ts.map +0 -1
  28. package/dist/installer/role-filter/role-filter.js +0 -48
  29. package/dist/installer/role-filter/role-filter.js.map +0 -1
  30. package/dist/installer/ui/ui.d.ts +0 -9
  31. package/dist/installer/ui/ui.d.ts.map +0 -1
  32. package/dist/installer/ui/ui.js +0 -94
  33. package/dist/installer/ui/ui.js.map +0 -1
  34. package/dist/scripts/shared/env-parser/env-parser.d.ts +0 -30
  35. package/dist/scripts/shared/env-parser/env-parser.d.ts.map +0 -1
  36. package/dist/scripts/shared/env-parser/env-parser.js +0 -64
  37. package/dist/scripts/shared/env-parser/env-parser.js.map +0 -1
  38. package/dist/utils/ansi/ansi.d.ts +0 -55
  39. package/dist/utils/ansi/ansi.d.ts.map +0 -1
  40. package/dist/utils/ansi/ansi.js +0 -55
  41. package/dist/utils/ansi/ansi.js.map +0 -1
  42. package/hooks/clancy-branch-guard.js +0 -128
  43. package/hooks/clancy-check-update.js +0 -114
  44. package/hooks/clancy-context-monitor.js +0 -189
  45. package/hooks/clancy-credential-guard.js +0 -120
  46. package/hooks/clancy-drift-detector.js +0 -96
  47. package/hooks/clancy-notification.js +0 -105
  48. package/hooks/clancy-post-compact.js +0 -53
  49. package/hooks/clancy-statusline.js +0 -82
  50. package/hooks/package.json +0 -3
  51. package/registry/boards.json +0 -44
  52. package/src/agents/arch-agent.md +0 -72
  53. package/src/agents/concerns-agent.md +0 -89
  54. package/src/agents/design-agent.md +0 -130
  55. package/src/agents/devils-advocate.md +0 -53
  56. package/src/agents/quality-agent.md +0 -161
  57. package/src/agents/tech-agent.md +0 -92
  58. package/src/agents/verification-gate.md +0 -128
  59. package/src/roles/implementer/commands/dry-run.md +0 -14
  60. package/src/roles/implementer/commands/once.md +0 -17
  61. package/src/roles/implementer/commands/run.md +0 -11
  62. package/src/roles/implementer/workflows/once.md +0 -146
  63. package/src/roles/implementer/workflows/run.md +0 -127
  64. package/src/roles/planner/commands/approve-plan.md +0 -10
  65. package/src/roles/planner/commands/plan.md +0 -20
  66. package/src/roles/planner/workflows/approve-plan.md +0 -535
  67. package/src/roles/planner/workflows/plan.md +0 -536
  68. package/src/roles/reviewer/commands/logs.md +0 -7
  69. package/src/roles/reviewer/commands/review.md +0 -9
  70. package/src/roles/reviewer/commands/status.md +0 -9
  71. package/src/roles/reviewer/workflows/logs.md +0 -104
  72. package/src/roles/reviewer/workflows/review.md +0 -186
  73. package/src/roles/reviewer/workflows/status.md +0 -134
  74. package/src/roles/setup/commands/doctor.md +0 -7
  75. package/src/roles/setup/commands/help.md +0 -80
  76. package/src/roles/setup/commands/init.md +0 -7
  77. package/src/roles/setup/commands/map-codebase.md +0 -16
  78. package/src/roles/setup/commands/settings.md +0 -7
  79. package/src/roles/setup/commands/uninstall.md +0 -5
  80. package/src/roles/setup/commands/update-docs.md +0 -9
  81. package/src/roles/setup/commands/update.md +0 -12
  82. package/src/roles/setup/workflows/doctor.md +0 -124
  83. package/src/roles/setup/workflows/init.md +0 -1073
  84. package/src/roles/setup/workflows/map-codebase.md +0 -125
  85. package/src/roles/setup/workflows/scaffold.md +0 -845
  86. package/src/roles/setup/workflows/settings.md +0 -944
  87. package/src/roles/setup/workflows/uninstall.md +0 -161
  88. package/src/roles/setup/workflows/update-docs.md +0 -92
  89. package/src/roles/setup/workflows/update.md +0 -277
  90. package/src/roles/strategist/commands/approve-brief.md +0 -21
  91. package/src/roles/strategist/commands/brief.md +0 -27
  92. package/src/roles/strategist/workflows/approve-brief.md +0 -834
  93. package/src/roles/strategist/workflows/brief.md +0 -890
  94. package/src/templates/CLAUDE.md +0 -87
@@ -1,161 +0,0 @@
1
- # Clancy Uninstall Workflow
2
-
3
- ## Overview
4
-
5
- Remove Clancy's slash commands from the local project, globally, or both. Optionally remove the `.clancy/` project folder (which includes `.clancy/.env`). Clean up CLAUDE.md, .gitignore, and .prettierignore changes made during init.
6
-
7
- ---
8
-
9
- ## Step 1 — Detect install locations
10
-
11
- Check both locations silently. Each install has two parts — commands and workflows:
12
-
13
- - **Project-local commands:** `.claude/commands/clancy/`
14
- - **Project-local workflows:** `.claude/clancy/`
15
- - **Global commands:** `~/.claude/commands/clancy/`
16
- - **Global workflows:** `~/.claude/clancy/`
17
-
18
- | Scenario | Action |
19
- |---|---|
20
- | Found in both | Ask: "Remove from project, globally, or both?" → `[1] Project only` `[2] Global only` `[3] Both` |
21
- | Found in project only | Proceed with project removal |
22
- | Found globally only | Proceed with global removal |
23
- | Found in neither | Print "Clancy commands not found. Nothing to remove." and stop |
24
-
25
- ---
26
-
27
- ## Step 2 — Confirm before removing commands
28
-
29
- Show exactly this message, filling in the detected location:
30
-
31
- ```
32
- 🚨 Clancy — Uninstall
33
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
34
-
35
- This will remove Clancy's slash commands from [location].
36
- Your .clancy/ folder will not be touched.
37
- Continue? (yes / no)
38
- ```
39
-
40
- - `no` → print "Nothing removed." and stop
41
- - `yes` → proceed to remove commands, workflows, hooks, and settings entries (Steps 2a–2c)
42
-
43
- If "Both" was chosen in Step 1: confirm once for both, remove everything for both locations.
44
-
45
- ### Step 2a — Remove command and workflow directories
46
-
47
- Delete both the commands directory and the workflows directory for the chosen location(s):
48
- - Project-local: `.claude/commands/clancy/` and `.claude/clancy/`
49
- - Global: `~/.claude/commands/clancy/` and `~/.claude/clancy/`
50
-
51
- Print: `✅ Clancy commands removed from [location].`
52
-
53
- ### Step 2b — Remove hooks
54
-
55
- For each location being removed, delete these hook files if they exist:
56
- - Project-local: `.claude/hooks/clancy-check-update.js`, `.claude/hooks/clancy-statusline.js`, `.claude/hooks/clancy-context-monitor.js`, `.claude/hooks/clancy-credential-guard.js`
57
- - Global: `~/.claude/hooks/clancy-check-update.js`, `~/.claude/hooks/clancy-statusline.js`, `~/.claude/hooks/clancy-context-monitor.js`, `~/.claude/hooks/clancy-credential-guard.js`
58
-
59
- Then remove the Clancy hook registrations from the corresponding `settings.json` (`.claude/settings.json` for local, `~/.claude/settings.json` for global):
60
- - Remove any entry in `hooks.SessionStart` whose `command` contains `clancy-check-update`
61
- - Remove any entry in `hooks.PostToolUse` whose `command` contains `clancy-context-monitor`
62
- - Remove any entry in `hooks.PreToolUse` whose `command` contains `clancy-credential-guard`
63
- - Remove the `statusLine` key if its `command` value contains `clancy-statusline`
64
- - If removing an entry leaves a `hooks.SessionStart`, `hooks.PostToolUse`, or `hooks.PreToolUse` array empty, remove the key entirely
65
-
66
- Also remove the update check cache if it exists: `~/.claude/cache/clancy-update-check.json`
67
-
68
- If `settings.json` does not exist or cannot be parsed, skip silently — do not create or overwrite it.
69
-
70
- ---
71
-
72
- ## Step 3 — Clean up CLAUDE.md
73
-
74
- Check whether `CLAUDE.md` exists in the current project directory.
75
-
76
- If it does, check for Clancy markers (`<!-- clancy:start -->` and `<!-- clancy:end -->`):
77
-
78
- **If markers found:**
79
-
80
- Read the full file content. Determine whether Clancy created the file or appended to an existing one:
81
-
82
- - **Clancy created it** (the file contains only whitespace outside the markers — no meaningful content before `<!-- clancy:start -->` or after `<!-- clancy:end -->`): delete the entire file.
83
- - **Clancy appended to an existing file** (there is meaningful content outside the markers): remove everything from `<!-- clancy:start -->` through `<!-- clancy:end -->` (inclusive), plus any blank lines immediately before the start marker that were added as spacing. Write the cleaned file back.
84
-
85
- Print `✅ CLAUDE.md cleaned up.` (or `✅ CLAUDE.md removed.` if deleted).
86
-
87
- **If no markers found:** skip — Clancy didn't modify this file.
88
-
89
- **If CLAUDE.md does not exist:** skip.
90
-
91
- ---
92
-
93
- ## Step 4 — Clean up .gitignore
94
-
95
- Check whether `.gitignore` exists in the current project directory.
96
-
97
- If it does, check whether it contains the Clancy entries (`# Clancy credentials` and/or `.clancy/.env`):
98
-
99
- **If found:** remove the `# Clancy credentials` comment line and the `.clancy/.env` line. Also remove any blank line immediately before or after the removed block to avoid leaving double blank lines. Write the cleaned file back.
100
-
101
- If the file is now empty (or contains only whitespace) after removal, delete it entirely — Clancy created it during init.
102
-
103
- Print `✅ .gitignore cleaned up.` (or `✅ .gitignore removed.` if deleted).
104
-
105
- **If not found:** skip — Clancy didn't modify this file.
106
-
107
- **If .gitignore does not exist:** skip.
108
-
109
- ---
110
-
111
- ## Step 5 — Clean up .prettierignore
112
-
113
- Check whether `.prettierignore` exists in the current project directory.
114
-
115
- If it does, check whether it contains Clancy entries (`# Clancy generated files` and/or `.clancy/` and/or `.claude/commands/clancy/`):
116
-
117
- **If found:** remove the `# Clancy generated files` comment line, the `.clancy/` line, and the `.claude/commands/clancy/` line. Also remove any blank line immediately before or after the removed block to avoid leaving double blank lines. Write the cleaned file back.
118
-
119
- If the file is now empty (or contains only whitespace) after removal, delete it entirely — Clancy added those entries during init.
120
-
121
- Print `✅ .prettierignore cleaned up.` (or `✅ .prettierignore removed.` if deleted).
122
-
123
- **If not found:** skip — Clancy didn't modify this file.
124
-
125
- **If .prettierignore does not exist:** skip.
126
-
127
- ---
128
-
129
- ## Step 6 — Offer to remove .clancy/ (if present)
130
-
131
- Check whether `.clancy/` exists in the current project directory.
132
-
133
- If it does, ask separately:
134
-
135
- ```
136
- .clancy/ contains your codebase docs, progress log, and credentials (.env).
137
- Remove it too? This cannot be undone. (yes / no)
138
- ```
139
-
140
- - `no` → print "✅ .clancy/ kept — your docs and progress log are safe."
141
- - `yes` → delete `.clancy/` and print "✅ .clancy/ removed."
142
-
143
- If `.clancy/` does not exist, skip this step entirely.
144
-
145
- ---
146
-
147
- ## Step 7 — Final message
148
-
149
- ```
150
- ✅ Clancy uninstalled.
151
-
152
- "You have the right to remain silent... goodbye, Clancy." — To reinstall: npx chief-clancy
153
- ```
154
-
155
- ---
156
-
157
- ## Hard constraints
158
-
159
- - **Never touch any `.env` at the project root** — Clancy's credentials live in `.clancy/.env` and are only removed as part of `.clancy/` in Step 6
160
- - Steps 1–2 (commands removal), Steps 3–5 (CLAUDE.md, .gitignore, and .prettierignore cleanup), and Step 6 (`.clancy/` removal) are always asked separately — never bundle them into one confirmation
161
- - If the user says no to commands removal in Step 2, skip all remaining steps and stop
@@ -1,92 +0,0 @@
1
- # Clancy Update-Docs Workflow
2
-
3
- ## Overview
4
-
5
- Incrementally refresh `.clancy/docs/` by re-running only the agents covering areas that have changed. Faster than a full `map-codebase` when changes are targeted.
6
-
7
- ---
8
-
9
- ## Step 0 — Preflight
10
-
11
- Check `.clancy/` exists and `.clancy/.env` is present.
12
-
13
- If either is missing:
14
- ```
15
- .clancy/ not found. Run /clancy:init to set up Clancy first.
16
- ```
17
- Stop.
18
-
19
- ---
20
-
21
- ## Step 1 — Determine what changed
22
-
23
- Ask: "What changed since your last codebase scan? (or press Enter to auto-detect via git diff)"
24
-
25
- If the user describes changes, parse their description to identify affected areas.
26
-
27
- If Enter is pressed, run:
28
- ```bash
29
- git diff --name-only HEAD~10 HEAD 2>/dev/null || git diff --name-only
30
- ```
31
-
32
- ---
33
-
34
- ## Step 2 — Map changes to agents
35
-
36
- | Changed files / areas | Re-run agent |
37
- |---|---|
38
- | `package.json`, `*.lock`, deps, build config, env | tech |
39
- | `src/` structure, API routes, data models, services | arch |
40
- | test files, lint config, `.eslintrc`, `jest.config.*` | quality |
41
- | CSS, tokens, Figma, component library, a11y | design |
42
- | Security, performance, infra, known issues | concerns |
43
-
44
- Multiple agents may need to re-run — run them in parallel.
45
-
46
- If `PLAYWRIGHT_ENABLED=true` and the tech agent is re-running: verify `PLAYWRIGHT.md` ports/commands still match what `STACK.md` now says. Update `PLAYWRIGHT.md` if they differ.
47
-
48
- ---
49
-
50
- ## Step 3 — Confirm before running
51
-
52
- ```
53
- 🚨 Clancy — Update Docs
54
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
55
-
56
- Based on your changes, I'll re-run:
57
- - {agent list}
58
-
59
- This will update:
60
- - {file list}
61
-
62
- Continue? [Y/n]:
63
- ```
64
-
65
- ---
66
-
67
- ## Step 4 — Re-run selected agents in parallel
68
-
69
- Same as map-codebase Step 3, but only for the selected agents.
70
-
71
- ---
72
-
73
- ## Step 5 — Verify and commit
74
-
75
- Verify each updated file is non-empty.
76
-
77
- ```bash
78
- git add .clancy/docs/
79
- git commit -m "docs(clancy): update-docs — refresh .clancy/docs/"
80
- ```
81
-
82
- ---
83
-
84
- ## Step 6 — Final message
85
-
86
- ```
87
- ✅ Docs updated — {N} files refreshed.
88
-
89
- Updated: {file list}
90
-
91
- "Case files updated." — Run /clancy:once or /clancy:run when ready.
92
- ```
@@ -1,277 +0,0 @@
1
- # Clancy Update Workflow
2
-
3
- ## Overview
4
-
5
- Check for Clancy updates via npm, display changelog for versions between installed and latest, obtain user confirmation, and execute clean installation.
6
-
7
- ---
8
-
9
- ## Step 1 — Detect installed version
10
-
11
- Determine whether Clancy is installed locally or globally by checking both locations:
12
-
13
- ```bash
14
- LOCAL_VERSION_FILE="./.claude/commands/clancy/VERSION"
15
- GLOBAL_VERSION_FILE="$HOME/.claude/commands/clancy/VERSION"
16
-
17
- if [ -f "$LOCAL_VERSION_FILE" ] && grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+' "$LOCAL_VERSION_FILE"; then
18
- INSTALLED=$(cat "$LOCAL_VERSION_FILE")
19
- INSTALL_TYPE="LOCAL"
20
- elif [ -f "$GLOBAL_VERSION_FILE" ] && grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+' "$GLOBAL_VERSION_FILE"; then
21
- INSTALLED=$(cat "$GLOBAL_VERSION_FILE")
22
- INSTALL_TYPE="GLOBAL"
23
- else
24
- INSTALLED="unknown"
25
- INSTALL_TYPE="UNKNOWN"
26
- fi
27
-
28
- echo "$INSTALLED"
29
- echo "$INSTALL_TYPE"
30
- ```
31
-
32
- Parse output:
33
- - First line = installed version (or "unknown")
34
- - Second line = install type (LOCAL, GLOBAL, or UNKNOWN)
35
-
36
- **If version is unknown:**
37
- ```
38
- ## Clancy Update
39
-
40
- **Installed version:** Unknown
41
-
42
- Your installation doesn't include version tracking.
43
-
44
- Running fresh install...
45
- ```
46
-
47
- Proceed to Step 4 (treat as version 0.0.0 for comparison).
48
-
49
- ---
50
-
51
- ## Step 2 — Check latest version
52
-
53
- Check npm for the latest published version:
54
-
55
- ```bash
56
- npm view chief-clancy version 2>/dev/null
57
- ```
58
-
59
- **If npm check fails:**
60
- ```
61
- Couldn't check for updates (offline or npm unavailable).
62
-
63
- To update manually: `npx chief-clancy@latest`
64
- ```
65
-
66
- Exit.
67
-
68
- ---
69
-
70
- ## Step 3 — Compare versions and confirm
71
-
72
- Compare installed vs latest:
73
-
74
- **If installed == latest:**
75
- ```
76
- 🚨 Clancy — Update
77
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
78
-
79
- **Installed:** X.Y.Z
80
- **Latest:** X.Y.Z
81
-
82
- ✅ You're already on the latest version. "Nothing to see here, folks."
83
- ```
84
-
85
- Exit.
86
-
87
- **If update available**, fetch the changelog from GitHub and show what's new BEFORE updating:
88
-
89
- ```bash
90
- curl -s https://raw.githubusercontent.com/Pushedskydiver/clancy/main/CHANGELOG.md
91
- ```
92
-
93
- The CHANGELOG uses `## [X.Y.Z]` headings. Extract all content from the `## [{latest}]` heading down to (but not including) the `## [{installed}]` heading.
94
-
95
- If the changelog fetch fails (network error, non-200), skip the "What's New" section and show: `Could not fetch changelog. View changes at github.com/Pushedskydiver/clancy/blob/main/CHANGELOG.md`
96
-
97
- Display:
98
-
99
- ```
100
- 🚨 Clancy — Update
101
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
102
-
103
- **Installed:** {installed}
104
- **Latest:** {latest}
105
-
106
- ### What's New
107
- ────────────────────────────────────────────────────────────
108
-
109
- {relevant CHANGELOG entries between installed and latest}
110
-
111
- ────────────────────────────────────────────────────────────
112
-
113
- ⚠️ **Note:** The update performs a clean install of Clancy command folders:
114
- - `.claude/commands/clancy/` will be replaced
115
- - `.claude/clancy/workflows/` will be replaced
116
-
117
- If you've modified any Clancy files directly, they'll be automatically backed up
118
- to `.claude/clancy/local-patches/` before overwriting.
119
-
120
- Your project files are preserved:
121
- - `.clancy/docs/`, `.clancy/.env`, `.clancy/progress.txt` ✅
122
- - `CLAUDE.md` ✅
123
- - Custom commands not in `commands/clancy/` ✅
124
- - Custom hooks ✅
125
-
126
- Note: `.clancy/clancy-once.js` and `.clancy/clancy-afk.js` **will be replaced** with
127
- the latest bundled versions. The rest of `.clancy/` is untouched.
128
- ```
129
-
130
- **AFK mode check:** If `--afk` flag is passed OR `CLANCY_MODE=afk` in `.clancy/.env`, **skip the confirmation and proceed automatically.** Do not prompt — auto-approve the update.
131
-
132
- **Interactive mode:** Ask the user: **"Proceed with update?"** with options:
133
- - "Yes, update now"
134
- - "No, cancel"
135
-
136
- **If user cancels:** Exit.
137
-
138
- ---
139
-
140
- ## Step 4 — Run the update
141
-
142
- Run the installer using the detected install type from Step 1. Pass `--global` or `--local` so the installer runs non-interactively (no prompts):
143
-
144
- - If `INSTALL_TYPE` is `LOCAL`: `npx -y chief-clancy@latest --local`
145
- - If `INSTALL_TYPE` is `GLOBAL`: `npx -y chief-clancy@latest --global`
146
- - If `INSTALL_TYPE` is `UNKNOWN`: `npx -y chief-clancy@latest` (falls back to interactive mode)
147
-
148
- ```bash
149
- # Example for local install:
150
- npx -y chief-clancy@latest --local
151
-
152
- # Example for global install:
153
- npx -y chief-clancy@latest --global
154
- ```
155
-
156
- The `--global`/`--local` flags skip the interactive install-type prompt and auto-accept the overwrite confirmation.
157
-
158
- This touches:
159
- - `.claude/commands/clancy/` — slash commands (replaced)
160
- - `.claude/clancy/workflows/` — workflow files (replaced)
161
- - `.clancy/clancy-once.js` and `.clancy/clancy-afk.js` — bundled runtime scripts (replaced)
162
-
163
- It never modifies:
164
- - `.clancy/docs/` — codebase documentation
165
- - `.clancy/progress.txt` — progress log
166
- - `CLAUDE.md`
167
-
168
- It may **append** to:
169
- - `.clancy/.env` — adds missing env var defaults (see Step 4a)
170
-
171
- ---
172
-
173
- ## Step 4a — Backfill missing env var defaults
174
-
175
- After the installer finishes, read `.clancy/.env` and check for missing pipeline label variables. These were introduced in v0.7.4 and won't exist in `.env` files from earlier installs.
176
-
177
- **Check for and append if missing:**
178
-
179
- ```
180
- # Pipeline labels (added in v0.7.4)
181
- CLANCY_LABEL_BRIEF=clancy:brief
182
- CLANCY_LABEL_PLAN=clancy:plan
183
- CLANCY_LABEL_BUILD=clancy:build
184
- ```
185
-
186
- For each variable:
187
- 1. Read `.clancy/.env` content
188
- 2. If the variable name does NOT appear anywhere in the file (not even commented out), append it with its default value
189
- 3. If the variable already exists (even with a different value), leave it untouched
190
-
191
- Add a blank line and a `# Pipeline labels (added in v0.7.4)` comment header before the new variables, but only if at least one variable was added.
192
-
193
- **Display what was added (if any):**
194
- ```
195
- 📋 Added missing env var defaults to .clancy/.env:
196
- CLANCY_LABEL_BRIEF=clancy:brief
197
- CLANCY_LABEL_PLAN=clancy:plan
198
- CLANCY_LABEL_BUILD=clancy:build
199
-
200
- Customise these via /clancy:settings → L1/L2/L3
201
- ```
202
-
203
- If nothing was added, display nothing.
204
-
205
- ---
206
-
207
- ## Step 5 — Check for local patches
208
-
209
- After the update completes, check if the installer backed up any locally modified files:
210
-
211
- Check for `.claude/clancy/local-patches/backup-meta.json` (local install) or `~/.claude/clancy/local-patches/backup-meta.json` (global install).
212
-
213
- **If patches were found:**
214
-
215
- ```
216
- Local patches were backed up before the update.
217
- Your modified files are in .claude/clancy/local-patches/
218
-
219
- To review what changed:
220
- Compare each file in local-patches/ against its counterpart in
221
- .claude/commands/clancy/ or .claude/clancy/workflows/ and manually
222
- reapply any customisations you want to keep.
223
-
224
- Backed up files:
225
- {list from backup-meta.json}
226
- ```
227
-
228
- **If no patches:** Continue normally (no message needed).
229
-
230
- ---
231
-
232
- ## Step 6 — Clear update cache and confirm
233
-
234
- Clear the update check cache so the statusline indicator disappears:
235
-
236
- ```bash
237
- rm -f "$HOME/.claude/cache/clancy-update-check.json"
238
- rm -f "./.claude/cache/clancy-update-check.json"
239
- ```
240
-
241
- Display completion message:
242
-
243
- ```
244
- ╔═══════════════════════════════════════════════════════════╗
245
- ║ ✅ Clancy Updated: v{old} → v{new} ║
246
- ╚═══════════════════════════════════════════════════════════╝
247
-
248
- "New badge, same Chief." — Start a new Claude Code session to pick up the updated commands.
249
-
250
- View full changelog: github.com/Pushedskydiver/clancy/blob/main/CHANGELOG.md
251
- ```
252
-
253
- ### New role hints
254
-
255
- After the completion message, check `.clancy/.env` for `CLANCY_ROLES` and display hints for any optional roles that are available but not enabled:
256
-
257
- - If `CLANCY_ROLES` does not include `planner`:
258
- ```
259
- 💡 Planner role available — refine vague tickets into structured plans.
260
- Run /clancy:settings to enable it.
261
- ```
262
- - If `CLANCY_ROLES` does not include `strategist`:
263
- ```
264
- 💡 Strategist role available — generate briefs, grill requirements, create tickets.
265
- Run /clancy:settings to enable it.
266
- ```
267
- - If `CLANCY_ROLES` is not set at all (env var missing), show both hints.
268
- - If all optional roles are already enabled, show nothing.
269
-
270
- ---
271
-
272
- ## Notes
273
-
274
- - If the user installed globally, the update applies globally
275
- - If the user installed locally, the update applies locally
276
- - After updating, restart Claude Code for new commands to take effect
277
- - New role hints are shown post-update so existing users discover features added in newer versions
@@ -1,21 +0,0 @@
1
- # /clancy:approve-brief
2
-
3
- Convert an approved brief into real tickets on the board. Creates child tickets under the parent, links dependencies, and posts a tracking summary.
4
-
5
- Accepts optional arguments:
6
- - **By slug:** `/clancy:approve-brief auth-rework` — approve a specific brief
7
- - **By index:** `/clancy:approve-brief 2` — approve the 2nd unapproved brief
8
- - **By ticket:** `/clancy:approve-brief PROJ-123` — approve brief sourced from this ticket
9
- - **Set parent:** `--epic PROJ-50` — override or set the parent epic
10
- - **Preview:** `--dry-run` — show what would be created without making API calls
11
- - **Skip confirmation:** `--afk` — auto-confirm without prompting (for automation)
12
-
13
- Examples:
14
- - `/clancy:approve-brief` — auto-select (if only 1 unapproved brief)
15
- - `/clancy:approve-brief auth-rework` — approve by slug
16
- - `/clancy:approve-brief --dry-run` — preview ticket creation
17
- - `/clancy:approve-brief --epic PROJ-50` — set parent and approve
18
-
19
- @.claude/clancy/workflows/approve-brief.md
20
-
21
- Follow the approve-brief workflow above. Parse the decomposition, create tickets on the board, link dependencies, and post a tracking comment.
@@ -1,27 +0,0 @@
1
- # /clancy:brief
2
-
3
- Generate a strategic brief for a feature idea. Researches the codebase, grills you (or itself) on requirements, and produces a decomposition into actionable tickets.
4
-
5
- Accepts optional arguments:
6
- - **Board ticket:** `/clancy:brief PROJ-123`, `/clancy:brief #42`, `/clancy:brief ENG-42` — brief from a board ticket
7
- - **Inline text:** `/clancy:brief "Add dark mode"` — brief from a description
8
- - **From file:** `/clancy:brief --from docs/rfc.md` — brief from a local file
9
- - **Batch mode:** `/clancy:brief 3` — brief up to 3 tickets from the queue
10
- - **Fresh start:** `--fresh` — discard existing brief and start over
11
- - **Force web research:** `--research` — include web research in analysis
12
- - **AFK mode:** `--afk` — use AI-grill instead of human grill
13
- - **Epic hint:** `--epic PROJ-50 "Add dark mode"` — set parent for approve step
14
- - **List briefs:** `--list` — show inventory of existing briefs
15
-
16
- Examples:
17
- - `/clancy:brief` — interactive mode (prompt for idea)
18
- - `/clancy:brief PROJ-200` — brief a Jira ticket
19
- - `/clancy:brief #42` — brief a GitHub issue
20
- - `/clancy:brief ENG-42` — brief a Linear issue
21
- - `/clancy:brief "Add dark mode support"` — brief from inline text
22
- - `/clancy:brief --afk PROJ-200` — brief with AI-grill (no human questions)
23
- - `/clancy:brief --list` — show all briefs
24
-
25
- @.claude/clancy/workflows/brief.md
26
-
27
- Follow the brief workflow above. Research the codebase, conduct the grill phase, generate the brief, and save it locally. Do not create tickets — briefing only.