claude-skills-cli 0.0.10 → 0.0.11

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 CHANGED
@@ -123,6 +123,49 @@ pnpx claude-skills-cli package .claude/skills/my-skill
123
123
  Creates uploadable zip for Claude.ai. Validates first unless
124
124
  `--skip-validation` specified.
125
125
 
126
+ ### add-hook
127
+
128
+ ```bash
129
+ pnpx claude-skills-cli add-hook # Global (all projects)
130
+ pnpx claude-skills-cli add-hook --project # Project (committed)
131
+ pnpx claude-skills-cli add-hook --local # Project-local (gitignored)
132
+ ```
133
+
134
+ Adds skill activation hook to improve reliability. By default, adds to
135
+ global settings (`~/.claude/settings.json`) to apply across all
136
+ projects. Use `--project` for team-shared settings or `--local` for
137
+ personal overrides.
138
+
139
+ ## Skill Activation in Claude Code
140
+
141
+ Skills are designed to auto-activate in Claude Code, but, in reality,
142
+ activation can be inconsistent. To improve reliability and make Claude
143
+ check for relevant skills more consistently, use the `add-hook`
144
+ command:
145
+
146
+ ```bash
147
+ pnpx claude-skills-cli add-hook # Recommended: global (all projects)
148
+ ```
149
+
150
+ This adds a hook that:
151
+
152
+ - Fires before Claude processes each prompt (~15 tokens/prompt)
153
+ - Makes Claude consistently check for relevant skills
154
+ - Requires no maintenance (unlike pattern-based approaches)
155
+ - Claude decides which skills apply to the current task
156
+
157
+ **Scopes:**
158
+
159
+ - **Global** (default): `~/.claude/settings.json` - applies to all
160
+ projects
161
+ - **Project** (`--project`): `./.claude/settings.json` - committed to
162
+ git, team-shared
163
+ - **Local** (`--local`): `./.claude/settings.local.json` - gitignored,
164
+ personal
165
+
166
+ **Note:** This hook pattern is widely adopted by the community to
167
+ improve skill activation reliability.
168
+
126
169
  ## Resources
127
170
 
128
171
  **Included docs:**
