@dzhechkov/keysarium 1.0.0 → 1.0.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 CHANGED
@@ -1,4 +1,4 @@
1
- # @dzhechko/keysarium
1
+ # @dzhechkov/keysarium
2
2
 
3
3
  **AI Case Research Toolkit for Claude Code**
4
4
 
@@ -10,10 +10,10 @@ Full 7-phase pipeline for AI case studies, hackathons, and casariums. Provides s
10
10
 
11
11
  ```bash
12
12
  # One-command install via npx (no global install needed)
13
- npx @dzhechko/keysarium
13
+ npx @dzhechkov/keysarium
14
14
 
15
15
  # Or install globally
16
- npm install -g @dzhechko/keysarium
16
+ npm install -g @dzhechkov/keysarium
17
17
  keysarium init
18
18
 
19
19
  # Or without npm (standalone)
@@ -65,22 +65,22 @@ Each phase produces concrete artifacts (Markdown documents, Mermaid diagrams, JS
65
65
  ## CLI Commands
66
66
 
67
67
  ```bash
68
- npx @dzhechko/keysarium # Full install (interactive, same as init)
69
- npx @dzhechko/keysarium init # Install all components
70
- npx @dzhechko/keysarium init --minimal # Only .claude/ (no docs, no lib)
71
- npx @dzhechko/keysarium init --with-docs # Include documentation
72
- npx @dzhechko/keysarium init --force # Overwrite existing files
73
- npx @dzhechko/keysarium init --dry-run # Preview without making changes
74
- npx @dzhechko/keysarium update # Update to latest version
75
- npx @dzhechko/keysarium remove # Clean uninstall
76
- npx @dzhechko/keysarium list # Show installed components
77
- npx @dzhechko/keysarium doctor # Health check
68
+ npx @dzhechkov/keysarium # Full install (interactive, same as init)
69
+ npx @dzhechkov/keysarium init # Install all components
70
+ npx @dzhechkov/keysarium init --minimal # Only .claude/ (no docs, no lib)
71
+ npx @dzhechkov/keysarium init --with-docs # Include documentation
72
+ npx @dzhechkov/keysarium init --force # Overwrite existing files
73
+ npx @dzhechkov/keysarium init --dry-run # Preview without making changes
74
+ npx @dzhechkov/keysarium update # Update to latest version
75
+ npx @dzhechkov/keysarium remove # Clean uninstall
76
+ npx @dzhechkov/keysarium list # Show installed components
77
+ npx @dzhechkov/keysarium doctor # Health check
78
78
  ```
79
79
 
80
80
  Flags can be combined:
81
81
 
82
82
  ```bash
