破壊的変更に対応したコード修正を行う。import文の変更、API呼び出しの修正、設定ファイルの更新を実行
Automates code fixes for breaking changes like import paths, API names, and config updates. It searches for deprecated patterns and applies safe replacements or flags manual tasks.
/plugin marketplace add snhrm/claude-plugin/plugin install fe-eol-checker@claude-pluginThis skill is limited to using the following tools:
役割: 破壊的変更に基づくコード修正に特化。
入力: 破壊的変更リスト、修正パターン、対象ディレクトリ(呼び出し元から渡される)
// Before
import { something } from 'old-package';
// After
import { something } from 'new-package';
検索パターン:
import\s+.*\s+from\s+['"]old-package['"]
// Before
import { oldName } from 'package';
// After
import { newName } from 'package';
// Before
import { Component } from 'package';
// After
import Component from 'package';
// Before
oldFunction(arg1, arg2);
// After
newFunction(arg1, arg2);
// Before
func(arg1, arg2, arg3);
// After
func({ param1: arg1, param2: arg2, param3: arg3 });
// Before
obj.oldMethod().chain();
// After
obj.newMethod().chain();
// Before (React 18)
import { useEffect } from 'react';
// After (React 19 - use() API)
import { use } from 'react';
// Before
<Component oldProp={value} />
// After
<Component newProp={value} />
// Before
const Component = forwardRef((props, ref) => {
return <div ref={ref} />;
});
// After
const Component = ({ ref, ...props }) => {
return <div ref={ref} />;
};
// Before (pages/)
export async function getServerSideProps() {}
// After (app/)
// Server Componentとして実装
async function Page() {
const data = await fetchData();
return <div>{data}</div>;
}
// Before
import { useRouter } from 'next/router';
const router = useRouter();
router.push('/path');
// After
import { useRouter } from 'next/navigation';
const router = useRouter();
router.push('/path');
// Before (Next.js 12)
import Image from 'next/image';
<Image layout="fill" objectFit="cover" />
// After (Next.js 13+)
import Image from 'next/image';
<Image fill style={{ objectFit: 'cover' }} />
// Before (Next.js 14)
module.exports = {
experimental: {
appDir: true,
},
};
// After (Next.js 15)
module.exports = {
// appDirはデフォルトで有効
};
// Before (TypeScript 4.x)
{
"compilerOptions": {
"target": "ES2020"
}
}
// After (TypeScript 5.x)
{
"compilerOptions": {
"target": "ES2022"
}
}
// Before (ESLint 8)
module.exports = {
extends: ['next/core-web-vitals'],
};
// After (ESLint 9 - Flat Config)
import nextConfig from 'eslint-config-next';
export default [...nextConfig];
{
"migrations": [
{
"pattern": "{変更パターン}",
"description": "{変更内容}",
"files": [
{
"path": "{ファイルパス}",
"changes": [
{
"line": 15,
"before": "{変更前コード}",
"after": "{変更後コード}",
"status": "applied|skipped|manual_required"
}
]
}
],
"status": "success|partial|failed"
}
],
"summary": {
"totalFiles": 10,
"totalChanges": 25,
"applied": 20,
"skipped": 3,
"manualRequired": 2
},
"manualTasks": [
{
"file": "{ファイルパス}",
"line": 42,
"description": "{手動で行う必要がある作業}",
"reason": "{自動化できない理由}"
}
]
}
# 特定のimportを検索
grep -rn "from 'old-package'" --include="*.ts" --include="*.tsx" src/
# 特定の関数呼び出しを検索
grep -rn "oldFunction\s*(" --include="*.ts" --include="*.tsx" src/
# 特定のJSX属性を検索
grep -rn "oldProp=" --include="*.tsx" src/
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.