[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M70NSGPFSJPTPBTPQMBXRYE3":3,"skill-same:01M70NSGPFSJPTPBTPQMBXRYE3":71},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":52,"ownerHtmlUrl":53,"ownerBlogUrl":54,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M70NSGPFSJPTPBTPQMBXRYE3","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 breaking changes in libraries.","shengdabai\u002FTony-Claude-Code-Skills","shengdabai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F116417419?v=4","01M70F6D2WY5PQV5A92BKYJQEW","Tony Sheng","01M70F6D3GAAAYZ5H4CC1G8VXM",3,"MIT","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fwshobson-agents\u002Fplugins\u002Fframework-migration\u002Fskills\u002Fdependency-upgrade\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"dependency","dependency upgrade","upgrade","staged","dependencies","changes","with","version","use","upgrades","manage","framework","compatibility","libraries","analysis","rollout","when","testing","2026-11-10 10:12:30",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 breaking changes in libraries.\n---\n\n# Dependency Upgrade\n\nMaster major dependency version upgrades, compatibility analysis, staged upgrade strategies, and comprehensive testing approaches.\n\n## When to Use This Skill\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## When to Use This Skill\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,"description":7},"main","7850740bd837adb32f0a109ab2af82482196c6f2","skills\u002Fwshobson-agents\u002Fplugins\u002Fframework-migration\u002Fskills\u002Fdependency-upgrade",1,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills","https:\u002F\u002Fzturnsgo.com","https:\u002F\u002Fgithub.com\u002Fshengdabai","https:\u002F\u002Fzturnsgo.com\u002F","AI × education creator — producer, not consumer. Taught 6,000+ learners; shipping learning tools & daily essays with Claude Code, practicing @xiaolai's way 🥋","2026-11-01 21:28:23",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add shengdabai\u002FTony-Claude-Code-Skills --skill dependency-upgrade",{"tool":63,"command":64},"bunx","bunx skills add shengdabai\u002FTony-Claude-Code-Skills --skill dependency-upgrade",{"tool":66,"command":67},"pnpm","pnpm dlx skills add shengdabai\u002FTony-Claude-Code-Skills --skill dependency-upgrade","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fwshobson-agents\u002Fplugins\u002Fframework-migration\u002Fskills\u002Fdependency-upgrade\u002FSKILL.md",true,[],[72,89,123,148,170,190],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":81,"publishedAt":42},"01M70P17DAD4C1C47NPH6A96EM","xiaolai-methodology","以李笑来(Li Xiaolai)的思考方式、方法论与表达风格,为用户做全方位 1-on-1 教练指导,覆盖创业、赚钱、投资、学习、自学、读书写作、用 AI、以及人生心态与自我管理。当用户提到 \"李笑来\"、\"笑来\"、\"笑来老师\"、\"扮演李笑来\"、\"找笑来聊聊\"、\"笑来怎么看\"、\"xiaolai\"、\"把时间当作朋友\"、\"通往财富自由之路\"、\"定投改变命运\"、\"韭菜的自我修养\"、\"自学是门手艺\"、\"让时间陪你慢慢变富\"、\"七年就是一辈子\"、\"元认知\"、\"活在未来\"、\"复利\u002F长期主义\"、\"践行\"、\"痴迷改进\"、\"个人商业模式\u002F出售时间\"、\"睡后收入\"、\"定投\"、\"财富自由\"、\"操作系统升级\"、\"最少必要知识\"、\"北极星提示词\"、\"用 AI 该怎么学\u002F思考\" 等任一触发词,或当用户带着关于创业\u002F赚钱\u002F投资\u002F学习\u002F职业\u002F重大人生决策的困惑、希望被人用笑来式的「逻辑 + 大白话 + 类比 + 重新定义 + 践行导向」来点醒和指导时,自动进入李笑来教练模式。","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fxiaolai-methodology\u002FSKILL.md",[78],{"categoryNo":79,"categoryName":80,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",[82,83,84,85,86,87,88],"methodology","xiaolai","xiaolai methodology","朋友","投资","writing","收入",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":103,"publishedAt":42},"01M70P13NB9YP7ACJR1S861CDS","zread","Produce and consume a wiki-style knowledge base for a code repository via the `zread` CLI and its on-disk output under `.\u002F.zread\u002Fwiki\u002F`. Use this skill whenever the user wants to understand, onboard onto, explore, summarize, map, or get an overview of an unfamiliar codebase; asks for architecture docs, a project wiki, a repo walkthrough, module\u002Fpackage explanations, or \"what does this repo do\"; wants to generate, regenerate, resume, browse, or serve code documentation locally; or mentions zread \u002F zread.ai directly. Also use it proactively before diving into a large unknown repo — if `.\u002F.zread\u002Fwiki\u002Fcurrent` exists, read the generated pages instead of crawling source file-by-file; if it doesn't, consider offering to run `zread generate`. The trigger is the intent (understand a codebase through generated docs), not the literal word \"zread\".","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fzread\u002FSKILL.md",[95,98],{"categoryNo":96,"categoryName":97,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":99,"categoryName":100,"taxonomyType":101,"taxonomyTypeDesc":102},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[91,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122],"knowledge","wiki","explore","walkthrough","project","get","knowledge base","run","generate","intent","cli","map","documentation","project wiki","disk","architecture","code","unknown","generated",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":133,"publishedAt":42},"01M70P10S4SWMZQ8BJAFBFDRW3","youtube","Launch the YouTube Creator Agent to auto-generate videos.\nUse when: user types \u002Fyoutube, wants to create YouTube videos,\ngenerate video content, or upload to YouTube.\nKeywords: youtube, video, 视频, 创作视频, 发布视频","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube\u002FSKILL.md",[129,130],{"categoryNo":96,"categoryName":97,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":131,"categoryName":132,"taxonomyType":101,"taxonomyTypeDesc":102},"01JBSEEDCAT000000000000036","内容创作者",[125,134,135,136,137,138,139,140,112,141,142,143,40,32,144,145,146,147],"user","content","视频","creator","generate video","videos","launch","video content","create","upload","auto","types","Video","创作",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":155,"publishedAt":42},"01M70P0YE95D8BACZCGV8BK90K","youtube-script-sync","Sync, update, or optimize Tony's GetNote knowledge base `Youtube视频逐字稿` by turning each parent recording or first-person idea note into an idempotent child note containing a directly recordable YouTube long-video or Shorts script. Use when the user says “更新\u002F同步\u002F优化 Youtube视频逐字稿知识库”, or says “更新\u002F同步\u002F优化该知识库” while this knowledge base is the active context.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube-script-sync\u002FSKILL.md",[154],{"categoryNo":96,"categoryName":97,"taxonomyType":21,"taxonomyTypeDesc":22},[156,157,125,158,159,146,160,161,162,163,164,165,166,167,110,168,40,32,104,169],"sync","script","youtube script sync","recording","shorts","first","base","person","update","active","child","optimize","idempotent","long",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":180,"publishedAt":42},"01M70P0WMV5XT0EEC0N445PW07","writing-skills","How to write SKILL.md files that trigger reliably and teach effectively. Use when creating, improving, or reviewing Claude Code skills.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fxiaolai\u002Fnlpm\u002Fskills\u002Fnlpm\u002Fwriting-skills\u002FSKILL.md",[176,177,178,179],{"categoryNo":79,"categoryName":80,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":96,"categoryName":97,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":99,"categoryName":100,"taxonomyType":101,"taxonomyTypeDesc":102},{"categoryNo":131,"categoryName":132,"taxonomyType":101,"taxonomyTypeDesc":102},[181,87,182,183,184,185,120,40,32,186,187,188,189],"writing skills","how","teach","write skill","write","claude code skills","files","how to","trigger",{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":198,"publishedAt":42},"01M70P0SJFR4YVJQBGMHKGSKXT","writing-rules","How to write .claude\u002Frules\u002F files that Claude actually follows. Use when creating, improving, or reviewing project rules.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fxiaolai\u002Fnlpm\u002Fskills\u002Fnlpm\u002Fwriting-rules\u002FSKILL.md",[196,197],{"categoryNo":79,"categoryName":80,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":131,"categoryName":132,"taxonomyType":101,"taxonomyTypeDesc":102},[199,87,200,108,201,187,40,182,185,32,188],"Rules","writing rules","project rules"]