@@ -0,0 +1,115 @@
1
+ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ import { ensure_dir } from '../utils/fs.js';
5
+ import { error, info, success, warning } from '../utils/output.js';
6
+ const HOOK_COMMAND = "echo '💡 Check .claude/skills/ for relevant skills before responding!'";
7
+ export function add_hook_command(options = {}) {
8
+ // Determine which settings file to use
9
+ let settings_path;
10
+ let scope;
11
+ if (options.local) {
12
+ // Project-specific local (gitignored)
13
+ settings_path = join('.claude', 'settings.local.json');
14
+ scope = 'project-local';
15
+ }
16
+ else if (options.project) {
17
+ // Project-specific shared (committed)
18
+ settings_path = join('.claude', 'settings.json');
19
+ scope = 'project';
20
+ }
21
+ else {
22
+ // Global (default)
23
+ settings_path = join(homedir(), '.claude', 'settings.json');
24
+ scope = 'global';
25
+ }
26
+ let settings = {};
27
+ // Check if settings.json exists
28
+ if (existsSync(settings_path)) {
29
+ try {
30
+ const content = readFileSync(settings_path, 'utf-8');
31
+ settings = JSON.parse(content);
32
+ // Check if UserPromptSubmit hook already exists
33
+ if (settings.hooks?.UserPromptSubmit &&
34
+ Array.isArray(settings.hooks.UserPromptSubmit) &&
35
+ settings.hooks.UserPromptSubmit.length > 0) {
36
+ // Get the first (and should be only) UserPromptSubmit object
37
+ const userPromptSubmit = settings.hooks.UserPromptSubmit[0];
38
+ // Check if our specific hook already exists
39
+ const has_skill_hook = userPromptSubmit.hooks?.some((h) => h.type === 'command' &&
40
+ h.command.includes('Check .claude/skills/'));
41
+ if (has_skill_hook) {
42
+ warning(`Skill activation hook already exists in ${scope} settings`);
43
+ info('No changes made.');
44
+ return;
45
+ }
46
+ // Add to existing hooks array within the first UserPromptSubmit object
47
+ if (!userPromptSubmit.hooks) {
48
+ userPromptSubmit.hooks = [];
49
+ }
50
+ userPromptSubmit.hooks.push({
51
+ type: 'command',
52
+ command: HOOK_COMMAND,
53
+ });
54
+ info(`Adding skill activation hook to existing ${scope} settings...`);
55
+ }
56
+ else {
57
+ // Create UserPromptSubmit section
58
+ settings.hooks = settings.hooks || {};
59
+ settings.hooks.UserPromptSubmit = [
60
+ {
61
+ hooks: [
62
+ {
63
+ type: 'command',
64
+ command: HOOK_COMMAND,
65
+ },
66
+ ],
67
+ },
68
+ ];
69
+ info(`Adding skill activation hook to ${scope} settings...`);
70
+ }
71
+ }
72
+ catch (err) {
73
+ error(`Failed to parse ${settings_path}: ${err}`);
74
+ process.exit(1);
75
+ }
76
+ }
77
+ else {
78
+ // Create new settings.json
79
+ info(`Creating ${scope} settings with skill activation hook...`);
80
+ settings = {
81
+ hooks: {
82
+ UserPromptSubmit: [
83
+ {
84
+ hooks: [
85
+ {
86
+ type: 'command',
87
+ command: HOOK_COMMAND,
88
+ },
89
+ ],
90
+ },
91
+ ],
92
+ },
93
+ };
94
+ }
95
+ // Write settings.json
96
+ try {
97
+ ensure_dir(scope === 'global' ? join(homedir(), '.claude') : '.claude');
98
+ writeFileSync(settings_path, JSON.stringify(settings, null, 2), 'utf-8');
99
+ success(`Skill activation hook added successfully! (${scope})`);
100
+ console.log('');
101
+ info(`Location: ${settings_path}`);
102
+ console.log('');
103
+ info('This hook improves skill activation reliability by reminding');
104
+ info('Claude to check for relevant skills before responding.');
105
+ console.log('');
106
+ info('Next steps:');
107
+ console.log(' 1. Create skills with: claude-skills-cli init --name <name>');
108
+ console.log(' 2. Validate with: claude-skills-cli validate <path>');
109
+ }
110
+ catch (err) {
111
+ error(`Failed to write ${settings_path}: ${err}`);
112
+ process.exit(1);
113
+ }
114
+ }
115
+ //# sourceMappingURL=add-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-hook.js","sourceRoot":"","sources":["../../src/commands/add-hook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import chalk from 'chalk';
2
+ import { generate_hook_config, get_settings_location_message, has_skill_reminder_hook, } from '../utils/settings.js';
3
+ export function hook_config_command(options) {
4
+ const hook_type = options.sessionStart
5
+ ? 'session-start'
6
+ : 'user-prompt';
7
+ console.log(chalk.cyan.bold('\n📋 Skill Activation Hook Configuration\n'));
8
+ // Check if hook already exists
9
+ if (has_skill_reminder_hook()) {
10
+ console.log(chalk.green('✅ Skill reminder hook already detected in your settings!\n'));
11
+ console.log(chalk.dim('You already have a hook that references .claude/skills/.'));
12
+ console.log(chalk.dim('If you want to modify it, edit your settings file directly.'));
13
+ return;
14
+ }
15
+ // Display the configuration
16
+ console.log(chalk.white(`Copy this to ${chalk.bold(get_settings_location_message())}:\n`));
17
+ const config = generate_hook_config(hook_type);
18
+ console.log(chalk.cyan(config));
19
+ // Explain what it does
20
+ console.log(chalk.bold('\n💡 What this does:\n'));
21
+ if (hook_type === 'session-start') {
22
+ console.log(chalk.white(' • Fires once when Claude Code session starts'));
23
+ console.log(chalk.white(' • Costs ~15 tokens once per session'));
24
+ console.log(chalk.white(' • Claude sees reminder at start of conversation'));
25
+ console.log(chalk.yellow(' • May forget as conversation gets longer'));
26
+ }
27
+ else {
28
+ console.log(chalk.white(' • Fires before Claude processes each prompt'));
29
+ console.log(chalk.white(' • Costs ~15 tokens per prompt'));
30
+ console.log(chalk.white(' • Makes Claude check your skills consistently'));
31
+ console.log(chalk.green(' • Recommended: Claude needs constant reminding!'));
32
+ }
33
+ console.log(chalk.white(' • No maintenance required (unlike skill-rules.json)'));
34
+ console.log(chalk.white(' • Claude decides which skills are relevant\n'));
35
+ // Show alternative
36
+ if (hook_type === 'session-start') {
37
+ console.log(chalk.dim('Alternative: UserPromptSubmit (constant reminders)'));
38
+ console.log(chalk.dim(' Run: claude-skills-cli hook-config\n'));
39
+ }
40
+ else {
41
+ console.log(chalk.dim('Alternative: SessionStart (once per session)'));
42
+ console.log(chalk.dim(' Run: claude-skills-cli hook-config --session-start\n'));
43
+ }
44
+ }
45
+ //# sourceMappingURL=hook-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-config.js","sourceRoot":"","sources":["../../src/commands/hook-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACN,oBAAoB,EACpB,6BAA6B,EAC7B,uBAAuB,GACvB,MAAM,sBAAsB,CAAC;AAM9B,MAAM,UAAU,mBAAmB,CAClC,OAA0B;IAE1B,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY;QACrC,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,aAAa,CAAC;IAEjB,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAC7D,CAAC;IAEF,+BAA+B;IAC/B,IAAI,uBAAuB,EAAE,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,KAAK,CACV,4DAA4D,CAC5D,CACD,CAAC;QACF,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,GAAG,CACR,0DAA0D,CAC1D,CACD,CAAC;QACF,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,GAAG,CACR,6DAA6D,CAC7D,CACD,CAAC;QACF,OAAO;IACR,CAAC;IAED,4BAA4B;IAC5B,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,KAAK,CACV,gBAAgB,KAAK,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,KAAK,CAChE,CACD,CAAC;IAEF,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhC,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAElD,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAC7D,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,KAAK,CACV,mDAAmD,CACnD,CACD,CAAC;QACF,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAC1D,CAAC;IACH,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAC5D,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAC9D,CAAC;QACF,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,KAAK,CACV,mDAAmD,CACnD,CACD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,KAAK,CACV,uDAAuD,CACvD,CACD,CAAC;IACF,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAC7D,CAAC;IAEF,mBAAmB;IACnB,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAC/D,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CACzD,CAAC;QACF,OAAO,CAAC,GAAG,CACV,KAAK,CAAC,GAAG,CACR,wDAAwD,CACxD,CACD,CAAC;IACH,CAAC;AACF,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env node
2
+ import { add_hook_command } from './commands/add-hook.js';
2
3
  import { doctor_command } from './commands/doctor.js';
