@kood/claude-code 0.4.1 → 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.
Files changed (149) hide show
  1. package/dist/index.js +53 -7
  2. package/package.json +2 -1
  3. package/templates/.claude/PARALLEL_AGENTS.md +737 -0
  4. package/templates/.claude/agents/analyst.md +416 -0
  5. package/templates/.claude/agents/architect.md +569 -0
  6. package/templates/.claude/agents/code-reviewer.md +132 -133
  7. package/templates/.claude/agents/dependency-manager.md +93 -94
  8. package/templates/.claude/agents/deployment-validator.md +64 -65
  9. package/templates/.claude/agents/designer.md +655 -0
  10. package/templates/.claude/agents/document-writer.md +500 -0
  11. package/templates/.claude/agents/explore.md +499 -0
  12. package/templates/.claude/agents/git-operator.md +74 -75
  13. package/templates/.claude/agents/implementation-executor.md +138 -109
  14. package/templates/.claude/agents/ko-to-en-translator.md +18 -22
  15. package/templates/.claude/agents/lint-fixer.md +250 -93
  16. package/templates/.claude/agents/planner.md +356 -0
  17. package/templates/.claude/agents/refactor-advisor.md +135 -136
  18. package/templates/.claude/commands/bug-fix.md +296 -207
  19. package/templates/.claude/commands/git-all.md +199 -46
  20. package/templates/.claude/commands/git-session.md +113 -57
  21. package/templates/.claude/commands/lint-fix.md +219 -153
  22. package/templates/.claude/commands/lint-init.md +113 -76
  23. package/templates/.claude/commands/pre-deploy.md +190 -124
  24. package/templates/.claude/commands/refactor.md +407 -162
  25. package/templates/.claude/commands/version-update.md +138 -37
  26. package/templates/.claude/instructions/context-engineering/ANTHROPIC_CONTEXT_ENGINEERING.md +178 -0
  27. package/templates/.claude/instructions/context-engineering/references/claude-4x.md +215 -0
  28. package/templates/.claude/instructions/context-engineering/references/core-principles.md +137 -0
  29. package/templates/.claude/instructions/context-engineering/references/examples.md +351 -0
  30. package/templates/.claude/instructions/context-engineering/references/techniques.md +162 -0
  31. package/templates/.claude/instructions/parallel-agent-execution.md +874 -0
  32. package/templates/.claude/skills/docs-creator/AGENTS.md +238 -0
  33. package/templates/.claude/{commands/docs-creator.md → skills/docs-creator/SKILL.md} +61 -75
  34. package/templates/.claude/skills/docs-refactor/AGENTS.md +270 -0
  35. package/templates/.claude/{commands/docs-refactor.md → skills/docs-refactor/SKILL.md} +30 -44
  36. package/templates/.claude/skills/execute/SKILL.md +451 -0
  37. package/templates/.claude/skills/figma-to-code/AGENTS.md +287 -0
  38. package/templates/.claude/skills/figma-to-code/SKILL.md +225 -225
  39. package/templates/.claude/skills/figma-to-code/references/design-tokens.md +75 -73
  40. package/templates/.claude/skills/figma-to-code/references/figma-mcp-tools.md +73 -73
  41. package/templates/.claude/skills/figma-to-code/references/layout-mapping.md +104 -104
  42. package/templates/.claude/skills/figma-to-code/references/responsive-design.md +99 -99
  43. package/templates/.claude/skills/figma-to-code/references/verification.md +91 -91
  44. package/templates/.claude/skills/global-uiux-design/AGENTS.md +317 -0
  45. package/templates/.claude/skills/global-uiux-design/SKILL.md +738 -0
  46. package/templates/.claude/skills/global-uiux-design/references/accessibility.md +401 -0
  47. package/templates/.claude/skills/global-uiux-design/references/color-system.md +275 -0
  48. package/templates/.claude/skills/global-uiux-design/references/design-philosophy.md +206 -0
  49. package/templates/.claude/skills/global-uiux-design/references/design-systems.md +446 -0
  50. package/templates/.claude/skills/korea-uiux-design/AGENTS.md +307 -0
  51. package/templates/.claude/skills/korea-uiux-design/SKILL.md +170 -0
  52. package/templates/.claude/skills/nextjs-react-best-practices/AGENTS.md +95 -116
  53. package/templates/.claude/skills/nextjs-react-best-practices/SKILL.md +134 -152
  54. package/templates/.claude/skills/nextjs-react-best-practices/rules/advanced-event-handler-refs.md +6 -6
  55. package/templates/.claude/skills/nextjs-react-best-practices/rules/advanced-use-latest.md +5 -5
  56. package/templates/.claude/skills/nextjs-react-best-practices/rules/async-api-routes.md +5 -5
  57. package/templates/.claude/skills/nextjs-react-best-practices/rules/async-defer-await.md +22 -22
  58. package/templates/.claude/skills/nextjs-react-best-practices/rules/async-dependencies.md +5 -5
  59. package/templates/.claude/skills/nextjs-react-best-practices/rules/async-parallel.md +4 -4
  60. package/templates/.claude/skills/nextjs-react-best-practices/rules/async-suspense-boundaries.md +21 -21
  61. package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-barrel-imports.md +18 -18
  62. package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-conditional.md +4 -4
  63. package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-defer-third-party.md +4 -4
  64. package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-dynamic-imports.md +4 -4
  65. package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-preload.md +5 -5
  66. package/templates/.claude/skills/nextjs-react-best-practices/rules/client-event-listeners.md +9 -9
  67. package/templates/.claude/skills/nextjs-react-best-practices/rules/client-swr-dedup.md +7 -7
  68. package/templates/.claude/skills/nextjs-react-best-practices/rules/js-batch-dom-css.md +13 -13
  69. package/templates/.claude/skills/nextjs-react-best-practices/rules/js-cache-function-results.md +14 -14
  70. package/templates/.claude/skills/nextjs-react-best-practices/rules/js-cache-property-access.md +4 -4
  71. package/templates/.claude/skills/nextjs-react-best-practices/rules/js-cache-storage.md +10 -10
  72. package/templates/.claude/skills/nextjs-react-best-practices/rules/js-combine-iterations.md +4 -4
  73. package/templates/.claude/skills/nextjs-react-best-practices/rules/js-early-exit.md +7 -7
  74. package/templates/.claude/skills/nextjs-react-best-practices/rules/js-hoist-regexp.md +6 -6
  75. package/templates/.claude/skills/nextjs-react-best-practices/rules/js-index-maps.md +6 -6
  76. package/templates/.claude/skills/nextjs-react-best-practices/rules/js-length-check-first.md +14 -14
  77. package/templates/.claude/skills/nextjs-react-best-practices/rules/js-min-max-loop.md +16 -16
  78. package/templates/.claude/skills/nextjs-react-best-practices/rules/js-set-map-lookups.md +4 -4
  79. package/templates/.claude/skills/nextjs-react-best-practices/rules/js-tosorted-immutable.md +17 -17
  80. package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-activity.md +4 -4
  81. package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-animate-svg-wrapper.md +11 -11
  82. package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-conditional-render.md +8 -8
  83. package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-content-visibility.md +4 -4
  84. package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-hoist-jsx.md +6 -6
  85. package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-hydration-no-flicker.md +14 -14
  86. package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-svg-precision.md +5 -5
  87. package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-defer-reads.md +4 -4
  88. package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-dependencies.md +7 -7
  89. package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-derived-state.md +5 -5
  90. package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-functional-setstate.md +34 -34
  91. package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-lazy-state-init.md +15 -15
  92. package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-memo.md +5 -5
  93. package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-transitions.md +4 -4
  94. package/templates/.claude/skills/nextjs-react-best-practices/rules/server-after-nonblocking.md +24 -24
  95. package/templates/.claude/skills/nextjs-react-best-practices/rules/server-cache-lru.md +10 -10
  96. package/templates/.claude/skills/nextjs-react-best-practices/rules/server-cache-react.md +4 -4
  97. package/templates/.claude/skills/nextjs-react-best-practices/rules/server-parallel-fetching.md +5 -5
  98. package/templates/.claude/skills/nextjs-react-best-practices/rules/server-serialization.md +6 -6
  99. package/templates/.claude/skills/plan/SKILL.md +594 -0
  100. package/templates/.claude/skills/prd/SKILL.md +496 -0
  101. package/templates/.claude/skills/ralph/AGENTS.md +393 -0
  102. package/templates/.claude/skills/ralph/SKILL.md +1035 -0
  103. package/templates/.claude/skills/tanstack-start-react-best-practices/AGENTS.md +100 -121
  104. package/templates/.claude/skills/tanstack-start-react-best-practices/SKILL.md +139 -157
  105. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-defer-await.md +22 -22
  106. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-dependencies.md +5 -5
  107. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-loader.md +7 -7
  108. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-parallel.md +4 -4
  109. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-barrel-imports.md +18 -18
  110. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-conditional.md +4 -4
  111. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-defer-third-party.md +4 -4
  112. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-lazy-routes.md +12 -12
  113. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-preload.md +5 -5
  114. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-event-listeners.md +9 -9
  115. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-tanstack-query.md +12 -12
  116. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-batch-dom-css.md +13 -13
  117. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-function-results.md +14 -14
  118. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-property-access.md +4 -4
  119. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-storage.md +10 -10
  120. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-combine-iterations.md +4 -4
  121. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-early-exit.md +7 -7
  122. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-hoist-regexp.md +6 -6
  123. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-index-maps.md +6 -6
  124. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-length-check-first.md +14 -14
  125. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-min-max-loop.md +16 -16
  126. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-set-map-lookups.md +4 -4
  127. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-tosorted-immutable.md +17 -17
  128. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-animate-svg-wrapper.md +11 -11
  129. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-conditional-render.md +8 -8
  130. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-content-visibility.md +4 -4
  131. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-hoist-jsx.md +6 -6
  132. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-svg-precision.md +5 -5
  133. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-defer-reads.md +4 -4
  134. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-dependencies.md +7 -7
  135. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-derived-state.md +5 -5
  136. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-functional-setstate.md +34 -34
  137. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-lazy-state-init.md +15 -15
  138. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-memo.md +5 -5
  139. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-transitions.md +4 -4
  140. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-cache-lru.md +12 -12
  141. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-deferred-data.md +14 -14
  142. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-parallel-fetching.md +9 -9
  143. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-serialization.md +6 -6
  144. package/templates/.claude/commands/agent-creator.md +0 -370
  145. package/templates/.claude/commands/command-creator.md +0 -524
  146. package/templates/.claude/commands/execute.md +0 -469
  147. package/templates/.claude/commands/git.md +0 -98
  148. package/templates/.claude/commands/plan.md +0 -526
  149. 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
- return { hasSkills, hasCommands, hasAgents };
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
- const noOptionsProvided = options.skills === void 0 && options.commands === void 0 && options.agents === void 0;
325
- if (noOptionsProvided && (hasSkills || hasCommands || hasAgents)) {
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.4.1");
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.4.1",
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",