83
- npx @dzhechko/keysarium init --minimal --force --dry-run
83
+ npx @dzhechkov/keysarium init --minimal --force --dry-run
84
84
  ```
85
85
 
86
86
  ---
@@ -286,4 +286,4 @@ The harvester reviews completed projects, identifies universal patterns, deconte
286
286
 
287
287
  - **GitHub:** [https://github.com/dzhechko/product-keysarium-2026](https://github.com/dzhechko/product-keysarium-2026)
288
288
  - **Issues:** [https://github.com/dzhechko/product-keysarium-2026/issues](https://github.com/dzhechko/product-keysarium-2026/issues)
289
- - **npm:** [https://www.npmjs.com/package/@dzhechko/keysarium](https://www.npmjs.com/package/@dzhechko/keysarium)
289
+ - **npm:** [https://www.npmjs.com/package/@dzhechkov/keysarium](https://www.npmjs.com/package/@dzhechkov/keysarium)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dzhechkov/keysarium",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "AI Case Research Toolkit for Claude Code — full 7-phase pipeline for AI case studies, hackathons, and casariums",
5
5
  "main": "src/cli.js",
6
6
  "bin": {
package/src/cli.js CHANGED
@@ -27,7 +27,7 @@ function getVersion() {
27
27
  // Help
28
28
  // ---------------------------------------------------------------------------
29
29
  function showHelp() {
30
- console.log(bold('Usage:') + ' npx @dzhechko/keysarium ' + cyan('<command>') + dim(' [options]'));
30
+ console.log(bold('Usage:') + ' npx @dzhechkov/keysarium ' + cyan('<command>') + dim(' [options]'));
31
31
  console.log('');
32
32
  console.log(bold('Commands:'));
33
33
  console.log(' ' + green('init') + ' Install toolkit into current project ' + dim('(default)'));
@@ -45,10 +45,10 @@ function showHelp() {
45
45
  console.log(' ' + yellow('--version, -v') + ' Show version number');
46
46
  console.log('');
47
47
  console.log(bold('Examples:'));
48
- console.log(dim(' $ ') + 'npx @dzhechko/keysarium init');
49
- console.log(dim(' $ ') + 'npx @dzhechko/keysarium init --minimal --force');
50
- console.log(dim(' $ ') + 'npx @dzhechko/keysarium update --dry-run');
51
- console.log(dim(' $ ') + 'npx @dzhechko/keysarium doctor');
48
+ console.log(dim(' $ ') + 'npx @dzhechkov/keysarium init');
49
+ console.log(dim(' $ ') + 'npx @dzhechkov/keysarium init --minimal --force');
50
+ console.log(dim(' $ ') + 'npx @dzhechkov/keysarium update --dry-run');
51
+ console.log(dim(' $ ') + 'npx @dzhechkov/keysarium doctor');
52
52
  console.log('');
53
53
  }
54
54
 
@@ -60,7 +60,7 @@ function checkFilesExist(manifest, targetDir) {
60
60
  return {
61
61
  passed: false,
62
62
  detail: `${missing.length} file(s) missing: ${missing.slice(0, 5).join(', ')}${missing.length > 5 ? '...' : ''}`,
63
- fix: `Run ${cyan('@dzhechko/keysarium update')} to restore missing files.`,
63
+ fix: `Run ${cyan('@dzhechkov/keysarium update')} to restore missing files.`,
64
64
  };
65
65
  });
66
66
  }
@@ -76,7 +76,7 @@ function checkClaudeMd(targetDir) {
76
76
  return {
77
77
  passed: false,
78
78
  detail: 'CLAUDE.md not found',
79
- fix: `Run ${cyan('@dzhechko/keysarium update')} or ${cyan('@dzhechko/keysarium init --force')} to restore.`,
79
+ fix: `Run ${cyan('@dzhechkov/keysarium update')} or ${cyan('@dzhechkov/keysarium init --force')} to restore.`,
80
80
  };
81
81
  }
82
82
 
@@ -117,7 +117,7 @@ function checkSkillsComplete(targetDir) {
117
117
  return {
118
118
  passed: false,
119
119
  detail: '.claude/skills/ directory not found',
120
- fix: `Run ${cyan('@dzhechko/keysarium update')} to restore skills.`,
120
+ fix: `Run ${cyan('@dzhechkov/keysarium update')} to restore skills.`,
121
121
  };
122
122
  }
123
123
 
@@ -188,7 +188,7 @@ function checkCommandsPresent(targetDir) {
188
188
  return {
189
189
  passed: false,
190
190
  detail: '.claude/commands/ directory not found',
191
- fix: `Run ${cyan('@dzhechko/keysarium update')} to restore commands.`,
191
+ fix: `Run ${cyan('@dzhechkov/keysarium update')} to restore commands.`,
192
192
  };
193
193
  }
194
194
 
@@ -209,7 +209,7 @@ function checkCommandsPresent(targetDir) {
209
209
  return {
210
210
  passed: false,
211
211
  detail: `Missing ${missing.length} command(s): ${missing.join(', ')}`,
212
- fix: `Run ${cyan('@dzhechko/keysarium update')} to restore missing commands.`,
212
+ fix: `Run ${cyan('@dzhechkov/keysarium update')} to restore missing commands.`,
213
213
  };
214
214
  });
215
215
  }
@@ -234,7 +234,7 @@ function checkRulesPresent(targetDir) {
234
234
  return {
235
235
  passed: false,
236
236
  detail: '.claude/rules/ directory not found',
237
- fix: `Run ${cyan('@dzhechko/keysarium update')} to restore rules.`,
237
+ fix: `Run ${cyan('@dzhechkov/keysarium update')} to restore rules.`,
238
238
  };
239
239
  }
240
240
 
@@ -255,7 +255,7 @@ function checkRulesPresent(targetDir) {
255
255
  return {
256
256
  passed: false,
257
257
  detail: `Missing ${missing.length} rule(s): ${missing.join(', ')}`,
258
- fix: `Run ${cyan('@dzhechko/keysarium update')} to restore missing rules.`,
258
+ fix: `Run ${cyan('@dzhechkov/keysarium update')} to restore missing rules.`,
259
259
  };
260
260
  });
261
261
  }
@@ -271,7 +271,7 @@ function checkAgentsPresent(targetDir) {
271
271
  return {
272
272
  passed: false,
273
273
  detail: '.claude/agents/ directory not found',
274
- fix: `Run ${cyan('@dzhechko/keysarium update')} to restore agents.`,
274
+ fix: `Run ${cyan('@dzhechkov/keysarium update')} to restore agents.`,
275
275
  };
276
276
  }
277
277
 
@@ -298,7 +298,7 @@ function checkAgentsPresent(targetDir) {
298
298
  return {
299
299
  passed: false,
300
300
  detail: `Only ${mdFiles.length}/5 agent files found`,
301
- fix: `Run ${cyan('@dzhechko/keysarium update')} to restore missing agent templates.`,
301
+ fix: `Run ${cyan('@dzhechkov/keysarium update')} to restore missing agent templates.`,
302
302
  };
303
303
  });
304
304
  }
@@ -314,7 +314,7 @@ function checkSettingsValid(targetDir) {
314
314
  return {
315
315
  passed: false,
316
316
  detail: '.claude/settings.json not found',
317
- fix: `Run ${cyan('@dzhechko/keysarium update')} to restore settings.`,
317
+ fix: `Run ${cyan('@dzhechkov/keysarium update')} to restore settings.`,
318
318
  };
319
319
  }
320
320
 
@@ -378,7 +378,7 @@ function checkResearchDir(targetDir) {
378
378
  // ---------------------------------------------------------------------------
379
379
 
380
380
  /**
381
- * `@dzhechko/keysarium doctor` — Health check for the toolkit installation.
381
+ * `@dzhechkov/keysarium doctor` — Health check for the toolkit installation.
382
382
  *
383
383
  * @param {object} options
384
384
  * @param {string} options.targetDir — Project root directory
@@ -390,7 +390,7 @@ async function run(options) {
390
390
  // ── a) Check manifest exists ───────────────────────────────────────────
391
391
  if (!fileExists(manifestPath)) {
392
392
  logError('Keysarium is not installed in this directory.');
393
- info(`Run ${cyan('@dzhechko/keysarium init')} to install.`);
393
+ info(`Run ${cyan('@dzhechkov/keysarium init')} to install.`);
394
394
  process.exit(1);
395
395
  }
396
396
 
@@ -401,7 +401,7 @@ async function run(options) {
401
401
  }
402
402
 
403
403
  console.log('');
404
- info(bold(`Running health checks for @dzhechko/keysarium v${manifest.version}...`));
404
+ info(bold(`Running health checks for @dzhechkov/keysarium v${manifest.version}...`));
405
405
  console.log('');
406
406
 
407
407
  // ── b) Run all checks ─────────────────────────────────────────────────
@@ -65,7 +65,7 @@ function installComponent(comp, templatesDir, targetDir) {
65
65
  // ---------------------------------------------------------------------------
66
66
 
67
67
  /**
68
- * `@dzhechko/keysarium init` — Install the toolkit into the target project.
68
+ * `@dzhechkov/keysarium init` — Install the toolkit into the target project.
69
69
  *
70
70
  * @param {object} options
71
71
  * @param {boolean} options.minimal — Install only core (no lib)
@@ -82,7 +82,7 @@ async function run(options) {
82
82
  if (fileExists(manifestPath)) {
83
83
  if (!force) {
84
84
  warn('Keysarium is already installed in this directory.');
85
- info(`Run ${cyan('@dzhechko/keysarium update')} to update, or use ${yellow('--force')} to overwrite.`);
85
+ info(`Run ${cyan('@dzhechkov/keysarium update')} to update, or use ${yellow('--force')} to overwrite.`);
86
86
  process.exit(1);
87
87
  }
88
88
  warn('Existing installation found — overwriting (--force).');
@@ -53,7 +53,7 @@ function padRight(str, width) {
53
53
  // ---------------------------------------------------------------------------
54
54
 
55
55
  /**
56
- * `@dzhechko/keysarium list` — Show installed components and their status.
56
+ * `@dzhechkov/keysarium list` — Show installed components and their status.
57
57
  *
58
58
  * @param {object} options
59
59
  * @param {string} options.targetDir — Project root directory
@@ -65,7 +65,7 @@ async function run(options) {
65
65
  // ── a) Read manifest ───────────────────────────────────────────────────
66
66
  if (!fileExists(manifestPath)) {
67
67
  warn('Keysarium is not installed in this directory.');
68
- info(`Run ${cyan('@dzhechko/keysarium init')} to install.`);
68
+ info(`Run ${cyan('@dzhechkov/keysarium init')} to install.`);
69
69
  process.exit(1);
70
70
  }
71
71
 
@@ -79,7 +79,7 @@ async function run(options) {
79
79
 
80
80
  // ── Header ─────────────────────────────────────────────────────────────
81
81
  console.log('');
82
- console.log(bold(`@dzhechko/keysarium v${manifest.version}`));
82
+ console.log(bold(`@dzhechkov/keysarium v${manifest.version}`));
83
83
  console.log(`Installed: ${manifest.installedAt ? manifest.installedAt.split('T')[0] : 'unknown'}`);
84
84
  if (manifest.updatedAt) {
85
85
  console.log(`Updated: ${manifest.updatedAt.split('T')[0]}`);
@@ -82,7 +82,7 @@ function removeEmptyDirs(dirPath, stopDir) {
82
82
  // ---------------------------------------------------------------------------
83
83
 
84
84
  /**
85
- * `@dzhechko/keysarium remove` — Clean uninstall of the toolkit.
85
+ * `@dzhechkov/keysarium remove` — Clean uninstall of the toolkit.
86
86
  *
87
87
  * @param {object} options
88
88
  * @param {boolean} options.force — Skip confirmation prompt
@@ -187,7 +187,7 @@ async function run(options) {
187
187
  console.log(` ${dim('-')} ${skippedCount} file(s) already missing (skipped)`);
188
188
  }
189
189
  console.log('');
190
- info(`To reinstall, run: ${cyan('@dzhechko/keysarium init')}`);
190
+ info(`To reinstall, run: ${cyan('@dzhechkov/keysarium init')}`);
191
191
  console.log('');
192
192
 
193
193
  process.exit(0);
@@ -16,7 +16,7 @@ const {
16
16
  // ---------------------------------------------------------------------------
17
17
 
18
18
  /**
19
- * `@dzhechko/keysarium update` — Update an existing toolkit installation.
19
+ * `@dzhechkov/keysarium update` — Update an existing toolkit installation.
20
20
  *
21
21
  * @param {object} options
22
22
  * @param {boolean} options.dryRun — Preview without writing anything
@@ -30,7 +30,7 @@ async function run(options) {
30
30
  // ── a) Read existing manifest ───────────────────────────────────────────
31
31
  if (!fileExists(manifestPath)) {
32
32
  logError('Keysarium is not installed in this directory.');
33
- info(`Run ${cyan('@dzhechko/keysarium init')} to install.`);
33
+ info(`Run ${cyan('@dzhechkov/keysarium init')} to install.`);
34
34
  process.exit(1);
35
35
  }
36
36