project-context について
Claudeのセッション間でプロジェクトのコンテキストを維持するスキルです。作業中のプロジェクトを特定し、Gitの状態と照合して、セッション終了時に進捗を更新します。
主な機能
- 01最初に作業中のプロジェクトを特定
- 02コンテキストの読み込みと検証
- 03ブランチと最近のコミットを確認
- 04TODOとセッション状況を更新
- 05不足するコンテキストファイルを生成
活用シーン
- 01次のClaudeセッションで作業を再開
- 02コンテキストと現在のGit状態を照合
- 03セッション終了前に完了事項を記録
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scientiacapital/ skills --skill project-contextインストール後、Claude Code で/project-contextを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
config.jsondocs/2025-11-30-smart-context-loader-design.mdreference/projects-list.mdtemplate.md詳細
<quick_start>
セッション開始時: <project-root>/.claude/PROJECT_CONTEXT.md を読み込み、git status と照合して確認します
セッション終了時: 完了した TODO でコンテキストファイルを更新し、前回のセッションの Done リストをクリアします
コンテキストファイルの場所: <project-root>/.claude/PROJECT_CONTEXT.md
トリガー: 「load context」「save context」「done for today」「switch to [project]」 </quick_start>
<success_criteria> コンテキスト管理は、次の場合に成功です:
- pwd(Claude Code)またはユーザー入力(Claude Desktop)からプロジェクトが検出される
- コンテキストファイルが現在のプロジェクトと一致する(ヘッダーがフォルダ名と照合して確認される)
- Git の状態がコンテキストと照合して確認される(ブランチ、直近のコミット)
- 新しいセッションごとに Done リストがクリアされる(蓄積を防ぐ)
- セッション終了前にコンテキストが保存される </success_criteria>
<core_content>
必須: プロジェクトの検出(最初に実行)
他のあらゆる操作の前に、ユーザーがどのプロジェクトにいるのかを特定します:
Claude Code(ターミナル)
pwd # Get current working directory
pwdを実行して現在のディレクトリを取得します- パスからプロジェクト名を抽出します(最後のフォルダ名)
<pwd>/.claude/PROJECT_CONTEXT.mdを読み込みます- 確認:
# <project-name>ヘッダーはフォルダ名と一致していますか?- はい → コンテキストを表示して続行します
- いいえ → 警告: 「コンテキストが一致しません!ファイルには [X] とありますが、あなたは [Y] にいます。再生成します...」
- ファイルが存在しない → 自動生成します(下記参照)
Claude Desktop(ターミナルなし)
pwd が利用できない場合(Claude Desktop 環境):
- ユーザーがメッセージ内で既にプロジェクトを指定しているか確認します
- 指定していない場合は、尋ねます: 「今日はどのプロジェクトに取り組みますか?」
- 利用可能であれば
reference/projects-list.mdのプロジェクト一覧を使用します - 読み込みます:
/Users/tmk/Desktop/tk_projects/{project-name}/.claude/PROJECT_CONTEXT.md
プロジェクトを切り替えるには: ユーザーが「switch to [project-name]」または「working on [project]」と言います
セッション開始時
プロジェクト検出の後:
1. コンテキストファイルを読み込む
<project-root>/.claude/PROJECT_CONTEXT.md
2. Git の状態と照合して確認する
git status # Current branch, modified files
git log --oneline -5 # Recent commits
不一致を指摘します:
- コミットで完了とマークされた TODO は? → 「Done」に移動します
- ブランチが変わった? → コンテキストのヘッダーを更新します
- 古い情報? → 削除します
3. ユーザーに表示する
簡単な要約を表示します:
📍 Project: [name]
🌿 Branch: [branch]
📅 Last updated: [date]
Focus items: [count]
セッション終了時
トリガー: 「done」「end session」「save context」「done for today」
- 会話を確認して完了した作業を洗い出します
- PROJECT_CONTEXT.md を更新します:
- 完了した TODO を「Done (This Session)」に移動します
- 行われたコミットに基づいて Status を更新します
- 手をつけていない Focus 項目は保持します
- 前回のセッションの Done リストをクリアします(蓄積を防ぐ)
- タイムスタンプを更新します
- 更新されたコンテキストをユーザーに表示します
コンテキストの自動生成
PROJECT_CONTEXT.md が存在しない場合、次のものから作成します:
.claude/CLAUDE.mdまたはCLAUDE.md(プロジェクトのドキュメント)git log --oneline -5(直近のアクティビティ)git status(現在の状態)package.json/pyproject.toml/requirements.txt(技術スタック)
書き込み先: <project-root>/.claude/PROJECT_CONTEXT.md
コンテキストファイルの形式
完全なテンプレートについては reference/template.md を参照してください。
# <project-name>
**Branch**: <branch> | **Updated**: <YYYY-MM-DD>
## Status
<2-3 sentences: current state>
## Today's Focus
1. [ ] <task>
2. [ ] <task>
## Done (This Session)
- <populated on session end, cleared on next session start>
## Blockers
<none or list>
## Tech Stack
<single line: Python 3.11 | FastAPI | PostgreSQL>
主要なルール
- 常に最初にプロジェクトを検出する - 前回のセッションから推測しないこと
- 1 プロジェクト = 1 コンテキストファイル - 相互汚染は禁止
- コンテキストが pwd と一致するか確認する - 不一致の場合は警告する
- セッションごとに Done リストをクリアする - 無限の蓄積を防ぐ
- この SKILL.md にデータを保存しない - 常にプロジェクト自身のファイルを使用する
参照ファイル
reference/template.md- 例を含む完全なコンテキストファイルテンプレートreference/projects-list.md- Claude Desktop 用の Tim のプロジェクト一覧
結果サイドカーを出力
最後のステップとして、~/.claude/skill-analytics/last-outcome-project-context.json に書き込みます:
{"ts":"[UTC ISO8601]","skill":"project-context","version":"1.0.0","variant":"default",
"status":"[success|partial|error]","runtime_ms":[estimated ms from start],
"metrics":{"projects_detected":[n],"context_files_updated":[n]},
"error":null,"session_id":"[YYYY-MM-DD]"}
一部のステージが失敗しても結果が生成された場合は、ステータスに "partial" を使用します。出力がまったく生成されなかった場合にのみ "error" を使用します。 </core_content>