claudeskill-cli 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/dist/index.js +57 -57
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -7641,13 +7641,13 @@ var init_kit = __esm(() => {
|
|
|
7641
7641
|
engineer: {
|
|
7642
7642
|
name: "ClaudeSkill Engineer",
|
|
7643
7643
|
repo: "claudeskill-engineer",
|
|
7644
|
-
owner: "
|
|
7644
|
+
owner: "luan-thnh",
|
|
7645
7645
|
description: "Engineering toolkit for building with Claude"
|
|
7646
7646
|
},
|
|
7647
7647
|
marketing: {
|
|
7648
7648
|
name: "ClaudeSkill Marketing",
|
|
7649
7649
|
repo: "claudeskill-marketing",
|
|
7650
|
-
owner: "
|
|
7650
|
+
owner: "luan-thnh",
|
|
7651
7651
|
description: "Marketing automation toolkit for Claude"
|
|
7652
7652
|
}
|
|
7653
7653
|
};
|
|
@@ -7674,7 +7674,7 @@ var init_kit = __esm(() => {
|
|
|
7674
7674
|
".repomixignore",
|
|
7675
7675
|
".mcp.json",
|
|
7676
7676
|
".ckignore",
|
|
7677
|
-
".
|
|
7677
|
+
".cs.json",
|
|
7678
7678
|
"CLAUDE.md"
|
|
7679
7679
|
];
|
|
7680
7680
|
PROTECTED_PATTERNS = [...NEVER_COPY_PATTERNS, ...USER_CONFIG_PATTERNS];
|
|
@@ -17685,7 +17685,7 @@ var init_new_command_help = __esm(() => {
|
|
|
17685
17685
|
},
|
|
17686
17686
|
{
|
|
17687
17687
|
flags: "--prefix",
|
|
17688
|
-
description: "Add /
|
|
17688
|
+
description: "Add /cs: prefix to all slash commands"
|
|
17689
17689
|
}
|
|
17690
17690
|
]
|
|
17691
17691
|
},
|
|
@@ -17790,7 +17790,7 @@ var init_init_command_help = __esm(() => {
|
|
|
17790
17790
|
},
|
|
17791
17791
|
{
|
|
17792
17792
|
flags: "--prefix",
|
|
17793
|
-
description: "Add /
|
|
17793
|
+
description: "Add /cs: prefix to all slash commands"
|
|
17794
17794
|
},
|
|
17795
17795
|
{
|
|
17796
17796
|
flags: "--skip-setup",
|
|
@@ -20122,7 +20122,7 @@ function checkGlobalInstall(setup) {
|
|
|
20122
20122
|
const kitName = metadata?.name || "ClaudeSkill";
|
|
20123
20123
|
const version = formatVersion(metadata?.version);
|
|
20124
20124
|
return {
|
|
20125
|
-
id: "
|
|
20125
|
+
id: "cs-global-install",
|
|
20126
20126
|
name: "Global CK",
|
|
20127
20127
|
group: "claudeskill",
|
|
20128
20128
|
priority: "critical",
|
|
@@ -20139,7 +20139,7 @@ function checkProjectInstall(setup) {
|
|
|
20139
20139
|
const kitName = metadata?.name || "ClaudeSkill";
|
|
20140
20140
|
const version = formatVersion(metadata?.version);
|
|
20141
20141
|
return {
|
|
20142
|
-
id: "
|
|
20142
|
+
id: "cs-project-install",
|
|
20143
20143
|
name: "Project CK",
|
|
20144
20144
|
group: "claudeskill",
|
|
20145
20145
|
priority: "standard",
|
|
@@ -20536,7 +20536,7 @@ async function checkCliInstallMethod() {
|
|
|
20536
20536
|
const pmVersion = await PackageManagerDetector.getVersion(pm);
|
|
20537
20537
|
const displayName = PackageManagerDetector.getDisplayName(pm);
|
|
20538
20538
|
return {
|
|
20539
|
-
id: "
|
|
20539
|
+
id: "cs-cli-install-method",
|
|
20540
20540
|
name: "CLI Installed Via",
|
|
20541
20541
|
group: "claudeskill",
|
|
20542
20542
|
priority: "standard",
|
|
@@ -20619,7 +20619,7 @@ function checkActivePlan(projectDir) {
|
|
|
20619
20619
|
const activePlanPath = join5(projectDir, ".claude", "active-plan");
|
|
20620
20620
|
if (!existsSync5(activePlanPath)) {
|
|
20621
20621
|
return {
|
|
20622
|
-
id: "
|
|
20622
|
+
id: "cs-active-plan",
|
|
20623
20623
|
name: "Active Plan",
|
|
20624
20624
|
group: "claudeskill",
|
|
20625
20625
|
priority: "standard",
|
|
@@ -20633,7 +20633,7 @@ function checkActivePlan(projectDir) {
|
|
|
20633
20633
|
const fullPath = join5(projectDir, targetPath);
|
|
20634
20634
|
if (!existsSync5(fullPath)) {
|
|
20635
20635
|
return {
|
|
20636
|
-
id: "
|
|
20636
|
+
id: "cs-active-plan",
|
|
20637
20637
|
name: "Active Plan",
|
|
20638
20638
|
group: "claudeskill",
|
|
20639
20639
|
priority: "standard",
|
|
@@ -20645,7 +20645,7 @@ function checkActivePlan(projectDir) {
|
|
|
20645
20645
|
};
|
|
20646
20646
|
}
|
|
20647
20647
|
return {
|
|
20648
|
-
id: "
|
|
20648
|
+
id: "cs-active-plan",
|
|
20649
20649
|
name: "Active Plan",
|
|
20650
20650
|
group: "claudeskill",
|
|
20651
20651
|
priority: "standard",
|
|
@@ -20655,7 +20655,7 @@ function checkActivePlan(projectDir) {
|
|
|
20655
20655
|
};
|
|
20656
20656
|
} catch {
|
|
20657
20657
|
return {
|
|
20658
|
-
id: "
|
|
20658
|
+
id: "cs-active-plan",
|
|
20659
20659
|
name: "Active Plan",
|
|
20660
20660
|
group: "claudeskill",
|
|
20661
20661
|
priority: "standard",
|
|
@@ -20677,7 +20677,7 @@ function checkSkillsScripts(setup) {
|
|
|
20677
20677
|
const globalScriptPath = join6(setup.global.path, "skills", scriptName);
|
|
20678
20678
|
const hasGlobalScript = existsSync6(globalScriptPath);
|
|
20679
20679
|
results.push({
|
|
20680
|
-
id: "
|
|
20680
|
+
id: "cs-global-skills-script",
|
|
20681
20681
|
name: "Global Skills Script",
|
|
20682
20682
|
group: "claudeskill",
|
|
20683
20683
|
priority: "standard",
|
|
@@ -20692,7 +20692,7 @@ function checkSkillsScripts(setup) {
|
|
|
20692
20692
|
const projectScriptPath = join6(setup.project.path, "skills", scriptName);
|
|
20693
20693
|
const hasProjectScript = existsSync6(projectScriptPath);
|
|
20694
20694
|
results.push({
|
|
20695
|
-
id: "
|
|
20695
|
+
id: "cs-project-skills-script",
|
|
20696
20696
|
name: "Project Skills Script",
|
|
20697
20697
|
group: "claudeskill",
|
|
20698
20698
|
priority: "standard",
|
|
@@ -20714,7 +20714,7 @@ function checkComponentCounts(setup) {
|
|
|
20714
20714
|
const totalSkills = global2.skills + project.skills;
|
|
20715
20715
|
const totalComponents = totalAgents + totalCommands + totalRules + totalSkills;
|
|
20716
20716
|
return {
|
|
20717
|
-
id: "
|
|
20717
|
+
id: "cs-component-counts",
|
|
20718
20718
|
name: "ClaudeSkill Components",
|
|
20719
20719
|
group: "claudeskill",
|
|
20720
20720
|
priority: "standard",
|
|
@@ -20744,7 +20744,7 @@ async function checkGlobalDirReadable() {
|
|
|
20744
20744
|
const globalDir = PathResolver.getGlobalKitDir();
|
|
20745
20745
|
if (shouldSkipExpensiveOperations3()) {
|
|
20746
20746
|
return {
|
|
20747
|
-
id: "
|
|
20747
|
+
id: "cs-global-dir-readable",
|
|
20748
20748
|
name: "Global Dir Readable",
|
|
20749
20749
|
group: "claudeskill",
|
|
20750
20750
|
priority: "standard",
|
|
@@ -20757,7 +20757,7 @@ async function checkGlobalDirReadable() {
|
|
|
20757
20757
|
try {
|
|
20758
20758
|
await access(globalDir, constants.R_OK);
|
|
20759
20759
|
return {
|
|
20760
|
-
id: "
|
|
20760
|
+
id: "cs-global-dir-readable",
|
|
20761
20761
|
name: "Global Dir Readable",
|
|
20762
20762
|
group: "claudeskill",
|
|
20763
20763
|
priority: "standard",
|
|
@@ -20768,7 +20768,7 @@ async function checkGlobalDirReadable() {
|
|
|
20768
20768
|
};
|
|
20769
20769
|
} catch (error) {
|
|
20770
20770
|
return {
|
|
20771
|
-
id: "
|
|
20771
|
+
id: "cs-global-dir-readable",
|
|
20772
20772
|
name: "Global Dir Readable",
|
|
20773
20773
|
group: "claudeskill",
|
|
20774
20774
|
priority: "standard",
|
|
@@ -20784,7 +20784,7 @@ async function checkGlobalDirWritable() {
|
|
|
20784
20784
|
const globalDir = PathResolver.getGlobalKitDir();
|
|
20785
20785
|
if (shouldSkipExpensiveOperations3()) {
|
|
20786
20786
|
return {
|
|
20787
|
-
id: "
|
|
20787
|
+
id: "cs-global-dir-writable",
|
|
20788
20788
|
name: "Global Dir Writable",
|
|
20789
20789
|
group: "claudeskill",
|
|
20790
20790
|
priority: "standard",
|
|
@@ -20796,12 +20796,12 @@ async function checkGlobalDirWritable() {
|
|
|
20796
20796
|
}
|
|
20797
20797
|
const timestamp = Date.now();
|
|
20798
20798
|
const random = Math.random().toString(36).substring(2);
|
|
20799
|
-
const testFile = join7(globalDir, `.
|
|
20799
|
+
const testFile = join7(globalDir, `.cs-write-test-${timestamp}-${random}`);
|
|
20800
20800
|
try {
|
|
20801
20801
|
await writeFile2(testFile, "test", { encoding: "utf-8", flag: "wx" });
|
|
20802
20802
|
} catch (error) {
|
|
20803
20803
|
return {
|
|
20804
|
-
id: "
|
|
20804
|
+
id: "cs-global-dir-writable",
|
|
20805
20805
|
name: "Global Dir Writable",
|
|
20806
20806
|
group: "claudeskill",
|
|
20807
20807
|
priority: "standard",
|
|
@@ -20818,7 +20818,7 @@ async function checkGlobalDirWritable() {
|
|
|
20818
20818
|
logger.verbose("Failed to cleanup write test file", { testFile });
|
|
20819
20819
|
}
|
|
20820
20820
|
return {
|
|
20821
|
-
id: "
|
|
20821
|
+
id: "cs-global-dir-writable",
|
|
20822
20822
|
name: "Global Dir Writable",
|
|
20823
20823
|
group: "claudeskill",
|
|
20824
20824
|
priority: "standard",
|
|
@@ -20871,7 +20871,7 @@ async function checkHooksExist(projectDir) {
|
|
|
20871
20871
|
hookCount = checkedFiles.size;
|
|
20872
20872
|
if (!globalExists && !projectExists) {
|
|
20873
20873
|
return {
|
|
20874
|
-
id: "
|
|
20874
|
+
id: "cs-hooks-exist",
|
|
20875
20875
|
name: "Hooks Directory",
|
|
20876
20876
|
group: "claudeskill",
|
|
20877
20877
|
priority: "standard",
|
|
@@ -20881,7 +20881,7 @@ async function checkHooksExist(projectDir) {
|
|
|
20881
20881
|
};
|
|
20882
20882
|
}
|
|
20883
20883
|
return {
|
|
20884
|
-
id: "
|
|
20884
|
+
id: "cs-hooks-exist",
|
|
20885
20885
|
name: "Hooks Directory",
|
|
20886
20886
|
group: "claudeskill",
|
|
20887
20887
|
priority: "standard",
|
|
@@ -20903,7 +20903,7 @@ async function checkSettingsValid(projectDir) {
|
|
|
20903
20903
|
const settingsPath = existsSync8(globalSettings) ? globalSettings : existsSync8(projectSettings) ? projectSettings : null;
|
|
20904
20904
|
if (!settingsPath) {
|
|
20905
20905
|
return {
|
|
20906
|
-
id: "
|
|
20906
|
+
id: "cs-settings-valid",
|
|
20907
20907
|
name: "Settings.json",
|
|
20908
20908
|
group: "claudeskill",
|
|
20909
20909
|
priority: "extended",
|
|
@@ -20916,7 +20916,7 @@ async function checkSettingsValid(projectDir) {
|
|
|
20916
20916
|
const content = await readFile3(settingsPath, "utf-8");
|
|
20917
20917
|
JSON.parse(content);
|
|
20918
20918
|
return {
|
|
20919
|
-
id: "
|
|
20919
|
+
id: "cs-settings-valid",
|
|
20920
20920
|
name: "Settings.json",
|
|
20921
20921
|
group: "claudeskill",
|
|
20922
20922
|
priority: "extended",
|
|
@@ -20954,7 +20954,7 @@ async function checkSettingsValid(projectDir) {
|
|
|
20954
20954
|
});
|
|
20955
20955
|
}
|
|
20956
20956
|
return {
|
|
20957
|
-
id: "
|
|
20957
|
+
id: "cs-settings-valid",
|
|
20958
20958
|
name: "Settings.json",
|
|
20959
20959
|
group: "claudeskill",
|
|
20960
20960
|
priority: "extended",
|
|
@@ -20979,7 +20979,7 @@ async function checkPathRefsValid(projectDir) {
|
|
|
20979
20979
|
const claudeMdPath = existsSync9(globalClaudeMd) ? globalClaudeMd : existsSync9(projectClaudeMd) ? projectClaudeMd : null;
|
|
20980
20980
|
if (!claudeMdPath) {
|
|
20981
20981
|
return {
|
|
20982
|
-
id: "
|
|
20982
|
+
id: "cs-path-refs-valid",
|
|
20983
20983
|
name: "Path References",
|
|
20984
20984
|
group: "claudeskill",
|
|
20985
20985
|
priority: "extended",
|
|
@@ -20994,7 +20994,7 @@ async function checkPathRefsValid(projectDir) {
|
|
|
20994
20994
|
const refs = [...content.matchAll(refPattern)].map((m) => m[1]);
|
|
20995
20995
|
if (refs.length === 0) {
|
|
20996
20996
|
return {
|
|
20997
|
-
id: "
|
|
20997
|
+
id: "cs-path-refs-valid",
|
|
20998
20998
|
name: "Path References",
|
|
20999
20999
|
group: "claudeskill",
|
|
21000
21000
|
priority: "extended",
|
|
@@ -21035,7 +21035,7 @@ async function checkPathRefsValid(projectDir) {
|
|
|
21035
21035
|
}
|
|
21036
21036
|
if (broken.length > 0) {
|
|
21037
21037
|
return {
|
|
21038
|
-
id: "
|
|
21038
|
+
id: "cs-path-refs-valid",
|
|
21039
21039
|
name: "Path References",
|
|
21040
21040
|
group: "claudeskill",
|
|
21041
21041
|
priority: "extended",
|
|
@@ -21047,7 +21047,7 @@ async function checkPathRefsValid(projectDir) {
|
|
|
21047
21047
|
};
|
|
21048
21048
|
}
|
|
21049
21049
|
return {
|
|
21050
|
-
id: "
|
|
21050
|
+
id: "cs-path-refs-valid",
|
|
21051
21051
|
name: "Path References",
|
|
21052
21052
|
group: "claudeskill",
|
|
21053
21053
|
priority: "extended",
|
|
@@ -21057,7 +21057,7 @@ async function checkPathRefsValid(projectDir) {
|
|
|
21057
21057
|
};
|
|
21058
21058
|
} catch (error) {
|
|
21059
21059
|
return {
|
|
21060
|
-
id: "
|
|
21060
|
+
id: "cs-path-refs-valid",
|
|
21061
21061
|
name: "Path References",
|
|
21062
21062
|
group: "claudeskill",
|
|
21063
21063
|
priority: "extended",
|
|
@@ -21074,7 +21074,7 @@ import { join as join11 } from "node:path";
|
|
|
21074
21074
|
async function checkProjectConfigCompleteness(setup, projectDir) {
|
|
21075
21075
|
if (setup.project.path === setup.global.path) {
|
|
21076
21076
|
return {
|
|
21077
|
-
id: "
|
|
21077
|
+
id: "cs-project-config-complete",
|
|
21078
21078
|
name: "Project Config Completeness",
|
|
21079
21079
|
group: "claudeskill",
|
|
21080
21080
|
priority: "standard",
|
|
@@ -21101,7 +21101,7 @@ async function checkProjectConfigCompleteness(setup, projectDir) {
|
|
|
21101
21101
|
const totalRequired = requiredDirs.length + 1;
|
|
21102
21102
|
if (hasOnlyClaudeMd || missingDirs.length === totalRequired) {
|
|
21103
21103
|
return {
|
|
21104
|
-
id: "
|
|
21104
|
+
id: "cs-project-config-complete",
|
|
21105
21105
|
name: "Project Config Completeness",
|
|
21106
21106
|
group: "claudeskill",
|
|
21107
21107
|
priority: "standard",
|
|
@@ -21114,7 +21114,7 @@ async function checkProjectConfigCompleteness(setup, projectDir) {
|
|
|
21114
21114
|
}
|
|
21115
21115
|
if (missingDirs.length > 0) {
|
|
21116
21116
|
return {
|
|
21117
|
-
id: "
|
|
21117
|
+
id: "cs-project-config-complete",
|
|
21118
21118
|
name: "Project Config Completeness",
|
|
21119
21119
|
group: "claudeskill",
|
|
21120
21120
|
priority: "standard",
|
|
@@ -21126,7 +21126,7 @@ async function checkProjectConfigCompleteness(setup, projectDir) {
|
|
|
21126
21126
|
};
|
|
21127
21127
|
}
|
|
21128
21128
|
return {
|
|
21129
|
-
id: "
|
|
21129
|
+
id: "cs-project-config-complete",
|
|
21130
21130
|
name: "Project Config Completeness",
|
|
21131
21131
|
group: "claudeskill",
|
|
21132
21132
|
priority: "standard",
|
|
@@ -21442,7 +21442,7 @@ async function checkEnvKeys(setup) {
|
|
|
21442
21442
|
if (!globalCheck.allPresent) {
|
|
21443
21443
|
const missingKeys = globalCheck.missing.map((m2) => m2.label).join(", ");
|
|
21444
21444
|
results.push({
|
|
21445
|
-
id: "
|
|
21445
|
+
id: "cs-global-env-keys",
|
|
21446
21446
|
name: "Global Environment Keys",
|
|
21447
21447
|
group: "claudeskill",
|
|
21448
21448
|
priority: "standard",
|
|
@@ -21454,7 +21454,7 @@ async function checkEnvKeys(setup) {
|
|
|
21454
21454
|
});
|
|
21455
21455
|
} else {
|
|
21456
21456
|
results.push({
|
|
21457
|
-
id: "
|
|
21457
|
+
id: "cs-global-env-keys",
|
|
21458
21458
|
name: "Global Environment Keys",
|
|
21459
21459
|
group: "claudeskill",
|
|
21460
21460
|
priority: "standard",
|
|
@@ -21471,7 +21471,7 @@ async function checkEnvKeys(setup) {
|
|
|
21471
21471
|
if (!projectCheck.allPresent) {
|
|
21472
21472
|
const missingKeys = projectCheck.missing.map((m2) => m2.label).join(", ");
|
|
21473
21473
|
results.push({
|
|
21474
|
-
id: "
|
|
21474
|
+
id: "cs-project-env-keys",
|
|
21475
21475
|
name: "Project Environment Keys",
|
|
21476
21476
|
group: "claudeskill",
|
|
21477
21477
|
priority: "standard",
|
|
@@ -21483,7 +21483,7 @@ async function checkEnvKeys(setup) {
|
|
|
21483
21483
|
});
|
|
21484
21484
|
} else {
|
|
21485
21485
|
results.push({
|
|
21486
|
-
id: "
|
|
21486
|
+
id: "cs-project-env-keys",
|
|
21487
21487
|
name: "Project Environment Keys",
|
|
21488
21488
|
group: "claudeskill",
|
|
21489
21489
|
priority: "standard",
|
|
@@ -21579,7 +21579,7 @@ Error: ${msg}
|
|
|
21579
21579
|
|
|
21580
21580
|
Check disk space and directory permissions.`);
|
|
21581
21581
|
}
|
|
21582
|
-
const tempDir = await fs2.promises.mkdtemp(path.join(this.tempBaseDir, `
|
|
21582
|
+
const tempDir = await fs2.promises.mkdtemp(path.join(this.tempBaseDir, `cs-git-${kit.repo}-`));
|
|
21583
21583
|
const url = preferSsh ? `git@github.com:${kit.owner}/${kit.repo}.git` : `https://github.com/${kit.owner}/${kit.repo}.git`;
|
|
21584
21584
|
const method = preferSsh ? "ssh" : "https";
|
|
21585
21585
|
logger.verbose("Git clone", { url, tag, tempDir, method });
|
|
@@ -21984,7 +21984,7 @@ async function checkGlobalDirAccess() {
|
|
|
21984
21984
|
autoFixable: false
|
|
21985
21985
|
};
|
|
21986
21986
|
}
|
|
21987
|
-
const testFile = join17(globalDir, ".
|
|
21987
|
+
const testFile = join17(globalDir, ".cs-doctor-access-test");
|
|
21988
21988
|
try {
|
|
21989
21989
|
await mkdir3(globalDir, { recursive: true });
|
|
21990
21990
|
await writeFile5(testFile, "test", "utf-8");
|
|
@@ -22114,8 +22114,8 @@ async function checkSymlinkSupport() {
|
|
|
22114
22114
|
};
|
|
22115
22115
|
}
|
|
22116
22116
|
const testDir = PathResolver.getGlobalKitDir();
|
|
22117
|
-
const target = join18(testDir, ".
|
|
22118
|
-
const link = join18(testDir, ".
|
|
22117
|
+
const target = join18(testDir, ".cs-symlink-test-target");
|
|
22118
|
+
const link = join18(testDir, ".cs-symlink-test-link");
|
|
22119
22119
|
try {
|
|
22120
22120
|
await mkdir4(testDir, { recursive: true });
|
|
22121
22121
|
await writeFile6(target, "test", "utf-8");
|
|
@@ -22548,7 +22548,7 @@ class ReportGenerator {
|
|
|
22548
22548
|
return null;
|
|
22549
22549
|
}
|
|
22550
22550
|
}
|
|
22551
|
-
const tmpFile = join19(tmpdir2(), `
|
|
22551
|
+
const tmpFile = join19(tmpdir2(), `cs-report-${Date.now()}.txt`);
|
|
22552
22552
|
writeFileSync(tmpFile, report);
|
|
22553
22553
|
try {
|
|
22554
22554
|
const result = spawnSync3("gh", ["gist", "create", tmpFile, "--desc", "ClaudeSkill Diagnostic Report"], {
|
|
@@ -37239,7 +37239,7 @@ function normalizeCommand(cmd) {
|
|
|
37239
37239
|
return normalized;
|
|
37240
37240
|
}
|
|
37241
37241
|
// src/domains/config/installed-settings-tracker.ts
|
|
37242
|
-
var CK_JSON_FILE = ".
|
|
37242
|
+
var CK_JSON_FILE = ".cs.json";
|
|
37243
37243
|
|
|
37244
37244
|
class InstalledSettingsTracker {
|
|
37245
37245
|
projectDir;
|
|
@@ -39054,7 +39054,7 @@ async function applyPrefix(extractDir) {
|
|
|
39054
39054
|
logger.verbose("No commands directory found, skipping prefix application");
|
|
39055
39055
|
return;
|
|
39056
39056
|
}
|
|
39057
|
-
logger.info("Applying /
|
|
39057
|
+
logger.info("Applying /cs: prefix to slash commands...");
|
|
39058
39058
|
const backupDir = join51(extractDir, ".commands-backup");
|
|
39059
39059
|
const tempDir = join51(extractDir, ".commands-prefix-temp");
|
|
39060
39060
|
try {
|
|
@@ -39067,7 +39067,7 @@ async function applyPrefix(extractDir) {
|
|
|
39067
39067
|
const ckDir2 = join51(commandsDir, "ck");
|
|
39068
39068
|
const ckStat = await stat8(ckDir2);
|
|
39069
39069
|
if (ckStat.isDirectory()) {
|
|
39070
|
-
logger.verbose("Commands already have /
|
|
39070
|
+
logger.verbose("Commands already have /cs: prefix, skipping");
|
|
39071
39071
|
return;
|
|
39072
39072
|
}
|
|
39073
39073
|
}
|
|
@@ -39101,7 +39101,7 @@ async function applyPrefix(extractDir) {
|
|
|
39101
39101
|
await import_fs_extra16.remove(commandsDir);
|
|
39102
39102
|
await import_fs_extra16.move(tempDir, commandsDir);
|
|
39103
39103
|
await import_fs_extra16.remove(backupDir);
|
|
39104
|
-
logger.success("Successfully reorganized commands to /
|
|
39104
|
+
logger.success("Successfully reorganized commands to /cs: prefix");
|
|
39105
39105
|
const claudeDir = join51(extractDir, ".claude");
|
|
39106
39106
|
logger.info("Transforming command references in file contents...");
|
|
39107
39107
|
const transformResult = await transformCommandReferences(claudeDir, {
|
|
@@ -39125,7 +39125,7 @@ async function applyPrefix(extractDir) {
|
|
|
39125
39125
|
if (await import_fs_extra16.pathExists(tempDir)) {
|
|
39126
39126
|
await import_fs_extra16.remove(tempDir).catch(() => {});
|
|
39127
39127
|
}
|
|
39128
|
-
logger.error("Failed to apply /
|
|
39128
|
+
logger.error("Failed to apply /cs: prefix to commands");
|
|
39129
39129
|
throw error;
|
|
39130
39130
|
} finally {
|
|
39131
39131
|
if (await import_fs_extra16.pathExists(backupDir)) {
|
|
@@ -40841,7 +40841,7 @@ import { mkdir as mkdir19, readFile as readFile24, rename as rename2, rm as rm6,
|
|
|
40841
40841
|
import { chmod as chmod2 } from "node:fs/promises";
|
|
40842
40842
|
import { platform as platform11 } from "node:os";
|
|
40843
40843
|
import { join as join65 } from "node:path";
|
|
40844
|
-
var PROJECT_CONFIG_FILE = ".
|
|
40844
|
+
var PROJECT_CONFIG_FILE = ".cs.json";
|
|
40845
40845
|
|
|
40846
40846
|
class ConfigManager {
|
|
40847
40847
|
static config = null;
|
|
@@ -40990,7 +40990,7 @@ class ConfigManager {
|
|
|
40990
40990
|
}
|
|
40991
40991
|
if (existsSync19(incorrectPath)) {
|
|
40992
40992
|
try {
|
|
40993
|
-
logger.info("Migrating .
|
|
40993
|
+
logger.info("Migrating .cs.json from nested location to correct location...");
|
|
40994
40994
|
await rename2(incorrectPath, correctPath);
|
|
40995
40995
|
logger.success(`Migrated ${PROJECT_CONFIG_FILE} to ${correctPath}`);
|
|
40996
40996
|
const nestedClaudeDir = join65(globalDir, ".claude");
|
|
@@ -42633,7 +42633,7 @@ async function handleTransforms(ctx) {
|
|
|
42633
42633
|
docs: foldersConfig.docs,
|
|
42634
42634
|
plans: foldersConfig.plans
|
|
42635
42635
|
}, ctx.options.global);
|
|
42636
|
-
logger.debug(ctx.options.global ? "Saved folder configuration to ~/.claude/.
|
|
42636
|
+
logger.debug(ctx.options.global ? "Saved folder configuration to ~/.claude/.cs.json" : "Saved folder configuration to .claude/.cs.json");
|
|
42637
42637
|
}
|
|
42638
42638
|
}
|
|
42639
42639
|
const claudeDir = ctx.options.global ? ctx.resolvedDir : join73(ctx.resolvedDir, ".claude");
|
|
@@ -43088,7 +43088,7 @@ async function projectCreation(kit, resolvedDir, validOptions, isNonInteractive2
|
|
|
43088
43088
|
docs: foldersConfig.docs,
|
|
43089
43089
|
plans: foldersConfig.plans
|
|
43090
43090
|
});
|
|
43091
|
-
logger.debug("Saved folder configuration to .claude/.
|
|
43091
|
+
logger.debug("Saved folder configuration to .claude/.cs.json");
|
|
43092
43092
|
}
|
|
43093
43093
|
output.section("Installing");
|
|
43094
43094
|
logger.verbose("Installation target", { directory: resolvedDir });
|
|
@@ -43730,7 +43730,7 @@ var import_fs_extra37 = __toESM(require_lib(), 1);
|
|
|
43730
43730
|
// package.json
|
|
43731
43731
|
var package_default = {
|
|
43732
43732
|
name: "claudeskill-cli",
|
|
43733
|
-
version: "1.0.
|
|
43733
|
+
version: "1.0.1",
|
|
43734
43734
|
description: "CLI tool for bootstrapping and updating ClaudeSkill projects",
|
|
43735
43735
|
type: "module",
|
|
43736
43736
|
repository: {
|
|
@@ -44155,13 +44155,13 @@ ${import_picocolors23.default.bold(import_picocolors23.default.cyan(result.kitCo
|
|
|
44155
44155
|
// src/cli/command-registry.ts
|
|
44156
44156
|
init_logger();
|
|
44157
44157
|
function registerCommands(cli) {
|
|
44158
|
-
cli.command("new", "Bootstrap a new ClaudeSkill project (with interactive version selection)").option("--dir <dir>", "Target directory (default: .)").option("--kit <kit>", "Kit to use: engineer, marketing, all, or comma-separated").option("-r, --release <version>", "Skip version selection, use specific version (e.g., latest, v1.0.0)").option("--force", "Overwrite existing files without confirmation").option("--exclude <pattern>", "Exclude files matching glob pattern (can be used multiple times)").option("--opencode", "Install OpenCode CLI package (non-interactive mode)").option("--gemini", "Install Google Gemini CLI package (non-interactive mode)").option("--install-skills", "Install skills dependencies (non-interactive mode)").option("--with-sudo", "Include system packages requiring sudo (Linux: ffmpeg, imagemagick)").option("--prefix", "Add /
|
|
44158
|
+
cli.command("new", "Bootstrap a new ClaudeSkill project (with interactive version selection)").option("--dir <dir>", "Target directory (default: .)").option("--kit <kit>", "Kit to use: engineer, marketing, all, or comma-separated").option("-r, --release <version>", "Skip version selection, use specific version (e.g., latest, v1.0.0)").option("--force", "Overwrite existing files without confirmation").option("--exclude <pattern>", "Exclude files matching glob pattern (can be used multiple times)").option("--opencode", "Install OpenCode CLI package (non-interactive mode)").option("--gemini", "Install Google Gemini CLI package (non-interactive mode)").option("--install-skills", "Install skills dependencies (non-interactive mode)").option("--with-sudo", "Include system packages requiring sudo (Linux: ffmpeg, imagemagick)").option("--prefix", "Add /cs: prefix to all slash commands by moving them to commands/ck/ subdirectory").option("--beta", "Show beta versions in selection prompt").option("--refresh", "Bypass release cache to fetch latest versions from GitHub").option("--docs-dir <name>", "Custom docs folder name (default: docs)").option("--plans-dir <name>", "Custom plans folder name (default: plans)").option("-y, --yes", "Non-interactive mode with sensible defaults (skip all prompts)").option("--use-git", "Use git clone instead of GitHub API (uses SSH/HTTPS credentials)").option("--archive <path>", "Use local archive file instead of downloading (zip/tar.gz)").option("--kit-path <path>", "Use local kit directory instead of downloading").action(async (options) => {
|
|
44159
44159
|
if (options.exclude && !Array.isArray(options.exclude)) {
|
|
44160
44160
|
options.exclude = [options.exclude];
|
|
44161
44161
|
}
|
|
44162
44162
|
await newCommand(options);
|
|
44163
44163
|
});
|
|
44164
|
-
cli.command("init", "Initialize or update ClaudeSkill project (with interactive version selection)").option("--dir <dir>", "Target directory (default: .)").option("--kit <kit>", "Kit to use: engineer, marketing, all, or comma-separated").option("-r, --release <version>", "Skip version selection, use specific version (e.g., latest, v1.0.0)").option("--exclude <pattern>", "Exclude files matching glob pattern (can be used multiple times)").option("--only <pattern>", "Include only files matching glob pattern (can be used multiple times)").option("-g, --global", "Use platform-specific user configuration directory").option("--fresh", "Completely remove .claude directory before downloading (requires confirmation)").option("--install-skills", "Install skills dependencies (non-interactive mode)").option("--with-sudo", "Include system packages requiring sudo (Linux: ffmpeg, imagemagick)").option("--prefix", "Add /
|
|
44164
|
+
cli.command("init", "Initialize or update ClaudeSkill project (with interactive version selection)").option("--dir <dir>", "Target directory (default: .)").option("--kit <kit>", "Kit to use: engineer, marketing, all, or comma-separated").option("-r, --release <version>", "Skip version selection, use specific version (e.g., latest, v1.0.0)").option("--exclude <pattern>", "Exclude files matching glob pattern (can be used multiple times)").option("--only <pattern>", "Include only files matching glob pattern (can be used multiple times)").option("-g, --global", "Use platform-specific user configuration directory").option("--fresh", "Completely remove .claude directory before downloading (requires confirmation)").option("--install-skills", "Install skills dependencies (non-interactive mode)").option("--with-sudo", "Include system packages requiring sudo (Linux: ffmpeg, imagemagick)").option("--prefix", "Add /cs: prefix to all slash commands by moving them to commands/ck/ subdirectory").option("--beta", "Show beta versions in selection prompt").option("--refresh", "Bypass release cache to fetch latest versions from GitHub").option("--dry-run", "Preview changes without applying them (requires --prefix)").option("--force-overwrite", "Override ownership protections and delete user-modified files (requires --prefix)").option("--force-overwrite-settings", "Fully replace settings.json instead of selective merge (destroys user customizations)").option("--skip-setup", "Skip interactive configuration wizard").option("--docs-dir <name>", "Custom docs folder name (default: docs)").option("--plans-dir <name>", "Custom plans folder name (default: plans)").option("-y, --yes", "Non-interactive mode with sensible defaults (skip all prompts)").option("--sync", "Sync config files from upstream with interactive hunk-by-hunk merge").option("--use-git", "Use git clone instead of GitHub API (uses SSH/HTTPS credentials)").option("--archive <path>", "Use local archive file instead of downloading (zip/tar.gz)").option("--kit-path <path>", "Use local kit directory instead of downloading").action(async (options) => {
|
|
44165
44165
|
if (options.exclude && !Array.isArray(options.exclude)) {
|
|
44166
44166
|
options.exclude = [options.exclude];
|
|
44167
44167
|
}
|