kenmark-skills 1.0.1 → 1.0.2

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
@@ -45,6 +45,12 @@ npx kenmark-skills setup
45
45
  - Rovo Dev: `~/.rovodev/skills`
46
46
  - Qoder: `~/.qoder/skills`
47
47
 
48
+ For Claude Code specifically, setup also installs slash-command wrappers in `~/.claude/commands`:
49
+
50
+ - `/kenmark-init-brain`
51
+ - `/kenmark-commit-push`
52
+ - `/kenmark-issues-list` (and matching wrappers for all shipped skills)
53
+
48
54
  Useful flags:
49
55
 
50
56
  ```bash
@@ -74,6 +80,8 @@ Use `--global` to force user-level install mode explicitly:
74
80
  npx kenmark-skills setup --global --ide all
75
81
  ```
76
82
 
83
+ If new Claude slash commands do not appear immediately, restart Claude Code.
84
+
77
85
  Verify what will ship before publishing:
78
86
 
79
87
  ```bash
@@ -1,5 +1,10 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v2026.06.02-1938-claude-command-wrappers
4
+ - Updated setup installer to generate Claude Code slash-command wrappers under `.claude/commands` for every shipped Kenmark skill.
5
+ - This enables direct slash usage (for example `/kenmark-init-brain`) in addition to selecting skills from `/skills`.
6
+ - Updated README to document Claude wrapper commands and restart note.
7
+
3
8
  ## v2026.06.02-1930-readme-npx-first-install
4
9
  - Updated README install guidance to remove the clone-based setup path.
5
10
  - Reframed Option B as local/project installation via `npx kenmark-skills setup --project`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kenmark-skills",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Skills by Kenmark ITan Solutions — Cursor/Codex agent skills from our development workflows. Created by Tanooj Mehra & Adwait Date.",
5
5
  "license": "MIT",
6
6
  "private": false,
@@ -86,6 +86,10 @@ function ensureTargetPath(targetPath) {
86
86
  fs.mkdirSync(targetPath, { recursive: true });
87
87
  }
88
88
 
89
+ function ensureParentDir(filePath) {
90
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
91
+ }
92
+
89
93
  function copyDirectoryContents(sourcePath, targetPath) {
90
94
  const entries = fs.readdirSync(sourcePath, { withFileTypes: true });
91
95
  for (const entry of entries) {
@@ -100,6 +104,33 @@ function copyDirectoryContents(sourcePath, targetPath) {
100
104
  }
101
105
  }
102
106
 
107
+ function createClaudeCommandWrappers(basePath) {
108
+ const commandsDir = path.join(path.dirname(basePath), "commands");
109
+ const skills = fs
110
+ .readdirSync(sourceDir, { withFileTypes: true })
111
+ .filter((entry) => entry.isDirectory())
112
+ .map((entry) => entry.name)
113
+ .sort();
114
+
115
+ for (const skillName of skills) {
116
+ const commandFile = path.join(commandsDir, `kenmark-${skillName}.md`);
117
+ const commandBody = [
118
+ `# Kenmark ${skillName}`,
119
+ "",
120
+ `Use the \`${skillName}\` skill from installed user skills.`,
121
+ "",
122
+ "Instructions:",
123
+ `- Invoke and follow the \`${skillName}\` skill from the user skills directory.`,
124
+ "- Execute the skill workflow end-to-end for the current request.",
125
+ "- If required context is missing, ask concise clarifying questions first."
126
+ ].join("\n");
127
+ ensureParentDir(commandFile);
128
+ fs.writeFileSync(commandFile, `${commandBody}\n`, "utf8");
129
+ }
130
+
131
+ return { commandsDir, count: skills.length };
132
+ }
133
+
103
134
  function run() {
104
135
  const args = parseArgs(process.argv.slice(2));
105
136
  if (args.help) {
@@ -147,6 +178,12 @@ function run() {
147
178
  ensureTargetPath(targetPath);
148
179
  copyDirectoryContents(sourceDir, targetPath);
149
180
  console.log(`Installed skills for ${ide}: ${targetPath}`);
181
+ if (ide === "claude") {
182
+ const result = createClaudeCommandWrappers(targetPath);
183
+ console.log(
184
+ `Installed Claude command wrappers (${result.count}): ${result.commandsDir}`
185
+ );
186
+ }
150
187
  }
151
188
 
152
189
  console.log("Done.");