vibes-plug 2.5.0 → 2.11.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 (177) hide show
  1. package/.claude/rules/vibes-plug-core.md +32 -0
  2. package/.cursor/rules/vibes-plug-core.mdc +51 -0
  3. package/.cursorrules +42 -0
  4. package/AGENTS.md +37 -7
  5. package/BLUEPRINT.md +309 -217
  6. package/CHANGELOG.md +133 -1
  7. package/CLAUDE.md +70 -0
  8. package/LICENSE +1 -1
  9. package/README.md +641 -415
  10. package/index.js +19 -0
  11. package/package.json +44 -8
  12. package/plugin.json +24 -7
  13. package/scripts/generate_swarm_gif.py +295 -0
  14. package/scripts/install.js +201 -0
  15. package/skills/accessibility-testing-expert/SKILL.md +116 -0
  16. package/skills/ai-cost-token-optimizer/SKILL.md +82 -52
  17. package/skills/ai-evals-benchmark-expert/SKILL.md +188 -0
  18. package/skills/ai-llm-integration-expert/SKILL.md +185 -178
  19. package/skills/ai-media-generation-expert/SKILL.md +172 -0
  20. package/skills/ai-prompt-engineering-expert/SKILL.md +84 -0
  21. package/skills/angular-expert/SKILL.md +148 -0
  22. package/skills/api-design-expert/SKILL.md +6 -3
  23. package/skills/api-gateway-proxy-expert/SKILL.md +81 -0
  24. package/skills/app-analyzer-optimizer/SKILL.md +6 -3
  25. package/skills/apple-ecosystem-expert/SKILL.md +144 -141
  26. package/skills/{asisten_ramah → asisten-ramah}/SKILL.md +7 -1
  27. package/skills/astro-framework-expert/SKILL.md +200 -0
  28. package/skills/async-queue-temporal-expert/SKILL.md +210 -24
  29. package/skills/authentication-identity-expert/SKILL.md +278 -275
  30. package/skills/auto-doc-updater/SKILL.md +7 -1
  31. package/skills/autonomous-chaos-monkey/SKILL.md +63 -63
  32. package/skills/autonomous-red-teamer/SKILL.md +172 -28
  33. package/skills/autonomous-tdd-debugger/SKILL.md +70 -64
  34. package/skills/background-jobs-queue-expert/SKILL.md +235 -0
  35. package/skills/biome-linter-formatter-expert/SKILL.md +89 -0
  36. package/skills/blockchain-web3-expert/SKILL.md +115 -0
  37. package/skills/bootstrap-to-modern/SKILL.md +9 -6
  38. package/skills/brainstorming/SKILL.md +58 -50
  39. package/skills/browser-automation-expert/SKILL.md +197 -21
  40. package/skills/bun-runtime-expert/SKILL.md +7 -1
  41. package/skills/chatbot-messaging-expert/SKILL.md +114 -0
  42. package/skills/ci-cd-devops-architect/SKILL.md +45 -36
  43. package/skills/cloud-hosting-expert/SKILL.md +7 -1
  44. package/skills/coderabbit/SKILL.md +7 -1
  45. package/skills/compliance-gdpr-privacy-expert/SKILL.md +85 -0
  46. package/skills/cron-scheduler-expert/SKILL.md +303 -297
  47. package/skills/data-pipeline-etl-expert/SKILL.md +84 -0
  48. package/skills/data-telemetry-expert/SKILL.md +7 -1
  49. package/skills/data-visualization-expert/SKILL.md +154 -0
  50. package/skills/database-migration-versioning-expert/SKILL.md +90 -0
  51. package/skills/database-orm-expert/SKILL.md +13 -3
  52. package/skills/dependency-upgrade-migrator/SKILL.md +300 -294
  53. package/skills/design-system-architect/SKILL.md +278 -259
  54. package/skills/desktop-electron-expert/SKILL.md +128 -0
  55. package/skills/documentation-site-expert/SKILL.md +59 -0
  56. package/skills/doku-mcp-server/SKILL.md +7 -1
  57. package/skills/doku-payment-gateway/SKILL.md +7 -1
  58. package/skills/domain-driven-design-expert/SKILL.md +82 -0
  59. package/skills/e2e-testing-expert/SKILL.md +7 -1
  60. package/skills/ecommerce-expert/SKILL.md +87 -0
  61. package/skills/edge-serverless-db-expert/SKILL.md +98 -42
  62. package/skills/email-notification-expert/SKILL.md +367 -361
  63. package/skills/error-resilience-expert/SKILL.md +485 -479
  64. package/skills/event-driven-architect/SKILL.md +7 -1
  65. package/skills/feature-flag-analytics-expert/SKILL.md +65 -45
  66. package/skills/file-upload-media-expert/SKILL.md +436 -430
  67. package/skills/firebase-security-expert/SKILL.md +7 -1
  68. package/skills/form-validation-expert/SKILL.md +406 -400
  69. package/skills/fullstack-expert/SKILL.md +60 -1
  70. package/skills/gemini-agent-booster/SKILL.md +173 -135
  71. package/skills/geospatial-maps-expert/SKILL.md +80 -0
  72. package/skills/global-a11y-i18n-expert/SKILL.md +7 -1
  73. package/skills/glsl-shader-expert/SKILL.md +106 -100
  74. package/skills/go-programming-expert/SKILL.md +21 -15
  75. package/skills/graph-rag-knowledge-expert/SKILL.md +159 -0
  76. package/skills/graphql-apollo-expert/SKILL.md +113 -107
  77. package/skills/headless-cms-expert/SKILL.md +181 -0
  78. package/skills/hig/SKILL.md +7 -1
  79. package/skills/js-backend-expert/SKILL.md +218 -216
  80. package/skills/legacy-code-translator/SKILL.md +70 -64
  81. package/skills/local-slm-edge-ai-expert/SKILL.md +167 -0
  82. package/skills/logging-error-tracking-expert/SKILL.md +343 -337
  83. package/skills/mcp-client-orchestrator/SKILL.md +75 -69
  84. package/skills/mcp-server-architect/SKILL.md +294 -194
  85. package/skills/micro-frontend-architect/SKILL.md +111 -105
  86. package/skills/mobile-expo-expert/SKILL.md +8 -2
  87. package/skills/mobile-push-notification-expert/SKILL.md +70 -50
  88. package/skills/modern-css-native-expert/SKILL.md +189 -0
  89. package/skills/monday-design-aesthetic/SKILL.md +7 -1
  90. package/skills/monorepo-architect/SKILL.md +7 -1
  91. package/skills/mpa-orchestrator/SKILL.md +20 -1
  92. package/skills/multi-agent-orchestration/SKILL.md +254 -234
  93. package/skills/multiple-entry-points/SKILL.md +37 -1
  94. package/skills/mvc-expert/SKILL.md +7 -1
  95. package/skills/n8n-automation-expert/SKILL.md +89 -0
  96. package/skills/nextjs-app-router-expert/SKILL.md +148 -0
  97. package/skills/openapi-swagger-codegen-expert/SKILL.md +67 -0
  98. package/skills/payment-gateway-expert/SKILL.md +85 -1
  99. package/skills/pdf-document-generation-expert/SKILL.md +91 -0
  100. package/skills/performance-web-vitals/SKILL.md +7 -1
  101. package/skills/post-quantum-crypto-migrator/SKILL.md +57 -57
  102. package/skills/prd-architect/SKILL.md +7 -1
  103. package/skills/proactive-background-watcher/SKILL.md +67 -61
  104. package/skills/production-ready-hardener/SKILL.md +461 -455
  105. package/skills/project-context-mapper/SKILL.md +84 -78
  106. package/skills/pwa-offline-first-expert/SKILL.md +185 -0
  107. package/skills/python-programming-expert/SKILL.md +407 -401
  108. package/skills/rate-limit-abuse-prevention/SKILL.md +376 -370
  109. package/skills/realtime-collaboration-expert/SKILL.md +55 -1
  110. package/skills/rich-text-editor-expert/SKILL.md +177 -0
  111. package/skills/rust-programming-expert/SKILL.md +7 -1
  112. package/skills/saas-billing/SKILL.md +7 -1
  113. package/skills/saas-multi-tenant/SKILL.md +7 -1
  114. package/skills/saas-mvp-launcher/SKILL.md +20 -1
  115. package/skills/saas-transformer/SKILL.md +499 -488
  116. package/skills/scalability-clean-code/SKILL.md +7 -1
  117. package/skills/search-engine-expert/SKILL.md +89 -0
  118. package/skills/secure-fuzz-testing/SKILL.md +7 -1
  119. package/skills/self-evolving-memory-graph/SKILL.md +90 -74
  120. package/skills/self-healing-cloud-orchestrator/SKILL.md +57 -57
  121. package/skills/senior-frontend/SKILL.md +141 -161
  122. package/skills/seo/SKILL.md +41 -17
  123. package/skills/session-context-loader/SKILL.md +82 -76
  124. package/skills/session-handoff-resume/SKILL.md +7 -1
  125. package/skills/{skill_baru → skill-baru}/SKILL.md +8 -2
  126. package/skills/solidjs-expert/SKILL.md +80 -0
  127. package/skills/spa-orchestrator/SKILL.md +20 -1
  128. package/skills/sse-websocket-streaming-expert/SKILL.md +93 -0
  129. package/skills/state-management-expert/SKILL.md +7 -1
  130. package/skills/supabase-migration/SKILL.md +47 -1
  131. package/skills/supabase-security-expert/SKILL.md +7 -1
  132. package/skills/svelte-sveltekit-expert/SKILL.md +91 -0
  133. package/skills/svg-animation-motion-expert/SKILL.md +115 -0
  134. package/skills/tailwind-expert/SKILL.md +88 -136
  135. package/skills/tanstack-query-expert/SKILL.md +7 -1
  136. package/skills/tauri-expert/SKILL.md +7 -1
  137. package/skills/token-saver/SKILL.md +1 -1
  138. package/skills/typescript-expert/SKILL.md +12 -6
  139. package/skills/ui-components-expert/SKILL.md +165 -279
  140. package/skills/ui-ux-pro-max/SKILL.md +23 -3
  141. package/skills/vector-db-rag-expert/SKILL.md +175 -19
  142. package/skills/vibe-code-gardener/SKILL.md +1 -1
  143. package/skills/visual-qa-vision-agent/SKILL.md +70 -64
  144. package/skills/voice-ai-realtime-agent/SKILL.md +202 -0
  145. package/skills/vue-frontend-expert/SKILL.md +131 -125
  146. package/skills/wasm-edge-computing-expert/SKILL.md +97 -0
  147. package/skills/web-3d-graphics-expert/SKILL.md +136 -130
  148. package/skills/web-game-engine-expert/SKILL.md +101 -95
  149. package/skills/web-scraper/SKILL.md +157 -207
  150. package/skills/website-design-cloner/SKILL.md +179 -173
  151. package/skills/webxr-ar-vr-expert/SKILL.md +122 -116
  152. package/skills/wordpress-headless-expert/SKILL.md +144 -0
  153. package/skills/zero-to-prod-orchestrator/SKILL.md +52 -27
  154. package/skills/zero-trust-secret-vault/SKILL.md +87 -39
  155. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  156. package/.github/workflows/publish.yml +0 -20
  157. package/CONTRIBUTING.md +0 -199
  158. package/SECURITY.md +0 -21
  159. package/banner.png +0 -0
  160. package/skills/autonomous-swarm-director/SKILL.md +0 -69
  161. package/skills/hyper-context-synthesizer/SKILL.md +0 -55
  162. package/skills/llm-cost-arbitrage-router/SKILL.md +0 -59
  163. package/skills/senior-fullstack/SKILL.md +0 -167
  164. package/skills/senior-fullstack/references/architecture_patterns.md +0 -160
  165. package/skills/senior-fullstack/references/development_workflows.md +0 -222
  166. package/skills/senior-fullstack/references/tech_stack_guide.md +0 -190
  167. package/skills/senior-fullstack/scripts/code_quality_analyzer.py +0 -114
  168. package/skills/senior-fullstack/scripts/fullstack_scaffolder.py +0 -114
  169. package/skills/senior-fullstack/scripts/project_scaffolder.py +0 -114
  170. package/skills/seo-aeo-landing-page-writer/SKILL.md +0 -97
  171. package/skills/seo-geo/SKILL.md +0 -188
  172. package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
  173. package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-312.pyc +0 -0
  174. package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-310.pyc +0 -0
  175. package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-312.pyc +0 -0
  176. package/skills/ui_ux_expert/SKILL.md +0 -125
  177. package/vibes-swarm-demo.gif +0 -0
