Skip to content
Back to skills

Write Tour

ASecurity

コードを処理の流れの順に辿る「ツアー」の台本を書き、conductor が読む .conductor/tour.json に保存する。差分のレビュー用と、実装計画用の両方。

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 7, 2026
developmentgit

Security analysis

A100/100

Scanned October 7, 2026

npx -y skills add S-Nakamur-a/conductor --skill write-tour --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Write Tour?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Write Tour
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/s-nakamur-a-write-tour/badge)](https://www.skillsdirectory.com/skills/s-nakamur-a-write-tour)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: write-tour
description: "コードを処理の流れの順に辿る「ツアー」の台本を書き、conductor が読む .conductor/tour.json に保存する。差分のレビュー用と、実装計画用の両方。"
disable-model-invocation: true
---

# Write a tour

処理の流れの順に停留所を並べた台本を書き、`<worktree>/.conductor/tour.json` に保存する。
conductor の Explorer 下区画 (`t`) がそれを読み、カーソルを場所の行に合わせると右の
Viewer がその場所を開く。

$ARGUMENTS

## 何をツアーするか

引数で決める。どちらでも成果物の形は同じ。

- **引数なし** — いまの差分 (`git diff` の範囲) をレビューのために辿る。
- **やることが書かれている** — その実装計画として辿る。まだ無いコードの話は `narration`
  に日本語で書き、`places` は「そこに手を入れる既存の場所」を指す。

## 並べる順

**重要度順にしない。処理が流れる順に並べる。** 入口から始めて、呼ぶ側 → 呼ばれる側 →
戻り先、と辿る。同じファイルに何度戻ってもよい。読む人が「で、次はどこに行くの」と
思わない並びが正解。

`git log` や変更行の多さで順番を決めてはいけない。実際にコードを読んで、制御が
どう流れるかで決める。

## 停留所の作り方

1つの停留所は「1つ分かること」。10個を超えたら分かることが多すぎるので割る。

- `title` — その停留所で何が分かるかを一息で。20 字前後。
- `narration` — **最初の段落に、前の停留所から**なぜここに来るのかを書く。「ここで決めた
  行き先を、次はこの表から引く」のように、前との繋がりを一文で。番号だけ振られても
  読む人は関連が分からない。次の段落に**なぜそうなっているか**。何をしているかは
  コードが答えるので書かない。
  段落の区切りは空行 (`\n\n`)。単独の改行は折り返しとして繋がれるので、字数で折らない
  (折り返しは conductor が区画の実幅で行う)。全部で 120 字くらいまで。
- `places` — 見せる場所。複数あるとカーソルの上下で切り替わるので、**対で見たいもの
  (呼ぶ側と呼ばれる側、定義と使用箇所) を同じ停留所に入れる**。

## 場所の書き方

```json
{ "path": "crates/conductor-tui/src/route.rs", "start": 40, "end": 49 }
```

- `path` — worktree ルートからの相対パス。
- `start` / `end` — 1 始まり、両端を含む。**既定は囲んでいる関数まるごと**にする。
  2 行だけで足りるならそれでよいが、「この関数のどこにいるのか」が分からない狭さに
  しない。
- 両方省くとファイル全体を指す。
- `side` — 省略すると後像 (`"new"`)。削除された行を指すときだけ `"old"` にし、
  `start` / `end` には**削除前の**行番号を書く。

**行番号を推測で書かない。** 書き終えたら、全ての `start` / `end` をファイルの行数と
機械的に照合し、**照合した件数と範囲外の件数を報告する**。目で確かめたと書くだけに
しない。conductor は存在しない行を指す場所に「その行は無い」と表示するので、作り話は
そのまま見える。

## 保存する形

`<worktree>/.conductor/tour.json` に書く。`schema_version` は `1`。

```json
{
  "schema_version": 1,
  "title": "キー入力の行き先",
  "stops": [
    {
      "title": "キーの行き先を1か所で決める",
      "narration": "分岐が散ると IME の未確定文字が外に漏れる。\n\n既定は consume。",
      "places": [
        { "path": "crates/conductor-tui/src/route.rs", "start": 40, "end": 78 },
        { "path": "crates/conductor-core/src/keymap/context.rs", "start": 35, "end": 50 }
      ]
    }
  ]
}
```

## 説明し残しは自分で申告しなくてよい

conductor 側が差分と突き合わせて、どの停留所も触れていない変更を末尾に
「誰も説明していない変更」として自動で連結する。だから**漏らしたものを申告する必要は
ないし、埋めるために薄い停留所を足す必要もない**。

逆に言えば、そこに大量に積まれていたら台本が仕事をしていない。差分の主軸は必ず
自分の停留所で説明すること。

## 書き終わったら

保存したパスと停留所の数だけを伝える。台本の中身を会話に貼り直さない
(conductor の画面で読むもの)。

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…