chief-clancy 0.7.3 → 0.8.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.
@@ -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,CAuFnE"}
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":"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"}
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, bold, cyan, dim, green, red } from '../utils/ansi/ansi.js';
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chief-clancy",
3
- "version": "0.7.3",
3
+ "version": "0.8.0",
4
4
  "description": "Autonomous, board-driven development for Claude Code — scaffolds docs, integrates Kanban boards, runs tickets in a loop.",
5
5
  "keywords": [
6
6
  "claude",