genskills 1.0.0 → 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.
Files changed (35) hide show
  1. package/README.md +31 -138
  2. package/dist/cli/commands/clean.d.ts.map +1 -1
  3. package/dist/cli/commands/clean.js +10 -6
  4. package/dist/cli/commands/clean.js.map +1 -1
  5. package/dist/cli/commands/doctor.d.ts.map +1 -1
  6. package/dist/cli/commands/doctor.js +7 -6
  7. package/dist/cli/commands/doctor.js.map +1 -1
  8. package/dist/cli/commands/init.js +22 -15
  9. package/dist/cli/commands/init.js.map +1 -1
  10. package/dist/cli/utils/copy.d.ts.map +1 -1
  11. package/dist/cli/utils/copy.js +19 -15
  12. package/dist/cli/utils/copy.js.map +1 -1
  13. package/dist/cli/utils/manifest.d.ts +2 -2
  14. package/dist/cli/utils/manifest.d.ts.map +1 -1
  15. package/dist/cli/utils/manifest.js +4 -4
  16. package/dist/cli/utils/manifest.js.map +1 -1
  17. package/dist/cli/utils/paths.d.ts +8 -7
  18. package/dist/cli/utils/paths.d.ts.map +1 -1
  19. package/dist/cli/utils/paths.js +17 -13
  20. package/dist/cli/utils/paths.js.map +1 -1
  21. package/package.json +4 -7
  22. package/skills/code-quality/accessibility-audit/SKILL.md +92 -0
  23. package/skills/code-quality/code-review/SKILL.md +8 -3
  24. package/skills/code-quality/dependency-audit/SKILL.md +86 -0
  25. package/skills/code-quality/error-boundary/SKILL.md +81 -0
  26. package/skills/code-quality/refactor/SKILL.md +1 -1
  27. package/skills/code-quality/security-audit/SKILL.md +2 -2
  28. package/skills/development/db-migrate/SKILL.md +73 -0
  29. package/skills/development/debug/SKILL.md +2 -2
  30. package/skills/development/env-setup/SKILL.md +81 -0
  31. package/skills/development/i18n/SKILL.md +68 -0
  32. package/skills/development/perf-optimize/SKILL.md +2 -2
  33. package/skills/development/scaffold/SKILL.md +2 -2
  34. package/skills/workflow/deploy/SKILL.md +6 -4
  35. package/skills/workflow/monorepo/SKILL.md +66 -0
package/README.md CHANGED
@@ -1,64 +1,38 @@
1
1
  # GenSkills
2
2
 
