ccjk 1.3.2 → 1.3.4
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.ja.md +1 -1
- package/README.ko.md +1 -1
- package/README.md +9 -7
- package/README.zh-CN.md +9 -7
- package/dist/chunks/simple-config.mjs +32 -68
- package/dist/cli.mjs +4 -4
- package/dist/i18n/locales/en/workflow.json +8 -13
- package/dist/i18n/locales/zh-CN/workflow.json +8 -13
- package/package.json +45 -36
- package/templates/claude-code/en/workflow/essential/agents/get-current-datetime.md +29 -0
- package/templates/claude-code/en/workflow/essential/agents/init-architect.md +114 -0
- package/templates/claude-code/en/workflow/essential/agents/planner.md +116 -0
- package/templates/claude-code/en/workflow/essential/agents/ui-ux-designer.md +91 -0
- package/templates/claude-code/en/workflow/essential/commands/feat.md +105 -0
- package/templates/claude-code/en/workflow/essential/commands/init-project.md +53 -0
- package/templates/claude-code/zh-CN/workflow/essential/agents/get-current-datetime.md +29 -0
- package/templates/claude-code/zh-CN/workflow/essential/agents/init-architect.md +114 -0
- package/templates/claude-code/zh-CN/workflow/essential/agents/planner.md +116 -0
- package/templates/claude-code/zh-CN/workflow/essential/agents/ui-ux-designer.md +91 -0
- package/templates/claude-code/zh-CN/workflow/essential/commands/feat.md +105 -0
- package/templates/claude-code/zh-CN/workflow/essential/commands/init-project.md +53 -0
package/README.ja.md
CHANGED
|
@@ -80,7 +80,7 @@ npm install -g ccjk
|
|
|
80
80
|
║ ██████╗ ██████╗ ██╗██╗ ██╗ ║
|
|
81
81
|
║ ██╔════╝██╔════╝ ██║██║ ██╔╝ ║
|
|
82
82
|
║ ██║ ██║ ██║█████╔╝ Claude Code 錦庫 ║
|
|
83
|
-
║ ██║ ██║ ██ ██║██╔═██╗ v1.
|
|
83
|
+
║ ██║ ██║ ██ ██║██╔═██╗ v1.3.2 ║
|
|
84
84
|
║ ╚██████╗╚██████╗╚█████╔╝██║ ██╗ ║
|
|
85
85
|
║ ╚═════╝ ╚═════╝ ╚════╝ ╚═╝ ╚═╝ ║
|
|
86
86
|
╚═══════════════════════════════════════════════════════════╝
|
package/README.ko.md
CHANGED
|
@@ -80,7 +80,7 @@ npm install -g ccjk
|
|
|
80
80
|
║ ██████╗ ██████╗ ██╗██╗ ██╗ ║
|
|
81
81
|
║ ██╔════╝██╔════╝ ██║██║ ██╔╝ ║
|
|
82
82
|
║ ██║ ██║ ██║█████╔╝ Claude Code 진쿠 ║
|
|
83
|
-
║ ██║ ██║ ██ ██║██╔═██╗ v1.
|
|
83
|
+
║ ██║ ██║ ██ ██║██╔═██╗ v1.3.2 ║
|
|
84
84
|
║ ╚██████╗╚██████╗╚█████╔╝██║ ██╗ ║
|
|
85
85
|
║ ╚═════╝ ╚═════╝ ╚════╝ ╚═╝ ╚═╝ ║
|
|
86
86
|
╚═══════════════════════════════════════════════════════════╝
|
package/README.md
CHANGED
|
@@ -23,13 +23,15 @@
|
|
|
23
23
|
|
|
24
24
|
<br/>
|
|
25
25
|
|
|
26
|
-
## 🎉 v1.3.
|
|
26
|
+
## 🎉 v1.3.4 Released! (January 2025)
|
|
27
27
|
|
|
28
|
-
>
|
|
29
|
-
> -
|
|
30
|
-
> -
|
|
31
|
-
> -
|
|
32
|
-
> -
|
|
28
|
+
> **🆕 Workflow System Upgrade**
|
|
29
|
+
> - 🌟 **Interview-Driven Development (IDD)** - Now the recommended workflow!
|
|
30
|
+
> - 📋 Streamlined workflow menu with 5 clear options
|
|
31
|
+
> - 🔧 New essential workflow templates
|
|
32
|
+
> - 🌐 Updated i18n support (EN/ZH-CN)
|
|
33
|
+
>
|
|
34
|
+
> **Previous: Complete Rebranding ZCF → CCJK**
|
|
33
35
|
|
|
34
36
|
<br/>
|
|
35
37
|
|
|
@@ -116,7 +118,7 @@ When you run `ccjk`, you'll see a friendly menu:
|
|
|
116
118
|
║ ██████╗ ██████╗ ██╗██╗ ██╗ ║
|
|
117
119
|
║ ██╔════╝██╔════╝ ██║██║ ██╔╝ ║
|
|
118
120
|
║ ██║ ██║ ██║█████╔╝ Claude Code JinKu ║
|
|
119
|
-
║ ██║ ██║ ██ ██║██╔═██╗ v1.3.
|
|
121
|
+
║ ██║ ██║ ██ ██║██╔═██╗ v1.3.4 ║
|
|
120
122
|
║ ╚██████╗╚██████╗╚█████╔╝██║ ██╗ ║
|
|
121
123
|
║ ╚═════╝ ╚═════╝ ╚════╝ ╚═╝ ╚═╝ ║
|
|
122
124
|
╚═══════════════════════════════════════════════════════════╝
|
package/README.zh-CN.md
CHANGED
|
@@ -22,13 +22,15 @@
|
|
|
22
22
|
|
|
23
23
|
<br/>
|
|
24
24
|
|
|
25
|
-
## 🎉 v1.3.
|
|
25
|
+
## 🎉 v1.3.4 发布!(2025年1月)
|
|
26
26
|
|
|
27
|
-
>
|
|
28
|
-
> -
|
|
29
|
-
> -
|
|
30
|
-
> -
|
|
31
|
-
> -
|
|
27
|
+
> **🆕 工作流系统升级**
|
|
28
|
+
> - 🌟 **访谈驱动开发 (IDD)** - 现已成为推荐首选工作流!
|
|
29
|
+
> - 📋 精简工作流菜单,5个清晰选项
|
|
30
|
+
> - 🔧 新增必备工作流模板
|
|
31
|
+
> - 🌐 更新国际化支持 (中/英)
|
|
32
|
+
>
|
|
33
|
+
> **上一版本: 品牌全面升级 ZCF → CCJK**
|
|
32
34
|
|
|
33
35
|
<br/>
|
|
34
36
|
|
|
@@ -110,7 +112,7 @@ npx ccjk
|
|
|
110
112
|
║ ██████╗ ██████╗ ██╗██╗ ██╗ ║
|
|
111
113
|
║ ██╔════╝██╔════╝ ██║██║ ██╔╝ ║
|
|
112
114
|
║ ██║ ██║ ██║█████╔╝ Claude Code 锦库 ║
|
|
113
|
-
║ ██║ ██║ ██ ██║██╔═██╗ v1.
|
|
115
|
+
║ ██║ ██║ ██ ██║██╔═██╗ v1.3.4 ║
|
|
114
116
|
║ ╚██████╗╚██████╗╚█████╔╝██║ ██╗ ║
|
|
115
117
|
║ ╚═════╝ ╚═════╝ ╚════╝ ╚═╝ ╚═╝ ║
|
|
116
118
|
╚═══════════════════════════════════════════════════════════╝
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as nodeFs from 'node:fs';
|
|
2
|
-
import { existsSync,
|
|
2
|
+
import { existsSync, readFileSync, mkdirSync, writeFileSync, copyFileSync, rmSync, rmdirSync, readdirSync, statSync, unlinkSync, renameSync } from 'node:fs';
|
|
3
3
|
import process$1 from 'node:process';
|
|
4
4
|
import ansis from 'ansis';
|
|
5
5
|
import inquirer from 'inquirer';
|
|
6
6
|
import { dirname, join, basename } from 'pathe';
|
|
7
|
-
import {
|
|
7
|
+
import { parse, stringify } from 'smol-toml';
|
|
8
8
|
import dayjs from 'dayjs';
|
|
9
9
|
import { exec as exec$1 } from 'node:child_process';
|
|
10
10
|
import { homedir, platform as platform$1 } from 'node:os';
|
|
@@ -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.3.
|
|
23
|
+
const version = "1.3.4";
|
|
24
24
|
const homepage = "https://github.com/miounet11/ccjk";
|
|
25
25
|
|
|
26
26
|
const i18n = i18next.createInstance();
|
|
@@ -285,45 +285,34 @@ async function getMcpServices() {
|
|
|
285
285
|
|
|
286
286
|
const WORKFLOW_CONFIG_BASE = [
|
|
287
287
|
{
|
|
288
|
-
id: "
|
|
288
|
+
id: "interviewWorkflow",
|
|
289
289
|
defaultSelected: true,
|
|
290
290
|
order: 1,
|
|
291
|
-
commands: ["
|
|
292
|
-
agents: [
|
|
293
|
-
{ id: "init-architect", filename: "init-architect.md", required: true },
|
|
294
|
-
{ id: "get-current-datetime", filename: "get-current-datetime.md", required: true }
|
|
295
|
-
],
|
|
296
|
-
autoInstallAgents: true,
|
|
297
|
-
category: "common",
|
|
298
|
-
outputDir: "common"
|
|
299
|
-
},
|
|
300
|
-
{
|
|
301
|
-
id: "sixStepsWorkflow",
|
|
302
|
-
defaultSelected: true,
|
|
303
|
-
order: 2,
|
|
304
|
-
commands: ["workflow.md"],
|
|
291
|
+
commands: ["interview.md"],
|
|
305
292
|
agents: [],
|
|
306
293
|
autoInstallAgents: false,
|
|
307
|
-
category: "
|
|
308
|
-
outputDir: "
|
|
294
|
+
category: "interview",
|
|
295
|
+
outputDir: "interview"
|
|
309
296
|
},
|
|
310
297
|
{
|
|
311
|
-
id: "
|
|
298
|
+
id: "essentialTools",
|
|
312
299
|
defaultSelected: true,
|
|
313
|
-
order:
|
|
314
|
-
commands: ["feat.md"],
|
|
300
|
+
order: 2,
|
|
301
|
+
commands: ["init-project.md", "feat.md"],
|
|
315
302
|
agents: [
|
|
303
|
+
{ id: "init-architect", filename: "init-architect.md", required: true },
|
|
304
|
+
{ id: "get-current-datetime", filename: "get-current-datetime.md", required: true },
|
|
316
305
|
{ id: "planner", filename: "planner.md", required: true },
|
|
317
306
|
{ id: "ui-ux-designer", filename: "ui-ux-designer.md", required: true }
|
|
318
307
|
],
|
|
319
308
|
autoInstallAgents: true,
|
|
320
|
-
category: "
|
|
321
|
-
outputDir: "
|
|
309
|
+
category: "essential",
|
|
310
|
+
outputDir: "essential"
|
|
322
311
|
},
|
|
323
312
|
{
|
|
324
313
|
id: "gitWorkflow",
|
|
325
314
|
defaultSelected: true,
|
|
326
|
-
order:
|
|
315
|
+
order: 3,
|
|
327
316
|
commands: ["git-commit.md", "git-rollback.md", "git-cleanBranches.md", "git-worktree.md"],
|
|
328
317
|
agents: [],
|
|
329
318
|
autoInstallAgents: false,
|
|
@@ -331,43 +320,28 @@ const WORKFLOW_CONFIG_BASE = [
|
|
|
331
320
|
outputDir: "git"
|
|
332
321
|
},
|
|
333
322
|
{
|
|
334
|
-
id: "
|
|
335
|
-
defaultSelected:
|
|
336
|
-
order:
|
|
337
|
-
commands: ["
|
|
338
|
-
agents: [],
|
|
339
|
-
autoInstallAgents: false,
|
|
340
|
-
category: "bmad",
|
|
341
|
-
outputDir: "bmad"
|
|
342
|
-
},
|
|
343
|
-
{
|
|
344
|
-
id: "interviewWorkflow",
|
|
345
|
-
defaultSelected: true,
|
|
346
|
-
order: 6,
|
|
347
|
-
commands: ["interview.md"],
|
|
323
|
+
id: "sixStepsWorkflow",
|
|
324
|
+
defaultSelected: false,
|
|
325
|
+
order: 4,
|
|
326
|
+
commands: ["workflow.md"],
|
|
348
327
|
agents: [],
|
|
349
328
|
autoInstallAgents: false,
|
|
350
|
-
category: "
|
|
351
|
-
outputDir: "
|
|
329
|
+
category: "sixStep",
|
|
330
|
+
outputDir: "workflow"
|
|
352
331
|
}
|
|
353
332
|
];
|
|
354
333
|
function getWorkflowConfigs() {
|
|
355
334
|
ensureI18nInitialized();
|
|
356
335
|
const workflowTranslations = [
|
|
357
336
|
{
|
|
358
|
-
id: "
|
|
359
|
-
name: i18n.t("workflow:workflowOption.
|
|
360
|
-
description: i18n.t("workflow:workflowDescription.
|
|
361
|
-
},
|
|
362
|
-
{
|
|
363
|
-
id: "sixStepsWorkflow",
|
|
364
|
-
name: i18n.t("workflow:workflowOption.sixStepsWorkflow"),
|
|
365
|
-
description: i18n.t("workflow:workflowDescription.sixStepsWorkflow")
|
|
337
|
+
id: "interviewWorkflow",
|
|
338
|
+
name: i18n.t("workflow:workflowOption.interviewWorkflow"),
|
|
339
|
+
description: i18n.t("workflow:workflowDescription.interviewWorkflow")
|
|
366
340
|
},
|
|
367
341
|
{
|
|
368
|
-
id: "
|
|
369
|
-
name: i18n.t("workflow:workflowOption.
|
|
370
|
-
description: i18n.t("workflow:workflowDescription.
|
|
342
|
+
id: "essentialTools",
|
|
343
|
+
name: i18n.t("workflow:workflowOption.essentialTools"),
|
|
344
|
+
description: i18n.t("workflow:workflowDescription.essentialTools")
|
|
371
345
|
},
|
|
372
346
|
{
|
|
373
347
|
id: "gitWorkflow",
|
|
@@ -375,14 +349,9 @@ function getWorkflowConfigs() {
|
|
|
375
349
|
description: i18n.t("workflow:workflowDescription.gitWorkflow")
|
|
376
350
|
},
|
|
377
351
|
{
|
|
378
|
-
id: "
|
|
379
|
-
name: i18n.t("workflow:workflowOption.
|
|
380
|
-
description: i18n.t("workflow:workflowDescription.
|
|
381
|
-
},
|
|
382
|
-
{
|
|
383
|
-
id: "interviewWorkflow",
|
|
384
|
-
name: i18n.t("workflow:workflowOption.interviewWorkflow"),
|
|
385
|
-
description: i18n.t("workflow:workflowDescription.interviewWorkflow")
|
|
352
|
+
id: "sixStepsWorkflow",
|
|
353
|
+
name: i18n.t("workflow:workflowOption.sixStepsWorkflow"),
|
|
354
|
+
description: i18n.t("workflow:workflowDescription.sixStepsWorkflow")
|
|
386
355
|
}
|
|
387
356
|
];
|
|
388
357
|
return WORKFLOW_CONFIG_BASE.map((baseConfig) => {
|
|
@@ -6661,11 +6630,10 @@ async function installWorkflowWithDependencies(config, configLang) {
|
|
|
6661
6630
|
errors: []
|
|
6662
6631
|
};
|
|
6663
6632
|
const WORKFLOW_OPTION_KEYS = {
|
|
6664
|
-
|
|
6633
|
+
essentialTools: i18n.t("workflow:workflowOption.essentialTools"),
|
|
6665
6634
|
sixStepsWorkflow: i18n.t("workflow:workflowOption.sixStepsWorkflow"),
|
|
6666
|
-
featPlanUx: i18n.t("workflow:workflowOption.featPlanUx"),
|
|
6667
6635
|
gitWorkflow: i18n.t("workflow:workflowOption.gitWorkflow"),
|
|
6668
|
-
|
|
6636
|
+
interviewWorkflow: i18n.t("workflow:workflowOption.interviewWorkflow")
|
|
6669
6637
|
};
|
|
6670
6638
|
const workflowName = WORKFLOW_OPTION_KEYS[config.id] || config.id;
|
|
6671
6639
|
console.log(ansis.cyan(`
|
|
@@ -6744,10 +6712,6 @@ async function installWorkflowWithDependencies(config, configLang) {
|
|
|
6744
6712
|
}
|
|
6745
6713
|
if (result.success) {
|
|
6746
6714
|
console.log(ansis.green(`\u2714 ${workflowName} ${i18n.t("workflow:workflowInstallSuccess")}`));
|
|
6747
|
-
if (config.id === "bmadWorkflow") {
|
|
6748
|
-
console.log(ansis.cyan(`
|
|
6749
|
-
${i18n.t("workflow:bmadInitPrompt")}`));
|
|
6750
|
-
}
|
|
6751
6715
|
} else {
|
|
6752
6716
|
console.log(ansis.red(`\u2717 ${workflowName} ${i18n.t("workflow:workflowInstallError")}`));
|
|
6753
6717
|
}
|
package/dist/cli.mjs
CHANGED
|
@@ -10,7 +10,7 @@ import { runCcrStop, runCcrStart, runCcrRestart, runCcrStatus, runCcrUi } from '
|
|
|
10
10
|
import { changeScriptLanguageFeature, configureCodexAiMemoryFeature, configureCodexDefaultModelFeature, configureEnvPermissionFeature, configureAiMemoryFeature, configureDefaultModelFeature, configureMcpFeature, configureApiFeature } from './chunks/features.mjs';
|
|
11
11
|
import process$1 from 'node:process';
|
|
12
12
|
import { x, exec as exec$1 } from 'tinyexec';
|
|
13
|
-
import {
|
|
13
|
+
import { spawn, exec } from 'node:child_process';
|
|
14
14
|
import { promisify } from 'node:util';
|
|
15
15
|
import { pathExists } from 'fs-extra';
|
|
16
16
|
import { ClaudeCodeConfigManager } from './chunks/claude-code-config-manager.mjs';
|
|
@@ -18,12 +18,12 @@ import { writeFile, readFile, mkdir, readdir } from 'node:fs/promises';
|
|
|
18
18
|
import { join as join$1, resolve, dirname } from 'node:path';
|
|
19
19
|
import { randomUUID } from 'node:crypto';
|
|
20
20
|
import ora from 'ora';
|
|
21
|
-
import '
|
|
21
|
+
import 'smol-toml';
|
|
22
22
|
import 'dayjs';
|
|
23
|
+
import 'node:url';
|
|
24
|
+
import 'inquirer-toggle';
|
|
23
25
|
import 'semver';
|
|
24
|
-
import 'smol-toml';
|
|
25
26
|
import 'trash';
|
|
26
|
-
import 'inquirer-toggle';
|
|
27
27
|
import 'i18next';
|
|
28
28
|
import 'i18next-fs-backend';
|
|
29
29
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"bmadInitPrompt": "✨ Please run /bmad-init command in your project to initialize or update BMAD-Method extension",
|
|
3
2
|
"cleaningOldFiles": "Cleaning up old version files",
|
|
4
3
|
"failedToInstallAgent": "Failed to install agent",
|
|
5
4
|
"failedToInstallCommand": "Failed to install command",
|
|
@@ -8,18 +7,14 @@
|
|
|
8
7
|
"installingWorkflow": "Installing workflow",
|
|
9
8
|
"removedOldFile": "Removed old file",
|
|
10
9
|
"selectWorkflowType": "Select workflow type to install",
|
|
11
|
-
"workflowDescription.
|
|
12
|
-
"workflowDescription.
|
|
13
|
-
"workflowDescription.
|
|
14
|
-
"workflowDescription.
|
|
15
|
-
"workflowDescription.interviewWorkflow": "Interview-Driven Development - Surface hidden assumptions before coding by asking 40+ deep questions",
|
|
16
|
-
"workflowDescription.sixStepsWorkflow": "Professional development assistant structured six-step workflow",
|
|
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",
|
|
17
14
|
"workflowInstallError": "workflow installation had errors",
|
|
18
15
|
"workflowInstallSuccess": "workflow installed successfully",
|
|
19
|
-
"workflowOption.
|
|
20
|
-
"workflowOption.
|
|
21
|
-
"workflowOption.
|
|
22
|
-
"workflowOption.
|
|
23
|
-
"workflowOption.interviewWorkflow": "Interview-Driven Development (Based on Anthropic Thariq's Workflow)",
|
|
24
|
-
"workflowOption.sixStepsWorkflow": "Six Steps Workflow (workflow)"
|
|
16
|
+
"workflowOption.essentialTools": "Essential Tools (Project Init + Feature Planning + UX Design)",
|
|
17
|
+
"workflowOption.gitWorkflow": "Git Workflow (commit + rollback + cleanBranches + worktree)",
|
|
18
|
+
"workflowOption.interviewWorkflow": "🌟 Interview-Driven Development (Recommended - Based on Anthropic Thariq's Workflow)",
|
|
19
|
+
"workflowOption.sixStepsWorkflow": "Six-Step Workflow (Structured Development Process)"
|
|
25
20
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"bmadInitPrompt": "✨ 请在项目中运行 /bmad-init 命令来初始化或更新 BMAD-Method 扩展",
|
|
3
2
|
"cleaningOldFiles": "清理旧版本文件",
|
|
4
3
|
"failedToInstallAgent": "安装代理失败",
|
|
5
4
|
"failedToInstallCommand": "安装命令失败",
|
|
@@ -8,18 +7,14 @@
|
|
|
8
7
|
"installingWorkflow": "正在安装工作流",
|
|
9
8
|
"removedOldFile": "已删除旧文件",
|
|
10
9
|
"selectWorkflowType": "选择要安装的工作流类型",
|
|
11
|
-
"workflowDescription.
|
|
12
|
-
"workflowDescription.
|
|
13
|
-
"workflowDescription.
|
|
14
|
-
"workflowDescription.
|
|
15
|
-
"workflowDescription.interviewWorkflow": "访谈驱动开发 - 通过40+深度问题在编码前发现隐藏假设",
|
|
16
|
-
"workflowDescription.sixStepsWorkflow": "专业开发助手的结构化六步工作流程",
|
|
10
|
+
"workflowDescription.essentialTools": "提供项目初始化、架构分析、功能规划和UX设计的完整工具链,包含多个智能代理",
|
|
11
|
+
"workflowDescription.gitWorkflow": "Git 版本控制命令集合,支持规范化提交、回滚、分支清理和工作树管理",
|
|
12
|
+
"workflowDescription.interviewWorkflow": "通过40+深度问题在编码前发现隐藏假设,生成完整规格说明书,确保项目方向正确",
|
|
13
|
+
"workflowDescription.sixStepsWorkflow": "专业开发助手的结构化六步工作流程,适合需要严格流程控制的项目",
|
|
17
14
|
"workflowInstallError": "工作流安装出错",
|
|
18
15
|
"workflowInstallSuccess": "工作流安装成功",
|
|
19
|
-
"workflowOption.
|
|
20
|
-
"workflowOption.
|
|
21
|
-
"workflowOption.
|
|
22
|
-
"workflowOption.
|
|
23
|
-
"workflowOption.interviewWorkflow": "访谈驱动开发 (基于 Anthropic Thariq 的工作流)",
|
|
24
|
-
"workflowOption.sixStepsWorkflow": "六步工作流 (workflow)"
|
|
16
|
+
"workflowOption.essentialTools": "必备工具集 (项目初始化 + 功能规划 + UX设计)",
|
|
17
|
+
"workflowOption.gitWorkflow": "Git 工作流 (commit + rollback + cleanBranches + worktree)",
|
|
18
|
+
"workflowOption.interviewWorkflow": "🌟 访谈驱动开发 (推荐 - 基于 Anthropic Thariq 的创新工作流)",
|
|
19
|
+
"workflowOption.sixStepsWorkflow": "六步工作流 (结构化开发流程)"
|
|
25
20
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ccjk",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.4",
|
|
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": {
|
|
@@ -72,6 +72,15 @@
|
|
|
72
72
|
"copilot-alternative",
|
|
73
73
|
"codeium-alternative"
|
|
74
74
|
],
|
|
75
|
+
"sideEffects": false,
|
|
76
|
+
"exports": {
|
|
77
|
+
".": {
|
|
78
|
+
"types": "./dist/index.d.mts",
|
|
79
|
+
"import": "./dist/index.mjs",
|
|
80
|
+
"default": "./dist/index.mjs"
|
|
81
|
+
},
|
|
82
|
+
"./package.json": "./package.json"
|
|
83
|
+
},
|
|
75
84
|
"main": "dist/index.mjs",
|
|
76
85
|
"module": "dist/index.mjs",
|
|
77
86
|
"types": "dist/index.d.mts",
|
|
@@ -111,43 +120,43 @@
|
|
|
111
120
|
"docs:preview": "pnpm -F @ccjk/docs preview"
|
|
112
121
|
},
|
|
113
122
|
"dependencies": {
|
|
114
|
-
"@types/semver": "
|
|
115
|
-
"ansis": "
|
|
116
|
-
"cac": "
|
|
117
|
-
"dayjs": "
|
|
118
|
-
"find-up-simple": "
|
|
119
|
-
"fs-extra": "
|
|
120
|
-
"i18next": "
|
|
121
|
-
"i18next-fs-backend": "
|
|
122
|
-
"inquirer": "
|
|
123
|
-
"inquirer-toggle": "
|
|
124
|
-
"ora": "
|
|
125
|
-
"pathe": "
|
|
126
|
-
"semver": "
|
|
127
|
-
"smol-toml": "
|
|
128
|
-
"tinyexec": "
|
|
129
|
-
"trash": "
|
|
123
|
+
"@types/semver": "catalog:types",
|
|
124
|
+
"ansis": "catalog:cli",
|
|
125
|
+
"cac": "catalog:cli",
|
|
126
|
+
"dayjs": "catalog:runtime",
|
|
127
|
+
"find-up-simple": "catalog:runtime",
|
|
128
|
+
"fs-extra": "catalog:runtime",
|
|
129
|
+
"i18next": "catalog:runtime",
|
|
130
|
+
"i18next-fs-backend": "catalog:runtime",
|
|
131
|
+
"inquirer": "catalog:cli",
|
|
132
|
+
"inquirer-toggle": "catalog:cli",
|
|
133
|
+
"ora": "catalog:cli",
|
|
134
|
+
"pathe": "catalog:runtime",
|
|
135
|
+
"semver": "catalog:runtime",
|
|
136
|
+
"smol-toml": "catalog:runtime",
|
|
137
|
+
"tinyexec": "catalog:runtime",
|
|
138
|
+
"trash": "catalog:runtime"
|
|
130
139
|
},
|
|
131
140
|
"devDependencies": {
|
|
132
|
-
"@antfu/eslint-config": "
|
|
133
|
-
"@changesets/cli": "
|
|
134
|
-
"@commitlint/cli": "
|
|
135
|
-
"@commitlint/config-conventional": "
|
|
136
|
-
"@commitlint/types": "
|
|
137
|
-
"@types/fs-extra": "
|
|
138
|
-
"@types/inquirer": "
|
|
139
|
-
"@types/node": "
|
|
140
|
-
"@vitest/coverage-v8": "
|
|
141
|
-
"@vitest/ui": "
|
|
142
|
-
"eslint": "
|
|
143
|
-
"eslint-plugin-format": "
|
|
144
|
-
"glob": "
|
|
145
|
-
"husky": "
|
|
146
|
-
"lint-staged": "
|
|
147
|
-
"tsx": "
|
|
148
|
-
"typescript": "
|
|
149
|
-
"unbuild": "
|
|
150
|
-
"vitest": "
|
|
141
|
+
"@antfu/eslint-config": "catalog:build",
|
|
142
|
+
"@changesets/cli": "catalog:tooling",
|
|
143
|
+
"@commitlint/cli": "catalog:tooling",
|
|
144
|
+
"@commitlint/config-conventional": "catalog:tooling",
|
|
145
|
+
"@commitlint/types": "catalog:tooling",
|
|
146
|
+
"@types/fs-extra": "catalog:types",
|
|
147
|
+
"@types/inquirer": "catalog:types",
|
|
148
|
+
"@types/node": "catalog:types",
|
|
149
|
+
"@vitest/coverage-v8": "catalog:testing",
|
|
150
|
+
"@vitest/ui": "catalog:testing",
|
|
151
|
+
"eslint": "catalog:build",
|
|
152
|
+
"eslint-plugin-format": "catalog:build",
|
|
153
|
+
"glob": "catalog:testing",
|
|
154
|
+
"husky": "catalog:tooling",
|
|
155
|
+
"lint-staged": "catalog:tooling",
|
|
156
|
+
"tsx": "catalog:build",
|
|
157
|
+
"typescript": "catalog:build",
|
|
158
|
+
"unbuild": "catalog:build",
|
|
159
|
+
"vitest": "catalog:testing"
|
|
151
160
|
},
|
|
152
161
|
"lint-staged": {
|
|
153
162
|
"*": [
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: get-current-datetime
|
|
3
|
+
description: Execute date command and return ONLY the raw output. No formatting, headers, explanations, or parallel agents.
|
|
4
|
+
tools: Bash, Read, Write
|
|
5
|
+
color: cyan
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Execute `date` and return ONLY the command output.
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
date +'%Y-%m-%d %H:%M:%S'
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
DO NOT add any text, headers, formatting, or explanations.
|
|
15
|
+
DO NOT add markdown formatting or code blocks.
|
|
16
|
+
DO NOT add "Current date and time is:" or similar phrases.
|
|
17
|
+
DO NOT use parallel agents.
|
|
18
|
+
|
|
19
|
+
Just return the raw bash command output exactly as it appears.
|
|
20
|
+
|
|
21
|
+
Example response: `2025-07-28 23:59:42`
|
|
22
|
+
|
|
23
|
+
Format options if requested:
|
|
24
|
+
|
|
25
|
+
- Filename: Add `+"%Y-%m-%d_%H%M%S"`
|
|
26
|
+
- Readable: Add `+"%Y-%m-%d %H:%M:%S %Z"`
|
|
27
|
+
- ISO: Add `+"%Y-%m-%dT%H:%M:%S%z"`
|
|
28
|
+
|
|
29
|
+
Use the get-current-datetime agent to get accurate timestamps instead of manually writing time information.
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: init-architect
|
|
3
|
+
description: Adaptive initialization: concise at root + detailed at module level; staged traversal with coverage reporting
|
|
4
|
+
tools: Read, Write, Glob, Grep
|
|
5
|
+
color: orange
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Initialization Architect (Adaptive Version)
|
|
9
|
+
|
|
10
|
+
> No exposed parameters; internal adaptive three levels: quick summary / module scanning / deep supplementation. Ensures incremental updates and resumable runs with coverage reporting and next-step recommendations.
|
|
11
|
+
|
|
12
|
+
## I. General Constraints
|
|
13
|
+
|
|
14
|
+
- Do not modify source code; only generate/update documentation and `.claude/index.json`.
|
|
15
|
+
- **Ignore Rules Retrieval Strategy**:
|
|
16
|
+
1. Prioritize reading the `.gitignore` file from the project root directory
|
|
17
|
+
2. If `.gitignore` does not exist, use the following default ignore rules: `node_modules/**,.git/**,.github/**,dist/**,build/**,.next/**,__pycache__/**,*.lock,*.log,*.bin,*.pdf,*.png,*.jpg,*.jpeg,*.gif,*.mp4,*.zip,*.tar,*.gz`
|
|
18
|
+
3. Merge ignore patterns from `.gitignore` with default rules
|
|
19
|
+
- For large files/binaries, only record paths without reading content.
|
|
20
|
+
|
|
21
|
+
## II. Staged Strategy (Automatic Intensity Selection)
|
|
22
|
+
|
|
23
|
+
1. **Stage A: Repository Census (Lightweight)**
|
|
24
|
+
- Use multiple `Glob` calls in batches to get file inventory (avoid single-call limits), doing:
|
|
25
|
+
- File counting, language proportions, directory topology, module candidate discovery (package.json, pyproject.toml, go.mod, Cargo.toml, apps/_, packages/_, services/_, cmd/_, etc.).
|
|
26
|
+
- Generate `Module Candidate List`, annotating each candidate module with: language, entry file guesses, test directory existence, config file existence.
|
|
27
|
+
2. **Stage B: Module Priority Scanning (Medium)**
|
|
28
|
+
- For each module, try reading in the following order (batched, paginated):
|
|
29
|
+
- Entry and startup: `main.ts`/`index.ts`/`cmd/*/main.go`/`app.py`/`src/main.rs`, etc.
|
|
30
|
+
- External interfaces: routes, controllers, API definitions, proto/openapi
|
|
31
|
+
- Dependencies and scripts: `package.json scripts`, `pyproject.toml`, `go.mod`, `Cargo.toml`, config directories
|
|
32
|
+
- Data layer: `schema.sql`, `prisma/schema.prisma`, ORM models, migration directories
|
|
33
|
+
- Testing: `tests/**`, `__tests__/**`, `*_test.go`, `*.spec.ts`, etc.
|
|
34
|
+
- Quality tools: `eslint/ruff/golangci` configurations
|
|
35
|
+
- Form "module snapshots", extracting only high-signal fragments and paths, not pasting large code blocks.
|
|
36
|
+
3. **Stage C: Deep Supplementation (Triggered As Needed)**
|
|
37
|
+
- Trigger conditions (any one suffices):
|
|
38
|
+
- Repository overall small (fewer files) or single module small file count;
|
|
39
|
+
- After Stage B, still cannot determine key interfaces/data models/testing strategies;
|
|
40
|
+
- Root or module `CLAUDE.md` missing information items.
|
|
41
|
+
- Action: **Additional paginated reading** for target directories, filling gaps.
|
|
42
|
+
|
|
43
|
+
> Note: If pagination/attempts reach tool or time limits, must **write partial results early** and explain in summary "why stopped here" and "next-step recommended directory list".
|
|
44
|
+
|
|
45
|
+
## III. Artifacts and Incremental Updates
|
|
46
|
+
|
|
47
|
+
1. **Write Root-level `CLAUDE.md`**
|
|
48
|
+
- If exists, insert/update `Change Log (Changelog)` at the top.
|
|
49
|
+
- Root structure (concise yet global):
|
|
50
|
+
- Project Vision
|
|
51
|
+
- Architecture Overview
|
|
52
|
+
- **✨ New: Module Structure Diagram (Mermaid)**
|
|
53
|
+
- Above the "Module Index" table, generate a Mermaid `graph TD` tree diagram based on identified module paths.
|
|
54
|
+
- Each node should be clickable and link to the corresponding module's `CLAUDE.md` file.
|
|
55
|
+
- Example syntax:
|
|
56
|
+
|
|
57
|
+
```mermaid
|
|
58
|
+
graph TD
|
|
59
|
+
A["(Root) My Project"] --> B["packages"];
|
|
60
|
+
B --> C["auth"];
|
|
61
|
+
B --> D["ui-library"];
|
|
62
|
+
A --> E["services"];
|
|
63
|
+
E --> F["audit-log"];
|
|
64
|
+
|
|
65
|
+
click C "./packages/auth/CLAUDE.md" "View auth module docs"
|
|
66
|
+
click D "./packages/ui-library/CLAUDE.md" "View ui-library module docs"
|
|
67
|
+
click F "./services/audit-log/CLAUDE.md" "View audit-log module docs"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
- Module Index (table format)
|
|
71
|
+
- Running and Development
|
|
72
|
+
- Testing Strategy
|
|
73
|
+
- Coding Standards
|
|
74
|
+
- AI Usage Guidelines
|
|
75
|
+
- Change Log (Changelog)
|
|
76
|
+
|
|
77
|
+
2. **Write Module-level `CLAUDE.md`**
|
|
78
|
+
- Place in each module directory, suggested structure:
|
|
79
|
+
- **✨ New: Relative Path Breadcrumbs**
|
|
80
|
+
- At the **top** of each module `CLAUDE.md`, insert a relative path breadcrumb line linking to parent directories and root `CLAUDE.md`.
|
|
81
|
+
- Example (located at `packages/auth/CLAUDE.md`):
|
|
82
|
+
`[Root Directory](../../CLAUDE.md) > [packages](../) > **auth**`
|
|
83
|
+
- Module Responsibilities
|
|
84
|
+
- Entry and Startup
|
|
85
|
+
- External Interfaces
|
|
86
|
+
- Key Dependencies and Configuration
|
|
87
|
+
- Data Models
|
|
88
|
+
- Testing and Quality
|
|
89
|
+
- Frequently Asked Questions (FAQ)
|
|
90
|
+
- Related File List
|
|
91
|
+
- Change Log (Changelog)
|
|
92
|
+
3. **`.claude/index.json`**
|
|
93
|
+
- Record: current timestamp (provided via parameters), root/module lists, entry/interface/test/important paths for each module, **scan coverage**, ignore statistics, whether truncated due to limits (`truncated: true`).
|
|
94
|
+
|
|
95
|
+
## IV. Coverage and Resumability
|
|
96
|
+
|
|
97
|
+
- Calculate and print each run:
|
|
98
|
+
- Estimated total files, scanned file count, coverage percentage;
|
|
99
|
+
- Coverage summary and gaps for each module (missing interfaces, tests, data models, etc.);
|
|
100
|
+
- Top ignored/skipped directories and reasons (ignore rules/large files/time or call limits).
|
|
101
|
+
- Write "gap list" to `index.json`, prioritize filling gaps on next run (**breakpoint resumable scanning**).
|
|
102
|
+
|
|
103
|
+
## V. Result Summary (Print to Main Dialog)
|
|
104
|
+
|
|
105
|
+
- Root/module `CLAUDE.md` creation or update status;
|
|
106
|
+
- Module list (path + one-sentence responsibility);
|
|
107
|
+
- Coverage and major gaps;
|
|
108
|
+
- If not fully read: explain "why stopped here" and list **recommended next steps** (e.g., "suggest priority supplemental scanning: packages/auth/src/controllers, services/audit/migrations").
|
|
109
|
+
|
|
110
|
+
## VI. Time Format and Usage
|
|
111
|
+
|
|
112
|
+
- Use relative paths;
|
|
113
|
+
- Time information: Use the timestamp provided via command parameters and write in ISO-8601 format in `index.json`.
|
|
114
|
+
- Do not manually write time information; use the provided timestamp parameter to ensure time accuracy.
|