@kood/claude-code 0.3.12 → 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.
Files changed (92) hide show
  1. package/dist/index.js +30 -8
  2. package/package.json +4 -4
  3. package/templates/.claude/skills/nextjs-react-best-practices/AGENTS.md +663 -0
  4. package/templates/.claude/skills/nextjs-react-best-practices/SKILL.md +269 -0
  5. package/templates/.claude/skills/tanstack-start-react-best-practices/AGENTS.md +751 -0
  6. package/templates/.claude/skills/tanstack-start-react-best-practices/SKILL.md +431 -0
  7. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-defer-await.md +80 -0
  8. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-dependencies.md +36 -0
  9. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-loader.md +44 -0
  10. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-parallel.md +28 -0
  11. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-barrel-imports.md +59 -0
  12. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-conditional.md +31 -0
  13. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  14. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-lazy-routes.md +67 -0
  15. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-preload.md +50 -0
  16. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-event-listeners.md +74 -0
  17. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-tanstack-query.md +77 -0
  18. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-batch-dom-css.md +82 -0
  19. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-function-results.md +80 -0
  20. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-property-access.md +28 -0
  21. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-storage.md +70 -0
  22. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-combine-iterations.md +32 -0
  23. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-early-exit.md +50 -0
  24. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-hoist-regexp.md +45 -0
  25. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-index-maps.md +37 -0
  26. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-length-check-first.md +49 -0
  27. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-min-max-loop.md +82 -0
  28. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-set-map-lookups.md +24 -0
  29. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  30. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  31. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-conditional-render.md +40 -0
  32. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-content-visibility.md +38 -0
  33. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  34. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-svg-precision.md +28 -0
  35. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-defer-reads.md +39 -0
  36. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-dependencies.md +45 -0
  37. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-derived-state.md +29 -0
  38. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  39. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  40. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-memo.md +44 -0
  41. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-transitions.md +40 -0
  42. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-cache-lru.md +41 -0
  43. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-deferred-data.md +67 -0
  44. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-parallel-fetching.md +60 -0
  45. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-serialization.md +38 -0
  46. package/templates/.claude/skills/vercel-react-best-practices/AGENTS.md +0 -2249
  47. package/templates/.claude/skills/vercel-react-best-practices/SKILL.md +0 -125
  48. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/advanced-event-handler-refs.md +0 -0
  49. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/advanced-use-latest.md +0 -0
  50. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/async-api-routes.md +0 -0
  51. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/async-defer-await.md +0 -0
  52. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/async-dependencies.md +0 -0
  53. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/async-parallel.md +0 -0
  54. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/async-suspense-boundaries.md +0 -0
  55. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/bundle-barrel-imports.md +0 -0
  56. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/bundle-conditional.md +0 -0
  57. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/bundle-defer-third-party.md +0 -0
  58. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/bundle-dynamic-imports.md +0 -0
  59. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/bundle-preload.md +0 -0
  60. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/client-event-listeners.md +0 -0
  61. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/client-swr-dedup.md +0 -0
  62. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/js-batch-dom-css.md +0 -0
  63. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/js-cache-function-results.md +0 -0
  64. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/js-cache-property-access.md +0 -0
  65. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/js-cache-storage.md +0 -0
  66. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/js-combine-iterations.md +0 -0
  67. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/js-early-exit.md +0 -0
  68. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/js-hoist-regexp.md +0 -0
  69. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/js-index-maps.md +0 -0
  70. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/js-length-check-first.md +0 -0
  71. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/js-min-max-loop.md +0 -0
  72. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/js-set-map-lookups.md +0 -0
  73. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/js-tosorted-immutable.md +0 -0
  74. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/rendering-activity.md +0 -0
  75. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/rendering-animate-svg-wrapper.md +0 -0
  76. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/rendering-conditional-render.md +0 -0
  77. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/rendering-content-visibility.md +0 -0
  78. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/rendering-hoist-jsx.md +0 -0
  79. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/rendering-hydration-no-flicker.md +0 -0
  80. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/rendering-svg-precision.md +0 -0
  81. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/rerender-defer-reads.md +0 -0
  82. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/rerender-dependencies.md +0 -0
  83. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/rerender-derived-state.md +0 -0
  84. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/rerender-functional-setstate.md +0 -0
  85. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/rerender-lazy-state-init.md +0 -0
  86. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/rerender-memo.md +0 -0
  87. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/rerender-transitions.md +0 -0
  88. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/server-after-nonblocking.md +0 -0
  89. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/server-cache-lru.md +0 -0
  90. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/server-cache-react.md +0 -0
  91. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/server-parallel-fetching.md +0 -0
  92. /package/templates/.claude/skills/{vercel-react-best-practices → nextjs-react-best-practices}/rules/server-serialization.md +0 -0
