reflect について
reflect は、会話から長期的に役立つ知見を抽出し、スキルの編集先を決めるエージェントスキルです。会話のレビューから承認、変更の適用までの手順を定めています。
主な機能
- 01現在の会話のトランスクリプトを特定
- 023つのレビュー役を並行実行
- 03知見を統合し構造面を確認
- 04スキル編集前に承認を要求
活用シーン
- 01会話から再利用可能な知見を抽出
- 02知見を既存または新規スキルへ振り分け
- 03承認済みのスキル変更を準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ backnotprop/ pstack --skill reflectインストール後、Claude Code で/reflectを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/divergent-reviewer.mdjudgment-reviewer.mdsynthesizer.mdtooling-reviewer.md詳細
Reflect
現在の会話から長期的に役立つ学びを抽出し、スキルの編集に反映します。
ユーザーが「reflect」または「/reflect」と入力したときに実行します。会話が些細な内容、話題から外れた内容、または親が既存のスキルに正しく従っていてすでにカバーされている場合はスキップします。一度限りの内容は学びではありません。
1. アクティブなトランスクリプトを見つける
処理を並列化する前に、アクティブなワークスペースのセッションディレクトリで、この会話のトランスクリプトを見つけます。すべてのプロジェクトのディレクトリを対象に glob してはいけません。ワークスペースの境界を越え、無関係なプロジェクトのプライベートな会話を読み込むことになります。
トランスクリプトの保存場所は、使用するハーネスによって異なります。
-
Cursor: システムプロンプトで指定された
agent-transcripts/ディレクトリ。ls -t <agent-transcripts>/*.jsonl <agent-transcripts>/*/*.jsonl <agent-transcripts>/*/subagents/*.jsonl 2>/dev/null | head -10ここには、旧形式のフラット構成(
<id>.jsonl)、現行のネスト構成(<id>/<id>.jsonl)、サブエージェント構成(<parent>/subagents/<child>.jsonl)が含まれます。候補ごとに、最初の JSONL 行を読み取ります。message.content[0].textにこの会話の最初のユーザープロンプトが含まれているファイルを選びます。 -
Claude Code:
~/.claude/projects/<slug>/<session-id>.jsonl。ここで<slug>は、ワークスペースのパスに含まれる英字と数字以外のすべての文字を「-」に置き換えたものです。 -
Pi:
~/.pi/agent/sessions/--<slug>--/*.jsonl。ここで<slug>は、先頭のスラッシュを除いたワークスペースのパスで、各「/」を「-」に置き換えたものです。 -
Codex:
~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl。最初の行のpayload.cwdがワークスペースのパスと一致するファイルだけを残します。 -
その他のハーネス: このワークスペースのハーネスのセッションディレクトリを確認します。
Cursor 以外では、新しい候補から順に確認し、最初のユーザーメッセージに会話の冒頭のユーザープロンプトが含まれているかを確認します。一致するものがない場合は、セッションの要点を簡潔にまとめて渡します。
2. 3 人のレビュアーを並列で起動する
1 つのメッセージで、subagent_type: generalPurpose、エージェントモード(readonly: false)を指定した Task 呼び出しを 3 回行います。レビュアーが、トランスクリプト内で言及されているチケット、チャットスレッド、オブザーバビリティのトレースを調べられるように、MCP へのアクセスが必要です。readonly では MCP が無効になります。
その他のハーネス。 このスキルの起動方法は Cursor の Task ツールを使います。別のハーネスでは、そのハーネスのサブエージェントツールを使います。Claude Code では Agent(subagent_type: general-purpose)、OpenCode では task(subagent_type: general)、Codex では spawn_agent を使います。プロンプトとモデルはそのまま維持してください。使用するツールにないパラメーターは省略します。Pi のように拡張機能がなく、ハーネスにサブエージェントツールがない場合は、各役割を順番に自分で実行します。
各レビュアーと統合担当者は、pstack 設定ファイル内で役割の行を指定します(Cursor では ~/.cursor/rules/pstack-models.mdc、Claude Code では ~/.claude/rules/pstack-models.md、その他のハーネスでは ~/.agents/pstack-models.md)。このファイルまたは該当する行がない場合は、既定値を使います。model にはその行の値を設定し、ファイルまたは行がない場合は既定値を設定します。値が auto または inherit-parent の場合は、model を未設定のままにします。サブエージェントツールがモデルのスラッグを拒否した場合は既定値を使い、その旨を伝えます。既定値も拒否された場合は、エラーメッセージまたはハーネスのモデル一覧から、同じファミリーの有効なスラッグに置き換えます。サブエージェントの推論レベルと速度(高速または標準)は、poteto-mode スキルの「Subagents」セクションに従って選びます。
| 観点 | 役割の行 | 既定の model | プロンプトテンプレート |
|---|---|---|---|
| 判断 | reflect judgment, divergent, synthesizer | claude-opus-5-5-xhigh | references/judgment-reviewer.md |
| ツール | reflect tooling | grok-4.7-xhigh-fast | references/tooling-reviewer.md |
| 発散 | reflect judgment, divergent, synthesizer | claude-opus-5-5-xhigh | references/divergent-reviewer.md |
各テンプレートは、指定箇所のトランスクリプトのパスまたは要約を置き換えたうえで、一字一句そのまま渡します。レビュアーは、Task の応答本文に調査結果を返します。
3. 統合
Task を 1 回呼び出します。subagent_type: generalPurpose、model は reflect judgment, divergent, synthesizer の行に記載されたもの(デフォルトは claude-opus-5-5-xhigh)、エージェントモード(readonly: false)を指定します。MCP 経由で引用をスポット検証します。readonly を指定すると MCP が除外されます。references/synthesizer.md をそのまま渡し、指定箇所に各レビュアーの出力全文をインラインで挿入します。Accepted/Rejected/Backlog のリストが返されます。
4. 構造による適用の確認
リンタールール、スクリプト、メタデータフラグ、またはランタイムチェックでより確実に適用できる Accepted 項目は、Backlog に移します。encode-lessons-in-structure 原則のスキルを参照してください。
5. 適用
シンセサイザーが出力した Accepted/Rejected/Backlog の全文を提示し、Accepted の編集を適用する前に明示的な承認を待ちます。ユーザーは対象項目を選び、振り分け先を変更することもできます。スキルの変更は、組織内の今後のすべてのエージェントに影響します。自動で適用しないでください。
Backlog の各項目は、待たずにチームの devex またはバックログ管理ツールに登録します。承認を待つのは Accepted リストのみです。
plugins/cache/ 内のスキルは編集しないでください。承認前に、適用先を提示します。Cursor の場合は .cursor/skills/<skill>/ または ~/.cursor/skills/<skill>/、それ以外の場合は、.claude/skills/<skill>/ や ~/.agents/skills/<skill>/ など、ハーネスのプロジェクトまたはユーザーのスキルフォルダーを指定します。承認後、スキルフォルダーをそこにコピーし、そのコピーを編集します。PR を作成したり、プッシュしたりしないでください。
承認された各行の Routing に正確に従います。
- 既存スキルへの軽微な編集(箇条書き 1 行の追加、文の簡潔化、古くなった事実の修正):親エージェントが直接編集します。
- 既存スキルへの実質的な編集(新しいセクション、新しいパターン表、約 10 行を超える変更):ハーネスのスキル作成スキルに任せ、ドラフト/テスト/反復のループを実行します。Cursor では
create-skill(組み込み)、または Anthropic のskill-creatorを使います。どちらもない場合は、agentskills.io の Agent Skills 形式に従います。以下の「create-skill」は、使用するこれらのいずれかを指します。 tune description: <skill path>(スキルは存在するが、必要なときに起動しなかった):create-skillに任せ、説明の最適化ループを実行します。new skill via create-skill: <kebab-name>:作成をcreate-skillに任せます。場当たり的に形式を決めないでください。
環境に SKILL.md バリデーターが含まれている場合は、完了を宣言する前に、変更したすべてのスキルに対して実行してください。
6. ユーザー向けに要約
前置きなしで、簡潔なリストにします。
- 適用した編集:
<skill path>。変更内容を各 1 行で記載します。 - 作成した新しいスキル:
<skill path>。各 1 行で記載します(まれ)。 - devex トラッカーに登録したバックログ:
<issue title>(<tags>)。各 1 行で記載します。 - 見送った項目:シンセサイザーが示した理由とともに、却下した指摘を各 1 行で記載します。