chief-clancy 0.7.4 → 0.8.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 +5 -2
- package/dist/bundle/clancy-afk.js +6 -6
- package/dist/bundle/clancy-once.js +50 -49
- package/dist/installer/hook-installer/hook-installer.d.ts.map +1 -1
- package/dist/installer/hook-installer/hook-installer.js +6 -0
- package/dist/installer/hook-installer/hook-installer.js.map +1 -1
- package/dist/installer/install.js +5 -94
- package/dist/installer/install.js.map +1 -1
- package/dist/installer/ui/ui.d.ts +9 -0
- package/dist/installer/ui/ui.d.ts.map +1 -0
- package/dist/installer/ui/ui.js +94 -0
- package/dist/installer/ui/ui.js.map +1 -0
- package/hooks/clancy-drift-detector.js +96 -0
- package/hooks/clancy-notification.js +105 -0
- package/package.json +1 -1
- package/src/roles/planner/workflows/approve-plan.md +1 -1
- package/src/roles/planner/workflows/plan.md +8 -0
- package/src/roles/setup/commands/help.md +3 -1
- package/src/roles/setup/commands/update.md +4 -1
- package/src/roles/setup/workflows/init.md +75 -3
- package/src/roles/setup/workflows/scaffold.md +158 -0
- package/src/roles/setup/workflows/settings.md +60 -5
- package/src/roles/setup/workflows/update.md +40 -2
- package/src/roles/strategist/workflows/approve-brief.md +14 -9
- package/src/roles/strategist/workflows/brief.md +5 -1
- package/src/templates/.env.example.github +0 -80
- package/src/templates/.env.example.jira +0 -102
- package/src/templates/.env.example.linear +0 -86
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-installer.d.ts","sourceRoot":"","sources":["../../../src/installer/hook-installer/hook-installer.ts"],"names":[],"mappings":"AAwBA,sCAAsC;AACtC,KAAK,oBAAoB,GAAG;IAC1B,sEAAsE;IACtE,eAAe,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAkEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"hook-installer.d.ts","sourceRoot":"","sources":["../../../src/installer/hook-installer/hook-installer.ts"],"names":[],"mappings":"AAwBA,sCAAsC;AACtC,KAAK,oBAAoB,GAAG;IAC1B,sEAAsE;IACtE,eAAe,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAkEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CA0GnE"}
|
|
@@ -75,6 +75,8 @@ export function installHooks(options) {
|
|
|
75
75
|
'clancy-credential-guard.js',
|
|
76
76
|
'clancy-branch-guard.js',
|
|
77
77
|
'clancy-post-compact.js',
|
|
78
|
+
'clancy-notification.js',
|
|
79
|
+
'clancy-drift-detector.js',
|
|
78
80
|
];
|
|
79
81
|
try {
|
|
80
82
|
mkdirSync(hooksInstallDir, { recursive: true });
|
|
@@ -108,6 +110,10 @@ export function installHooks(options) {
|
|
|
108
110
|
registerHook(hooks, 'PreToolUse', `node ${JSON.stringify(guardScript)}`);
|
|
109
111
|
registerHook(hooks, 'PreToolUse', `node ${JSON.stringify(branchGuardScript)}`);
|
|
110
112
|
registerHook(hooks, 'PostCompact', `node ${JSON.stringify(postCompactScript)}`);
|
|
113
|
+
const notificationScript = join(hooksInstallDir, 'clancy-notification.js');
|
|
114
|
+
const driftDetectorScript = join(hooksInstallDir, 'clancy-drift-detector.js');
|
|
115
|
+
registerHook(hooks, 'Notification', `node ${JSON.stringify(notificationScript)}`);
|
|
116
|
+
registerHook(hooks, 'PostToolUse', `node ${JSON.stringify(driftDetectorScript)}`);
|
|
111
117
|
// Verification gate: registered as a Stop agent hook with the prompt inline.
|
|
112
118
|
// The prompt is read from the agents directory at install time.
|
|
113
119
|
if (options.verificationGatePrompt) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-installer.js","sourceRoot":"","sources":["../../../src/installer/hook-installer/hook-installer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAqBjC;;;;;;GAMG;AACH,SAAS,YAAY,CACnB,KAAkC,EAClC,KAAa,EACb,OAAe;IAEf,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAErC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,KAAK,CAAC,IAAI,CACV,CAAC,EAAE,EAAE,EAAE,CACL,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,KAAK,OAAO,CACrE,CACJ,CAAC;IAEF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,iBAAiB,CACxB,KAAkC,EAClC,KAAa,EACb,MAAc,EACd,OAAe;IAEf,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAErC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,KAAK,CAAC,IAAI,CACV,CAAC,EAAE,EAAE,EAAE,CACL,EAAE,CAAC,IAAI,KAAK,OAAO;YACnB,QAAQ,IAAI,EAAE;YACd,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,WAAW,CAC1C,CACJ,CAAC;IAEF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,YAAY,CAAC,OAA6B;IACxD,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IACpD,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAE5D,MAAM,SAAS,GAAG;QAChB,wBAAwB;QACxB,sBAAsB;QACtB,2BAA2B;QAC3B,4BAA4B;QAC5B,wBAAwB;QACxB,wBAAwB;
|
|
1
|
+
{"version":3,"file":"hook-installer.js","sourceRoot":"","sources":["../../../src/installer/hook-installer/hook-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,8 +14,9 @@ import { copyDir } from '../installer/file-ops/file-ops.js';
|
|
|
14
14
|
import { installHooks } from '../installer/hook-installer/hook-installer.js';
|
|
15
15
|
import { backupModifiedFiles, buildManifest, detectModifiedFiles, } from '../installer/manifest/manifest.js';
|
|
16
16
|
import { ask, choose, closePrompts } from '../installer/prompts/prompts.js';
|
|
17
|
+
import { printBanner, printSuccess } from '../installer/ui/ui.js';
|
|
17
18
|
import { loadClancyEnv } from '../scripts/shared/env-parser/env-parser.js';
|
|
18
|
-
import { blue,
|
|
19
|
+
import { blue, dim, green, red } from '../utils/ansi/ansi.js';
|
|
19
20
|
// ---------------------------------------------------------------------------
|
|
20
21
|
// Paths
|
|
21
22
|
// ---------------------------------------------------------------------------
|
|
@@ -38,98 +39,6 @@ const LOCAL_DEST = join(process.cwd(), '.claude', 'commands', 'clancy');
|
|
|
38
39
|
const GLOBAL_WORKFLOWS_DEST = join(homeDir, '.claude', 'clancy', 'workflows');
|
|
39
40
|
const LOCAL_WORKFLOWS_DEST = join(process.cwd(), '.claude', 'clancy', 'workflows');
|
|
40
41
|
// ---------------------------------------------------------------------------
|
|
41
|
-
// Banner
|
|
42
|
-
// ---------------------------------------------------------------------------
|
|
43
|
-
/**
|
|
44
|
-
* Print the Clancy ASCII banner and version info.
|
|
45
|
-
*/
|
|
46
|
-
function printBanner() {
|
|
47
|
-
console.log('');
|
|
48
|
-
console.log(blue(' ██████╗██╗ █████╗ ███╗ ██╗ ██████╗██╗ ██╗'));
|
|
49
|
-
console.log(blue(' ██╔════╝██║ ██╔══██╗████╗ ██║██╔════╝╚██╗ ██╔╝'));
|
|
50
|
-
console.log(blue(' ██║ ██║ ███████║██╔██╗ ██║██║ ╚████╔╝ '));
|
|
51
|
-
console.log(blue(' ██║ ██║ ██╔══██║██║╚██╗██║██║ ╚██╔╝ '));
|
|
52
|
-
console.log(blue(' ╚██████╗███████╗██║ ██║██║ ╚████║╚██████╗ ██║ '));
|
|
53
|
-
console.log(blue(' ╚═════╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚═╝ '));
|
|
54
|
-
console.log('');
|
|
55
|
-
console.log(' ' +
|
|
56
|
-
bold(`v${PKG.version}`) +
|
|
57
|
-
dim(' Autonomous, board-driven development for Claude Code.'));
|
|
58
|
-
console.log(dim(' Named after Chief Clancy Wiggum. Built on the Ralph technique by Geoffrey Huntley.'));
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Print the post-install success message with available commands.
|
|
62
|
-
*/
|
|
63
|
-
function printSuccess(enabledRoles) {
|
|
64
|
-
console.log('');
|
|
65
|
-
console.log(green(' ✓ Clancy installed successfully.'));
|
|
66
|
-
console.log('');
|
|
67
|
-
console.log(' Next steps:');
|
|
68
|
-
console.log(dim(' 1. Open a project in Claude Code'));
|
|
69
|
-
console.log(` 2. Run: ${cyan('/clancy:init')}`);
|
|
70
|
-
console.log('');
|
|
71
|
-
console.log(' Commands available:');
|
|
72
|
-
const OPTIONAL_GROUPS = new Set(['planner', 'strategist']);
|
|
73
|
-
const groups = [
|
|
74
|
-
[
|
|
75
|
-
'Strategist',
|
|
76
|
-
[
|
|
77
|
-
['/clancy:brief', 'Generate a strategic brief for a feature'],
|
|
78
|
-
['/clancy:approve-brief', 'Convert brief into board tickets'],
|
|
79
|
-
],
|
|
80
|
-
],
|
|
81
|
-
[
|
|
82
|
-
'Planner',
|
|
83
|
-
[
|
|
84
|
-
['/clancy:plan', 'Refine backlog tickets into plans'],
|
|
85
|
-
['/clancy:approve-plan', 'Promote plan to ticket description'],
|
|
86
|
-
],
|
|
87
|
-
],
|
|
88
|
-
[
|
|
89
|
-
'Implementer',
|
|
90
|
-
[
|
|
91
|
-
['/clancy:once', 'Pick up one ticket and stop'],
|
|
92
|
-
['/clancy:run', 'Run Clancy in loop mode'],
|
|
93
|
-
['/clancy:dry-run', 'Preview next ticket without changes'],
|
|
94
|
-
],
|
|
95
|
-
],
|
|
96
|
-
[
|
|
97
|
-
'Reviewer',
|
|
98
|
-
[
|
|
99
|
-
['/clancy:review', 'Score next ticket and get recommendations'],
|
|
100
|
-
['/clancy:status', 'Show next tickets without running'],
|
|
101
|
-
['/clancy:logs', 'Display progress log'],
|
|
102
|
-
],
|
|
103
|
-
],
|
|
104
|
-
[
|
|
105
|
-
'Setup & Maintenance',
|
|
106
|
-
[
|
|
107
|
-
['/clancy:init', 'Set up Clancy in your project'],
|
|
108
|
-
['/clancy:map-codebase', 'Scan codebase with 5 parallel agents'],
|
|
109
|
-
['/clancy:settings', 'View and change configuration'],
|
|
110
|
-
['/clancy:doctor', 'Diagnose your setup'],
|
|
111
|
-
['/clancy:update-docs', 'Refresh codebase documentation'],
|
|
112
|
-
['/clancy:update', 'Update Clancy to latest version'],
|
|
113
|
-
['/clancy:uninstall', 'Remove Clancy from your project'],
|
|
114
|
-
['/clancy:help', 'Show all commands'],
|
|
115
|
-
],
|
|
116
|
-
],
|
|
117
|
-
];
|
|
118
|
-
for (const [group, cmds] of groups) {
|
|
119
|
-
const key = group.toLowerCase();
|
|
120
|
-
if (OPTIONAL_GROUPS.has(key) &&
|
|
121
|
-
enabledRoles !== null &&
|
|
122
|
-
!enabledRoles.has(key))
|
|
123
|
-
continue;
|
|
124
|
-
console.log('');
|
|
125
|
-
console.log(` ${bold(group)}`);
|
|
126
|
-
for (const [cmd, desc] of cmds) {
|
|
127
|
-
console.log(` ${cyan(cmd.padEnd(22))} ${dim(desc)}`);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
console.log('');
|
|
131
|
-
}
|
|
132
|
-
// ---------------------------------------------------------------------------
|
|
133
42
|
// Workflow inlining
|
|
134
43
|
// ---------------------------------------------------------------------------
|
|
135
44
|
/** Regex matching an @-file workflow reference in a command file. */
|
|
@@ -245,7 +154,7 @@ function parseInstallFlag() {
|
|
|
245
154
|
async function main() {
|
|
246
155
|
const flag = parseInstallFlag();
|
|
247
156
|
const nonInteractive = flag !== null;
|
|
248
|
-
printBanner();
|
|
157
|
+
printBanner(PKG.version);
|
|
249
158
|
let dest;
|
|
250
159
|
let workflowsDest;
|
|
251
160
|
if (flag === 'global') {
|
|
@@ -363,6 +272,8 @@ async function main() {
|
|
|
363
272
|
}
|
|
364
273
|
// Ensure .clancy is treated as an ESM package so Node runs clancy-*.js as ESM
|
|
365
274
|
writeFileSync(join(clancyProjectDir, 'package.json'), JSON.stringify({ type: 'module' }, null, 2) + '\n');
|
|
275
|
+
// Write version.json for drift detection
|
|
276
|
+
writeFileSync(join(clancyProjectDir, 'version.json'), JSON.stringify({ version: PKG.version, installedAt: new Date().toISOString() }, null, 2) + '\n');
|
|
366
277
|
// Install hooks
|
|
367
278
|
const claudeConfigDir = dest === GLOBAL_DEST
|
|
368
279
|
? join(homeDir, '.claude')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/installer/install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/installer/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Print the Clancy ASCII banner and version info.
|
|
3
|
+
*/
|
|
4
|
+
export declare function printBanner(version: string): void;
|
|
5
|
+
/**
|
|
6
|
+
* Print the post-install success message with available commands.
|
|
7
|
+
*/
|
|
8
|
+
export declare function printSuccess(enabledRoles: Set<string> | null): void;
|
|
9
|
+
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../src/installer/ui/ui.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAmBjD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,CA2EnE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Installer UI — banner and success message.
|
|
3
|
+
*/
|
|
4
|
+
import { blue, bold, cyan, dim, green } from '../../utils/ansi/ansi.js';
|
|
5
|
+
/**
|
|
6
|
+
* Print the Clancy ASCII banner and version info.
|
|
7
|
+
*/
|
|
8
|
+
export function printBanner(version) {
|
|
9
|
+
console.log('');
|
|
10
|
+
console.log(blue(' ██████╗██╗ █████╗ ███╗ ██╗ ██████╗██╗ ██╗'));
|
|
11
|
+
console.log(blue(' ██╔════╝██║ ██╔══██╗████╗ ██║██╔════╝╚██╗ ██╔╝'));
|
|
12
|
+
console.log(blue(' ██║ ██║ ███████║██╔██╗ ██║██║ ╚████╔╝ '));
|
|
13
|
+
console.log(blue(' ██║ ██║ ██╔══██║██║╚██╗██║██║ ╚██╔╝ '));
|
|
14
|
+
console.log(blue(' ╚██████╗███████╗██║ ██║██║ ╚████║╚██████╗ ██║ '));
|
|
15
|
+
console.log(blue(' ╚═════╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚═╝ '));
|
|
16
|
+
console.log('');
|
|
17
|
+
console.log(' ' +
|
|
18
|
+
bold(`v${version}`) +
|
|
19
|
+
dim(' Autonomous, board-driven development for Claude Code.'));
|
|
20
|
+
console.log(dim(' Named after Chief Clancy Wiggum. Built on the Ralph technique by Geoffrey Huntley.'));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Print the post-install success message with available commands.
|
|
24
|
+
*/
|
|
25
|
+
export function printSuccess(enabledRoles) {
|
|
26
|
+
console.log('');
|
|
27
|
+
console.log(green(' ✓ Clancy installed successfully.'));
|
|
28
|
+
console.log('');
|
|
29
|
+
console.log(' Next steps:');
|
|
30
|
+
console.log(dim(' 1. Open a project in Claude Code'));
|
|
31
|
+
console.log(` 2. Run: ${cyan('/clancy:init')}`);
|
|
32
|
+
console.log('');
|
|
33
|
+
console.log(' Commands available:');
|
|
34
|
+
const OPTIONAL_GROUPS = new Set(['planner', 'strategist']);
|
|
35
|
+
const groups = [
|
|
36
|
+
[
|
|
37
|
+
'Strategist',
|
|
38
|
+
[
|
|
39
|
+
['/clancy:brief', 'Generate a strategic brief for a feature'],
|
|
40
|
+
['/clancy:approve-brief', 'Convert brief into board tickets'],
|
|
41
|
+
],
|
|
42
|
+
],
|
|
43
|
+
[
|
|
44
|
+
'Planner',
|
|
45
|
+
[
|
|
46
|
+
['/clancy:plan', 'Refine backlog tickets into plans'],
|
|
47
|
+
['/clancy:approve-plan', 'Promote plan to ticket description'],
|
|
48
|
+
],
|
|
49
|
+
],
|
|
50
|
+
[
|
|
51
|
+
'Implementer',
|
|
52
|
+
[
|
|
53
|
+
['/clancy:once', 'Pick up one ticket and stop'],
|
|
54
|
+
['/clancy:run', 'Run Clancy in loop mode'],
|
|
55
|
+
['/clancy:dry-run', 'Preview next ticket without changes'],
|
|
56
|
+
],
|
|
57
|
+
],
|
|
58
|
+
[
|
|
59
|
+
'Reviewer',
|
|
60
|
+
[
|
|
61
|
+
['/clancy:review', 'Score next ticket and get recommendations'],
|
|
62
|
+
['/clancy:status', 'Show next tickets without running'],
|
|
63
|
+
['/clancy:logs', 'Display progress log'],
|
|
64
|
+
],
|
|
65
|
+
],
|
|
66
|
+
[
|
|
67
|
+
'Setup & Maintenance',
|
|
68
|
+
[
|
|
69
|
+
['/clancy:init', 'Set up Clancy in your project'],
|
|
70
|
+
['/clancy:map-codebase', 'Scan codebase with 5 parallel agents'],
|
|
71
|
+
['/clancy:settings', 'View and change configuration'],
|
|
72
|
+
['/clancy:doctor', 'Diagnose your setup'],
|
|
73
|
+
['/clancy:update-docs', 'Refresh codebase documentation'],
|
|
74
|
+
['/clancy:update', 'Update Clancy to latest version'],
|
|
75
|
+
['/clancy:uninstall', 'Remove Clancy from your project'],
|
|
76
|
+
['/clancy:help', 'Show all commands'],
|
|
77
|
+
],
|
|
78
|
+
],
|
|
79
|
+
];
|
|
80
|
+
for (const [group, cmds] of groups) {
|
|
81
|
+
const key = group.toLowerCase();
|
|
82
|
+
if (OPTIONAL_GROUPS.has(key) &&
|
|
83
|
+
enabledRoles !== null &&
|
|
84
|
+
!enabledRoles.has(key))
|
|
85
|
+
continue;
|
|
86
|
+
console.log('');
|
|
87
|
+
console.log(` ${bold(group)}`);
|
|
88
|
+
for (const [cmd, desc] of cmds) {
|
|
89
|
+
console.log(` ${cyan(cmd.padEnd(22))} ${dim(desc)}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
console.log('');
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../src/installer/ui/ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Clancy Drift Detector — PostToolUse hook (debounced, once per session).
|
|
3
|
+
// Compares .clancy/version.json against the installed chief-clancy package
|
|
4
|
+
// version. If mismatched, warns that Clancy files are outdated.
|
|
5
|
+
//
|
|
6
|
+
// Debounce: writes a session flag to os.tmpdir() (same pattern as context-monitor).
|
|
7
|
+
// Best-effort — never crashes, exit 0 on any error.
|
|
8
|
+
|
|
9
|
+
'use strict';
|
|
10
|
+
|
|
11
|
+
const fs = require('fs');
|
|
12
|
+
const os = require('os');
|
|
13
|
+
const path = require('path');
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Compare two semver-like version strings.
|
|
17
|
+
* Returns true if they differ.
|
|
18
|
+
*/
|
|
19
|
+
function versionsDiffer(a, b) {
|
|
20
|
+
if (!a || !b) return false;
|
|
21
|
+
return a.trim() !== b.trim();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
let input = '';
|
|
25
|
+
const stdinTimeout = setTimeout(() => process.exit(0), 3000);
|
|
26
|
+
process.stdin.setEncoding('utf8');
|
|
27
|
+
process.stdin.on('data', chunk => { input += chunk; });
|
|
28
|
+
process.stdin.on('end', () => {
|
|
29
|
+
clearTimeout(stdinTimeout);
|
|
30
|
+
try {
|
|
31
|
+
const data = JSON.parse(input);
|
|
32
|
+
const session = data.session_id;
|
|
33
|
+
if (!session) process.exit(0);
|
|
34
|
+
|
|
35
|
+
// Debounce — only check once per session
|
|
36
|
+
const safeSession = String(session).replace(/[^a-zA-Z0-9_-]/g, '');
|
|
37
|
+
const flagPath = path.join(os.tmpdir(), `clancy-drift-${safeSession}`);
|
|
38
|
+
if (fs.existsSync(flagPath)) process.exit(0);
|
|
39
|
+
|
|
40
|
+
// Write the flag immediately to prevent future checks this session
|
|
41
|
+
try { fs.writeFileSync(flagPath, '1'); } catch { /* best-effort */ }
|
|
42
|
+
|
|
43
|
+
const cwd = data.cwd || process.cwd();
|
|
44
|
+
|
|
45
|
+
// Read .clancy/version.json (written by installer)
|
|
46
|
+
const versionJsonPath = path.join(cwd, '.clancy', 'version.json');
|
|
47
|
+
if (!fs.existsSync(versionJsonPath)) process.exit(0);
|
|
48
|
+
|
|
49
|
+
let versionData;
|
|
50
|
+
try {
|
|
51
|
+
versionData = JSON.parse(fs.readFileSync(versionJsonPath, 'utf8'));
|
|
52
|
+
} catch {
|
|
53
|
+
process.exit(0);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const installedVersion = versionData.version;
|
|
57
|
+
if (!installedVersion) process.exit(0);
|
|
58
|
+
|
|
59
|
+
// Read the package version from the installed commands' VERSION file
|
|
60
|
+
// Check local then global
|
|
61
|
+
const localVersion = path.join(cwd, '.claude', 'commands', 'clancy', 'VERSION');
|
|
62
|
+
const homeDir = os.homedir();
|
|
63
|
+
const globalVersion = path.join(homeDir, '.claude', 'commands', 'clancy', 'VERSION');
|
|
64
|
+
|
|
65
|
+
let packageVersion = null;
|
|
66
|
+
for (const vPath of [localVersion, globalVersion]) {
|
|
67
|
+
if (fs.existsSync(vPath)) {
|
|
68
|
+
try {
|
|
69
|
+
packageVersion = fs.readFileSync(vPath, 'utf8').trim();
|
|
70
|
+
break;
|
|
71
|
+
} catch { /* try next */ }
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (!packageVersion) process.exit(0);
|
|
76
|
+
|
|
77
|
+
if (versionsDiffer(installedVersion, packageVersion)) {
|
|
78
|
+
const output = {
|
|
79
|
+
hookSpecificOutput: {
|
|
80
|
+
hookEventName: 'PostToolUse',
|
|
81
|
+
additionalContext:
|
|
82
|
+
`DRIFT WARNING: Clancy runtime files are outdated (runtime: ${installedVersion}, commands: ${packageVersion}). ` +
|
|
83
|
+
'Run /clancy:update to sync your installation.',
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
process.stdout.write(JSON.stringify(output));
|
|
87
|
+
}
|
|
88
|
+
} catch {
|
|
89
|
+
process.exit(0);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// Export for testing
|
|
94
|
+
if (typeof module !== 'undefined') {
|
|
95
|
+
module.exports = { versionsDiffer };
|
|
96
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Clancy Desktop Notification — Notification hook.
|
|
3
|
+
// Sends native OS desktop notifications when Claude fires a Notification event.
|
|
4
|
+
// Best-effort — never crashes, exit 0 on any error.
|
|
5
|
+
//
|
|
6
|
+
// Controllable via CLANCY_DESKTOP_NOTIFY=false to suppress.
|
|
7
|
+
//
|
|
8
|
+
// Platform detection:
|
|
9
|
+
// macOS: osascript -e 'display notification "msg" with title "Clancy"'
|
|
10
|
+
// Linux: notify-send "Clancy" "msg"
|
|
11
|
+
// Windows: PowerShell [System.Windows.Forms.MessageBox]::Show("msg", "Clancy")
|
|
12
|
+
|
|
13
|
+
'use strict';
|
|
14
|
+
|
|
15
|
+
const { execFileSync } = require('child_process');
|
|
16
|
+
const os = require('os');
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Detect the platform and return a function that sends a notification.
|
|
20
|
+
* Returns null if the platform is unsupported.
|
|
21
|
+
*/
|
|
22
|
+
function getNotifier() {
|
|
23
|
+
const platform = os.platform();
|
|
24
|
+
|
|
25
|
+
if (platform === 'darwin') {
|
|
26
|
+
return function notifyMac(message) {
|
|
27
|
+
const escaped = message.replace(/"/g, '\\"');
|
|
28
|
+
execFileSync('osascript', [
|
|
29
|
+
'-e',
|
|
30
|
+
`display notification "${escaped}" with title "Clancy"`,
|
|
31
|
+
], { timeout: 5000, windowsHide: true });
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (platform === 'linux') {
|
|
36
|
+
return function notifyLinux(message) {
|
|
37
|
+
execFileSync('notify-send', ['Clancy', message], {
|
|
38
|
+
timeout: 5000,
|
|
39
|
+
windowsHide: true,
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (platform === 'win32') {
|
|
45
|
+
return function notifyWindows(message) {
|
|
46
|
+
const escaped = message.replace(/[`$"]/g, '`$&');
|
|
47
|
+
execFileSync('powershell', [
|
|
48
|
+
'-NoProfile',
|
|
49
|
+
'-Command',
|
|
50
|
+
`Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.MessageBox]::Show("${escaped}", "Clancy")`,
|
|
51
|
+
], { timeout: 5000, windowsHide: true });
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Extract a message string from the hook event payload.
|
|
60
|
+
*/
|
|
61
|
+
function extractMessage(data) {
|
|
62
|
+
// Notification events may carry a message in various shapes
|
|
63
|
+
if (data.message && typeof data.message === 'string') return data.message;
|
|
64
|
+
if (data.notification && typeof data.notification === 'string') return data.notification;
|
|
65
|
+
if (data.text && typeof data.text === 'string') return data.text;
|
|
66
|
+
if (data.hookSpecificOutput && data.hookSpecificOutput.message) return data.hookSpecificOutput.message;
|
|
67
|
+
return 'Clancy notification';
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
let input = '';
|
|
71
|
+
const stdinTimeout = setTimeout(() => process.exit(0), 3000);
|
|
72
|
+
process.stdin.setEncoding('utf8');
|
|
73
|
+
process.stdin.on('data', chunk => { input += chunk; });
|
|
74
|
+
process.stdin.on('end', () => {
|
|
75
|
+
clearTimeout(stdinTimeout);
|
|
76
|
+
try {
|
|
77
|
+
// Check if notifications are disabled
|
|
78
|
+
if (process.env.CLANCY_DESKTOP_NOTIFY === 'false') {
|
|
79
|
+
process.exit(0);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const data = JSON.parse(input);
|
|
83
|
+
const message = extractMessage(data);
|
|
84
|
+
|
|
85
|
+
const notifier = getNotifier();
|
|
86
|
+
if (notifier) {
|
|
87
|
+
try {
|
|
88
|
+
notifier(message);
|
|
89
|
+
} catch {
|
|
90
|
+
// OS command failed — fall back to console.log
|
|
91
|
+
console.log(`[Clancy] ${message}`);
|
|
92
|
+
}
|
|
93
|
+
} else {
|
|
94
|
+
// Unsupported platform — fall back to console.log
|
|
95
|
+
console.log(`[Clancy] ${message}`);
|
|
96
|
+
}
|
|
97
|
+
} catch {
|
|
98
|
+
process.exit(0);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
// Export for testing
|
|
103
|
+
if (typeof module !== 'undefined') {
|
|
104
|
+
module.exports = { getNotifier, extractMessage };
|
|
105
|
+
}
|
package/package.json
CHANGED
|
@@ -320,7 +320,7 @@ Transition the ticket from the planning queue to the implementation queue via pi
|
|
|
320
320
|
|
|
321
321
|
**Crash safety:** Add the new label BEFORE removing the old one. A ticket briefly has two labels (harmless) rather than zero labels (ticket lost).
|
|
322
322
|
|
|
323
|
-
|
|
323
|
+
**This label transition is mandatory — always apply and remove.** Use `CLANCY_LABEL_BUILD` from `.clancy/.env` if set, otherwise `clancy:build`. Use `CLANCY_LABEL_PLAN` from `.clancy/.env` if set, otherwise fall back to `CLANCY_PLAN_LABEL`, otherwise `clancy:plan`. Ensure the build label exists on the board (create if missing), add it to the ticket, then remove the plan label.
|
|
324
324
|
|
|
325
325
|
### GitHub
|
|
326
326
|
|
|
@@ -23,6 +23,10 @@ Fetch backlog tickets from the board, explore the codebase, and generate structu
|
|
|
23
23
|
Stop.
|
|
24
24
|
|
|
25
25
|
4. Check `.clancy/docs/` — if the directory is empty or missing:
|
|
26
|
+
|
|
27
|
+
**AFK mode** (`--afk` flag or `CLANCY_MODE=afk`): continue without prompting (log a warning).
|
|
28
|
+
|
|
29
|
+
**Interactive mode:**
|
|
26
30
|
```
|
|
27
31
|
⚠️ No codebase documentation found in .clancy/docs/
|
|
28
32
|
Plans will be less accurate without codebase context.
|
|
@@ -33,6 +37,10 @@ Fetch backlog tickets from the board, explore the codebase, and generate structu
|
|
|
33
37
|
If the user declines, stop. If they confirm, continue without docs context.
|
|
34
38
|
|
|
35
39
|
5. Branch freshness check — run `git fetch origin` and compare the current HEAD with `origin/$CLANCY_BASE_BRANCH` (defaults to `main`). If the local branch is behind:
|
|
40
|
+
|
|
41
|
+
**AFK mode** (`--afk` flag or `CLANCY_MODE=afk`): auto-pull without prompting. Run `git pull origin $CLANCY_BASE_BRANCH` and continue.
|
|
42
|
+
|
|
43
|
+
**Interactive mode:**
|
|
36
44
|
```
|
|
37
45
|
⚠️ Your local branch is behind origin/{CLANCY_BASE_BRANCH} by {N} commit(s).
|
|
38
46
|
|
|
@@ -10,7 +10,9 @@ Display the following:
|
|
|
10
10
|
|
|
11
11
|
Named after Chief Clancy Wiggum (Ralph's dad, The Simpsons). Built on the Ralph technique
|
|
12
12
|
coined by Geoffrey Huntley (ghuntley.com/ralph/). Clancy extends that foundation with board
|
|
13
|
-
integration, structured codebase docs, and a git workflow built for team development.
|
|
13
|
+
integration (6 boards), structured codebase docs, and a git workflow built for team development.
|
|
14
|
+
|
|
15
|
+
**Supported boards:** Jira, GitHub Issues, Linear, Shortcut, Notion, Azure DevOps
|
|
14
16
|
|
|
15
17
|
### Planner *(optional — enable via `CLANCY_ROLES=planner` in `.clancy/.env`)*
|
|
16
18
|
|
|
@@ -4,6 +4,9 @@ Update Clancy itself to the latest version via npx and show what changed.
|
|
|
4
4
|
|
|
5
5
|
This re-runs the installer, which copies the latest command files from the npm package into your .claude/commands/clancy/ directory. Your .clancy/ project folder (scripts, docs, progress log) is never touched.
|
|
6
6
|
|
|
7
|
+
**Supported flags:**
|
|
8
|
+
- `--afk` — skip the confirmation prompt and auto-approve the update (for autonomous setups)
|
|
9
|
+
|
|
7
10
|
@.claude/clancy/workflows/update.md
|
|
8
11
|
|
|
9
|
-
Run the update as documented in the workflow above.
|
|
12
|
+
Run the update as documented in the workflow above. If `--afk` is passed, skip all confirmation prompts.
|