ccjk 1.3.7 → 1.5.0
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/chunks/simple-config.mjs +107 -44
- package/dist/cli.mjs +2 -2
- package/dist/i18n/locales/en/workflow.json +28 -9
- package/dist/i18n/locales/zh-CN/workflow.json +28 -9
- package/package.json +36 -36
- package/templates/claude-code/en/workflow/essential/commands/feat.md +196 -51
- package/templates/claude-code/zh-CN/workflow/essential/commands/feat.md +194 -51
- package/templates/common/output-styles/en/pair-programmer.md +115 -76
- package/templates/common/output-styles/en/speed-coder.md +121 -45
- package/templates/common/output-styles/zh-CN/pair-programmer.md +116 -77
- package/templates/common/output-styles/zh-CN/senior-architect.md +251 -75
- package/templates/common/output-styles/zh-CN/speed-coder.md +121 -45
- package/templates/common/workflow/sixStep/en/workflow.md +137 -31
- package/templates/common/workflow/sixStep/zh-CN/workflow.md +152 -10
- package/templates/common/output-styles/en/engineer-professional.md +0 -88
- package/templates/common/output-styles/en/laowang-engineer.md +0 -127
- package/templates/common/output-styles/en/nekomata-engineer.md +0 -120
- package/templates/common/output-styles/en/ojousama-engineer.md +0 -121
- package/templates/common/output-styles/zh-CN/engineer-professional.md +0 -89
- package/templates/common/output-styles/zh-CN/laowang-engineer.md +0 -127
- package/templates/common/output-styles/zh-CN/nekomata-engineer.md +0 -120
- package/templates/common/output-styles/zh-CN/ojousama-engineer.md +0 -121
|
@@ -20,7 +20,7 @@ import trash from 'trash';
|
|
|
20
20
|
import i18next from 'i18next';
|
|
21
21
|
import Backend from 'i18next-fs-backend';
|
|
22
22
|
|
|
23
|
-
const version = "1.
|
|
23
|
+
const version = "1.5.0";
|
|
24
24
|
const homepage = "https://github.com/miounet11/ccjk";
|
|
25
25
|
|
|
26
26
|
const i18n = i18next.createInstance();
|
|
@@ -292,7 +292,14 @@ const WORKFLOW_CONFIG_BASE = [
|
|
|
292
292
|
agents: [],
|
|
293
293
|
autoInstallAgents: false,
|
|
294
294
|
category: "interview",
|
|
295
|
-
|
|
295
|
+
displayCategory: "planning",
|
|
296
|
+
outputDir: "interview",
|
|
297
|
+
metadata: {
|
|
298
|
+
version: "1.0.0",
|
|
299
|
+
addedDate: "2025-01",
|
|
300
|
+
tags: ["recommended", "popular"],
|
|
301
|
+
difficulty: "beginner"
|
|
302
|
+
}
|
|
296
303
|
},
|
|
297
304
|
{
|
|
298
305
|
id: "essentialTools",
|
|
@@ -307,7 +314,14 @@ const WORKFLOW_CONFIG_BASE = [
|
|
|
307
314
|
],
|
|
308
315
|
autoInstallAgents: true,
|
|
309
316
|
category: "essential",
|
|
310
|
-
|
|
317
|
+
displayCategory: "planning",
|
|
318
|
+
outputDir: "essential",
|
|
319
|
+
metadata: {
|
|
320
|
+
version: "1.0.0",
|
|
321
|
+
addedDate: "2025-01",
|
|
322
|
+
tags: ["essential"],
|
|
323
|
+
difficulty: "beginner"
|
|
324
|
+
}
|
|
311
325
|
},
|
|
312
326
|
{
|
|
313
327
|
id: "gitWorkflow",
|
|
@@ -317,7 +331,14 @@ const WORKFLOW_CONFIG_BASE = [
|
|
|
317
331
|
agents: [],
|
|
318
332
|
autoInstallAgents: false,
|
|
319
333
|
category: "git",
|
|
320
|
-
|
|
334
|
+
displayCategory: "versionControl",
|
|
335
|
+
outputDir: "git",
|
|
336
|
+
metadata: {
|
|
337
|
+
version: "1.0.0",
|
|
338
|
+
addedDate: "2025-01",
|
|
339
|
+
tags: ["popular"],
|
|
340
|
+
difficulty: "beginner"
|
|
341
|
+
}
|
|
321
342
|
},
|
|
322
343
|
{
|
|
323
344
|
id: "sixStepsWorkflow",
|
|
@@ -327,7 +348,14 @@ const WORKFLOW_CONFIG_BASE = [
|
|
|
327
348
|
agents: [],
|
|
328
349
|
autoInstallAgents: false,
|
|
329
350
|
category: "sixStep",
|
|
330
|
-
|
|
351
|
+
displayCategory: "development",
|
|
352
|
+
outputDir: "workflow",
|
|
353
|
+
metadata: {
|
|
354
|
+
version: "1.0.0",
|
|
355
|
+
addedDate: "2025-01",
|
|
356
|
+
tags: ["professional"],
|
|
357
|
+
difficulty: "intermediate"
|
|
358
|
+
}
|
|
331
359
|
}
|
|
332
360
|
];
|
|
333
361
|
function getWorkflowConfigs() {
|
|
@@ -336,22 +364,26 @@ function getWorkflowConfigs() {
|
|
|
336
364
|
{
|
|
337
365
|
id: "interviewWorkflow",
|
|
338
366
|
name: i18n.t("workflow:workflowOption.interviewWorkflow"),
|
|
339
|
-
description: i18n.t("workflow:workflowDescription.interviewWorkflow")
|
|
367
|
+
description: i18n.t("workflow:workflowDescription.interviewWorkflow"),
|
|
368
|
+
stats: i18n.t("workflow:workflowStats.interviewWorkflow")
|
|
340
369
|
},
|
|
341
370
|
{
|
|
342
371
|
id: "essentialTools",
|
|
343
372
|
name: i18n.t("workflow:workflowOption.essentialTools"),
|
|
344
|
-
description: i18n.t("workflow:workflowDescription.essentialTools")
|
|
373
|
+
description: i18n.t("workflow:workflowDescription.essentialTools"),
|
|
374
|
+
stats: i18n.t("workflow:workflowStats.essentialTools")
|
|
345
375
|
},
|
|
346
376
|
{
|
|
347
377
|
id: "gitWorkflow",
|
|
348
378
|
name: i18n.t("workflow:workflowOption.gitWorkflow"),
|
|
349
|
-
description: i18n.t("workflow:workflowDescription.gitWorkflow")
|
|
379
|
+
description: i18n.t("workflow:workflowDescription.gitWorkflow"),
|
|
380
|
+
stats: i18n.t("workflow:workflowStats.gitWorkflow")
|
|
350
381
|
},
|
|
351
382
|
{
|
|
352
383
|
id: "sixStepsWorkflow",
|
|
353
384
|
name: i18n.t("workflow:workflowOption.sixStepsWorkflow"),
|
|
354
|
-
description: i18n.t("workflow:workflowDescription.sixStepsWorkflow")
|
|
385
|
+
description: i18n.t("workflow:workflowDescription.sixStepsWorkflow"),
|
|
386
|
+
stats: i18n.t("workflow:workflowStats.sixStepsWorkflow")
|
|
355
387
|
}
|
|
356
388
|
];
|
|
357
389
|
return WORKFLOW_CONFIG_BASE.map((baseConfig) => {
|
|
@@ -359,7 +391,8 @@ function getWorkflowConfigs() {
|
|
|
359
391
|
return {
|
|
360
392
|
...baseConfig,
|
|
361
393
|
name: translation?.name || baseConfig.id,
|
|
362
|
-
description: translation?.description
|
|
394
|
+
description: translation?.description,
|
|
395
|
+
stats: translation?.stats
|
|
363
396
|
};
|
|
364
397
|
});
|
|
365
398
|
}
|
|
@@ -369,6 +402,17 @@ function getWorkflowConfig(workflowId) {
|
|
|
369
402
|
function getOrderedWorkflows() {
|
|
370
403
|
return getWorkflowConfigs().sort((a, b) => a.order - b.order);
|
|
371
404
|
}
|
|
405
|
+
function getTagLabel(tag) {
|
|
406
|
+
ensureI18nInitialized();
|
|
407
|
+
const tagKeys = {
|
|
408
|
+
recommended: "workflow:tags.recommended",
|
|
409
|
+
popular: "workflow:tags.popular",
|
|
410
|
+
new: "workflow:tags.new",
|
|
411
|
+
essential: "workflow:tags.essential",
|
|
412
|
+
professional: "workflow:tags.professional"
|
|
413
|
+
};
|
|
414
|
+
return i18n.t(tagKeys[tag]);
|
|
415
|
+
}
|
|
372
416
|
|
|
373
417
|
const CLAUDE_DIR$1 = join(homedir(), ".claude");
|
|
374
418
|
const SETTINGS_FILE$1 = join(CLAUDE_DIR$1, "settings.json");
|
|
@@ -1279,15 +1323,15 @@ function createDefaultTomlConfig(preferredLang = "en", claudeCodeInstallType = "
|
|
|
1279
1323
|
},
|
|
1280
1324
|
claudeCode: {
|
|
1281
1325
|
enabled: true,
|
|
1282
|
-
outputStyles: ["
|
|
1283
|
-
defaultOutputStyle: "
|
|
1326
|
+
outputStyles: ["speed-coder", "senior-architect", "pair-programmer"],
|
|
1327
|
+
defaultOutputStyle: "senior-architect",
|
|
1284
1328
|
installType: claudeCodeInstallType,
|
|
1285
1329
|
currentProfile: "",
|
|
1286
1330
|
profiles: {}
|
|
1287
1331
|
},
|
|
1288
1332
|
codex: {
|
|
1289
1333
|
enabled: false,
|
|
1290
|
-
systemPromptStyle: "
|
|
1334
|
+
systemPromptStyle: "senior-architect"
|
|
1291
1335
|
}
|
|
1292
1336
|
};
|
|
1293
1337
|
}
|
|
@@ -3439,7 +3483,7 @@ async function resolveSystemPromptStyle(availablePrompts, commandLineOption, sav
|
|
|
3439
3483
|
}
|
|
3440
3484
|
}
|
|
3441
3485
|
if (skipPrompt) {
|
|
3442
|
-
return "
|
|
3486
|
+
return "senior-architect";
|
|
3443
3487
|
}
|
|
3444
3488
|
const { systemPrompt } = await inquirer.prompt([{
|
|
3445
3489
|
type: "list",
|
|
@@ -3449,8 +3493,8 @@ async function resolveSystemPromptStyle(availablePrompts, commandLineOption, sav
|
|
|
3449
3493
|
name: `${style.name} - ${ansis.gray(style.description)}`,
|
|
3450
3494
|
value: style.id
|
|
3451
3495
|
}))),
|
|
3452
|
-
default: "
|
|
3453
|
-
// Default to
|
|
3496
|
+
default: "senior-architect"
|
|
3497
|
+
// Default to senior-architect
|
|
3454
3498
|
}]);
|
|
3455
3499
|
if (!systemPrompt) {
|
|
3456
3500
|
console.log(ansis.yellow(i18n.t("common:cancelled")));
|
|
@@ -4447,24 +4491,19 @@ async function runCodexSystemPromptSelection(skipPrompt = false) {
|
|
|
4447
4491
|
return;
|
|
4448
4492
|
const availablePrompts = [
|
|
4449
4493
|
{
|
|
4450
|
-
id: "
|
|
4451
|
-
name: i18n.t("configuration:outputStyles.
|
|
4452
|
-
description: i18n.t("configuration:outputStyles.
|
|
4453
|
-
},
|
|
4454
|
-
{
|
|
4455
|
-
id: "laowang-engineer",
|
|
4456
|
-
name: i18n.t("configuration:outputStyles.laowang-engineer.name"),
|
|
4457
|
-
description: i18n.t("configuration:outputStyles.laowang-engineer.description")
|
|
4494
|
+
id: "speed-coder",
|
|
4495
|
+
name: i18n.t("configuration:outputStyles.speed-coder.name"),
|
|
4496
|
+
description: i18n.t("configuration:outputStyles.speed-coder.description")
|
|
4458
4497
|
},
|
|
4459
4498
|
{
|
|
4460
|
-
id: "
|
|
4461
|
-
name: i18n.t("configuration:outputStyles.
|
|
4462
|
-
description: i18n.t("configuration:outputStyles.
|
|
4499
|
+
id: "senior-architect",
|
|
4500
|
+
name: i18n.t("configuration:outputStyles.senior-architect.name"),
|
|
4501
|
+
description: i18n.t("configuration:outputStyles.senior-architect.description")
|
|
4463
4502
|
},
|
|
4464
4503
|
{
|
|
4465
|
-
id: "
|
|
4466
|
-
name: i18n.t("configuration:outputStyles.
|
|
4467
|
-
description: i18n.t("configuration:outputStyles.
|
|
4504
|
+
id: "pair-programmer",
|
|
4505
|
+
name: i18n.t("configuration:outputStyles.pair-programmer.name"),
|
|
4506
|
+
description: i18n.t("configuration:outputStyles.pair-programmer.description")
|
|
4468
4507
|
}
|
|
4469
4508
|
].filter((style) => exists(join(systemPromptSrc, `${style.id}.md`)));
|
|
4470
4509
|
if (availablePrompts.length === 0)
|
|
@@ -6575,25 +6614,49 @@ function getRootDir() {
|
|
|
6575
6614
|
}
|
|
6576
6615
|
const DEFAULT_CODE_TOOL_TEMPLATE = "claude-code";
|
|
6577
6616
|
const COMMON_TEMPLATE_CATEGORIES = ["git", "sixStep"];
|
|
6617
|
+
function formatTags(tags) {
|
|
6618
|
+
const tagColors = {
|
|
6619
|
+
recommended: (text) => ansis.bgGreen.black(` ${text} `),
|
|
6620
|
+
popular: (text) => ansis.bgYellow.black(` ${text} `),
|
|
6621
|
+
new: (text) => ansis.bgCyan.black(` ${text} `),
|
|
6622
|
+
essential: (text) => ansis.bgBlue.white(` ${text} `),
|
|
6623
|
+
professional: (text) => ansis.bgMagenta.white(` ${text} `)
|
|
6624
|
+
};
|
|
6625
|
+
return tags.map((tag) => tagColors[tag](getTagLabel(tag))).join(" ");
|
|
6626
|
+
}
|
|
6627
|
+
function buildWorkflowChoice(workflow) {
|
|
6628
|
+
const tags = formatTags(workflow.metadata.tags);
|
|
6629
|
+
const stats = workflow.stats ? ansis.dim(workflow.stats) : "";
|
|
6630
|
+
const description = workflow.description ? ansis.gray(workflow.description) : "";
|
|
6631
|
+
const nameLine = `${workflow.name} ${tags}`;
|
|
6632
|
+
const detailLine = stats ? ` ${stats}` : "";
|
|
6633
|
+
const descLine = description ? ` ${description}` : "";
|
|
6634
|
+
const displayName = [nameLine, detailLine, descLine].filter(Boolean).join("\n");
|
|
6635
|
+
return {
|
|
6636
|
+
name: displayName,
|
|
6637
|
+
value: workflow.id,
|
|
6638
|
+
checked: workflow.defaultSelected
|
|
6639
|
+
};
|
|
6640
|
+
}
|
|
6578
6641
|
async function selectAndInstallWorkflows(configLang, preselectedWorkflows) {
|
|
6579
6642
|
ensureI18nInitialized();
|
|
6580
6643
|
const workflows = getOrderedWorkflows();
|
|
6581
|
-
const choices = workflows.map((workflow) =>
|
|
6582
|
-
return {
|
|
6583
|
-
name: workflow.name,
|
|
6584
|
-
value: workflow.id,
|
|
6585
|
-
checked: workflow.defaultSelected
|
|
6586
|
-
};
|
|
6587
|
-
});
|
|
6644
|
+
const choices = workflows.map((workflow) => buildWorkflowChoice(workflow));
|
|
6588
6645
|
let selectedWorkflows;
|
|
6589
6646
|
if (preselectedWorkflows) {
|
|
6590
6647
|
selectedWorkflows = preselectedWorkflows;
|
|
6591
6648
|
} else {
|
|
6649
|
+
console.log("");
|
|
6650
|
+
console.log(ansis.bold.cyan("\u2501".repeat(60)));
|
|
6651
|
+
console.log(ansis.bold.white(` \u{1F680} ${i18n.t("workflow:selectWorkflowType")}`));
|
|
6652
|
+
console.log(ansis.bold.cyan("\u2501".repeat(60)));
|
|
6653
|
+
console.log("");
|
|
6592
6654
|
const response = await inquirer.prompt({
|
|
6593
6655
|
type: "checkbox",
|
|
6594
6656
|
name: "selectedWorkflows",
|
|
6595
|
-
message:
|
|
6596
|
-
choices
|
|
6657
|
+
message: i18n.t("common:multiSelectHint"),
|
|
6658
|
+
choices,
|
|
6659
|
+
pageSize: 15
|
|
6597
6660
|
});
|
|
6598
6661
|
selectedWorkflows = response.selectedWorkflows;
|
|
6599
6662
|
}
|
|
@@ -6774,16 +6837,16 @@ async function validateSkipPromptOptions(options) {
|
|
|
6774
6837
|
if (options.outputStyles === "skip") {
|
|
6775
6838
|
options.outputStyles = false;
|
|
6776
6839
|
} else if (options.outputStyles === "all") {
|
|
6777
|
-
options.outputStyles = ["
|
|
6840
|
+
options.outputStyles = ["speed-coder", "senior-architect", "pair-programmer"];
|
|
6778
6841
|
} else {
|
|
6779
6842
|
options.outputStyles = options.outputStyles.split(",").map((s) => s.trim());
|
|
6780
6843
|
}
|
|
6781
6844
|
}
|
|
6782
6845
|
if (options.outputStyles === void 0) {
|
|
6783
|
-
options.outputStyles = ["
|
|
6846
|
+
options.outputStyles = ["speed-coder", "senior-architect", "pair-programmer"];
|
|
6784
6847
|
}
|
|
6785
6848
|
if (!options.defaultOutputStyle) {
|
|
6786
|
-
options.defaultOutputStyle = "
|
|
6849
|
+
options.defaultOutputStyle = "senior-architect";
|
|
6787
6850
|
}
|
|
6788
6851
|
if (typeof options.installCometixLine === "string") {
|
|
6789
6852
|
options.installCometixLine = options.installCometixLine.toLowerCase() === "true";
|
|
@@ -6841,7 +6904,7 @@ async function validateSkipPromptOptions(options) {
|
|
|
6841
6904
|
}
|
|
6842
6905
|
}
|
|
6843
6906
|
if (Array.isArray(options.outputStyles)) {
|
|
6844
|
-
const validStyles = ["
|
|
6907
|
+
const validStyles = ["speed-coder", "senior-architect", "pair-programmer", "default", "explanatory", "learning"];
|
|
6845
6908
|
for (const style of options.outputStyles) {
|
|
6846
6909
|
if (!validStyles.includes(style)) {
|
|
6847
6910
|
throw new Error(i18n.t("errors:invalidOutputStyle", { style, validStyles: validStyles.join(", ") }));
|
|
@@ -6849,7 +6912,7 @@ async function validateSkipPromptOptions(options) {
|
|
|
6849
6912
|
}
|
|
6850
6913
|
}
|
|
6851
6914
|
if (options.defaultOutputStyle) {
|
|
6852
|
-
const validStyles = ["
|
|
6915
|
+
const validStyles = ["speed-coder", "senior-architect", "pair-programmer", "default", "explanatory", "learning"];
|
|
6853
6916
|
if (!validStyles.includes(options.defaultOutputStyle)) {
|
|
6854
6917
|
throw new Error(i18n.t("errors:invalidDefaultOutputStyle", { style: options.defaultOutputStyle, validStyles: validStyles.join(", ") }));
|
|
6855
6918
|
}
|
package/dist/cli.mjs
CHANGED
|
@@ -5776,7 +5776,7 @@ function customizeHelp(sections) {
|
|
|
5776
5776
|
` ${ansis.green("--mcp-services, -m")} <list> ${i18n.t("cli:help.optionDescriptions.mcpServices")} (${i18n.t("cli:help.defaults.prefix")} all non-key services)`,
|
|
5777
5777
|
` ${ansis.green("--workflows, -w")} <list> ${i18n.t("cli:help.optionDescriptions.workflows")} (${i18n.t("cli:help.defaults.prefix")} all workflows)`,
|
|
5778
5778
|
` ${ansis.green("--output-styles, -o")} <styles> ${i18n.t("cli:help.optionDescriptions.outputStyles")} (${i18n.t("cli:help.defaults.prefix")} all custom styles)`,
|
|
5779
|
-
` ${ansis.green("--default-output-style, -d")} <style> ${i18n.t("cli:help.optionDescriptions.defaultOutputStyle")} (${i18n.t("cli:help.defaults.prefix")}
|
|
5779
|
+
` ${ansis.green("--default-output-style, -d")} <style> ${i18n.t("cli:help.optionDescriptions.defaultOutputStyle")} (${i18n.t("cli:help.defaults.prefix")} senior-architect)`,
|
|
5780
5780
|
` ${ansis.green("--code-type, -T")} <type> ${i18n.t("cli:help.optionDescriptions.codeToolType")} (claude-code, codex, cc=claude-code, cx=codex)`,
|
|
5781
5781
|
` ${ansis.green("--install-cometix-line, -x")} <value> ${i18n.t("cli:help.optionDescriptions.installStatuslineTool")} (${i18n.t("cli:help.defaults.prefix")} true)`
|
|
5782
5782
|
].join("\n")
|
|
@@ -5845,7 +5845,7 @@ async function setupCommands(cli) {
|
|
|
5845
5845
|
cli.command("", "Show interactive menu (default)").option("--lang, -l <lang>", "CCJK display language (zh-CN, en)").option("--all-lang, -g <lang>", "Set all language parameters to this value").option("--config-lang, -c <lang>", "Configuration language (zh-CN, en)").option("--force, -f", "Force overwrite existing configuration").option("--code-type, -T <codeType>", "Select code tool type (claude-code, codex, cc, cx)").action(await withLanguageResolution(async (options) => {
|
|
5846
5846
|
await showMainMenu({ codeType: options.codeType });
|
|
5847
5847
|
}));
|
|
5848
|
-
cli.command("init", "Initialize Claude Code configuration").alias("i").option("--lang, -l <lang>", "CCJK display language (zh-CN, en)").option("--config-lang, -c <lang>", "Configuration language (zh-CN, en)").option("--ai-output-lang, -a <lang>", "AI output language").option("--force, -f", "Force overwrite existing configuration").option("--skip-prompt, -s", "Skip all interactive prompts (non-interactive mode)").option("--config-action, -r <action>", `Config handling (new/backup/merge/docs-only/skip), ${i18n.t("cli:help.defaults.prefix")} backup`).option("--api-type, -t <type>", "API type (auth_token/api_key/ccr_proxy/skip)").option("--api-key, -k <key>", "API key (used for both API key and auth token types)").option("--api-url, -u <url>", "Custom API URL").option("--api-model, -M <model>", "Primary API model (e.g., claude-sonnet-4-5)").option("--api-haiku-model, -H <model>", "Default Haiku model (e.g., claude-haiku-4-5)").option("--api-sonnet-model, -S <model>", "Default Sonnet model (e.g., claude-sonnet-4-5)").option("--api-opus-model, -O <model>", "Default Opus model (e.g., claude-opus-4-5)").option("--provider, -p <provider>", "API provider preset (302ai, glm, minimax, kimi, custom)").option("--mcp-services, -m <services>", `Comma-separated MCP services to install (context7,mcp-deepwiki,Playwright,exa), "skip" to skip all, "all" for all non-key services, ${i18n.t("cli:help.defaults.prefix")} all`).option("--workflows, -w <workflows>", `Comma-separated workflows to install (sixStepsWorkflow,featPlanUx,gitWorkflow,bmadWorkflow), "skip" to skip all, "all" for all workflows, ${i18n.t("cli:help.defaults.prefix")} all`).option("--output-styles, -o <styles>", `Comma-separated output styles (
|
|
5848
|
+
cli.command("init", "Initialize Claude Code configuration").alias("i").option("--lang, -l <lang>", "CCJK display language (zh-CN, en)").option("--config-lang, -c <lang>", "Configuration language (zh-CN, en)").option("--ai-output-lang, -a <lang>", "AI output language").option("--force, -f", "Force overwrite existing configuration").option("--skip-prompt, -s", "Skip all interactive prompts (non-interactive mode)").option("--config-action, -r <action>", `Config handling (new/backup/merge/docs-only/skip), ${i18n.t("cli:help.defaults.prefix")} backup`).option("--api-type, -t <type>", "API type (auth_token/api_key/ccr_proxy/skip)").option("--api-key, -k <key>", "API key (used for both API key and auth token types)").option("--api-url, -u <url>", "Custom API URL").option("--api-model, -M <model>", "Primary API model (e.g., claude-sonnet-4-5)").option("--api-haiku-model, -H <model>", "Default Haiku model (e.g., claude-haiku-4-5)").option("--api-sonnet-model, -S <model>", "Default Sonnet model (e.g., claude-sonnet-4-5)").option("--api-opus-model, -O <model>", "Default Opus model (e.g., claude-opus-4-5)").option("--provider, -p <provider>", "API provider preset (302ai, glm, minimax, kimi, custom)").option("--mcp-services, -m <services>", `Comma-separated MCP services to install (context7,mcp-deepwiki,Playwright,exa), "skip" to skip all, "all" for all non-key services, ${i18n.t("cli:help.defaults.prefix")} all`).option("--workflows, -w <workflows>", `Comma-separated workflows to install (sixStepsWorkflow,featPlanUx,gitWorkflow,bmadWorkflow), "skip" to skip all, "all" for all workflows, ${i18n.t("cli:help.defaults.prefix")} all`).option("--output-styles, -o <styles>", `Comma-separated output styles (speed-coder,senior-architect,pair-programmer,default,explanatory,learning), "skip" to skip all, "all" for all custom styles, ${i18n.t("cli:help.defaults.prefix")} all`).option("--default-output-style, -d <style>", `Default output style, ${i18n.t("cli:help.defaults.prefix")} senior-architect`).option("--all-lang, -g <lang>", "Set all language parameters to this value").option("--code-type, -T <codeType>", "Select code tool type (claude-code, codex, cc, cx)").option("--install-cometix-line, -x <value>", `Install CCometixLine statusline tool (true/false), ${i18n.t("cli:help.defaults.prefix")} true`).option("--api-configs <configs>", "API configurations as JSON string for multiple profiles").option("--api-configs-file <file>", "Path to JSON file containing API configurations").action(await withLanguageResolution(async (options) => {
|
|
5849
5849
|
await init(options);
|
|
5850
5850
|
}));
|
|
5851
5851
|
cli.command("update", "Update Claude Code prompts only").alias("u").option("--lang, -l <lang>", "CCJK display language (zh-CN, en)").option("--all-lang, -g <lang>", "Set all language parameters to this value").option("--config-lang, -c <lang>", "Configuration language (zh-CN, en)").action(await withLanguageResolution(async (options) => {
|
|
@@ -6,15 +6,34 @@
|
|
|
6
6
|
"installedCommand": "Installed command",
|
|
7
7
|
"installingWorkflow": "Installing workflow",
|
|
8
8
|
"removedOldFile": "Removed old file",
|
|
9
|
-
"selectWorkflowType": "Select
|
|
10
|
-
"workflowDescription.essentialTools": "Complete toolchain for project initialization, architecture analysis, feature planning and UX design with multiple intelligent agents",
|
|
11
|
-
"workflowDescription.gitWorkflow": "Git version control commands collection supporting conventional commits, rollback, branch cleanup and worktree management",
|
|
12
|
-
"workflowDescription.interviewWorkflow": "Surface hidden assumptions before coding with 40+ deep questions, generate complete specifications to ensure project direction",
|
|
13
|
-
"workflowDescription.sixStepsWorkflow": "Professional development assistant structured six-step workflow, suitable for projects requiring strict process control",
|
|
9
|
+
"selectWorkflowType": "Select workflows to install",
|
|
14
10
|
"workflowInstallError": "workflow installation had errors",
|
|
15
11
|
"workflowInstallSuccess": "workflow installed successfully",
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
12
|
+
|
|
13
|
+
"category.planning": "📋 Planning & Design",
|
|
14
|
+
"category.development": "⚡ Development",
|
|
15
|
+
"category.versionControl": "🔧 Version Control",
|
|
16
|
+
"category.quality": "✅ Quality Assurance",
|
|
17
|
+
|
|
18
|
+
"tags.recommended": "Recommended",
|
|
19
|
+
"tags.popular": "Popular",
|
|
20
|
+
"tags.new": "New",
|
|
21
|
+
"tags.essential": "Essential",
|
|
22
|
+
"tags.professional": "Pro",
|
|
23
|
+
|
|
24
|
+
"workflowOption.interviewWorkflow": "🌟 Interview-Driven Dev",
|
|
25
|
+
"workflowStats.interviewWorkflow": "12.5K+ users | Requirements accuracy ↑85%",
|
|
26
|
+
"workflowDescription.interviewWorkflow": "40+ deep questions to surface hidden assumptions, generate complete specs",
|
|
27
|
+
|
|
28
|
+
"workflowOption.essentialTools": "🎯 Feature Planning Suite",
|
|
29
|
+
"workflowStats.essentialTools": "8.2K+ users | Dev efficiency ↑40%",
|
|
30
|
+
"workflowDescription.essentialTools": "Project init + Smart planning + UI/UX design all-in-one toolchain",
|
|
31
|
+
|
|
32
|
+
"workflowOption.gitWorkflow": "📦 Git Smart Workflow",
|
|
33
|
+
"workflowStats.gitWorkflow": "15.3K+ users | Commit compliance 100%",
|
|
34
|
+
"workflowDescription.gitWorkflow": "Smart commit + Safe rollback + Branch cleanup + Worktree management",
|
|
35
|
+
|
|
36
|
+
"workflowOption.sixStepsWorkflow": "📝 Six-Step Structured Dev",
|
|
37
|
+
"workflowStats.sixStepsWorkflow": "5.8K+ users | Code quality ↑35%",
|
|
38
|
+
"workflowDescription.sixStepsWorkflow": "Research→Ideate→Plan→Execute→Optimize→Review complete dev cycle"
|
|
20
39
|
}
|
|
@@ -6,15 +6,34 @@
|
|
|
6
6
|
"installedCommand": "已安装命令",
|
|
7
7
|
"installingWorkflow": "正在安装工作流",
|
|
8
8
|
"removedOldFile": "已删除旧文件",
|
|
9
|
-
"selectWorkflowType": "
|
|
10
|
-
"workflowDescription.essentialTools": "提供项目初始化、架构分析、功能规划和UX设计的完整工具链,包含多个智能代理",
|
|
11
|
-
"workflowDescription.gitWorkflow": "Git 版本控制命令集合,支持规范化提交、回滚、分支清理和工作树管理",
|
|
12
|
-
"workflowDescription.interviewWorkflow": "通过40+深度问题在编码前发现隐藏假设,生成完整规格说明书,确保项目方向正确",
|
|
13
|
-
"workflowDescription.sixStepsWorkflow": "专业开发助手的结构化六步工作流程,适合需要严格流程控制的项目",
|
|
9
|
+
"selectWorkflowType": "选择要安装的工作流",
|
|
14
10
|
"workflowInstallError": "工作流安装出错",
|
|
15
11
|
"workflowInstallSuccess": "工作流安装成功",
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
12
|
+
|
|
13
|
+
"category.planning": "📋 规划与设计",
|
|
14
|
+
"category.development": "⚡ 开发与编码",
|
|
15
|
+
"category.versionControl": "🔧 版本控制",
|
|
16
|
+
"category.quality": "✅ 质量保证",
|
|
17
|
+
|
|
18
|
+
"tags.recommended": "推荐",
|
|
19
|
+
"tags.popular": "热门",
|
|
20
|
+
"tags.new": "新",
|
|
21
|
+
"tags.essential": "必备",
|
|
22
|
+
"tags.professional": "专业",
|
|
23
|
+
|
|
24
|
+
"workflowOption.interviewWorkflow": "🌟 访谈驱动开发",
|
|
25
|
+
"workflowStats.interviewWorkflow": "12.5K+ 用户 | 需求准确率 ↑85%",
|
|
26
|
+
"workflowDescription.interviewWorkflow": "40+ 深度问题发现隐藏假设,生成完整规格说明书",
|
|
27
|
+
|
|
28
|
+
"workflowOption.essentialTools": "🎯 功能规划套件",
|
|
29
|
+
"workflowStats.essentialTools": "8.2K+ 用户 | 开发效率 ↑40%",
|
|
30
|
+
"workflowDescription.essentialTools": "项目初始化 + 智能规划 + UI/UX 设计一站式工具链",
|
|
31
|
+
|
|
32
|
+
"workflowOption.gitWorkflow": "📦 Git 智能工作流",
|
|
33
|
+
"workflowStats.gitWorkflow": "15.3K+ 用户 | 提交规范率 100%",
|
|
34
|
+
"workflowDescription.gitWorkflow": "智能提交 + 安全回滚 + 分支清理 + 工作树管理",
|
|
35
|
+
|
|
36
|
+
"workflowOption.sixStepsWorkflow": "📝 六步结构化开发",
|
|
37
|
+
"workflowStats.sixStepsWorkflow": "5.8K+ 用户 | 代码质量 ↑35%",
|
|
38
|
+
"workflowDescription.sixStepsWorkflow": "研究→构思→计划→执行→优化→评审 完整开发闭环"
|
|
20
39
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ccjk",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.5.0",
|
|
5
5
|
"packageManager": "pnpm@10.17.1",
|
|
6
6
|
"description": "Claude Code JinKu - Advanced AI-powered development assistant with skills, agents, and LLM-driven audit",
|
|
7
7
|
"author": {
|
|
@@ -120,43 +120,43 @@
|
|
|
120
120
|
"docs:preview": "pnpm -F @ccjk/docs preview"
|
|
121
121
|
},
|
|
122
122
|
"dependencies": {
|
|
123
|
-
"@types/semver": "
|
|
124
|
-
"ansis": "
|
|
125
|
-
"cac": "
|
|
126
|
-
"dayjs": "
|
|
127
|
-
"find-up-simple": "
|
|
128
|
-
"fs-extra": "
|
|
129
|
-
"i18next": "
|
|
130
|
-
"i18next-fs-backend": "
|
|
131
|
-
"inquirer": "
|
|
132
|
-
"inquirer-toggle": "
|
|
133
|
-
"ora": "
|
|
134
|
-
"pathe": "
|
|
135
|
-
"semver": "
|
|
136
|
-
"smol-toml": "
|
|
137
|
-
"tinyexec": "
|
|
138
|
-
"trash": "
|
|
123
|
+
"@types/semver": "^7.7.1",
|
|
124
|
+
"ansis": "^4.1.0",
|
|
125
|
+
"cac": "^6.7.14",
|
|
126
|
+
"dayjs": "^1.11.18",
|
|
127
|
+
"find-up-simple": "^1.0.1",
|
|
128
|
+
"fs-extra": "^11.3.2",
|
|
129
|
+
"i18next": "^25.5.2",
|
|
130
|
+
"i18next-fs-backend": "^2.6.0",
|
|
131
|
+
"inquirer": "^12.9.6",
|
|
132
|
+
"inquirer-toggle": "^1.0.1",
|
|
133
|
+
"ora": "^9.0.0",
|
|
134
|
+
"pathe": "^2.0.3",
|
|
135
|
+
"semver": "^7.7.2",
|
|
136
|
+
"smol-toml": "^1.4.2",
|
|
137
|
+
"tinyexec": "^1.0.1",
|
|
138
|
+
"trash": "^10.0.0"
|
|
139
139
|
},
|
|
140
140
|
"devDependencies": {
|
|
141
|
-
"@antfu/eslint-config": "
|
|
142
|
-
"@changesets/cli": "
|
|
143
|
-
"@commitlint/cli": "
|
|
144
|
-
"@commitlint/config-conventional": "
|
|
145
|
-
"@commitlint/types": "
|
|
146
|
-
"@types/fs-extra": "
|
|
147
|
-
"@types/inquirer": "
|
|
148
|
-
"@types/node": "
|
|
149
|
-
"@vitest/coverage-v8": "
|
|
150
|
-
"@vitest/ui": "
|
|
151
|
-
"eslint": "
|
|
152
|
-
"eslint-plugin-format": "
|
|
153
|
-
"glob": "
|
|
154
|
-
"husky": "
|
|
155
|
-
"lint-staged": "
|
|
156
|
-
"tsx": "
|
|
157
|
-
"typescript": "
|
|
158
|
-
"unbuild": "
|
|
159
|
-
"vitest": "
|
|
141
|
+
"@antfu/eslint-config": "^5.4.1",
|
|
142
|
+
"@changesets/cli": "^2.29.7",
|
|
143
|
+
"@commitlint/cli": "^19.8.1",
|
|
144
|
+
"@commitlint/config-conventional": "^19.8.1",
|
|
145
|
+
"@commitlint/types": "^19.8.1",
|
|
146
|
+
"@types/fs-extra": "^11.0.4",
|
|
147
|
+
"@types/inquirer": "^9.0.9",
|
|
148
|
+
"@types/node": "^22.18.6",
|
|
149
|
+
"@vitest/coverage-v8": "^3.2.4",
|
|
150
|
+
"@vitest/ui": "^3.2.4",
|
|
151
|
+
"eslint": "^9.36.0",
|
|
152
|
+
"eslint-plugin-format": "^1.0.2",
|
|
153
|
+
"glob": "^11.0.3",
|
|
154
|
+
"husky": "^9.1.7",
|
|
155
|
+
"lint-staged": "^16.2.0",
|
|
156
|
+
"tsx": "^4.20.5",
|
|
157
|
+
"typescript": "^5.9.2",
|
|
158
|
+
"unbuild": "^3.6.1",
|
|
159
|
+
"vitest": "^3.2.4"
|
|
160
160
|
},
|
|
161
161
|
"lint-staged": {
|
|
162
162
|
"*": [
|