# Chat Navigator

> セッション開始時に過去のコンテキストを読み込み、終了時にサマリーを記録し、チャットが長くなったときに「あの話はどこだっけ」を解決する。「あの話を探して」「前に議論した内容を確認したい」「チャットのどこかで決めたこと」と言われたときも使う。

- Skill: `snnyy-hks/chat-navigator` (Agent Skill)
- Install (CLI): `npx skillmds@latest add snnyy-hks/chat-navigator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/snnyy-hks/chat-navigator/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: snnyy-hks (https://skillmd.com/u/snnyy-hks)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/snnyy-hks/chat-navigator

---


# Chat Navigator

チャット履歴の記録・読み込み・ナビゲーションをすべて担うスキル。hooks や PowerShell に依存しない。

---

## セッション開始時（毎回必ず実行）

`C:\Users\yoshi\.cursor\sessions-log.md` を Read ツールで読み込む。

- 最近のセッションのタイトルと **Summary** を把握し、今回の会話の継続性を確認する
- ユーザーが過去の作業に言及したとき・関連する過去セッションがありそうなときは積極的に参照する
- 読み込みに失敗した場合（ファイル未存在）は新規作成: `# Sessions Log\n\n---\n`

---

## セッション終了時（タスク完了・会話が一段落したとき）

会話が実質的な作業を含む場合に限り、sessions-log.md にエントリを追記・更新する。

### エントリ形式

```
### [YYYY-MM-DD HH:mm] タイトル
**Summary**: 1〜2文の日本語要約
```

- **タイトル**: 最初のユーザーメッセージの先頭50文字（改行・余分な空白を除去）
- **日時**: 会話開始時のタイムスタンプ（システムの `<timestamp>` から取得）
- **Summary**: 今回の作業内容を1〜2文で要約

### 書き込み手順

1. sessions-log.md を Read で読み込む
2. 今回のセッション（タイムスタンプ一致）が**既にある**場合 → StrReplace で Summary 行を更新
3. **まだない**場合 → ファイル末尾に追記（StrReplace で末尾の既存テキストを置換）

```
既存の末尾行を含めて置換する例:
old: "**Summary**: (未記録)"  ← 最後のエントリの最終行
new: "**Summary**: (未記録)\n\n### [2026-06-18 05:54] タイトル\n**Summary**: 今回の要約"
```

### 短い・テストのみの会話

要約できる実質的な内容がない場合は更新しない。

---

## セッション内ナビゲーション（「あの話を探して」と言われたとき）

### Step 1: 現在のセッションを整理する

会話の流れを振り返り、主なトピックを時系列で提示する:

```
## 現在のセッション トピック一覧
- [前半] トピックA: (概要1行)
- [中盤] トピックB: (概要1行)
- [直近] トピックC: (概要1行)
```

探しているトピックが見つかればここで終了。

### Step 2: 過去セッションを検索する

現在のセッションに見つからない場合、`C:\Users\yoshi\.cursor\sessions-log.md` を読み込んで関連セッションを特定する。

- タイトルと Summary からキーワードで絞り込む
- 候補をユーザーに提示して確認を取る

### Step 3: トランスクリプトを読む（ユーザーが「もっと詳しく」と言った場合）

```
パス: C:\Users\yoshi\.cursor\projects\{project-slug}\agent-transcripts\{full-uuid}\{full-uuid}.jsonl
```

よく使うプロジェクトスラグ:
- `c-Users-yoshi-src-progress-manegement-myfirst-web-app`
- `c-Users-yoshi-src-personal-visual-explainers`

JSONL は1行1メッセージ。キーワード検索は Grep ツールを使い、前後5行程度だけ Read する。

### 出力フォーマット

```
## 見つかった議論

### 現在のセッション
- [前半] ...

### 過去セッション [YYYY-MM-DD HH:mm] — タイトル
**Summary**: ...
**関連箇所**: (見つかった内容の要約)

続きを読む場合はトランスクリプトを開けます。
```

---

## 注意

- Summary が `(未記録)` のセッションはトランスクリプトを直接 Grep する
- トランスクリプトは大きい場合がある。Grep でキーワード絞り込み → 前後数行 Read が効率的
- sessions-log.md の既存エントリ（hooks が作ったUUID形式）と新規エントリ（タイムスタンプ形式）は共存してよい

