
【保存版】Claude Codeが「実務で使える」ようになる最強構成:Superpowers × 外部メモリ運用(Affaan方式)
はじめに:なぜClaude Codeは「30分後」にポンコツになるのか?
Claude Codeを使っていると、最初は神のようにコードを書いてくれるのに、セッションが長引くにつれて**「さっき教えたことを忘れる」「同じ修正を繰り返す」「文脈を見失う(Context Rot)」**という現象に悩まされませんか?
いわゆる「Vibe Coding(ノリで書く)」では、実務レベルの複雑なタスクや、日をまたぐ開発には耐えられません。
この記事では、Claude Codeハッカソン優勝者(Affaan Mustafa氏)が提唱する**「メモリ運用(Affaan方式)」と、開発プロセスを型化する人気プラグイン「Superpowers」**を組み合わせた、軽量かつ最強の実務用セットアップを紹介します。
重たいVector DBや複雑な設定は不要です。**「型」と「ログ」**だけで勝てます。
結論:この2つを組み合わせると「補完関係」で最強になる
この構成の肝は、**「プロセスの型化」と「記憶の外部化」**を分担させることです。

片方だけでは不十分です。
Superpowersだけだと、セッションが切れた時に「どういう経緯でその決定をしたか」の文脈が消えます。
Affaan方式だけだと、自由度が高すぎて開発プロセス自体がぐだぐだになる可能性があります。
この2つを組み合わせることで、**「迷わず進めて(Superpowers)、忘れても大丈夫(Affaan方式)」**な状態を作ります。
前提環境
Claude Code インストール済み
OS: Mac / Linux / Windows (WSL2推奨)
注意: Windowsネイティブ環境ではHooksが正常に動作しない報告があるため、WSL2(Ubuntu等)での実行を強く推奨します。
設定方針:プロジェクトごとに設定ファイル(`.claude/`)を置く「プロジェクトローカル」方式
Step 1: Superpowersの導入(開発の「型」を作る)
まずは、開発フローを整えるプラグインを入れます。これはClaude Code公式のMarketplace経由で導入します。
# Claude Codeのプロンプトで実行
/plugin marketplace add obra/superpowers-marketplace
/plugin install superpowers@superpowers-marketplaceこれで `/plan` `/architect` などのコマンドが使えるようになり、**「いきなりコードを書かせず、計画を立ててから実行する」**という作法が強制されます。
Step 2: Affaan方式「要約ログ」の導入(記憶の外部化)
ここが本記事の核です。ハッカソン優勝者が公開している everything-claude-code の思想をベースに、プロジェクト内に最小構成で導入します。
2-1. フォルダ構成の作成
プロジェクトルートに以下のディレクトリを作成します。
mkdir -p .claude/hooks
mkdir -p .claude/sessions
mkdir -p .claude/memory
touch .claude/memory/last_session_path.txt`.gitignore` に以下を追加して、セッションログ自体はGit管理外(または必要に応じて管理)にします。
.claude/sessions/
.claude/memory/2-2. Hooksの設定 (`.claude/settings.json`)
Hooksを使って、セッションの開始・終了・圧縮(Compact)のタイミングでスクリプトを自動実行させます。
プロジェクトルートの `.claude/settings.json` を作成(または編集)します。
{
"hooks": {
"SessionStart": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "bash .claude/hooks/session-start.sh"
}
]
}
],
"PreCompact": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "bash .claude/hooks/pre-compact.sh"
}
]
}
],
"Stop": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "bash .claude/hooks/session-end.sh"
}
]
}
]
}
}Step 3: 自動化スクリプトの配置
Affaan方式のキモとなる3つのスクリプトを `.claude/hooks/` に配置します。
3-1. 終了時にログを残す `session-end.sh`
セッション終了時(`/exit` や会話終了時)に、**「次の自分のための引き継ぎ書」**のテンプレートを作成します。
#!/usr/bin/env bash
set -euo pipefail
SESS_DIR=".claude/sessions"
MEM_FILE=".claude/memory/last_session_path.txt"
mkdir -p "$SESS_DIR" ".claude/memory"
# 日時でファイル名を作成
TS=$(date +"%Y-%m-%d__%H%M")
OUT="${SESS_DIR}/${TS}__session.md"
# ログテンプレート(ここが重要)
cat > "$OUT" <<'EOF'
# Session Log
## Goal(目的)
-
## Done(完了)
-
## Decisions(決めたこと・理由)
-
## Evidence(根拠:テスト/コマンド/ログ)
-
## Failed attempts(やってダメだったこと ※超重要)
-
## Open questions(未解決)
-
## Next actions(次の1〜5手)
1.
2.
## Learned(次回以降のルール化候補)
-
EOF
# 次回ロード用にパスを記録
echo "$OUT" > "$MEM_FILE"
echo "[Stop] セッションログを作成しました: ${OUT}"
echo "[Stop] ★中身を編集して保存してください。次回は @${OUT} で再開できます"3-2. 開始時に前回ログを教える `session-start.sh`
次回 `claude` を起動したとき、前回のログファイルパスを教えてくれます。
#!/usr/bin/env bash
set -euo pipefail
MEM_FILE=".claude/memory/last_session_path.txt"
echo "[SessionStart] セッションを開始します"
if [[ -f "$MEM_FILE" ]]; then
LAST_PATH=$(cat "$MEM_FILE" || true)
if [[ -n "${LAST_PATH}" && -f "${LAST_PATH}" ]]; then
echo "---------------------------------------------------"
echo "[SessionStart] 前回のセッションログが見つかりました"
echo "以下のコマンドでコンテキストを読み込んで再開できます:"
echo " /compact"
echo " 今回やることを入力 @${LAST_PATH}"
echo "---------------------------------------------------"
fi
fi3-3. 圧縮前に退避する `pre-compact.sh`
長時間のセッションで `/compact` が走ると、短期記憶が消えます。その直前にスナップショットを残します。
#!/usr/bin/env bash
set -euo pipefail
SESS_DIR=".claude/sessions"
TS=$(date +"%Y-%m-%d__%H%M%S")
OUT="${SESS_DIR}/${TS}__precompact.md"
cat > "$OUT" <<'EOF'
# PreCompact Snapshot
コンテキスト圧縮により消える前の状態メモ。
- 作業中のタスク:
- 直近のエラー:
EOF
echo "[PreCompact] 圧縮前の状態を退避しました: ${OUT}"※スクリプト作成後は実行権限を与えてください(WSL/Mac/Linux):
`chmod +x .claude/hooks/*.sh`
運用フロー:どう変わるのか?
この構成を入れると、日々の開発はこう変わります。
1. セッション開始
`claude` と打つと、Hookが走り**「前回ログはこれだよ(@.claude/sessions/xxx.md)」**と教えてくれます。
→ 文脈説明の手間がゼロになります。
2. 作業中(Superpowers)
「この機能を作りたい」と言えば、Superpowersが**「まずはPlanを作りましょう」**と誘導します。
→ 迷走せず、設計どおりに実装が進みます。
3. フェーズの区切り(Affaan方式)
「探索」から「実装」に移るときなど、作業の区切りで `/compact` を打ちます。
→ `PreCompact` Hookが走り、念の為のスナップショットが残るので安心して圧縮できます。
4. セッション終了
作業を終えると、自動的に Markdown のログファイルが生成されます。
ここには 「何がうまくいき、何がダメだったか(Failed attempts)」 の欄があります。これを埋めておくことで、翌日の自分が「同じバグでハマる」ことを防げます。
なぜ、他の「記憶プラグイン」ではなくこの方式なのか?
世の中には `episodic-memory` のような「会話を全部覚えておいて検索する」プラグインもあります。しかし、実務では以下の理由で今回の構成が推奨されます。
重くない(Lightweight)
Vector DB同期やインデックス作成処理が走らないため、動作が軽快です。
「失敗の記録」が残る
AIは「うまくいったこと」はコードに残しますが、「試してダメだったこと」はコードに残りません。Markdownログなら**「A案は〇〇の理由でダメだった」**という意思決定プロセスを資産化できます。
プロジェクト単位で完結
`.claude/` に設定を入れるため、プロジェクトごとにルールを変えたり、チームで共有(Git管理)したりが容易です。
まとめ
Superpowers で「Vibe Coding」を卒業し、プロセスを型化する。
Affaan方式(Hooks + Markdownログ) で、AIの記憶をファイルシステムに外部化する。
この2つを入れるだけで、Claude Codeは「ちょっと賢いチャットボット」から**「文脈を維持できる実務パートナー」**に進化します。まずはこの最小構成から試してみてください。
参考リンク
関連マガジン
この他にも、開発効率を上げるためのツール設定や、2026年以降の未来予測など、目的別に情報を整理しています。
「何から読めばいいかわからない」という方は、まずはこちらのガイド記事をご覧ください。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
より実践的な内容は下記が面白そうでした。
▼ AI時代の収益設計|ビジネスモデル×副業×自動化
副業で月5万→30万の階段を、テンプレとチェックリストで仕組み化するためのガイドです。👇
AI・データ・開発の関連書籍をもう少し探したい方は、Book Media Techでテーマ別に比較できます。
Book Media TechでAI・データ・開発の本を探す
