DEV Community

TK Lin
TK Lin

Posted on

実戦で鍛えた 112 の Claude Code Skills — 何時間もかけたバグ修正を、あなたは繰り返さなくていい

AI コーディングアシスタントは強力です。しかし、記憶がありません。

Claude Code は深夜 2 時に Docker SQLite WAL 破損バグの修正を手伝ってくれます。根本原因も突き止めます(実行中のコンテナから docker cp で SQLite DB をコピーしてはいけない——先に書き込みを停止するか、WAL ファイルも一緒にコピーする必要があります)。修正完了。デプロイ。次へ。

3 日後、同じプロジェクト、新しいセッション。Claude Code はその修正を一切覚えていません。同じバグパターンが再発。また同じデバッグ作業。

3 回目に同じ問題に遭遇したとき、私はバグを直すのをやめました。代わりに、そのバグが二度と起きないシステムを作り始めました。


解決策:Skills = AI の筋肉記憶

Claude Code は「skills」をサポートしています——関連するパターンが検出されたときに自動的にコンテキストに読み込まれる markdown ファイルです。AI アシスタントの「組織的記憶」と考えてください。

各 skill が記録する内容:

  • 問題:何が起こるか、起きたときどう見えるか
  • 根本原因:なぜ起こるか(対処法だけでなく)
  • 修正方法:具体的な手順、コードパッチ、設定変更
  • トリガー条件:Claude Code がいつこの知識を自動適用すべきか

日本の房総半島にある動物保護施設で、7 ヶ月かけて本番稼働の API プラットフォーム(39 サービス、30 以上の API)を構築しました。その過程で 200 以上の本番バグに遭遇。そのうち非自明なものを 112 個の再利用可能な skill として抽出しました。


カテゴリ一覧

Docker とデプロイ(12 個)

Skill 何を修正するか
docker-sqlite-wal-copy-trap 実行中コンテナから SQLite コピー時のデータ破損
docker-ghost-container-recovery コンテナ名が使用中だがコンテナが存在しない
docker-small-vps-deploy-optimization 2GB VPS で docker build 時の OOM kill
docker-static-asset-copy-gotcha コンテナ内で静的アセットが 404 だがローカルでは正常
docker-compose-force-recreate-caddy-loop force-recreate ウォッチドッグによる無限再起動ループ

データベースと SQLite(10 個)

Skill 何を修正するか
bun-sqlite-transaction-await-crash db.transaction() 内での await による本番クラッシュ
sqlite-check-constraint-migration 許可値の拡張時に CHECK constraint failed
bun-sqlite-like-parameter-binding LIKE クエリでパラメータバインディングがサイレントに失敗
json-to-sqlite-hybrid-migration JSON ファイルから SQLite への安全な移行

API とバックエンド(15 個)

Skill 何を修正するか
hono-subrouter-auth-isolation 複数の Hono サブルーターがパスを共有する際の認証バイパス
multi-provider-fallback-gateway 単一プロバイダーの障害がサービス全体をダウンさせる
api-security-audit-methodology 30 以上の脆弱性パターンによる体系的セキュリティ審査
hono-global-middleware-ordering グローバルミドルウェアがサブルートに対してサイレントに未実行
multi-layer-proxy-timeout-chain-debugging CDN → リバースプロキシ → アプリチェーンでの 502/504 エラー

AI と LLM(8 個)

Skill 何を修正するか
llm-api-cost-optimization Claude API のコスト爆発
ai-prompt-mastery AI が一般的な回答しかせず専門家レベルにならない
api-tool-use-upgrade-pattern 手動 JSON パースから正式な Tool Use への移行
llm-model-version-migration-2026 廃止されたモデルバージョン文字列による 404 エラー

フロントエンドと UI(6 個)

Skill 何を修正するか
nextjs-common-patterns 「params is a Promise」等 Next.js 13+ のよくある落とし穴
elderly-friendly-ssr-ui-optimization SSR ページの高齢者・弱視者向け最適化
template-literal-inline-js-escaping SSR インラインスクリプトの JS 構文エラーによるサイレント故障

デバッグとワークフロー(10 個)

Skill 何を修正するか
systematic-debug 場当たり的なデバッグで何時間も間違った方向へ
code-verification-loop 自動検証なしでの出荷
multi-agent-workflow-design マルチエージェント vs シングルエージェントの判断基準
audit-inflation-bias-prevention AI サブエージェントが監査レポートで偽の問題を水増し

インストール

1 コマンドで完了:

curl -fsSL https://raw.githubusercontent.com/sstklen/washin-claude-skills/main/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

