@kood/claude-code 0.4.0 → 0.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/index.js +53 -7
- package/package.json +2 -1
- package/templates/.claude/PARALLEL_AGENTS.md +737 -0
- package/templates/.claude/agents/analyst.md +416 -0
- package/templates/.claude/agents/architect.md +569 -0
- package/templates/.claude/agents/code-reviewer.md +132 -133
- package/templates/.claude/agents/dependency-manager.md +93 -94
- package/templates/.claude/agents/deployment-validator.md +64 -65
- package/templates/.claude/agents/designer.md +655 -0
- package/templates/.claude/agents/document-writer.md +500 -0
- package/templates/.claude/agents/explore.md +499 -0
- package/templates/.claude/agents/git-operator.md +74 -75
- package/templates/.claude/agents/implementation-executor.md +138 -109
- package/templates/.claude/agents/ko-to-en-translator.md +18 -22
- package/templates/.claude/agents/lint-fixer.md +250 -93
- package/templates/.claude/agents/planner.md +356 -0
- package/templates/.claude/agents/refactor-advisor.md +135 -136
- package/templates/.claude/commands/bug-fix.md +296 -207
- package/templates/.claude/commands/git-all.md +199 -46
- package/templates/.claude/commands/git-session.md +113 -57
- package/templates/.claude/commands/lint-fix.md +219 -153
- package/templates/.claude/commands/lint-init.md +113 -76
- package/templates/.claude/commands/pre-deploy.md +190 -124
- package/templates/.claude/commands/refactor.md +407 -162
- package/templates/.claude/commands/version-update.md +138 -37
- package/templates/.claude/instructions/context-engineering/ANTHROPIC_CONTEXT_ENGINEERING.md +178 -0
- package/templates/.claude/instructions/context-engineering/references/claude-4x.md +215 -0
- package/templates/.claude/instructions/context-engineering/references/core-principles.md +137 -0
- package/templates/.claude/instructions/context-engineering/references/examples.md +351 -0
- package/templates/.claude/instructions/context-engineering/references/techniques.md +162 -0
- package/templates/.claude/instructions/parallel-agent-execution.md +874 -0
- package/templates/.claude/skills/docs-creator/AGENTS.md +238 -0
- package/templates/.claude/{commands/docs-creator.md → skills/docs-creator/SKILL.md} +61 -75
- package/templates/.claude/skills/docs-refactor/AGENTS.md +270 -0
- package/templates/.claude/{commands/docs-refactor.md → skills/docs-refactor/SKILL.md} +30 -44
- package/templates/.claude/skills/execute/SKILL.md +451 -0
- package/templates/.claude/skills/figma-to-code/AGENTS.md +287 -0
- package/templates/.claude/skills/figma-to-code/SKILL.md +225 -225
- package/templates/.claude/skills/figma-to-code/references/design-tokens.md +75 -73
- package/templates/.claude/skills/figma-to-code/references/figma-mcp-tools.md +73 -73
- package/templates/.claude/skills/figma-to-code/references/layout-mapping.md +104 -104
- package/templates/.claude/skills/figma-to-code/references/responsive-design.md +99 -99
- package/templates/.claude/skills/figma-to-code/references/verification.md +91 -91
- package/templates/.claude/skills/global-uiux-design/AGENTS.md +317 -0
- package/templates/.claude/skills/global-uiux-design/SKILL.md +738 -0
- package/templates/.claude/skills/global-uiux-design/references/accessibility.md +401 -0
- package/templates/.claude/skills/global-uiux-design/references/color-system.md +275 -0
- package/templates/.claude/skills/global-uiux-design/references/design-philosophy.md +206 -0
- package/templates/.claude/skills/global-uiux-design/references/design-systems.md +446 -0
- package/templates/.claude/skills/korea-uiux-design/AGENTS.md +307 -0
- package/templates/.claude/skills/korea-uiux-design/SKILL.md +170 -0
- package/templates/.claude/skills/nextjs-react-best-practices/AGENTS.md +95 -116
- package/templates/.claude/skills/nextjs-react-best-practices/SKILL.md +134 -152
- package/templates/.claude/skills/nextjs-react-best-practices/rules/advanced-event-handler-refs.md +6 -6
- package/templates/.claude/skills/nextjs-react-best-practices/rules/advanced-use-latest.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-api-routes.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-defer-await.md +22 -22
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-dependencies.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-parallel.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-suspense-boundaries.md +21 -21
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-barrel-imports.md +18 -18
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-conditional.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-defer-third-party.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-dynamic-imports.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-preload.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/client-event-listeners.md +9 -9
- package/templates/.claude/skills/nextjs-react-best-practices/rules/client-swr-dedup.md +7 -7
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-batch-dom-css.md +13 -13
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-cache-function-results.md +14 -14
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-cache-property-access.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-cache-storage.md +10 -10
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-combine-iterations.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-early-exit.md +7 -7
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-hoist-regexp.md +6 -6
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-index-maps.md +6 -6
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-length-check-first.md +14 -14
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-min-max-loop.md +16 -16
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-set-map-lookups.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-tosorted-immutable.md +17 -17
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-activity.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-animate-svg-wrapper.md +11 -11
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-conditional-render.md +8 -8
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-content-visibility.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-hoist-jsx.md +6 -6
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-hydration-no-flicker.md +14 -14
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-svg-precision.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-defer-reads.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-dependencies.md +7 -7
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-derived-state.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-functional-setstate.md +34 -34
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-lazy-state-init.md +15 -15
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-memo.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-transitions.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-after-nonblocking.md +24 -24
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-cache-lru.md +10 -10
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-cache-react.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-parallel-fetching.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-serialization.md +6 -6
- package/templates/.claude/skills/plan/SKILL.md +594 -0
- package/templates/.claude/skills/prd/SKILL.md +496 -0
- package/templates/.claude/skills/ralph/AGENTS.md +393 -0
- package/templates/.claude/skills/ralph/SKILL.md +1035 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/AGENTS.md +100 -121
- package/templates/.claude/skills/tanstack-start-react-best-practices/SKILL.md +139 -157
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-defer-await.md +22 -22
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-dependencies.md +5 -5
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-loader.md +7 -7
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-parallel.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-barrel-imports.md +18 -18
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-conditional.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-defer-third-party.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-lazy-routes.md +12 -12
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-preload.md +5 -5
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-event-listeners.md +9 -9
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-tanstack-query.md +12 -12
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-batch-dom-css.md +13 -13
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-function-results.md +14 -14
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-property-access.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-storage.md +10 -10
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-combine-iterations.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-early-exit.md +7 -7
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-hoist-regexp.md +6 -6
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-index-maps.md +6 -6
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-length-check-first.md +14 -14
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-min-max-loop.md +16 -16
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-set-map-lookups.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-tosorted-immutable.md +17 -17
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-animate-svg-wrapper.md +11 -11
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-conditional-render.md +8 -8
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-content-visibility.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-hoist-jsx.md +6 -6
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-svg-precision.md +5 -5
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-defer-reads.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-dependencies.md +7 -7
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-derived-state.md +5 -5
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-functional-setstate.md +34 -34
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-lazy-state-init.md +15 -15
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-memo.md +5 -5
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-transitions.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-cache-lru.md +12 -12
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-deferred-data.md +14 -14
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-parallel-fetching.md +9 -9
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-serialization.md +6 -6
- package/templates/.claude/commands/agent-creator.md +0 -370
- package/templates/.claude/commands/command-creator.md +0 -524
- package/templates/.claude/commands/execute.md +0 -469
- package/templates/.claude/commands/git.md +0 -98
- package/templates/.claude/commands/plan.md +0 -531
- package/templates/.claude/commands/prd.md +0 -629
package/dist/index.js
CHANGED
|
@@ -193,6 +193,7 @@ var checkExistingClaudeFiles = async (targetDir) => {
|
|
|
193
193
|
const skillsDir = path.join(targetDir, ".claude", "skills");
|
|
194
194
|
const commandsDir = path.join(targetDir, ".claude", "commands");
|
|
195
195
|
const agentsDir = path.join(targetDir, ".claude", "agents");
|
|
196
|
+
const instructionsDir = path.join(targetDir, ".claude", "instructions");
|
|
196
197
|
if (await fs.pathExists(skillsDir)) {
|
|
197
198
|
existingFiles.push(".claude/skills/");
|
|
198
199
|
}
|
|
@@ -202,6 +203,9 @@ var checkExistingClaudeFiles = async (targetDir) => {
|
|
|
202
203
|
if (await fs.pathExists(agentsDir)) {
|
|
203
204
|
existingFiles.push(".claude/agents/");
|
|
204
205
|
}
|
|
206
|
+
if (await fs.pathExists(instructionsDir)) {
|
|
207
|
+
existingFiles.push(".claude/instructions/");
|
|
208
|
+
}
|
|
205
209
|
return existingFiles;
|
|
206
210
|
};
|
|
207
211
|
var copyAgents = async (_templates, targetDir) => {
|
|
@@ -214,17 +218,33 @@ var copyAgents = async (_templates, targetDir) => {
|
|
|
214
218
|
}
|
|
215
219
|
return counter;
|
|
216
220
|
};
|
|
221
|
+
var copyInstructions = async (_templates, targetDir) => {
|
|
222
|
+
const counter = { files: 0, directories: 0 };
|
|
223
|
+
const targetInstructionsDir = path.join(targetDir, ".claude", "instructions");
|
|
224
|
+
const instructionsSrc = path.join(
|
|
225
|
+
getTemplatesDir(),
|
|
226
|
+
".claude",
|
|
227
|
+
"instructions"
|
|
228
|
+
);
|
|
229
|
+
if (await fs.pathExists(instructionsSrc)) {
|
|
230
|
+
await fs.ensureDir(targetInstructionsDir);
|
|
231
|
+
await copyRecursive(instructionsSrc, targetInstructionsDir, counter);
|
|
232
|
+
}
|
|
233
|
+
return counter;
|
|
234
|
+
};
|
|
217
235
|
var checkAllExtrasExist = async (templates) => {
|
|
218
236
|
const claudeDir = path.join(getTemplatesDir(), ".claude");
|
|
219
237
|
const commandsSrc = path.join(claudeDir, "commands");
|
|
220
238
|
const agentsSrc = path.join(claudeDir, "agents");
|
|
239
|
+
const instructionsSrc = path.join(claudeDir, "instructions");
|
|
221
240
|
const hasSkills = templates.some((template) => {
|
|
222
241
|
const skills = TEMPLATE_SKILLS_MAP[template];
|
|
223
242
|
return skills && skills.length > 0;
|
|
224
243
|
});
|
|
225
244
|
const hasCommands = await hasFiles(commandsSrc);
|
|
226
245
|
const hasAgents = await hasFiles(agentsSrc);
|
|
227
|
-
|
|
246
|
+
const hasInstructions = await hasFiles(instructionsSrc);
|
|
247
|
+
return { hasSkills, hasCommands, hasAgents, hasInstructions };
|
|
228
248
|
};
|
|
229
249
|
|
|
230
250
|
// src/commands/init.ts
|
|
@@ -317,12 +337,13 @@ var init = async (options) => {
|
|
|
317
337
|
}
|
|
318
338
|
logger.blank();
|
|
319
339
|
logger.success(`Total: ${totalFiles} files, ${totalDirectories} directories`);
|
|
320
|
-
const { hasSkills, hasCommands, hasAgents } = await checkAllExtrasExist(templates);
|
|
340
|
+
const { hasSkills, hasCommands, hasAgents, hasInstructions } = await checkAllExtrasExist(templates);
|
|
321
341
|
let installSkills = options.skills ?? false;
|
|
322
342
|
let installCommands = options.commands ?? false;
|
|
323
343
|
let installAgents = options.agents ?? false;
|
|
324
|
-
|
|
325
|
-
|
|
344
|
+
let installInstructions = options.instructions ?? false;
|
|
345
|
+
const noOptionsProvided = options.skills === void 0 && options.commands === void 0 && options.agents === void 0 && options.instructions === void 0;
|
|
346
|
+
if (noOptionsProvided && (hasSkills || hasCommands || hasAgents || hasInstructions)) {
|
|
326
347
|
logger.blank();
|
|
327
348
|
if (hasSkills) {
|
|
328
349
|
const skillsResponse = await prompts({
|
|
@@ -351,8 +372,17 @@ var init = async (options) => {
|
|
|
351
372
|
});
|
|
352
373
|
installAgents = agentsResponse.install ?? false;
|
|
353
374
|
}
|
|
375
|
+
if (hasInstructions) {
|
|
376
|
+
const instructionsResponse = await prompts({
|
|
377
|
+
type: "confirm",
|
|
378
|
+
name: "install",
|
|
379
|
+
message: "Install instructions to .claude/instructions/?",
|
|
380
|
+
initial: false
|
|
381
|
+
});
|
|
382
|
+
installInstructions = instructionsResponse.install ?? false;
|
|
383
|
+
}
|
|
354
384
|
}
|
|
355
|
-
if (installSkills || installCommands || installAgents) {
|
|
385
|
+
if (installSkills || installCommands || installAgents || installInstructions) {
|
|
356
386
|
const existingClaudeFiles = await checkExistingClaudeFiles(targetDir);
|
|
357
387
|
if (existingClaudeFiles.length > 0 && !options.force) {
|
|
358
388
|
logger.warn("The following .claude files/folders already exist:");
|
|
@@ -369,6 +399,7 @@ var init = async (options) => {
|
|
|
369
399
|
installSkills = false;
|
|
370
400
|
installCommands = false;
|
|
371
401
|
installAgents = false;
|
|
402
|
+
installInstructions = false;
|
|
372
403
|
}
|
|
373
404
|
}
|
|
374
405
|
if (installSkills && hasSkills) {
|
|
@@ -407,13 +438,25 @@ var init = async (options) => {
|
|
|
407
438
|
} else if (installAgents && !hasAgents) {
|
|
408
439
|
logger.warn("No agents found in selected templates.");
|
|
409
440
|
}
|
|
441
|
+
if (installInstructions && hasInstructions) {
|
|
442
|
+
logger.blank();
|
|
443
|
+
logger.info("Installing instructions...");
|
|
444
|
+
const instructionsResult = await copyInstructions(templates, targetDir);
|
|
445
|
+
totalFiles += instructionsResult.files;
|
|
446
|
+
totalDirectories += instructionsResult.directories;
|
|
447
|
+
logger.success(
|
|
448
|
+
`Instructions: ${instructionsResult.files} files, ${instructionsResult.directories} directories`
|
|
449
|
+
);
|
|
450
|
+
} else if (installInstructions && !hasInstructions) {
|
|
451
|
+
logger.warn("No instructions found in selected templates.");
|
|
452
|
+
}
|
|
410
453
|
}
|
|
411
454
|
logger.blank();
|
|
412
455
|
logger.success("Claude Code documentation installed!");
|
|
413
456
|
logger.blank();
|
|
414
457
|
logger.info("Installed templates:");
|
|
415
458
|
templates.forEach((t) => logger.step(t));
|
|
416
|
-
if (installSkills && hasSkills || installCommands && hasCommands || installAgents && hasAgents) {
|
|
459
|
+
if (installSkills && hasSkills || installCommands && hasCommands || installAgents && hasAgents || installInstructions && hasInstructions) {
|
|
417
460
|
logger.blank();
|
|
418
461
|
logger.info("Installed extras:");
|
|
419
462
|
if (installSkills && hasSkills) {
|
|
@@ -425,6 +468,9 @@ var init = async (options) => {
|
|
|
425
468
|
if (installAgents && hasAgents) {
|
|
426
469
|
logger.step("Agents \u2192 .claude/agents/");
|
|
427
470
|
}
|
|
471
|
+
if (installInstructions && hasInstructions) {
|
|
472
|
+
logger.step("Instructions \u2192 .claude/instructions/");
|
|
473
|
+
}
|
|
428
474
|
}
|
|
429
475
|
logger.blank();
|
|
430
476
|
logger.info("Next steps:");
|
|
@@ -435,7 +481,7 @@ var init = async (options) => {
|
|
|
435
481
|
|
|
436
482
|
// src/index.ts
|
|
437
483
|
var program = new Command();
|
|
438
|
-
program.name("claude-code").description("Claude Code documentation installer for projects").version("0.
|
|
484
|
+
program.name("claude-code").description("Claude Code documentation installer for projects").version("0.5.0");
|
|
439
485
|
program.option(
|
|
440
486
|
"-t, --template <names>",
|
|
441
487
|
"template names (comma-separated: tanstack-start,hono)"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kood/claude-code",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Claude Code documentation installer for projects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": "./dist/index.js",
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"prompts": "^2.4.2"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
+
"@eslint/js": "^9.39.2",
|
|
40
41
|
"@types/fs-extra": "^11.0.4",
|
|
41
42
|
"@types/node": "^22.10.0",
|
|
42
43
|
"@types/prompts": "^2.4.9",
|