3
4
  import { init_command } from './commands/init.js';
4
5
  import { install_command } from './commands/install.js';
@@ -17,7 +18,8 @@ function show_help() {
17
18
  console.log(' validate Validate a skill');
18
19
  console.log(' doctor Fix common skill issues automatically');
19
20
  console.log(' package Package a skill to zip');
20
- console.log(' stats Show overview of all skills in a directory\n');
21
+ console.log(' stats Show overview of all skills in a directory');
22
+ console.log(' add-hook Add skill activation hook to .claude/settings.json\n');
21
23
  console.log('Options:');
22
24
  console.log(' --help, -h Show help');
23
25
  console.log(' --version, -v Show version');
@@ -34,6 +36,9 @@ function show_help() {
34
36
  console.log(' claude-skills-cli doctor .claude/skills/my-skill');
35
37
  console.log(' claude-skills-cli package .claude/skills/my-skill');
36
38
  console.log(' claude-skills-cli stats .claude/skills');
39
+ console.log(' claude-skills-cli add-hook # Global');
40
+ console.log(' claude-skills-cli add-hook --project # Project');
41
+ console.log(' claude-skills-cli add-hook --local # Project-local');
37
42
  console.log('\n⚠️ IMPORTANT FOR LLMs:');
38
43
  console.log(' ALWAYS run validate after creating or editing a skill:');
39
44
  console.log(' claude-skills-cli validate <skill-path>');
@@ -151,6 +156,12 @@ async function main() {
151
156
  });
152
157
  break;
153
158
  }
