[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71S3X13PKA0SRG6HWR0DXVB":3,"skill-same:01M71S3X13PKA0SRG6HWR0DXVB":66},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":13,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":51,"install":52,"resources":65},"01M71S3X13PKA0SRG6HWR0DXVB","dependency-upgrade",null,"Manage major dependency version upgrades with compatibility analysis, staged rollout, and comprehensive testing. Use when upgrading framework versions, updating major dependencies, or managing brea...","javiertarazon\u002Fide-agente-free-jt7-","javiertarazon","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F153141207?v=4","01M71R52TB3S9HXKH6WSNT8A7V","01M71R52VG5KS2DKDDH4GDQ30A",0,"MIT","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fdependency-upgrade\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"dependency","dependency upgrade","upgrade","staged","dependencies","with","version","use","upgrades","manage","framework","compatibility","analysis","unknown","rollout","when","testing","community","2026-11-10 13:02:02",false,"---\nname: dependency-upgrade\ndescription: \"Manage major dependency version upgrades with compatibility analysis, staged rollout, and comprehensive testing. Use when upgrading framework versions, updating major dependencies, or managing brea...\"\nrisk: unknown\nsource: community\n---\n\n# Dependency Upgrade\n\nMaster major dependency version upgrades, compatibility analysis, staged upgrade strategies, and comprehensive testing approaches.\n\n## Do not use this skill when\n\n- The task is unrelated to dependency upgrade\n- You need a different domain or tool outside this scope\n\n## Instructions\n\n- Clarify goals, constraints, and required inputs.\n- Apply relevant best practices and validate outcomes.\n- Provide actionable steps and verification.\n- If detailed examples are required, open `resources\u002Fimplementation-playbook.md`.\n\n## Use this skill when\n\n- Upgrading major framework versions\n- Updating security-vulnerable dependencies\n- Modernizing legacy dependencies\n- Resolving dependency conflicts\n- Planning incremental upgrade paths\n- Testing compatibility matrices\n- Automating dependency updates\n\n## Semantic Versioning Review\n\n```\nMAJOR.MINOR.PATCH (e.g., 2.3.1)\n\nMAJOR: Breaking changes\nMINOR: New features, backward compatible\nPATCH: Bug fixes, backward compatible\n\n^2.3.1 = >=2.3.1 \u003C3.0.0 (minor updates)\n~2.3.1 = >=2.3.1 \u003C2.4.0 (patch updates)\n2.3.1 = exact version\n```\n\n## Dependency Analysis\n\n### Audit Dependencies\n```bash\n# npm\nnpm outdated\nnpm audit\nnpm audit fix\n\n# yarn\nyarn outdated\nyarn audit\n\n# Check for major updates\nnpx npm-check-updates\nnpx npm-check-updates -u  # Update package.json\n```\n\n### Analyze Dependency Tree\n```bash\n# See why a package is installed\nnpm ls package-name\nyarn why package-name\n\n# Find duplicate packages\nnpm dedupe\nyarn dedupe\n\n# Visualize dependencies\nnpx madge --image graph.png src\u002F\n```\n\n## Compatibility Matrix\n\n```javascript\n\u002F\u002F compatibility-matrix.js\nconst compatibilityMatrix = {\n  'react': {\n    '16.x': {\n      'react-dom': '^16.0.0',\n      'react-router-dom': '^5.0.0',\n      '@testing-library\u002Freact': '^11.0.0'\n    },\n    '17.x': {\n      'react-dom': '^17.0.0',\n      'react-router-dom': '^5.0.0 || ^6.0.0',\n      '@testing-library\u002Freact': '^12.0.0'\n    },\n    '18.x': {\n      'react-dom': '^18.0.0',\n      'react-router-dom': '^6.0.0',\n      '@testing-library\u002Freact': '^13.0.0'\n    }\n  }\n};\n\nfunction checkCompatibility(packages) {\n  \u002F\u002F Validate package versions against matrix\n}\n```\n\n## Staged Upgrade Strategy\n\n### Phase 1: Planning\n```bash\n# 1. Identify current versions\nnpm list --depth=0\n\n# 2. Check for breaking changes\n# Read CHANGELOG.md and MIGRATION.md\n\n# 3. Create upgrade plan\necho \"Upgrade order:\n1. TypeScript\n2. React\n3. React Router\n4. Testing libraries\n5. Build tools\" > UPGRADE_PLAN.md\n```\n\n### Phase 2: Incremental Updates\n```bash\n# Don't upgrade everything at once!\n\n# Step 1: Update TypeScript\nnpm install typescript@latest\n\n# Test\nnpm run test\nnpm run build\n\n# Step 2: Update React (one major version at a time)\nnpm install react@17 react-dom@17\n\n# Test again\nnpm run test\n\n# Step 3: Continue with other packages\nnpm install react-router-dom@6\n\n# And so on...\n```\n\n### Phase 3: Validation\n```javascript\n\u002F\u002F tests\u002Fcompatibility.test.js\ndescribe('Dependency Compatibility', () => {\n  it('should have compatible React versions', () => {\n    const reactVersion = require('react\u002Fpackage.json').version;\n    const reactDomVersion = require('react-dom\u002Fpackage.json').version;\n\n    expect(reactVersion).toBe(reactDomVersion);\n  });\n\n  it('should not have peer dependency warnings', () => {\n    \u002F\u002F Run npm ls and check for warnings\n  });\n});\n```\n\n## Breaking Change Handling\n\n### Identifying Breaking Changes\n```bash\n# Use changelog parsers\nnpx changelog-parser react 16.0.0 17.0.0\n\n# Or manually check\ncurl https:\u002F\u002Fraw.githubusercontent.com\u002Ffacebook\u002Freact\u002Fmain\u002FCHANGELOG.md\n```\n\n### Codemod for Automated Fixes\n```bash\n# React upgrade codemods\nnpx react-codeshift \u003Ctransform> \u003Cpath>\n\n# Example: Update lifecycle methods\nnpx react-codeshift \\\n  --parser tsx \\\n  --transform react-codeshift\u002Ftransforms\u002Frename-unsafe-lifecycles.js \\\n  src\u002F\n```\n\n### Custom Migration Script\n```javascript\n\u002F\u002F migration-script.js\nconst fs = require('fs');\nconst glob = require('glob');\n\nglob('src\u002F**\u002F*.tsx', (err, files) => {\n  files.forEach(file => {\n    let content = fs.readFileSync(file, 'utf8');\n\n    \u002F\u002F Replace old API with new API\n    content = content.replace(\n      \u002FcomponentWillMount\u002Fg,\n      'UNSAFE_componentWillMount'\n    );\n\n    \u002F\u002F Update imports\n    content = content.replace(\n      \u002Fimport { Component } from 'react'\u002Fg,\n      \"import React, { Component } from 'react'\"\n    );\n\n    fs.writeFileSync(file, content);\n  });\n});\n```\n\n## Testing Strategy\n\n### Unit Tests\n```javascript\n\u002F\u002F Ensure tests pass before and after upgrade\nnpm run test\n\n\u002F\u002F Update test utilities if needed\nnpm install @testing-library\u002Freact@latest\n```\n\n### Integration Tests\n```javascript\n\u002F\u002F tests\u002Fintegration\u002Fapp.test.js\ndescribe('App Integration', () => {\n  it('should render without crashing', () => {\n    render(\u003CApp \u002F>);\n  });\n\n  it('should handle navigation', () => {\n    const { getByText } = render(\u003CApp \u002F>);\n    fireEvent.click(getByText('Navigate'));\n    expect(screen.getByText('New Page')).toBeInTheDocument();\n  });\n});\n```\n\n### Visual Regression Tests\n```javascript\n\u002F\u002F visual-regression.test.js\ndescribe('Visual Regression', () => {\n  it('should match snapshot', () => {\n    const { container } = render(\u003CApp \u002F>);\n    expect(container.firstChild).toMatchSnapshot();\n  });\n});\n```\n\n### E2E Tests\n```javascript\n\u002F\u002F cypress\u002Fe2e\u002Fapp.cy.js\ndescribe('E2E Tests', () => {\n  it('should complete user flow', () => {\n    cy.visit('\u002F');\n    cy.get('[data-testid=\"login\"]').click();\n    cy.get('input[name=\"email\"]').type('user@example.com');\n    cy.get('button[type=\"submit\"]').click();\n    cy.url().should('include', '\u002Fdashboard');\n  });\n});\n```\n\n## Automated Dependency Updates\n\n### Renovate Configuration\n```json\n\u002F\u002F renovate.json\n{\n  \"extends\": [\"config:base\"],\n  \"packageRules\": [\n    {\n      \"matchUpdateTypes\": [\"minor\", \"patch\"],\n      \"automerge\": true\n    },\n    {\n      \"matchUpdateTypes\": [\"major\"],\n      \"automerge\": false,\n      \"labels\": [\"major-update\"]\n    }\n  ],\n  \"schedule\": [\"before 3am on Monday\"],\n  \"timezone\": \"America\u002FNew_York\"\n}\n```\n\n### Dependabot Configuration\n```yaml\n# .github\u002Fdependabot.yml\nversion: 2\nupdates:\n  - package-ecosystem: \"npm\"\n    directory: \"\u002F\"\n    schedule:\n      interval: \"weekly\"\n    open-pull-requests-limit: 5\n    reviewers:\n      - \"team-leads\"\n    commit-message:\n      prefix: \"chore\"\n      include: \"scope\"\n```\n\n## Rollback Plan\n\n```javascript\n\u002F\u002F rollback.sh\n#!\u002Fbin\u002Fbash\n\n# Save current state\ngit stash\ngit checkout -b upgrade-branch\n\n# Attempt upgrade\nnpm install package@latest\n\n# Run tests\nif npm run test; then\n  echo \"Upgrade successful\"\n  git add package.json package-lock.json\n  git commit -m \"chore: upgrade package\"\nelse\n  echo \"Upgrade failed, rolling back\"\n  git checkout main\n  git branch -D upgrade-branch\n  npm install  # Restore from package-lock.json\nfi\n```\n\n## Common Upgrade Patterns\n\n### Lock File Management\n```bash\n# npm\nnpm install --package-lock-only  # Update lock file only\nnpm ci  # Clean install from lock file\n\n# yarn\nyarn install --frozen-lockfile  # CI mode\nyarn upgrade-interactive  # Interactive upgrades\n```\n\n### Peer Dependency Resolution\n```bash\n# npm 7+: strict peer dependencies\nnpm install --legacy-peer-deps  # Ignore peer deps\n\n# npm 8+: override peer dependencies\nnpm install --force\n```\n\n### Workspace Upgrades\n```bash\n# Update all workspace packages\nnpm install --workspaces\n\n# Update specific workspace\nnpm install package@latest --workspace=packages\u002Fapp\n```\n\n## Resources\n\n- **references\u002Fsemver.md**: Semantic versioning guide\n- **references\u002Fcompatibility-matrix.md**: Common compatibility issues\n- **references\u002Fstaged-upgrades.md**: Incremental upgrade strategies\n- **references\u002Ftesting-strategy.md**: Comprehensive testing approaches\n- **assets\u002Fupgrade-checklist.md**: Step-by-step checklist\n- **assets\u002Fcompatibility-matrix.csv**: Version compatibility table\n- **scripts\u002Faudit-dependencies.sh**: Dependency audit script\n\n## Best Practices\n\n1. **Read Changelogs**: Understand what changed\n2. **Upgrade Incrementally**: One major version at a time\n3. **Test Thoroughly**: Unit, integration, E2E tests\n4. **Check Peer Dependencies**: Resolve conflicts early\n5. **Use Lock Files**: Ensure reproducible installs\n6. **Automate Updates**: Use Renovate or Dependabot\n7. **Monitor**: Watch for runtime errors post-upgrade\n8. **Document**: Keep upgrade notes\n\n## Upgrade Checklist\n\n```markdown\nPre-Upgrade:\n- [ ] Review current dependency versions\n- [ ] Read changelogs for breaking changes\n- [ ] Create feature branch\n- [ ] Backup current state (git tag)\n- [ ] Run full test suite (baseline)\n\nDuring Upgrade:\n- [ ] Upgrade one dependency at a time\n- [ ] Update peer dependencies\n- [ ] Fix TypeScript errors\n- [ ] Update tests if needed\n- [ ] Run test suite after each upgrade\n- [ ] Check bundle size impact\n\nPost-Upgrade:\n- [ ] Full regression testing\n- [ ] Performance testing\n- [ ] Update documentation\n- [ ] Deploy to staging\n- [ ] Monitor for errors\n- [ ] Deploy to production\n```\n\n## Common Pitfalls\n\n- Upgrading all dependencies at once\n- Not testing after each upgrade\n- Ignoring peer dependency warnings\n- Forgetting to update lock file\n- Not reading breaking change notes\n- Skipping major versions\n- Not having rollback plan\n","# Dependency Upgrade\n\nMaster major dependency version upgrades, compatibility analysis, staged upgrade strategies, and comprehensive testing approaches.\n\n## Do not use this skill when\n\n- The task is unrelated to dependency upgrade\n- You need a different domain or tool outside this scope\n\n## Instructions\n\n- Clarify goals, constraints, and required inputs.\n- Apply relevant best practices and validate outcomes.\n- Provide actionable steps and verification.\n- If detailed examples are required, open `resources\u002Fimplementation-playbook.md`.\n\n## Use this skill when\n\n- Upgrading major framework versions\n- Updating security-vulnerable dependencies\n- Modernizing legacy dependencies\n- Resolving dependency conflicts\n- Planning incremental upgrade paths\n- Testing compatibility matrices\n- Automating dependency updates\n\n## Semantic Versioning Review\n\n```\nMAJOR.MINOR.PATCH (e.g., 2.3.1)\n\nMAJOR: Breaking changes\nMINOR: New features, backward compatible\nPATCH: Bug fixes, backward compatible\n\n^2.3.1 = >=2.3.1 \u003C3.0.0 (minor updates)\n~2.3.1 = >=2.3.1 \u003C2.4.0 (patch updates)\n2.3.1 = exact version\n```\n\n## Dependency Analysis\n\n### Audit Dependencies\n```bash\n# npm\nnpm outdated\nnpm audit\nnpm audit fix\n\n# yarn\nyarn outdated\nyarn audit\n\n# Check for major updates\nnpx npm-check-updates\nnpx npm-check-updates -u  # Update package.json\n```\n\n### Analyze Dependency Tree\n```bash\n# See why a package is installed\nnpm ls package-name\nyarn why package-name\n\n# Find duplicate packages\nnpm dedupe\nyarn dedupe\n\n# Visualize dependencies\nnpx madge --image graph.png src\u002F\n```\n\n## Compatibility Matrix\n\n```javascript\n\u002F\u002F compatibility-matrix.js\nconst compatibilityMatrix = {\n  'react': {\n    '16.x': {\n      'react-dom': '^16.0.0',\n      'react-router-dom': '^5.0.0',\n      '@testing-library\u002Freact': '^11.0.0'\n    },\n    '17.x': {\n      'react-dom': '^17.0.0',\n      'react-router-dom': '^5.0.0 || ^6.0.0',\n      '@testing-library\u002Freact': '^12.0.0'\n    },\n    '18.x': {\n      'react-dom': '^18.0.0',\n      'react-router-dom': '^6.0.0',\n      '@testing-library\u002Freact': '^13.0.0'\n    }\n  }\n};\n\nfunction checkCompatibility(packages) {\n  \u002F\u002F Validate package versions against matrix\n}\n```\n\n## Staged Upgrade Strategy\n\n### Phase 1: Planning\n```bash\n# 1. Identify current versions\nnpm list --depth=0\n\n# 2. Check for breaking changes\n# Read CHANGELOG.md and MIGRATION.md\n\n# 3. Create upgrade plan\necho \"Upgrade order:\n1. TypeScript\n2. React\n3. React Router\n4. Testing libraries\n5. Build tools\" > UPGRADE_PLAN.md\n```\n\n### Phase 2: Incremental Updates\n```bash\n# Don't upgrade everything at once!\n\n# Step 1: Update TypeScript\nnpm install typescript@latest\n\n# Test\nnpm run test\nnpm run build\n\n# Step 2: Update React (one major version at a time)\nnpm install react@17 react-dom@17\n\n# Test again\nnpm run test\n\n# Step 3: Continue with other packages\nnpm install react-router-dom@6\n\n# And so on...\n```\n\n### Phase 3: Validation\n```javascript\n\u002F\u002F tests\u002Fcompatibility.test.js\ndescribe('Dependency Compatibility', () => {\n  it('should have compatible React versions', () => {\n    const reactVersion = require('react\u002Fpackage.json').version;\n    const reactDomVersion = require('react-dom\u002Fpackage.json').version;\n\n    expect(reactVersion).toBe(reactDomVersion);\n  });\n\n  it('should not have peer dependency warnings', () => {\n    \u002F\u002F Run npm ls and check for warnings\n  });\n});\n```\n\n## Breaking Change Handling\n\n### Identifying Breaking Changes\n```bash\n# Use changelog parsers\nnpx changelog-parser react 16.0.0 17.0.0\n\n# Or manually check\ncurl https:\u002F\u002Fraw.githubusercontent.com\u002Ffacebook\u002Freact\u002Fmain\u002FCHANGELOG.md\n```\n\n### Codemod for Automated Fixes\n```bash\n# React upgrade codemods\nnpx react-codeshift \u003Ctransform> \u003Cpath>\n\n# Example: Update lifecycle methods\nnpx react-codeshift \\\n  --parser tsx \\\n  --transform react-codeshift\u002Ftransforms\u002Frename-unsafe-lifecycles.js \\\n  src\u002F\n```\n\n### Custom Migration Script\n```javascript\n\u002F\u002F migration-script.js\nconst fs = require('fs');\nconst glob = require('glob');\n\nglob('src\u002F**\u002F*.tsx', (err, files) => {\n  files.forEach(file => {\n    let content = fs.readFileSync(file, 'utf8');\n\n    \u002F\u002F Replace old API with new API\n    content = content.replace(\n      \u002FcomponentWillMount\u002Fg,\n      'UNSAFE_componentWillMount'\n    );\n\n    \u002F\u002F Update imports\n    content = content.replace(\n      \u002Fimport { Component } from 'react'\u002Fg,\n      \"import React, { Component } from 'react'\"\n    );\n\n    fs.writeFileSync(file, content);\n  });\n});\n```\n\n## Testing Strategy\n\n### Unit Tests\n```javascript\n\u002F\u002F Ensure tests pass before and after upgrade\nnpm run test\n\n\u002F\u002F Update test utilities if needed\nnpm install @testing-library\u002Freact@latest\n```\n\n### Integration Tests\n```javascript\n\u002F\u002F tests\u002Fintegration\u002Fapp.test.js\ndescribe('App Integration', () => {\n  it('should render without crashing', () => {\n    render(\u003CApp \u002F>);\n  });\n\n  it('should handle navigation', () => {\n    const { getByText } = render(\u003CApp \u002F>);\n    fireEvent.click(getByText('Navigate'));\n    expect(screen.getByText('New Page')).toBeInTheDocument();\n  });\n});\n```\n\n### Visual Regression Tests\n```javascript\n\u002F\u002F visual-regression.test.js\ndescribe('Visual Regression', () => {\n  it('should match snapshot', () => {\n    const { container } = render(\u003CApp \u002F>);\n    expect(container.firstChild).toMatchSnapshot();\n  });\n});\n```\n\n### E2E Tests\n```javascript\n\u002F\u002F cypress\u002Fe2e\u002Fapp.cy.js\ndescribe('E2E Tests', () => {\n  it('should complete user flow', () => {\n    cy.visit('\u002F');\n    cy.get('[data-testid=\"login\"]').click();\n    cy.get('input[name=\"email\"]').type('user@example.com');\n    cy.get('button[type=\"submit\"]').click();\n    cy.url().should('include', '\u002Fdashboard');\n  });\n});\n```\n\n## Automated Dependency Updates\n\n### Renovate Configuration\n```json\n\u002F\u002F renovate.json\n{\n  \"extends\": [\"config:base\"],\n  \"packageRules\": [\n    {\n      \"matchUpdateTypes\": [\"minor\", \"patch\"],\n      \"automerge\": true\n    },\n    {\n      \"matchUpdateTypes\": [\"major\"],\n      \"automerge\": false,\n      \"labels\": [\"major-update\"]\n    }\n  ],\n  \"schedule\": [\"before 3am on Monday\"],\n  \"timezone\": \"America\u002FNew_York\"\n}\n```\n\n### Dependabot Configuration\n```yaml\n# .github\u002Fdependabot.yml\nversion: 2\nupdates:\n  - package-ecosystem: \"npm\"\n    directory: \"\u002F\"\n    schedule:\n      interval: \"weekly\"\n    open-pull-requests-limit: 5\n    reviewers:\n      - \"team-leads\"\n    commit-message:\n      prefix: \"chore\"\n      include: \"scope\"\n```\n\n## Rollback Plan\n\n```javascript\n\u002F\u002F rollback.sh\n#!\u002Fbin\u002Fbash\n\n# Save current state\ngit stash\ngit checkout -b upgrade-branch\n\n# Attempt upgrade\nnpm install package@latest\n\n# Run tests\nif npm run test; then\n  echo \"Upgrade successful\"\n  git add package.json package-lock.json\n  git commit -m \"chore: upgrade package\"\nelse\n  echo \"Upgrade failed, rolling back\"\n  git checkout main\n  git branch -D upgrade-branch\n  npm install  # Restore from package-lock.json\nfi\n```\n\n## Common Upgrade Patterns\n\n### Lock File Management\n```bash\n# npm\nnpm install --package-lock-only  # Update lock file only\nnpm ci  # Clean install from lock file\n\n# yarn\nyarn install --frozen-lockfile  # CI mode\nyarn upgrade-interactive  # Interactive upgrades\n```\n\n### Peer Dependency Resolution\n```bash\n# npm 7+: strict peer dependencies\nnpm install --legacy-peer-deps  # Ignore peer deps\n\n# npm 8+: override peer dependencies\nnpm install --force\n```\n\n### Workspace Upgrades\n```bash\n# Update all workspace packages\nnpm install --workspaces\n\n# Update specific workspace\nnpm install package@latest --workspace=packages\u002Fapp\n```\n\n## Resources\n\n- **references\u002Fsemver.md**: Semantic versioning guide\n- **references\u002Fcompatibility-matrix.md**: Common compatibility issues\n- **references\u002Fstaged-upgrades.md**: Incremental upgrade strategies\n- **references\u002Ftesting-strategy.md**: Comprehensive testing approaches\n- **assets\u002Fupgrade-checklist.md**: Step-by-step checklist\n- **assets\u002Fcompatibility-matrix.csv**: Version compatibility table\n- **scripts\u002Faudit-dependencies.sh**: Dependency audit script\n\n## Best Practices\n\n1. **Read Changelogs**: Understand what changed\n2. **Upgrade Incrementally**: One major version at a time\n3. **Test Thoroughly**: Unit, integration, E2E tests\n4. **Check Peer Dependencies**: Resolve conflicts early\n5. **Use Lock Files**: Ensure reproducible installs\n6. **Automate Updates**: Use Renovate or Dependabot\n7. **Monitor**: Watch for runtime errors post-upgrade\n8. **Document**: Keep upgrade notes\n\n## Upgrade Checklist\n\n```markdown\nPre-Upgrade:\n- [ ] Review current dependency versions\n- [ ] Read changelogs for breaking changes\n- [ ] Create feature branch\n- [ ] Backup current state (git tag)\n- [ ] Run full test suite (baseline)\n\nDuring Upgrade:\n- [ ] Upgrade one dependency at a time\n- [ ] Update peer dependencies\n- [ ] Fix TypeScript errors\n- [ ] Update tests if needed\n- [ ] Run test suite after each upgrade\n- [ ] Check bundle size impact\n\nPost-Upgrade:\n- [ ] Full regression testing\n- [ ] Performance testing\n- [ ] Update documentation\n- [ ] Deploy to staging\n- [ ] Monitor for errors\n- [ ] Deploy to production\n```\n\n## Common Pitfalls\n\n- Upgrading all dependencies at once\n- Not testing after each upgrade\n- Ignoring peer dependency warnings\n- Forgetting to update lock file\n- Not reading breaking change notes\n- Skipping major versions\n- Not having rollback plan\n",{"name":5,"risk":36,"source":40,"description":7},"release\u002Fv4.2.11-panel-pro","a92ea02bcf7e2b3dbaf46d49696c29a3cb490d4f",".github\u002Fskills\u002Fdependency-upgrade","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-","https:\u002F\u002Fgithub.com\u002Fjaviertarazon","2026-07-12 07:10:45",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add javiertarazon\u002Fide-agente-free-jt7- --skill dependency-upgrade",{"tool":58,"command":59},"bunx","bunx skills add javiertarazon\u002Fide-agente-free-jt7- --skill dependency-upgrade",{"tool":61,"command":62},"pnpm","pnpm dlx skills add javiertarazon\u002Fide-agente-free-jt7- --skill dependency-upgrade","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fdependency-upgrade\u002FSKILL.md",true,[],[67,92,119,138,153,175],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":76,"publishedAt":41},"01M71TQ7Q6Z10VWF3C2H5X1KW9","zustand-store-ts","Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state\u002Faction separation. Use when building React state management, creating global stores, or implementing reacti...","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fzustand-store-ts\u002FSKILL.md",[73],{"categoryNo":74,"categoryName":75,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",[77,78,79,40,80,81,30,82,38,36,83,28,84,85,86,87,88,89,90,91],"zustand","store","zustand store ts","middleware","implementing","react state management","react","state","create","state management","typescript","action","management","separation","global",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":101,"publishedAt":41},"01M71TQ5EAR40G6W0MV5ZDVEZT","zoom-automation","Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fzoom-automation\u002FSKILL.md",[98],{"categoryNo":99,"categoryName":100,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[102,103,104,40,105,106,107,108,109,36,110,111,112,113,114,115,116,117,89,118],"zoom automation","zoom","automation","creation","for","search","schemas","MCP","first","via","meeting","search tools","tracking","webinars","composio","recordings","Tools",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":126,"publishedAt":41},"01M71TQ29B1EYBCEAP1ZBGXQ1A","zoho-crm-automation","Automate Zoho CRM tasks via Rube MCP (Composio): create\u002Fupdate records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fzoho-crm-automation\u002FSKILL.md",[125],{"categoryNo":99,"categoryName":100,"taxonomyType":20,"taxonomyTypeDesc":21},[127,128,104,129,130,131,40,132,133,106,32,107,108,134,109,36,135,136,137,85],"crm automation","zoho crm automation","crm","zoho crm","zoho","leads","manage leads","records","convert","tasks","contacts",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":145,"publishedAt":41},"01M71TPZPMN60DH0XV58KVHY23","zendesk-automation","Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fzendesk-automation\u002FSKILL.md",[144],{"categoryNo":99,"categoryName":100,"taxonomyType":20,"taxonomyTypeDesc":21},[146,104,147,40,106,107,108,109,148,36,136,149,150,110,111,151,113,116,118,152],"zendesk automation","zendesk","organizations","replies","users","tickets","automate",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":159,"publishedAt":41},"01M71TPXDWKHKG4N6TVEPXWD0N","zapier-make-patterns","No-code automation democratizes workflow building. Zapier and Make (formerly Integromat) let non-developers automate business processes without writing code. But no-code doesn't mean no-complexity ...","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fzapier-make-patterns\u002FSKILL.md",[],[160,161,162,163,164,165,166,167,168,104,169,36,170,171,172,173,174,152],"zapier make patterns","zapier","patterns","make","No-Code","complexity","writing","spawner","business","workflow","code","integromat","apache","processes","but",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":184,"publishedAt":41},"01M71TPT5T10WXNKW9G7ZXZ27W","youtube-summarizer","Extract transcripts from YouTube videos and generate comprehensive, detailed summaries using intelligent analysis frameworks","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fyoutube-summarizer\u002FSKILL.md",[181],{"categoryNo":182,"categoryName":183,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",[185,186,187,188,40,189,190,191,192,193,194,35,170,195,196,197,198,199,200,201],"summarizer","youtube","youtube summarizer","Video","content-analysis","frameworks","copilot","2025","github-copilot","extract transcripts","codex","cli","summaries","github","generate","summarization","2026"]