AI にコードを書かせた後、余計なコードを見つけて消す作業があります。
不毛なことなので、それらの作業を減らすためのお作法を紹介します。
以下でも書きましたが、未使用コードの検査に knip を使うことが多いです。
Git の pre commit 時に knip を動かして未使用ファイルを削除するように強制します。
これにより、使われていないコードや未使用な npm package などを消すことができます。
プロジェクトごとに、 knip の設定ファイルを書く必要があります。
AI にコードを書かせると、テキストが他のページと合わない用語を使ったりします。
そういった用語を手直しするのが不毛です。
そこで以下の記事でも触れている通り、画面表示などに使用する文言を言語ファイル( ja.json )として管理します。
その上で、ESLint の設定で 直接テキストを使用できないようにします。
例えば、jsx-no-literals が手っ取り早いでしょう。
これを導入することで、表示するテキストの表記揺れの修正が言語ファイル内で完結します。
そうすると、AI から比較的マシなテキストを書き上げてくれます。
また良くなかった場合も、文言ファイル内の修正だけに止まるため修正が楽になります。
よく AI にコードを書かせていると、試行錯誤によって無駄なコードが生まれることがあります。
基本的に、変更前に戻せる状態を意識しておくと楽です。
うまく行っている状態までをステージに上げておくのです。
こまめにコミットしちゃうのが良いのですが、そうはいかない場合もあります。
そういう場合うまく行っている状態の箇所をステージにあげておけば、AIのコードがNGだった場合にコードをリセットできます。
pre commit 時に、さまざまなチェックを入れておくと安全です。
私の場合は、以下の npm script の ci:fix を pre commit に通すようにしています。
{
"scripts": {
"ci:fix": "pnpm knip:fix && pnpm lint:fix && pnpm format && pnpm check-types && pnpm test:fix",
"knip": "knip",
"knip:fix": "knip --fix",
"lint": "eslint . --max-warnings 0",
"lint:fix": "pnpm lint -- --fix",
"format": "prettier --write \"**/*.{ts,tsx}\"",
"check-types": "tsc --noEmit",
"test": "vitest --run",
"test:fix": "pnpm test -- --update"
}
}knipの未使用コードの削除、lintのチェック、formatで整え、check-typesで型チェック、テストの実行です。
テストにはvitest のテストだけでなく、storybook のテストを実行しています。
Storybook を Vitest Browser Mode で Visual Regression Test (以下、VRT)します。
詳しくは、以下の記事をご参考ください。
VRTに加えて、Storybookのa11yも導入しておきます。
a11yのテストを動かしておくと最低限のa11yのエラーを見つけることができます。
例えば色のコントラストなどが多いです。
いちいち指摘せずとも、テストでエラーになれば AI 側で修正してくれるようになります。
Lintの設定は、自身が手直しをよくするものはLintで対応できるならやっておきます。
例えば、Propsなどの並び順は気になる場合は それらを強制する設定を登録しておきます。
あとは、『classNameを使わせない』という強硬策を取ることもあります。
className で自由にスタイルを書かせると、AI がデザインシステム外のスタイルで仕上げてくることがあります。
基本的に、デザインの最終調整は人間の目でやるべきと思いますが、土台はある程度 AI に書かせたいです。
そこで、ESLintの設定で className を使用させない設定を取り入れます。
設計次第ですが、以下のようなルールで縛っておけば楽です。
className の使用を許可する
class-variance-authority を使用し、UIのバリエーションを定義するこれらのお作法を守っておくと、AI のコーディングからの手直しを比較的減らせることができます。
より効率的に開発していきましょう。
-
※ ログイン不要で投稿できます。
※ 同じブラウザから投稿を削除できます。
0
読み込み中...
タグ「AI」の記事
今朝、長らくお世話になった GitHub Copilot を解約し、 OpenAI Codex を Plus から Pro にアップグレードしました。 経緯 今月、5月4日あたりから OpenAI Codex で何度か上限制限(5時間以内)
2026年05月09日
AI で生成された低品質なもの、AI Slop と呼ばれます。 呼び名はなんでも良いですが、この種のコンテンツを目にするたびに落胆します。 ネット記事や、プルリクエストの説明文、議題とディスカッション、あらゆるところに登場します。 めっちゃ
現在、個人開発でブログキュレーションアプリを開発中です。 https://silverbirder.github.io/blog/contents/20260419/ UIデザインについて、v0などのAIデザインツールを使う際に、 バイブコ
タグ「フロントエンド」の記事
以下で書いた個人ブログを読むアプリ(個人ブログライブラリ、略して "こぶりー" )をモバイルアプリで開発していました。 https://silverbirder.github.io/blog/contents/20260419/ 審査関連で
2026年05月11日
過去にモバイルアプリを作ろうとして断念したことがありました。 https://silverbirder.github.io/blog/contents/first-mobile-app-failure/ 最近、作りたいモバイルアプリのネタが
2026年04月14日
また、以下の記事の続きを書こうと思います。 https://silverbirder.github.io/blog/contents/20260312/ ビジネスロジック アプリケーションのビジネスロジックに関することについて書きます。 複
2026年03月18日