@@ -1,295 +1,301 @@
1
- ---
2
- name: dependency-upgrade-migrator
3
- description: "Expert guide for dependency upgrades, breaking change migrations, codemod automation, and package audit remediation / Panduan ahli untuk upgrade dependensi, migrasi breaking change, otomasi codemod, dan remediasi audit paket."
1
+ ---
2
+ name: dependency-upgrade-migrator
3
+ description: "Expert guide for dependency upgrades, breaking change migrations, codemod automation, and package audit remediation / Panduan ahli untuk upgrade dependensi, migrasi breaking change, otomasi codemod, dan remediasi audit paket."
4
4
  author: "Roedy Rustam"
5
- ---
6
-
7
- # Dependency Upgrade Migrator (2026 Edition)
8
-
9
- [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
-
11
- ---
12
-
13
- <a name="english"></a>
14
- ## English
15
-
16
- ### Description
17
- Production-grade guide for safely upgrading dependencies, migrating through breaking changes, and maintaining healthy dependency trees. Covers **automated upgrade tooling** (`npm-check-updates`, `taze`, Renovate Bot), **major framework migration guides** (React 18→19, Next.js 14→15, Tailwind v3→v4), **codemod automation** (jscodeshift, ts-morph), **vulnerability remediation** (`npm audit`, `pnpm audit`), **lockfile hygiene**, **monorepo alignment** (pnpm catalogs), and **breaking change detection workflows**.
18
-
19
- ### Trigger Conditions
20
- Activate this skill when:
21
- - Upgrading major versions of frameworks (React, Next.js, Tailwind, etc.).
22
- - Running security audits and remediating vulnerabilities.
23
- - Setting up automated dependency update bots (Renovate, Dependabot).
24
- - Writing or running codemods for API migration.
25
- - Cleaning up dependency trees and removing unused packages.
26
- - Aligning dependency versions across monorepo packages.
27
-
28
- ---
29
-
30
- ### 1. Upgrade Strategy Matrix
31
-
32
- | Upgrade Type | Risk Level | Strategy | Tools |
33
- |---|---|---|---|
34
- | **Patch** (1.0.x) | 🟢 Low | Auto-merge after tests pass | Renovate, Dependabot |
35
- | **Minor** (1.x.0) | 🟡 Medium | Auto-merge with manual review | Renovate + test suite |
36
- | **Major** (x.0.0) | 🔴 High | Manual review, migration guide, branch | Manual + codemods |
37
- | **Security** (any) | 🔴 Critical | Immediate upgrade, hotfix | `npm audit fix`, manual |
38
-
39
- ---
40
-
41
- ### 2. Pre-Upgrade Checklist
42
-
43
- ```markdown
44
- - [ ] Run `pnpm audit` / `npm audit` to identify vulnerabilities
45
- - [ ] Check changelog/migration guide for the target version
46
- - [ ] Ensure test suite is passing on current version (baseline)
47
- - [ ] Create a dedicated branch for the upgrade
48
- - [ ] Check peer dependency compatibility
49
- - [ ] Review breaking changes list
50
- - [ ] Identify files that need codemod transformation
51
- - [ ] Back up lockfile before changes
52
- ```
53
-
54
- ---
55
-
56
- ### 3. Automated Upgrade Tooling
57
-
58
- #### Checking for Updates
59
- ```bash
60
- # Using taze (recommended — supports monorepos)
61
- npx taze major # Show available major upgrades
62
- npx taze minor -w # Auto-write minor updates to package.json
63
- npx taze -r # Recursive (monorepo)
64
-
65
- # Using npm-check-updates
66
- npx ncu # Show available updates
67
- npx ncu -u # Auto-write updates to package.json
68
- npx ncu --target minor # Only show minor updates
69
- ```
70
-
71
- #### Renovate Bot Configuration
72
- ```json
73
- // renovate.json
74
- {
75
- "$schema": "https://docs.renovatebot.com/renovate-schema.json",
76
- "extends": ["config:best-practices"],
77
- "labels": ["dependencies"],
78
- "schedule": ["after 10pm and before 5am every weekday"],
79
- "packageRules": [
80
- {
81
- "matchUpdateTypes": ["patch"],
82
- "automerge": true,
83
- "automergeType": "pr"
84
- },
85
- {
86
- "matchUpdateTypes": ["minor"],
87
- "automerge": true,
88
- "automergeType": "pr",
89
- "requiredStatusChecks": ["ci/test", "ci/build"]
90
- },
91
- {
92
- "matchUpdateTypes": ["major"],
93
- "automerge": false,
94
- "labels": ["major-upgrade", "manual-review"]
95
- },
96
- {
97
- "matchPackageNames": ["typescript", "react", "next"],
98
- "automerge": false,
99
- "labels": ["core-dependency"]
100
- }
101
- ]
102
- }
103
- ```
104
-
105
- ---
106
-
107
- ### 4. Major Framework Migration Guides
108
-
109
- #### React 18 → 19
110
- ```typescript
111
- // Key breaking changes:
112
- // 1. forwardRef no longer needed (ref is a regular prop)
113
- // ❌ Before (React 18)
114
- const Input = forwardRef<HTMLInputElement, Props>((props, ref) => (
115
- <input ref={ref} {...props} />
116
- ));
117
-
118
- // After (React 19)
119
- function Input({ ref, ...props }: Props & { ref?: React.Ref<HTMLInputElement> }) {
120
- return <input ref={ref} {...props} />;
121
- }
122
-
123
- // 2. useActionState replaces useFormState
124
- // ❌ Before: import { useFormState } from 'react-dom'
125
- // ✅ After: import { useActionState } from 'react'
126
-
127
- // 3. use() hook for promises and context
128
- // ✅ New: const data = use(fetchPromise);
129
- // ✅ New: const theme = use(ThemeContext);
130
- ```
131
-
132
- #### Next.js 14 15
133
- ```typescript
134
- // Key changes:
135
- // 1. params/searchParams are now async in page/layout/route
136
- // ❌ Before: export default function Page({ params }: { params: { id: string } })
137
- // After: export default async function Page({ params }: { params: Promise<{ id: string }> }) {
138
- // const { id } = await params;
139
-
140
- // 2. Caching: fetch() no longer cached by default
141
- // Before: fetch() was cached by default
142
- // ✅ After: fetch(url, { cache: 'force-cache' }) for explicit caching
143
-
144
- // 3. Route handlers: GET is no longer cached by default
145
- // Add: export const dynamic = 'force-static' if you want caching
146
- ```
147
-
148
- #### Tailwind CSS v3 v4
149
- ```css
150
- /* Key changes: */
151
- /* 1. Configuration moves from JS to CSS */
152
- /* ❌ Before: tailwind.config.js with theme.extend */
153
- /* After: @theme directive in CSS */
154
-
155
- @import 'tailwindcss';
156
-
157
- @theme {
158
- --color-primary: oklch(0.6 0.2 260);
159
- --font-sans: 'Inter', sans-serif;
160
- --breakpoint-sm: 40rem;
161
- }
162
-
163
- /* 2. No more @tailwind directives */
164
- /* ❌ Before: @tailwind base; @tailwind components; @tailwind utilities; */
165
- /* ✅ After: @import 'tailwindcss'; */
166
-
167
- /* 3. Renamed utilities */
168
- /* Before: bg-opacity-50 */
169
- /* ✅ After: bg-black/50 */
170
- ```
171
-
172
- ---
173
-
174
- ### 5. Codemod Automation (jscodeshift)
175
-
176
- ```typescript
177
- // codemods/remove-forward-ref.ts
178
- import type { API, FileInfo } from 'jscodeshift';
179
-
180
- export default function removeForwardRef(fileInfo: FileInfo, api: API) {
181
- const j = api.jscodeshift;
182
- const root = j(fileInfo.source);
183
-
184
- // Find all forwardRef calls and transform them
185
- root.find(j.CallExpression, {
186
- callee: { name: 'forwardRef' },
187
- }).forEach((path) => {
188
- // Extract the inner component function
189
- const args = path.node.arguments;
190
- if (args.length > 0 && (args[0].type === 'ArrowFunctionExpression' || args[0].type === 'FunctionExpression')) {
191
- // Replace forwardRef(...) with the inner function
192
- j(path).replaceWith(args[0]);
193
- }
194
- });
195
-
196
- // Remove forwardRef import
197
- root.find(j.ImportSpecifier, { imported: { name: 'forwardRef' } }).remove();
198
-
199
- return root.toSource({ quote: 'single' });
200
- }
201
-
202
- // Run: npx jscodeshift -t codemods/remove-forward-ref.ts src/ --extensions=tsx,ts
203
- ```
204
-
205
- ---
206
-
207
- ### 6. Vulnerability Remediation
208
-
209
- ```bash
210
- # Audit current state
211
- pnpm audit # Show vulnerabilities
212
- pnpm audit --fix # Auto-fix where possible
213
-
214
- # For stubborn transitive dependencies
215
- pnpm patch <package>@<version> # Create a local patch
216
- # or
217
- pnpm overrides # Force specific version in package.json
218
-
219
- # package.json — Force resolution
220
- {
221
- "pnpm": {
222
- "overrides": {
223
- "vulnerable-package": ">=2.0.0"
224
- }
225
- }
226
- }
227
- ```
228
-
229
- ---
230
-
231
- ### 7. Dependency Cleanup
232
-
233
- ```bash
234
- # Find unused dependencies
235
- npx depcheck # Detect unused deps
236
- npx depcheck --ignores="@types/*" # Ignore type packages
237
-
238
- # Find duplicate packages
239
- pnpm dedupe # Deduplicate lockfile
240
- pnpm why <package> # See why a package is installed
241
-
242
- # Monorepo: Align versions with pnpm catalogs
243
- # pnpm-workspace.yaml
244
- catalog:
245
- react: "^19.0.0"
246
- typescript: "^5.7.0"
247
- "@tanstack/react-query": "^5.60.0"
248
- ```
249
-
250
- ---
251
-
252
- ### Common Pitfalls to Avoid
253
-
254
- | Anti-Pattern | Problem | Correct Approach |
255
- |---|---|---|
256
- | Upgrading all deps at once | Hard to identify breaking changes | Upgrade one major dep at a time |
257
- | Ignoring peer dependency warnings | Runtime errors, subtle bugs | Resolve all peer dep conflicts |
258
- | No test suite before upgrading | Can't verify nothing broke | Ensure tests pass before AND after |
259
- | `npm audit fix --force` blindly | Can introduce breaking changes | Review each fix manually for major bumps |
260
- | Skipping changelogs | Missing breaking changes | Always read CHANGELOG/migration guide |
261
- | No lockfile in version control | Non-reproducible builds | Always commit `pnpm-lock.yaml` |
262
-
263
- ---
264
-
265
- ### Integration with Other Skills
266
-
267
- - `monorepo-architect` — pnpm catalogs, workspace dependency alignment
268
- - `vibe-code-gardener` Post-upgrade cleanup, dead code removal
269
- - `production-ready-hardener` — Security audit phase
270
- - `ci-cd-devops-architect` — Renovate Bot CI/CD integration
271
- - `e2e-testing-expert` — Regression testing after major upgrades
272
-
273
- ---
274
-
275
- <a name="bahasa-indonesia"></a>
276
- ## Bahasa Indonesia
277
-
278
- ### Deskripsi
279
- Panduan tingkat produksi untuk upgrade dependensi yang aman, migrasi melalui breaking change, dan pemeliharaan dependency tree yang sehat. Mencakup **tooling upgrade otomatis** (`taze`, Renovate Bot), **panduan migrasi framework utama** (React 18→19, Next.js 14→15, Tailwind v3→v4), **otomasi codemod** (jscodeshift, ts-morph), **remediasi kerentanan** (`pnpm audit`), **kebersihan lockfile**, dan **penyelarasan dependensi monorepo** (pnpm catalogs).
280
-
281
- ### Kondisi Pemicu
282
- Aktifkan skill ini ketika:
283
- - Mengupgrade versi mayor framework (React, Next.js, Tailwind, dll).
284
- - Menjalankan audit keamanan dan memperbaiki kerentanan.
285
- - Menyiapkan bot update dependensi otomatis (Renovate, Dependabot).
286
- - Menulis atau menjalankan codemod untuk migrasi API.
287
- - Membersihkan dependency tree dan menghapus paket yang tidak digunakan.
288
-
289
- ### Integrasi dengan Skill Lain
290
-
291
- - `monorepo-architect` pnpm catalogs, penyelarasan dependensi workspace
292
- - `vibe-code-gardener` Pembersihan pasca-upgrade, penghapusan dead code
293
- - `production-ready-hardener` Fase audit keamanan
294
- - `ci-cd-devops-architect` — Integrasi Renovate Bot CI/CD
295
- - `e2e-testing-expert` Pengujian regresi setelah upgrade mayor
5
+ ---
6
+
7
+ # Dependency Upgrade Migrator (2026 Edition)
8
+
9
+ [English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
10
+
11
+ ---
12
+
13
+ <a name="english"></a>
14
+ ## English
15
+
16
+ ### Orchestration & Integration
17
+ Connects and orchestrates with relevant domain skills like `brainstorming`, `zero-to-prod-orchestrator`, and `project-context-mapper` to ensure cohesive execution.
18
+
19
+ ### Description
20
+ Production-grade guide for safely upgrading dependencies, migrating through breaking changes, and maintaining healthy dependency trees. Covers **automated upgrade tooling** (`npm-check-updates`, `taze`, Renovate Bot), **major framework migration guides** (React 18→19, Next.js 14→15, Tailwind v3→v4), **codemod automation** (jscodeshift, ts-morph), **vulnerability remediation** (`npm audit`, `pnpm audit`), **lockfile hygiene**, **monorepo alignment** (pnpm catalogs), and **breaking change detection workflows**.
21
+
22
+ ### Trigger Conditions
23
+ Activate this skill when:
24
+ - Upgrading major versions of frameworks (React, Next.js, Tailwind, etc.).
25
+ - Running security audits and remediating vulnerabilities.
26
+ - Setting up automated dependency update bots (Renovate, Dependabot).
27
+ - Writing or running codemods for API migration.
28
+ - Cleaning up dependency trees and removing unused packages.
29
+ - Aligning dependency versions across monorepo packages.
30
+
31
+ ---
32
+
33
+ ### 1. Upgrade Strategy Matrix
34
+
35
+ | Upgrade Type | Risk Level | Strategy | Tools |
36
+ |---|---|---|---|
37
+ | **Patch** (1.0.x) | 🟢 Low | Auto-merge after tests pass | Renovate, Dependabot |
38
+ | **Minor** (1.x.0) | 🟡 Medium | Auto-merge with manual review | Renovate + test suite |
39
+ | **Major** (x.0.0) | 🔴 High | Manual review, migration guide, branch | Manual + codemods |
40
+ | **Security** (any) | 🔴 Critical | Immediate upgrade, hotfix | `npm audit fix`, manual |
41
+
42
+ ---
43
+
44
+ ### 2. Pre-Upgrade Checklist
45
+
46
+ ```markdown
47
+ - [ ] Run `pnpm audit` / `npm audit` to identify vulnerabilities
48
+ - [ ] Check changelog/migration guide for the target version
49
+ - [ ] Ensure test suite is passing on current version (baseline)
50
+ - [ ] Create a dedicated branch for the upgrade
51
+ - [ ] Check peer dependency compatibility
52
+ - [ ] Review breaking changes list
53
+ - [ ] Identify files that need codemod transformation
54
+ - [ ] Back up lockfile before changes
55
+ ```
56
+
57
+ ---
58
+
59
+ ### 3. Automated Upgrade Tooling
60
+
61
+ #### Checking for Updates
62
+ ```bash
63
+ # Using taze (recommended supports monorepos)
64
+ npx taze major # Show available major upgrades
65
+ npx taze minor -w # Auto-write minor updates to package.json
66
+ npx taze -r # Recursive (monorepo)
67
+
68
+ # Using npm-check-updates
69
+ npx ncu # Show available updates
70
+ npx ncu -u # Auto-write updates to package.json
71
+ npx ncu --target minor # Only show minor updates
72
+ ```
73
+
74
+ #### Renovate Bot Configuration
75
+ ```json
76
+ // renovate.json
77
+ {
78
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
79
+ "extends": ["config:best-practices"],
80
+ "labels": ["dependencies"],
81
+ "schedule": ["after 10pm and before 5am every weekday"],
82
+ "packageRules": [
83
+ {
84
+ "matchUpdateTypes": ["patch"],
85
+ "automerge": true,
86
+ "automergeType": "pr"
87
+ },
88
+ {
89
+ "matchUpdateTypes": ["minor"],
90
+ "automerge": true,
91
+ "automergeType": "pr",
92
+ "requiredStatusChecks": ["ci/test", "ci/build"]
93
+ },
94
+ {
95
+ "matchUpdateTypes": ["major"],
96
+ "automerge": false,
97
+ "labels": ["major-upgrade", "manual-review"]
98
+ },
99
+ {
100
+ "matchPackageNames": ["typescript", "react", "next"],
101
+ "automerge": false,
102
+ "labels": ["core-dependency"]
103
+ }
104
+ ]
105
+ }
106
+ ```
107
+
108
+ ---
109
+
110
+ ### 4. Major Framework Migration Guides
111
+
112
+ #### React 18 19
113
+ ```typescript
114
+ // Key breaking changes:
115
+ // 1. forwardRef no longer needed (ref is a regular prop)
116
+ // ❌ Before (React 18)
117
+ const Input = forwardRef<HTMLInputElement, Props>((props, ref) => (
118
+ <input ref={ref} {...props} />
119
+ ));
120
+
121
+ // ✅ After (React 19)
122
+ function Input({ ref, ...props }: Props & { ref?: React.Ref<HTMLInputElement> }) {
123
+ return <input ref={ref} {...props} />;
124
+ }
125
+
126
+ // 2. useActionState replaces useFormState
127
+ // Before: import { useFormState } from 'react-dom'
128
+ // ✅ After: import { useActionState } from 'react'
129
+
130
+ // 3. use() hook for promises and context
131
+ // ✅ New: const data = use(fetchPromise);
132
+ // New: const theme = use(ThemeContext);
133
+ ```
134
+
135
+ #### Next.js 14 15
136
+ ```typescript
137
+ // Key changes:
138
+ // 1. params/searchParams are now async in page/layout/route
139
+ // ❌ Before: export default function Page({ params }: { params: { id: string } })
140
+ // After: export default async function Page({ params }: { params: Promise<{ id: string }> }) {
141
+ // const { id } = await params;
142
+
143
+ // 2. Caching: fetch() no longer cached by default
144
+ // Before: fetch() was cached by default
145
+ // ✅ After: fetch(url, { cache: 'force-cache' }) for explicit caching
146
+
147
+ // 3. Route handlers: GET is no longer cached by default
148
+ // Add: export const dynamic = 'force-static' if you want caching
149
+ ```
150
+
151
+ #### Tailwind CSS v3 v4
152
+ ```css
153
+ /* Key changes: */
154
+ /* 1. Configuration moves from JS to CSS */
155
+ /* ❌ Before: tailwind.config.js with theme.extend */
156
+ /* ✅ After: @theme directive in CSS */
157
+
158
+ @import 'tailwindcss';
159
+
160
+ @theme {
161
+ --color-primary: oklch(0.6 0.2 260);
162
+ --font-sans: 'Inter', sans-serif;
163
+ --breakpoint-sm: 40rem;
164
+ }
165
+
166
+ /* 2. No more @tailwind directives */
167
+ /* Before: @tailwind base; @tailwind components; @tailwind utilities; */
168
+ /* After: @import 'tailwindcss'; */
169
+
170
+ /* 3. Renamed utilities */
171
+ /* ❌ Before: bg-opacity-50 */
172
+ /* ✅ After: bg-black/50 */
173
+ ```
174
+
175
+ ---
176
+
177
+ ### 5. Codemod Automation (jscodeshift)
178
+
179
+ ```typescript
180
+ // codemods/remove-forward-ref.ts
181
+ import type { API, FileInfo } from 'jscodeshift';
182
+
183
+ export default function removeForwardRef(fileInfo: FileInfo, api: API) {
184
+ const j = api.jscodeshift;
185
+ const root = j(fileInfo.source);
186
+
187
+ // Find all forwardRef calls and transform them
188
+ root.find(j.CallExpression, {
189
+ callee: { name: 'forwardRef' },
190
+ }).forEach((path) => {
191
+ // Extract the inner component function
192
+ const args = path.node.arguments;
193
+ if (args.length > 0 && (args[0].type === 'ArrowFunctionExpression' || args[0].type === 'FunctionExpression')) {
194
+ // Replace forwardRef(...) with the inner function
195
+ j(path).replaceWith(args[0]);
196
+ }
197
+ });
198
+
199
+ // Remove forwardRef import
200
+ root.find(j.ImportSpecifier, { imported: { name: 'forwardRef' } }).remove();
201
+
202
+ return root.toSource({ quote: 'single' });
203
+ }
204
+
205
+ // Run: npx jscodeshift -t codemods/remove-forward-ref.ts src/ --extensions=tsx,ts
206
+ ```
207
+
208
+ ---
209
+
210
+ ### 6. Vulnerability Remediation
211
+
212
+ ```bash
213
+ # Audit current state
214
+ pnpm audit # Show vulnerabilities
215
+ pnpm audit --fix # Auto-fix where possible
216
+
217
+ # For stubborn transitive dependencies
218
+ pnpm patch <package>@<version> # Create a local patch
219
+ # or
220
+ pnpm overrides # Force specific version in package.json
221
+
222
+ # package.json — Force resolution
223
+ {
224
+ "pnpm": {
225
+ "overrides": {
226
+ "vulnerable-package": ">=2.0.0"
227
+ }
228
+ }
229
+ }
230
+ ```
231
+
232
+ ---
233
+
234
+ ### 7. Dependency Cleanup
235
+
236
+ ```bash
237
+ # Find unused dependencies
238
+ npx depcheck # Detect unused deps
239
+ npx depcheck --ignores="@types/*" # Ignore type packages
240
+
241
+ # Find duplicate packages
242
+ pnpm dedupe # Deduplicate lockfile
243
+ pnpm why <package> # See why a package is installed
244
+
245
+ # Monorepo: Align versions with pnpm catalogs
246
+ # pnpm-workspace.yaml
247
+ catalog:
248
+ react: "^19.0.0"
249
+ typescript: "^5.7.0"
250
+ "@tanstack/react-query": "^5.60.0"
251
+ ```
252
+
253
+ ---
254
+
255
+ ### Common Pitfalls to Avoid
256
+
257
+ | Anti-Pattern | Problem | Correct Approach |
258
+ |---|---|---|
259
+ | Upgrading all deps at once | Hard to identify breaking changes | Upgrade one major dep at a time |
260
+ | Ignoring peer dependency warnings | Runtime errors, subtle bugs | Resolve all peer dep conflicts |
261
+ | No test suite before upgrading | Can't verify nothing broke | Ensure tests pass before AND after |
262
+ | `npm audit fix --force` blindly | Can introduce breaking changes | Review each fix manually for major bumps |
263
+ | Skipping changelogs | Missing breaking changes | Always read CHANGELOG/migration guide |
264
+ | No lockfile in version control | Non-reproducible builds | Always commit `pnpm-lock.yaml` |
265
+
266
+ ---
267
+
268
+ ### Integration with Other Skills
269
+
270
+ - `monorepo-architect` — pnpm catalogs, workspace dependency alignment
271
+ - `vibe-code-gardener` — Post-upgrade cleanup, dead code removal
272
+ - `production-ready-hardener` — Security audit phase
273
+ - `ci-cd-devops-architect` — Renovate Bot CI/CD integration
274
+ - `e2e-testing-expert` — Regression testing after major upgrades
275
+
276
+ ---
277
+
278
+ <a name="bahasa-indonesia"></a>
279
+ ## Bahasa Indonesia
280
+
281
+ ### Integrasi Orkestrasi
282
+ Terhubung dan mengorkestrasi skill domain yang relevan seperti `brainstorming`, `zero-to-prod-orchestrator`, dan `project-context-mapper` untuk memastikan eksekusi yang kohesif.
283
+
284
+ ### Deskripsi
285
+ Panduan tingkat produksi untuk upgrade dependensi yang aman, migrasi melalui breaking change, dan pemeliharaan dependency tree yang sehat. Mencakup **tooling upgrade otomatis** (`taze`, Renovate Bot), **panduan migrasi framework utama** (React 18→19, Next.js 14→15, Tailwind v3→v4), **otomasi codemod** (jscodeshift, ts-morph), **remediasi kerentanan** (`pnpm audit`), **kebersihan lockfile**, dan **penyelarasan dependensi monorepo** (pnpm catalogs).
286
+
287
+ ### Kondisi Pemicu
288
+ Aktifkan skill ini ketika:
289
+ - Mengupgrade versi mayor framework (React, Next.js, Tailwind, dll).
290
+ - Menjalankan audit keamanan dan memperbaiki kerentanan.
291
+ - Menyiapkan bot update dependensi otomatis (Renovate, Dependabot).
292
+ - Menulis atau menjalankan codemod untuk migrasi API.
293
+ - Membersihkan dependency tree dan menghapus paket yang tidak digunakan.
294
+
295
+ ### Integrasi dengan Skill Lain
296
+
297
+ - `monorepo-architect` — pnpm catalogs, penyelarasan dependensi workspace
298
+ - `vibe-code-gardener` — Pembersihan pasca-upgrade, penghapusan dead code
299
+ - `production-ready-hardener` — Fase audit keamanan
300
+ - `ci-cd-devops-architect` — Integrasi Renovate Bot CI/CD
301
+ - `e2e-testing-expert` — Pengujian regresi setelah upgrade mayor