@@ -1,125 +0,0 @@
1
- ---
2
- name: vercel-react-best-practices
3
- description: React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
4
- license: MIT
5
- metadata:
6
- author: vercel
7
- version: "1.0.0"
8
- ---
9
-
10
- # Vercel React Best Practices
11
-
12
- Comprehensive performance optimization guide for React and Next.js applications, maintained by Vercel. Contains 45 rules across 8 categories, prioritized by impact to guide automated refactoring and code generation.
13
-
14
- ## When to Apply
15
-
16
- Reference these guidelines when:
17
- - Writing new React components or Next.js pages
18
- - Implementing data fetching (client or server-side)
19
- - Reviewing code for performance issues
20
- - Refactoring existing React/Next.js code
21
- - Optimizing bundle size or load times
22
-
23
- ## Rule Categories by Priority
24
-
25
- | Priority | Category | Impact | Prefix |
26
- |----------|----------|--------|--------|
27
- | 1 | Eliminating Waterfalls | CRITICAL | `async-` |
28
- | 2 | Bundle Size Optimization | CRITICAL | `bundle-` |
29
- | 3 | Server-Side Performance | HIGH | `server-` |
30
- | 4 | Client-Side Data Fetching | MEDIUM-HIGH | `client-` |
31
- | 5 | Re-render Optimization | MEDIUM | `rerender-` |
32
- | 6 | Rendering Performance | MEDIUM | `rendering-` |
33
- | 7 | JavaScript Performance | LOW-MEDIUM | `js-` |
34
- | 8 | Advanced Patterns | LOW | `advanced-` |
35
-
36
- ## Quick Reference
37
-
38
- ### 1. Eliminating Waterfalls (CRITICAL)
39
-
40
- - `async-defer-await` - Move await into branches where actually used
41
- - `async-parallel` - Use Promise.all() for independent operations
42
- - `async-dependencies` - Use better-all for partial dependencies
43
- - `async-api-routes` - Start promises early, await late in API routes
44
- - `async-suspense-boundaries` - Use Suspense to stream content
45
-
46
- ### 2. Bundle Size Optimization (CRITICAL)
47
-
48
- - `bundle-barrel-imports` - Import directly, avoid barrel files
49
- - `bundle-dynamic-imports` - Use next/dynamic for heavy components
50
- - `bundle-defer-third-party` - Load analytics/logging after hydration
51
- - `bundle-conditional` - Load modules only when feature is activated
52
- - `bundle-preload` - Preload on hover/focus for perceived speed
53
-
54
- ### 3. Server-Side Performance (HIGH)
55
-
56
- - `server-cache-react` - Use React.cache() for per-request deduplication
57
- - `server-cache-lru` - Use LRU cache for cross-request caching
58
- - `server-serialization` - Minimize data passed to client components
59
- - `server-parallel-fetching` - Restructure components to parallelize fetches
60
- - `server-after-nonblocking` - Use after() for non-blocking operations
61
-
62
- ### 4. Client-Side Data Fetching (MEDIUM-HIGH)
63
-
64
- - `client-swr-dedup` - Use SWR for automatic request deduplication
65
- - `client-event-listeners` - Deduplicate global event listeners
66
-
67
- ### 5. Re-render Optimization (MEDIUM)
68
-
69
- - `rerender-defer-reads` - Don't subscribe to state only used in callbacks
70
- - `rerender-memo` - Extract expensive work into memoized components
71
- - `rerender-dependencies` - Use primitive dependencies in effects
72
- - `rerender-derived-state` - Subscribe to derived booleans, not raw values
73
- - `rerender-functional-setstate` - Use functional setState for stable callbacks
74
- - `rerender-lazy-state-init` - Pass function to useState for expensive values
75
- - `rerender-transitions` - Use startTransition for non-urgent updates
76
-
77
- ### 6. Rendering Performance (MEDIUM)
78
-
79
- - `rendering-animate-svg-wrapper` - Animate div wrapper, not SVG element
80
- - `rendering-content-visibility` - Use content-visibility for long lists
81
- - `rendering-hoist-jsx` - Extract static JSX outside components
82
- - `rendering-svg-precision` - Reduce SVG coordinate precision
83
- - `rendering-hydration-no-flicker` - Use inline script for client-only data
84
- - `rendering-activity` - Use Activity component for show/hide
85
- - `rendering-conditional-render` - Use ternary, not && for conditionals
86
-
87
- ### 7. JavaScript Performance (LOW-MEDIUM)
88
-
89
- - `js-batch-dom-css` - Group CSS changes via classes or cssText
90
- - `js-index-maps` - Build Map for repeated lookups
91
- - `js-cache-property-access` - Cache object properties in loops
92
- - `js-cache-function-results` - Cache function results in module-level Map
93
- - `js-cache-storage` - Cache localStorage/sessionStorage reads
94
- - `js-combine-iterations` - Combine multiple filter/map into one loop
95
- - `js-length-check-first` - Check array length before expensive comparison
96
- - `js-early-exit` - Return early from functions
97
- - `js-hoist-regexp` - Hoist RegExp creation outside loops
98
- - `js-min-max-loop` - Use loop for min/max instead of sort
99
- - `js-set-map-lookups` - Use Set/Map for O(1) lookups
100
- - `js-tosorted-immutable` - Use toSorted() for immutability
101
-
102
- ### 8. Advanced Patterns (LOW)
103
-
104
- - `advanced-event-handler-refs` - Store event handlers in refs
105
- - `advanced-use-latest` - useLatest for stable callback refs
106
-
107
- ## How to Use
108
-
109
- Read individual rule files for detailed explanations and code examples:
110
-
111
- ```
112
- rules/async-parallel.md
113
- rules/bundle-barrel-imports.md
114
- rules/_sections.md
115
- ```
116
-
117
- Each rule file contains:
118
- - Brief explanation of why it matters
119
- - Incorrect code example with explanation
120
- - Correct code example with explanation
121
- - Additional context and references
122
-
123
- ## Full Compiled Document
124
-
125
- For the complete guide with all rules expanded: `AGENTS.md`