@kood/claude-code 0.3.11 → 0.3.14
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 +30 -8
- package/package.json +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/AGENTS.md +663 -0
- package/templates/.claude/skills/nextjs-react-best-practices/SKILL.md +269 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/advanced-use-latest.md +49 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-api-routes.md +38 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-defer-await.md +80 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-dependencies.md +36 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-parallel.md +28 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-conditional.md +31 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-preload.md +50 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/client-event-listeners.md +74 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-cache-storage.md +70 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-early-exit.md +50 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-index-maps.md +37 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-length-check-first.md +49 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-activity.md +26 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-memo.md +44 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-transitions.md +40 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-cache-lru.md +41 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-cache-react.md +26 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-parallel-fetching.md +79 -0
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-serialization.md +38 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/AGENTS.md +751 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/SKILL.md +431 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-defer-await.md +80 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-dependencies.md +36 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-loader.md +44 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-parallel.md +28 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-conditional.md +31 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-lazy-routes.md +67 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-preload.md +50 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-event-listeners.md +74 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-tanstack-query.md +77 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-storage.md +70 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-early-exit.md +50 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-index-maps.md +37 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-length-check-first.md +49 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-memo.md +44 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-transitions.md +40 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-cache-lru.md +41 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-deferred-data.md +67 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-parallel-fetching.md +60 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-serialization.md +38 -0
- package/templates/.claude/skills/vs-design-diverge/SKILL.md +307 -0
package/dist/index.js
CHANGED
|
@@ -144,13 +144,33 @@ var listAvailableTemplates = async () => {
|
|
|
144
144
|
}
|
|
145
145
|
return templates;
|
|
146
146
|
};
|
|
147
|
-
var
|
|
147
|
+
var TEMPLATE_SKILLS_MAP = {
|
|
148
|
+
nextjs: ["nextjs-react-best-practices", "vs-design-diverge"],
|
|
149
|
+
"tanstack-start": [
|
|
150
|
+
"tanstack-start-react-best-practices",
|
|
151
|
+
"vs-design-diverge"
|
|
152
|
+
]
|
|
153
|
+
// hono와 npx는 스킬 없음
|
|
154
|
+
};
|
|
155
|
+
var copySkills = async (templates, targetDir) => {
|
|
148
156
|
const counter = { files: 0, directories: 0 };
|
|
149
157
|
const targetSkillsDir = path.join(targetDir, ".claude", "skills");
|
|
150
158
|
const skillsSrc = path.join(getTemplatesDir(), ".claude", "skills");
|
|
151
|
-
if (await fs.pathExists(skillsSrc)) {
|
|
152
|
-
|
|
153
|
-
|
|
159
|
+
if (!await fs.pathExists(skillsSrc)) {
|
|
160
|
+
return counter;
|
|
161
|
+
}
|
|
162
|
+
await fs.ensureDir(targetSkillsDir);
|
|
163
|
+
const skillsToCopy = /* @__PURE__ */ new Set();
|
|
164
|
+
for (const template of templates) {
|
|
165
|
+
const skills = TEMPLATE_SKILLS_MAP[template] || [];
|
|
166
|
+
skills.forEach((skill) => skillsToCopy.add(skill));
|
|
167
|
+
}
|
|
168
|
+
for (const skill of skillsToCopy) {
|
|
169
|
+
const skillSrc = path.join(skillsSrc, skill);
|
|
170
|
+
const skillDest = path.join(targetSkillsDir, skill);
|
|
171
|
+
if (await fs.pathExists(skillSrc)) {
|
|
172
|
+
await copyRecursive(skillSrc, skillDest, counter);
|
|
173
|
+
}
|
|
154
174
|
}
|
|
155
175
|
return counter;
|
|
156
176
|
};
|
|
@@ -190,12 +210,14 @@ var copyAgents = async (_templates, targetDir) => {
|
|
|
190
210
|
}
|
|
191
211
|
return counter;
|
|
192
212
|
};
|
|
193
|
-
var checkAllExtrasExist = async (
|
|
213
|
+
var checkAllExtrasExist = async (templates) => {
|
|
194
214
|
const claudeDir = path.join(getTemplatesDir(), ".claude");
|
|
195
|
-
const skillsSrc = path.join(claudeDir, "skills");
|
|
196
215
|
const commandsSrc = path.join(claudeDir, "commands");
|
|
197
216
|
const agentsSrc = path.join(claudeDir, "agents");
|
|
198
|
-
const hasSkills =
|
|
217
|
+
const hasSkills = templates.some((template) => {
|
|
218
|
+
const skills = TEMPLATE_SKILLS_MAP[template];
|
|
219
|
+
return skills && skills.length > 0;
|
|
220
|
+
});
|
|
199
221
|
const hasCommands = await hasFiles(commandsSrc);
|
|
200
222
|
const hasAgents = await hasFiles(agentsSrc);
|
|
201
223
|
return { hasSkills, hasCommands, hasAgents };
|
|
@@ -409,7 +431,7 @@ var init = async (options) => {
|
|
|
409
431
|
|
|
410
432
|
// src/index.ts
|
|
411
433
|
var program = new Command();
|
|
412
|
-
program.name("claude-code").description("Claude Code documentation installer for projects").version("0.3.
|
|
434
|
+
program.name("claude-code").description("Claude Code documentation installer for projects").version("0.3.14");
|
|
413
435
|
program.option(
|
|
414
436
|
"-t, --template <names>",
|
|
415
437
|
"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.
|
|
3
|
+
"version": "0.3.14",
|
|
4
4
|
"description": "Claude Code documentation installer for projects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": "./dist/index.js",
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
],
|
|
11
11
|
"scripts": {
|
|
12
12
|
"copy-templates": "node scripts/copy-templates.js",
|
|
13
|
-
"build": "tsup &&
|
|
14
|
-
"dev": "
|
|
13
|
+
"build": "yarn tsup && yarn run copy-templates",
|
|
14
|
+
"dev": "yarn run build && node dist/index.js",
|
|
15
15
|
"lint": "eslint src/",
|
|
16
16
|
"lint:fix": "eslint src/ --fix",
|
|
17
|
-
"prepublishOnly": "
|
|
17
|
+
"prepublishOnly": "yarn run build"
|
|
18
18
|
},
|
|
19
19
|
"keywords": [
|
|
20
20
|
"claude",
|