159
+ case 'add-hook':
160
+ add_hook_command({
161
+ local: parsed.local === true,
162
+ project: parsed.project === true,
163
+ });
164
+ break;
154
165
  default:
155
166
  console.error(`Unknown command: ${command}`);
156
167
  console.log('');
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ /**
5
+ * Get path to settings file (project-level or global)
6
+ * Returns null if neither exists
7
+ */
8
+ export function get_settings_path() {
9
+ // Check project-level first
10
+ const project_settings = join(process.cwd(), '.claude', 'settings.json');
11
+ if (existsSync(project_settings)) {
12
+ return project_settings;
13
+ }
14
+ // Check global settings
15
+ const global_settings = join(homedir(), '.claude.json');
16
+ if (existsSync(global_settings)) {
17
+ return global_settings;
18
+ }
19
+ // Return project path even if doesn't exist (most likely location)
20
+ return project_settings;
21
+ }
22
+ /**
23
+ * Read and parse Claude settings file
24
+ */
25
+ function read_settings(path) {
26
+ try {
27
+ const content = readFileSync(path, 'utf-8');
28
+ return JSON.parse(content);
29
+ }
30
+ catch {
31
+ return null;
32
+ }
33
+ }
34
+ /**
35
+ * Check if skill reminder hook exists in settings
36
+ */
37
+ export function has_skill_reminder_hook() {
38
+ const settings_path = get_settings_path();
39
+ if (!settings_path || !existsSync(settings_path)) {
40
+ return false;
41
+ }
42
+ const settings = read_settings(settings_path);
43
+ if (!settings?.hooks) {
44
+ return false;
45
+ }
46
+ // Check UserPromptSubmit hooks
47
+ const user_prompt_hooks = settings.hooks.UserPromptSubmit;
48
+ if (user_prompt_hooks) {
49
+ for (const hook_group of user_prompt_hooks) {
50
+ for (const hook of hook_group.hooks) {
51
+ if (hook.command.includes('.claude/skills') ||
52
+ hook.command.includes('skills/')) {
53
+ return true;
54
+ }
55
+ }
56
+ }
57
+ }
58
+ // Check SessionStart hooks
59
+ const session_start_hooks = settings.hooks.SessionStart;
60
+ if (session_start_hooks) {
61
+ for (const hook_group of session_start_hooks) {
62
+ for (const hook of hook_group.hooks) {
63
+ if (hook.command.includes('.claude/skills') ||
64
+ hook.command.includes('skills/')) {
65
+ return true;
66
+ }
67
+ }
68
+ }
69
+ }
70
+ return false;
71
+ }
72
+ /**
73
+ * Generate hook configuration JSON string
74
+ */
75
+ export function generate_hook_config(hook_type = 'user-prompt') {
76
+ if (hook_type === 'session-start') {
77
+ return `{
78
+ "hooks": {
79
+ "SessionStart": [{
80
+ "hooks": [{
81
+ "type": "command",
82
+ "command": "echo '💡 Skills available in .claude/skills/ - check for relevant ones!'"
83
+ }]
84
+ }]
85
+ }
86
+ }`;
87
+ }
88
+ // Default: UserPromptSubmit
89
+ return `{
90
+ "hooks": {
91
+ "UserPromptSubmit": [{
92
+ "hooks": [{
93
+ "type": "command",
94
+ "command": "echo '💡 Check .claude/skills/ for relevant skills before responding!'"
95
+ }]
96
+ }]
97
+ }
98
+ }`;
99
+ }
100
+ /**
101
+ * Get the recommended settings file location message
102
+ */
103
+ export function get_settings_location_message() {
104
+ const settings_path = get_settings_path();
105
+ if (settings_path && existsSync(settings_path)) {
106
+ return settings_path;
107
+ }
108
+ return '.claude/settings.json (create this file in your project root)';
109
+ }
110
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/utils/settings.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-skills-cli",
3
- "version": "0.0.10",
3
+ "version": "0.0.11",
4
4
  "description": "CLI toolkit for creating and managing Claude Agent Skills",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",