3
- A comprehensive Claude Code skills library. Install once, get 21 AI-powered skills that supercharge your development workflow.
3
+ [![npm version](https://img.shields.io/npm/v/genskills.svg)](https://www.npmjs.com/package/genskills)
4
+ [![npm downloads](https://img.shields.io/npm/dm/genskills.svg)](https://www.npmjs.com/package/genskills)
5
+ [![license](https://img.shields.io/npm/l/genskills.svg)]
6
+ [![node](https://img.shields.io/node/v/genskills.svg)](https://nodejs.org)
7
+ [![website](https://img.shields.io/badge/website-genskills.dev-blue)](https://genskills.dev)
4
8
 
5
- ```bash
6
- npm install genskills
7
- ```
9
+ AI-powered skills that enhance your Claude Code development workflow. Code review, testing, deployment, documentation — all automated.
8
10
 
9
- Skills are automatically installed into your project's `.claude/skills/` directory. No extra setup needed.
11
+ Completely free and open-source.
10
12
 
11
13
  ---
12
14
 
13
- ## What You Get
14
-
15
- **21 skills** across 5 categories, ready to use as `/genskills:<skill-name>` in Claude Code.
15
+ ## Quick Start
16
16
 
17
- ### Code Quality
18
-
19
- | Skill | Command | Description |
20
- |-------|---------|-------------|
21
- | Code Review | `/genskills:code-review` | Multi-dimensional code review with security, performance, and best-practice analysis |
22
- | Refactor | `/genskills:refactor` | Improve code structure and readability while preserving behavior |
23
- | Security Audit | `/genskills:security-audit` | OWASP Top 10 vulnerability scanning, dependency audit, infrastructure checks |
24
- | Test Generator | `/genskills:test-generator` | Generate test suites for Jest, Vitest, pytest, and more |
25
- | Lint Fix | `/genskills:lint-fix` | Auto-fix linting and formatting issues (ESLint, Prettier, Ruff, Black) |
26
- | Type Check | `/genskills:type-check` | Run type checking and resolve errors (TypeScript, mypy, pyright) |
27
-
28
- ### Workflow
29
-
30
- | Skill | Command | Description |
31
- |-------|---------|-------------|
32
- | Git Commit | `/genskills:git-commit` | Conventional commits with smart staging and AI-generated messages |
33
- | PR Create | `/genskills:pr-create` | Create pull requests with generated titles, descriptions, and test plans |
34
- | Deploy | `/genskills:deploy` | Guided deployment with pre-deploy checks and post-deploy verification |
35
- | CI Fix | `/genskills:ci-fix` | Diagnose and fix failing CI/CD pipelines from build logs |
36
- | Branch Manager | `/genskills:branch-manager` | Create, merge, rebase, and clean up branches |
17
+ ```bash
18
+ npx genskills install
19
+ ```
37
20
 
38
- ### Project Management
21
+ That's it. All skills are installed into your project's `.claude/skills/` directory with zero configuration. Use them as `/genskills:<skill-name>` in Claude Code.
39
22
 
40
- | Skill | Command | Description |
41
- |-------|---------|-------------|
42
- | Task Tracker | `/genskills:task-tracker` | Track TODOs, manage tasks, show project status |
43
- | Changelog Gen | `/genskills:changelog-gen` | Generate CHANGELOG.md from git history (Keep a Changelog format) |
44
- | Release Notes | `/genskills:release-notes` | Polished release notes for GitHub Releases |
23
+ ---
45
24
 
46
- ### Documentation
25
+ ## What You Get
47
26
 
48
- | Skill | Command | Description |
49
- |-------|---------|-------------|
50
- | Doc Gen | `/genskills:doc-gen` | Generate JSDoc, docstrings, and inline documentation |
51
- | API Docs | `/genskills:api-docs` | Generate OpenAPI specs and API endpoint references |
52
- | README Gen | `/genskills:readme-gen` | Generate or update project README files |
27
+ **All skills** across **5 categories**:
53
28
 
54
- ### Development
29
+ - **Code Quality** — review, refactoring, security audit, testing, linting, type-checking
30
+ - **Workflow** — git commits, pull requests, deployment, CI/CD fixes, branch management
31
+ - **Project Management** — task tracking, changelog generation, release notes
32
+ - **Documentation** — code docs, API docs, README generation
33
+ - **Development** — scaffolding, migrations, debugging, performance optimization
55
34
 
56
- | Skill | Command | Description |
57
- |-------|---------|-------------|
58
- | Scaffold | `/genskills:scaffold` | Generate components, modules, services following project patterns |
59
- | Migrate | `/genskills:migrate` | Framework upgrades, dependency migrations, pattern modernization |
60
- | Debug | `/genskills:debug` | Systematic debugging — trace errors, find root causes, apply fixes |
61
- | Perf Optimize | `/genskills:perf-optimize` | Identify bottlenecks, optimize queries, reduce bundle size |
35
+ Browse all skills and details at **[genskills.dev/skills](https://genskills.dev/skills)**
62
36
 
63
37
  ---
64
38
 
@@ -135,17 +109,11 @@ Or create it manually:
135
109
  - If a category is `true` but a skill is `enabled: false`, that skill is skipped
136
110
  - Without a config file, **all skills are installed**
137
111
 
138
- ### Per-Skill Settings
139
-
140
- Each skill's `settings` object is written as a `_config.json` file alongside its `SKILL.md`. Skills read this file at runtime to customize their behavior.
141
-
142
112
  ---
143
113
 
144
114
  ## How It Works
145
115
 
146
- ### On Install
147
-
148
- When you run `npm install genskills`, the postinstall script:
116
+ When you run `npx genskills install`, the installer:
149
117
 
150
118
  1. Detects your project root
151
119
  2. Reads `genskills.config.json` (if it exists)
@@ -153,106 +121,31 @@ When you run `npm install genskills`, the postinstall script:
153
121
  4. Writes a `.genskills-manifest.json` to track versions and checksums
154
122
  5. Backs up any previously installed skills before overwriting
155
123
 
156
- ### Namespacing
157
-
158
- All installed skills are prefixed with `genskills--` to avoid conflicts with your own custom skills:
159
-
160
- ```
161
- .claude/skills/
162
- genskills--code-review/ # managed by GenSkills
163
- genskills--debug/ # managed by GenSkills
164
- my-custom-skill/ # yours — never touched
165
- ```
166
-
167
- ### Updates
168
-
169
- When you update the package, the postinstall script compares checksums:
170
-
171
- - **Changed skills** are backed up to `.genskills-backup/` then overwritten
172
- - **New skills** are installed if their category is enabled
173
- - **Removed skills** are flagged but not deleted (use `genskills clean`)
174
-
175
- ### Skill Dependencies
176
-
177
- Some skills declare soft dependencies on other skills:
178
-
179
- ```yaml
180
- genskills-depends:
181
- - genskills:git-commit
182
- ```
183
-
184
- When you enable a skill, its dependencies are auto-enabled. Dependencies are soft — if a dependency is missing, the skill still works but with reduced capability.
185
-
186
- ---
187
-
188
- ## Skill Format
189
-
190
- Each skill is a directory containing a `SKILL.md` with YAML frontmatter:
191
-
192
- ```yaml
193
- ---
194
- name: genskills:skill-name
195
- description: >
196
- What this skill does and when it should trigger.
197
- user-invocable: true
198
- argument-hint: "[arguments description]"
199
- allowed-tools: "Read, Edit, Grep, Glob, Bash(git *)"
200
- genskills-version: "1.0.0"
201
- genskills-category: "category-name"
202
- genskills-depends: []
203
- ---
204
-
205
- # Skill Title
206
-
207
- Instructions for Claude on how to execute this skill...
208
- ```
209
-
210
- Skills can also include supporting files like reference docs, templates, and scripts in their directory.
124
+ All installed skills are prefixed with `genskills--` to avoid conflicts with your own custom skills.
211
125
 
212
126
  ---
213
127
 
214
128
  ## Troubleshooting
215
129
 
216
- ### Skills not showing up in Claude Code
217
-
218
- Run the doctor to check for issues:
219
-
220
130
  ```bash
131
+ # Check for issues
221
132
  npx genskills doctor
222
- ```
223
-
224
- ### Force reinstall all skills
225
133
 
226
- ```bash
134
+ # Force reinstall all skills
227
135
  npx genskills install --force
228
136
  ```
229
137
 
230
- ### Skills were modified locally
231
-
232
- The doctor command detects checksum drift. To reset to the original versions:
233
-
234
- ```bash
235
- npx genskills install --force
236
- ```
237
-
238
- Your modified versions are backed up to `.claude/skills/.genskills-backup/`.
239
-
240
- ### Config file not working
241
-
242
- Validate your config against the JSON schema:
243
-
244
- ```json
245
- {
246
- "$schema": "./node_modules/genskills/schemas/genskills-config.schema.json"
247
- }
248
- ```
249
-
250
138
  ---
251
139
 
252
140
  ## Requirements
253
141
 
254
142
  - Node.js >= 18.0.0
255
- - Claude Code CLI
143
+ - Claude Code/CLI
144
+
145
+ ## Links
146
+
147
+ - [genskills.dev](https://genskills.dev) — Homepage
148
+ - [genskills.dev/skills](https://genskills.dev/skills) — Browse all skills
256
149
 
257
150
  ## License
258
151
 
@@ -1 +1 @@
1
- {"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/clean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8D3D"}
1
+ {"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/clean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiE3D"}
@@ -38,6 +38,7 @@ const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
39
  const paths_1 = require("../utils/paths");
40
40
  const manifest_1 = require("../utils/manifest");
41
+ const config_loader_1 = require("../utils/config-loader");
41
42
  const logger_1 = require("../utils/logger");
42
43
  function registerCleanCommand(program) {
43
44
  program
@@ -46,8 +47,11 @@ function registerCleanCommand(program) {
46
47
  .option("--backups", "Also remove backup directory")
47
48
  .action((opts) => {
48
49
  const projectRoot = (0, paths_1.findProjectRoot)();
49
- const skillsDir = (0, paths_1.getSkillsDir)(projectRoot);
50
- const manifest = (0, manifest_1.readManifest)(projectRoot);
50
+ const config = (0, config_loader_1.loadConfig)(projectRoot);
51
+ const prefix = config.prefix || "genskills";
52
+ const prefixWithSep = `${prefix}--`;
53
+ const skillsDir = (0, paths_1.getSkillsDir)(projectRoot, config.installPath);
54
+ const manifest = (0, manifest_1.readManifest)(projectRoot, config.installPath);
51
55
  logger_1.logger.header("GenSkills — Clean");
52
56
  logger_1.logger.br();
53
57
  if (!fs.existsSync(skillsDir)) {
@@ -58,13 +62,13 @@ function registerCleanCommand(program) {
58
62
  const validSkills = new Set();
59
63
  for (const category of (0, paths_1.getCategories)()) {
60
64
  for (const skill of (0, paths_1.getSkillsInCategory)(category)) {
61
- validSkills.add(`genskills--${skill}`);
65
+ validSkills.add(`${prefixWithSep}${skill}`);
62
66
  }
63
67
  }
64
68
  // Find installed genskills directories
65
69
  const installed = fs
66
70
  .readdirSync(skillsDir, { withFileTypes: true })
67
- .filter((d) => d.isDirectory() && d.name.startsWith("genskills--"))
71
+ .filter((d) => d.isDirectory() && d.name.startsWith(prefixWithSep))
68
72
  .map((d) => d.name);
69
73
  // Remove orphans (installed but no longer in package)
70
74
  let orphanCount = 0;
@@ -82,11 +86,11 @@ function registerCleanCommand(program) {
82
86
  }
83
87
  else {
84
88
  logger_1.logger.success(`Removed ${orphanCount} orphaned skill(s).`);
85
- (0, manifest_1.writeManifest)(projectRoot, manifest);
89
+ (0, manifest_1.writeManifest)(projectRoot, manifest, config.installPath);
86
90
  }
87
91
  // Clean backups
88
92
  if (opts.backups) {
89
- const backupDir = (0, paths_1.getBackupDir)(projectRoot);
93
+ const backupDir = (0, paths_1.getBackupDir)(projectRoot, config.installPath);
90
94
  if (fs.existsSync(backupDir)) {
91
95
  fs.rmSync(backupDir, { recursive: true, force: true });
92
96
  logger_1.logger.success("Removed backup directory.");
@@ -1 +1 @@
1
- {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../src/cli/commands/clean.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../src/cli/commands/clean.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqH5D"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsH5D"}
@@ -48,21 +48,22 @@ function registerDoctorCommand(program) {
48
48
  .description("Diagnose issues with your genskills installation")
49
49
  .action(() => {
50
50
  const projectRoot = (0, paths_1.findProjectRoot)();
51
+ const config = (0, config_loader_1.loadConfig)(projectRoot);
51
52
  let issues = 0;
52
53
  logger_1.logger.header("GenSkills — Doctor");
53
54
  logger_1.logger.br();
54
55
  // 1. Check skills directory exists
55
- const skillsDir = (0, paths_1.getSkillsDir)(projectRoot);
56
+ const skillsDir = (0, paths_1.getSkillsDir)(projectRoot, config.installPath);
56
57
  if (!fs.existsSync(skillsDir)) {
57
- logger_1.logger.error(".claude/skills/ directory does not exist");
58
+ logger_1.logger.error(`${config.installPath || ".claude/skills"}/ directory does not exist`);
58
59
  logger_1.logger.info("Run `npx genskills install` to create it.");
59
60
  issues++;
60
61
  }
61
62
  else {
62
- logger_1.logger.success(".claude/skills/ directory exists");
63
+ logger_1.logger.success(`${config.installPath || ".claude/skills"}/ directory exists`);
63
64
  }
64
65
  // 2. Check manifest
65
- const manifest = (0, manifest_1.readManifest)(projectRoot);
66
+ const manifest = (0, manifest_1.readManifest)(projectRoot, config.installPath);
66
67
  const installedSkills = (0, copy_1.getInstalledSkills)(projectRoot);
67
68
  if (Object.keys(manifest.skills).length === 0 && installedSkills.length > 0) {
68
69
  logger_1.logger.warn("Skills installed but manifest is empty — run `npx genskills install --force`");
@@ -79,12 +80,12 @@ function registerDoctorCommand(program) {
79
80
  issues++;
80
81
  }
81
82
  // 4. Check for checksum drift (user modified installed skills)
82
- const config = (0, config_loader_1.loadConfig)(projectRoot);
83
83
  const categories = (0, paths_1.getCategories)();
84
84
  let driftCount = 0;
85
+ const prefix = config.prefix || "genskills";
85
86
  for (const category of categories) {
86
87
  for (const skill of (0, paths_1.getSkillsInCategory)(category)) {
87
- const manifestKey = `genskills--${skill}`;
88
+ const manifestKey = `${prefix}--${skill}`;
88
89
  const entry = manifest.skills[manifestKey];
89
90
  if (!entry)
90
91
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -55,36 +55,43 @@ function registerInitCommand(program) {
55
55
  const config = (0, config_loader_1.createDefaultConfig)();
56
56
  if (opts.yes) {
57
57
  // Use all defaults
58
- (0, config_loader_1.saveConfig)(projectRoot, config);
58
+ writeConfigWithSchema(configPath, config);
59
59
  logger_1.logger.success(`Created ${configPath} with defaults (all skills enabled)`);
60
60
  return;
61
61
  }
62
- // Interactive mode — show categories and let user toggle
62
+ // Interactive mode — prompt user per category
63
+ const inquirerModule = await Promise.resolve().then(() => __importStar(require("inquirer")));
64
+ const inquirer = inquirerModule.default || inquirerModule;
63
65
  logger_1.logger.header("GenSkills — Interactive Setup");
64
66
  logger_1.logger.br();
65
- logger_1.logger.info("Select which skill categories to enable:");
66
- logger_1.logger.br();
67
67
  const categories = (0, paths_1.getCategories)();
68
68
  for (const category of categories) {
69
69
  const skills = (0, paths_1.getSkillsInCategory)(category);
70
70
  const formatted = formatCategory(category);
71
- logger_1.logger.info(`${formatted} (${skills.length} skills)`);
72
- logger_1.logger.list(skills);
73
- logger_1.logger.br();
71
+ logger_1.logger.dim(` Skills: ${skills.join(", ")}`);
72
+ const answers = await inquirer.prompt([
73
+ {
74
+ type: "confirm",
75
+ name: "enabled",
76
+ message: `Enable ${formatted}? (${skills.length} skills)`,
77
+ default: true,
78
+ },
79
+ ]);
80
+ config.categories[category] = answers.enabled;
74
81
  }
75
- logger_1.logger.info("All categories enabled by default.");
76
- logger_1.logger.info("Edit genskills.config.json to customize.");
77
82
  logger_1.logger.br();
78
- // Write config with schema reference
79
- const configWithSchema = {
80
- $schema: "./node_modules/genskills/schemas/genskills-config.schema.json",
81
- ...config,
82
- };
83
- fs.writeFileSync(configPath, JSON.stringify(configWithSchema, null, 2), "utf-8");
83
+ writeConfigWithSchema(configPath, config);
84
84
  logger_1.logger.success(`Created: ${configPath}`);
85
85
  logger_1.logger.info("Run `npx genskills install` to apply changes.");
86
86
  });
87
87
  }
88
+ function writeConfigWithSchema(configPath, config) {
89
+ const configWithSchema = {
90
+ $schema: "./node_modules/genskills/schemas/genskills-config.schema.json",
91
+ ...config,
92
+ };
93
+ fs.writeFileSync(configPath, JSON.stringify(configWithSchema, null, 2), "utf-8");
94
+ }
88
95
  function formatCategory(name) {
89
96
  return name
90
97
  .split("-")
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,kDAqDC;AA3DD,uCAAyB;AACzB,0CAAqF;AACrF,0CAA+C;AAC/C,0DAA0F;AAC1F,4CAAyC;AAEzC,SAAgB,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uDAAuD,CAAC;SACpE,MAAM,CAAC,WAAW,EAAE,gCAAgC,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,IAAuB,EAAE,EAAE;QACxC,MAAM,WAAW,GAAG,IAAA,uBAAe,GAAE,CAAC;QACtC,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,WAAW,CAAC,CAAC;QAE9C,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,eAAM,CAAC,IAAI,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;YACpD,eAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,mCAAmB,GAAE,CAAC;QAErC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,mBAAmB;YACnB,IAAA,0BAAU,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAChC,eAAM,CAAC,OAAO,CAAC,WAAW,UAAU,qCAAqC,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QAED,yDAAyD;QACzD,eAAM,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;QAC/C,eAAM,CAAC,EAAE,EAAE,CAAC;QACZ,eAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACxD,eAAM,CAAC,EAAE,EAAE,CAAC;QAEZ,MAAM,UAAU,GAAG,IAAA,qBAAa,GAAE,CAAC;QACnC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,IAAA,2BAAmB,EAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC3C,eAAM,CAAC,IAAI,CAAC,GAAG,SAAS,KAAK,MAAM,CAAC,MAAM,UAAU,CAAC,CAAC;YACtD,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpB,eAAM,CAAC,EAAE,EAAE,CAAC;QACd,CAAC;QAED,eAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAClD,eAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACxD,eAAM,CAAC,EAAE,EAAE,CAAC;QAEZ,qCAAqC;QACrC,MAAM,gBAAgB,GAAG;YACvB,OAAO,EAAE,+DAA+D;YACxE,GAAG,MAAM;SACV,CAAC;QAEF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACjF,eAAM,CAAC,OAAO,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;QACzC,eAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAClD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/copy.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACnD,aAAa,CAsDf;AA6DD;;GAEG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAe3E;AAkBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAehE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAQhE"}
1
+ {"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/copy.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACnD,aAAa,CAsDf;AA6DD;;GAEG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAgB3E;AAmBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAehE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAWhE"}
@@ -47,8 +47,8 @@ const manifest_1 = require("./manifest");
47
47
  */
48
48
  function installSkills(projectRoot, options = {}) {
49
49
  const config = (0, config_loader_1.loadConfig)(projectRoot);
50
- const skillsDir = (0, paths_1.getSkillsDir)(projectRoot);
51
- const manifest = (0, manifest_1.readManifest)(projectRoot);
50
+ const skillsDir = (0, paths_1.getSkillsDir)(projectRoot, config.installPath);
51
+ const manifest = (0, manifest_1.readManifest)(projectRoot, config.installPath);
52
52
  const result = {
53
53
  installed: [],
54
54
  updated: [],
@@ -87,7 +87,7 @@ function installSkills(projectRoot, options = {}) {
87
87
  // Update manifest
88
88
  manifest.packageVersion = (0, manifest_1.getPackageVersion)();
89
89
  manifest.installedAt = new Date().toISOString();
90
- (0, manifest_1.writeManifest)(projectRoot, manifest);
90
+ (0, manifest_1.writeManifest)(projectRoot, manifest, config.installPath);
91
91
  return result;
92
92
  }
93
93
  /**
@@ -95,8 +95,8 @@ function installSkills(projectRoot, options = {}) {
95
95
  */
96
96
  function installSingleSkill(projectRoot, category, skillName, config, manifest, force) {
97
97
  const sourcePath = (0, paths_1.getSkillSourcePath)(category, skillName);
98
- const targetDir = path.join((0, paths_1.getSkillsDir)(projectRoot), (0, paths_1.namespacedSkillDir)(skillName));
99
- const manifestKey = (0, paths_1.namespacedSkillDir)(skillName);
98
+ const targetDir = path.join((0, paths_1.getSkillsDir)(projectRoot, config.installPath), (0, paths_1.namespacedSkillDir)(skillName, config.prefix));
99
+ const manifestKey = (0, paths_1.namespacedSkillDir)(skillName, config.prefix);
100
100
  // Compute source checksum
101
101
  const sourceChecksum = (0, manifest_1.computeChecksum)(sourcePath);
102
102
  // Check if already installed with same checksum
@@ -107,7 +107,7 @@ function installSingleSkill(projectRoot, category, skillName, config, manifest,
107
107
  const isUpdate = existing !== undefined;
108
108
  // Backup existing if updating
109
109
  if (isUpdate && fs.existsSync(targetDir)) {
110
- backupSkill(projectRoot, skillName, targetDir);
110
+ backupSkill(projectRoot, skillName, targetDir, config.installPath);
111
111
  }
112
112
  // Copy skill directory
113
113
  copyDirRecursive(sourcePath, targetDir);
@@ -130,21 +130,22 @@ function installSingleSkill(projectRoot, category, skillName, config, manifest,
130
130
  * Remove a skill from the project.
131
131
  */
132
132
  function removeSkill(projectRoot, skillName) {
133
- const targetDir = path.join((0, paths_1.getSkillsDir)(projectRoot), (0, paths_1.namespacedSkillDir)(skillName));
134
- const manifest = (0, manifest_1.readManifest)(projectRoot);
135
- const manifestKey = (0, paths_1.namespacedSkillDir)(skillName);
133
+ const config = (0, config_loader_1.loadConfig)(projectRoot);
134
+ const targetDir = path.join((0, paths_1.getSkillsDir)(projectRoot, config.installPath), (0, paths_1.namespacedSkillDir)(skillName, config.prefix));
135
+ const manifest = (0, manifest_1.readManifest)(projectRoot, config.installPath);
136
+ const manifestKey = (0, paths_1.namespacedSkillDir)(skillName, config.prefix);
136
137
  if (!fs.existsSync(targetDir))
137
138
  return false;
138
139
  fs.rmSync(targetDir, { recursive: true, force: true });
139
140
  delete manifest.skills[manifestKey];
140
- (0, manifest_1.writeManifest)(projectRoot, manifest);
141
+ (0, manifest_1.writeManifest)(projectRoot, manifest, config.installPath);
141
142
  return true;
142
143
  }
143
144
  /**
144
145
  * Backup a skill directory before overwriting.
145
146
  */
146
- function backupSkill(projectRoot, skillName, sourceDir) {
147
- const backupDir = (0, paths_1.getBackupDir)(projectRoot);
147
+ function backupSkill(projectRoot, skillName, sourceDir, installPath) {
148
+ const backupDir = (0, paths_1.getBackupDir)(projectRoot, installPath);
148
149
  const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
149
150
  const backupPath = path.join(backupDir, `${skillName}-${timestamp}`);
150
151
  fs.mkdirSync(backupPath, { recursive: true });
@@ -171,12 +172,15 @@ function copyDirRecursive(src, dest) {
171
172
  * Get all installed genskills skill names.
172
173
  */
173
174
  function getInstalledSkills(projectRoot) {
174
- const skillsDir = (0, paths_1.getSkillsDir)(projectRoot);
175
+ const config = (0, config_loader_1.loadConfig)(projectRoot);
176
+ const prefix = config.prefix || "genskills";
177
+ const skillsDir = (0, paths_1.getSkillsDir)(projectRoot, config.installPath);
175
178
  if (!fs.existsSync(skillsDir))
176
179
  return [];
180
+ const prefixWithSep = `${prefix}--`;
177
181
  return fs
178
182
  .readdirSync(skillsDir, { withFileTypes: true })
179
- .filter((d) => d.isDirectory() && d.name.startsWith("genskills--"))
180
- .map((d) => d.name.replace("genskills--", ""));
183
+ .filter((d) => d.isDirectory() && d.name.startsWith(prefixWithSep))
184
+ .map((d) => d.name.substring(prefixWithSep.length));
181
185
  }
182
186
  //# sourceMappingURL=copy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copy.js","sourceRoot":"","sources":["../../../src/cli/utils/copy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copy.js","sourceRoot":"","sources":["../../../src/cli/utils/copy.ts"],"names":[],"mappings":"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"}
@@ -13,11 +13,11 @@ export interface GenSkillsManifest {
13
13
  /**
14
14
  * Read the manifest file, or return a fresh empty manifest.
15
15
  */
16
- export declare function readManifest(projectRoot: string): GenSkillsManifest;
16
+ export declare function readManifest(projectRoot: string, installPath?: string): GenSkillsManifest;
17
17
  /**
18
18
  * Write the manifest file.
19
19
  */
20
- export declare function writeManifest(projectRoot: string, manifest: GenSkillsManifest): void;
20
+ export declare function writeManifest(projectRoot: string, manifest: GenSkillsManifest, installPath?: string): void;
21
21
  /**
22
22
  * Compute a SHA-256 checksum for a skill directory.
23
23
  */
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/manifest.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,CAcnE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,iBAAiB,GAC1B,IAAI,CAIN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIxD;AAuBD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/manifest.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAczF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,iBAAiB,EAC3B,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI,CAIN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIxD;AAuBD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C"}
@@ -44,8 +44,8 @@ const paths_1 = require("./paths");
44
44
  /**
45
45
  * Read the manifest file, or return a fresh empty manifest.
46
46
  */
47
- function readManifest(projectRoot) {
48
- const manifestPath = (0, paths_1.getManifestPath)(projectRoot);
47
+ function readManifest(projectRoot, installPath) {
48
+ const manifestPath = (0, paths_1.getManifestPath)(projectRoot, installPath);
49
49
  if (fs.existsSync(manifestPath)) {
50
50
  try {
51
51
  return JSON.parse(fs.readFileSync(manifestPath, "utf-8"));
@@ -63,8 +63,8 @@ function readManifest(projectRoot) {
63
63
  /**
64
64
  * Write the manifest file.
65
65
  */
66
- function writeManifest(projectRoot, manifest) {
67
- const manifestPath = (0, paths_1.getManifestPath)(projectRoot);
66
+ function writeManifest(projectRoot, manifest, installPath) {
67
+ const manifestPath = (0, paths_1.getManifestPath)(projectRoot, installPath);
68
68
  fs.mkdirSync(path.dirname(manifestPath), { recursive: true });
69
69
  fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2), "utf-8");
70
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/cli/utils/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/cli/utils/manifest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,oCAcC;AAKD,sCAQC;AAKD,0CAIC;AA0BD,8CAQC;AA5FD,uCAAyB;AACzB,2CAA6B;AAC7B,+CAAiC;AACjC,mCAA0C;AAgB1C;;GAEG;AACH,SAAgB,YAAY,CAAC,WAAmB,EAAE,WAAoB;IACpE,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;IACH,CAAC;IACD,OAAO;QACL,cAAc,EAAE,iBAAiB,EAAE;QACnC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAC3B,WAAmB,EACnB,QAA2B,EAC3B,WAAoB;IAEpB,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC/D,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,QAAgB;IAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,aAAa,CAAC,GAAW,EAAE,IAAiB;IACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO;IAEhC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC7B,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;YAAE,SAAS;QAE1E,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACjC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC"}