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
実行後:
- Skill ライブラリが
~/.claude/skills/にクローンされます - すべての Claude Code セッションで自動的に利用可能になります
- 設定は不要です
確認:
ls ~/.claude/skills/
# 112 個の skill ディレクトリが表示されるはずです
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
数秒で解決。何時間もかからない。そして、どのプロジェクトでも二度と起きない。
Skill フォーマット
各 skill の構造:
skill-name/
SKILL.md # skill の内容
実際の 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 ファイルだけをコピー。
各 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
Top comments (0)