実行後:

  1. Skill ライブラリが ~/.claude/skills/ にクローンされます
  2. すべての Claude Code セッションで自動的に利用可能になります
  3. 設定は不要です

確認:

ls ~/.claude/skills/
# 112 個の skill ディレクトリが表示されるはずです
Enter fullscreen mode Exit fullscreen mode

Before vs After:実例

シナリオ: Docker で Bun + SQLite アプリをデプロイ中。データベースのバックアップが必要。

skill なし:

docker cp container:/app/data.db ./backup.db を実行。成功したように見える。しかしバックアップはサイレントに破損している——SQLite が書き込み中で、WAL ファイルがコピーされていない。緊急時にバックアップから復元しようとするまで気づかない。2〜4 時間のデバッグ。パニック。

docker-sqlite-wal-copy-trap skill あり:

コンテナから SQLite をコピーすると言及した瞬間、Claude Code がパターンを認識。WAL トラップについて即座に警告し、正しいアプローチを提示:

# 先に書き込みを停止するか、3 ファイルすべてをコピー:
docker cp container:/app/data.db ./backup.db
docker cp container:/app/data.db-wal ./backup.db-wal
docker cp container:/app/data.db-shm ./backup.db-shm
Enter fullscreen mode Exit fullscreen mode

数秒で解決。何時間もかからない。そして、どのプロジェクトでも二度と起きない。


Skill フォーマット

各 skill の構造:

skill-name/
  SKILL.md       # skill の内容
Enter fullscreen mode Exit fullscreen mode

実際の skill はこのような形式です(抜粋):

---
name: docker-sqlite-wal-copy-trap
category: Docker & Deployment
trigger: "copying SQLite from Docker container"
---

# Fix: Docker SQLite WAL Copy Trap

## 問題
`docker cp container:/app/data.db ./backup.db` はサイレントに
破損したコピーを生成する。エラーも警告もなく、最近のデータだけが
欠落する。

## 根本原因
SQLite は WAL(Write-Ahead Log)を使用している。.db ファイル
だけでは不完全。.db-wal と .db-shm も一緒にコピーするか、
先に checkpoint を実行する必要がある。

## 修正方法
方法 A — 3 ファイルすべてをコピー:
  docker cp container:/app/data.db ./backup.db
  docker cp container:/app/data.db-wal ./backup.db-wal
  docker cp container:/app/data.db-shm ./backup.db-shm

方法 B — 先に checkpoint:
  sqlite3 /app/data.db "PRAGMA wal_checkpoint(TRUNCATE);"
  その後 .db ファイルだけをコピー。
Enter fullscreen mode Exit fullscreen mode

各 skill は 500 行以下。Claude Code はマッチするパターンを検出すると、関連する skill を自動的にコンテキストに読み込みます。

スタック互換性について

これらの skill の多くは特定のスタックから生まれました:Bun + Hono + SQLite + Docker on Linux VPS。同じスタックであれば、ほぼすべてがそのまま適用できます。

異なるスタックでも普遍的に使えるもの:

  • デバッグとワークフロー skills(10 個)— スタック非依存の問題解決パターン
  • AI と LLM skills(8 個)— あらゆる Claude Code プロジェクトに適用可能
  • Docker skills(12 個)— Bun/Hono 以外のコンテナ化アプリにも有用
  • API パターン(15 個中の多数)— タイムアウトチェーン、認証分離、セキュリティ監査はフレームワーク非依存

スタック固有の skill(Bun SQLite の癖、Hono サブルーターのバグ)は名前から明確にわかります。Bun や Hono を使っていなければ、スキップすべきものは一目瞭然です。

自分の skill を貢献したいですか? リポジトリを fork し、フォーマットに従って追加し、PR を開いてください。あなたが解決した本番バグすべてが、共有を待っている skill です。


哲学

Skills は単なるバグ修正ではありません。一つの原則をエンコードしています:

同じ問題が 3 回起きたら、手動で直すのをやめる。システムを変えて、二度と起きないようにする。

この 112 の skill は、日本の動物保護施設での 7 ヶ月間の本番運用の苦労を、あらゆる Claude Code ユーザーが恩恵を受けられるパターンに凝縮したものです。あなたの最悪の本番バグが、AI の最強の skill になります。


GitHub: github.com/sstklen/washin-claude-skills

インストール:

curl -fsSL https://raw.githubusercontent.com/sstklen/washin-claude-skills/main/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

フルストーリー: Zero Engineer — 動物保護施設から本番 API プラットフォームへ

Top comments (0)