low-context-memory は何をしますか?
コンテキストウィンドウの使用を最小限に抑える軽量なCodexスキルです。プロジェクトの状態を構造化ファイル(conductor/ + 日次ログ)に永続化します。冪等なセットアップスクリプト、簡潔な進捗/決定テンプレート、チェックポイントワークフローを提供し、最小限のチャット履歴でセッション間の作業再開を可能にします。
はじめに
このスキルは、以下の問題を解決します:
- コンテキストウィンドウの枯渇: 長時間のセッションや大きなファイルでコンテキストが消費される
- セッション間の状態喪失: 会話ごとにプロジェクト状態を再説明する必要がある
- 非構造化された進捗: 決定事項や作業ログがチャット履歴に埋もれる
セットアップ
- プロジェクトのルートに
conductor/ディレクトリを作成します(このスキルは自動的に作成します) setup.shを実行して必要なファイル構造を初期化します:chmod +x setup.sh && ./setup.sh- 以下のファイルが作成されます:
conductor/STATE.md- 現在のプロジェクト状態conductor/PROGRESS.md- 進捗ログconductor/DECISIONS.md- アーキテクチャ/設計上の決定conductor/TASKS.md- 現在のタスク一覧- 日次ログファイル(例:
daily-logs/2025-03-20.md)
使用方法
セッション開始時
コンテキストを読み込むには:
1. `cat conductor/STATE.md` で現在の状態を確認
2. `cat conductor/PROGRESS.md` で最新の進捗を確認
3. 最新の日次ログを確認:
ls -t daily-logs/*.md | head -1 | xargs cat
4. 再開可能なタスクを `cat conductor/TASKS.md` で確認
進捗更新
タスクを完了したら:
1. 日次ログにエントリを追加(`daily-logs/YYYY-MM-DD.md`)
2. `conductor/PROGRESS.md` の対応するセクションを更新
3. 必要に応じて `conductor/TASKS.md` のタスクを完了としてマーク
4. 決定事項がある場合は `conductor/DECISIONS.md` に記録
チェックポイント
チェックポイントを作成するには:
# チェックポイントコマンド(例)
cp conductor/STATE.md conductor/checkpoints/state-$(date +%Y%m%d-%H%M%S).md
チェックポイントから復元するには:
# 最新のチェックポイントを復元
cp $(ls -t conductor/checkpoints/*.md | head -1) conductor/STATE.md
ファイル構造
<project-root>/
├── conductor/
│ ├── STATE.md # 現在のプロジェクト状態
│ ├── PROGRESS.md # 進捗ログ
│ ├── DECISIONS.md # 設計上の決定
│ ├── TASKS.md # タスク一覧
│ └── checkpoints/ # 状態のスナップショット
├── daily-logs/
│ └── YYYY-MM-DD.md # 日次ログ
├── setup.sh # セットアップスクリプト(冪等)
└── README.md # このファイル
テンプレート
日次ログテンプレート
# YYYY-MM-DD 日次ログ
## 進捗
- [ ] タスク1: 説明
- [ ] タスク2: 説明
## 決定事項
- 決定1: 説明
## 注意事項
- 注意点や気づき
決定ログテンプレート
## YYYY-MM-DD: 決定タイトル
- **コンテキスト**: なぜこの決定が必要か
- **選択肢**: 検討した選択肢
- **決定**: 選んだ選択肢とその理由
- **影響**: この決定の影響
ベストプラクティス
- 定期的な更新: 各タスク完了後またはセッション終了時に状態ファイルを更新する
- 簡潔なエントリ: 各エントリは数行に収め、詳細はコードやコメントに委ねる
- 冪等な更新: 状態ファイルは常に現在の状態を正確に反映する
- チェックポイント: 重要なマイルストーンではチェックポイントを作成する
- 日次ログ: 1日1ファイルに固執し、過度なファイル分割を避ける
トラブルシューティング
- 状態ファイルが古い:
conductor/内の全ファイルが最新であることを確認 - コンテキスト不足:
conductor/STATE.mdと最新の日次ログのみを読み込む - 競合する更新: チームで作業する場合、変更前に状態ファイルを読み込むことを徹底する