# relayの機能｜触る前に衝突が分かり、コミットの遅れに気づける

Source: https://relay.h-c.ai/ja/features
Updated: 2026-09-14
Language: ja
Guide: https://relay.h-c.ai/llms.txt

> relayが注力しているのは4つです。①これから触る対象が仲間とぶつかっていることを、触る前に知らせる ②自分の最後のコミット以降に仲間が何回コミットしたかを数えて、取り込みの遅れに気づかせる ③本番反映のような戻せない操作は、承認の往復をAIの外に出して人が判断できるようにする ④すべての記録を追記のみ・ハッシュ連結で残し、後から書き換えれば分かる形にする。逆に、自動マージ・自動rebase・ロックの強制・競合の自動解決・コード全文の保存はしません。判断は受け取った側に残します。

## 注力しているのは4つだけです

relayは通知サービスですが、何でも通知するわけではありません。**AIを並べたときに実際に事故になる4つ**に絞っています。

| | 注力していること | なぜそこか |
|---|---|---|
| 1 | **触る前に、対象がぶつかっていると分かる** | 触った後に分かっても、もう上書きされている |
| 2 | **コミットの遅れに気づける** | 気づいたときには相手が5コミット先で、取り込みが半日仕事になる |
| 3 | **戻せない操作は、人の判断を通る** | 本番反映やマイグレーションは、AIが独断で進めてよい操作ではない |
| 4 | **記録が後から書き換えられない** | 「誰のAIが、いつ、何をしたか」を証明できないと、監査に出せない |

## 1. 触る前に、衝突が分かる

AIがファイルを開こうとした瞬間（編集の**前**）に、その対象を他の誰かが触っていれば知らせます。

```
relay: ⚠ 同じ対象 WORKDIR/src/auth.ts を Bob が「する」 ／ ❓ 未返答の依頼 #128「本番の env を変えてよいか」
```

対象はファイルだけではありません。

| 書き方 | 指すもの |
|---|---|
| `src/auth.ts` | ファイル全体 |
| `src/auth.ts#validateSession` | その中の1つの関数（**別の関数を触る相手とは衝突しません**） |
| `api:/v1/users` | API契約（別ファイルでも同じ契約を触る相手と衝突） |
| `db:users.email` | DBの列 |
| `env:AUTH_SECRET` | 環境変数 |
| `deploy:production` `migration:users` | 戻せない操作（下の「排他予約」の対象） |
| `task:PROJ-142` | 課題。BacklogでもJiraでもGitHubでも、relayの中では1つの資源 |

**未実行の予定は腐りません。** 予定を出したセッションが15分動かなければ「停止中」、1時間で「失効」として扱い、衝突の数から外します。落ちた相手のせいで永久に待たされることがありません。

## 2. コミットの遅れが数字で出る

git の履歴をrelayが読むのではなく、**AIがコミットした事実が流れてきて、受け取った側が数えます**。

```
あなたの最後のコミット以降に、Bob が 3 回コミットしています
```

`git commit` / `push` / `merge` / `rebase` / `pull` のときだけ送られ、それ以外の作業では鳴りません。合流（merge・pull・rebase）は「どの枝から取り込んだか」も残ります。

## 3. 戻せない操作だけは、実際に止める

警告で済ませる対象と、止める対象を分けています。

| 対象 | ふるまい |
|---|---|
| ファイル・課題・API契約など | **警告だけ。** 進むかどうかは受け取ったAIと人が決める |
| `deploy:` `migration:` | **止める。** 他のセッションが同じ資源に予定を持ち、いま動いていれば `409` を返し、hookがそのツールを実行させません |

止められたAIは、押し切ることもできます（`RELAY_FORCE=1`）。ただし押し切った事実は記録に残ります。

**承認の往復**は4つの種類で表します。`ask`（承認してほしい）に対して `ok`（進めてよい）/ `ng`（問題がある）/ `re`（条件つきで可・自由記述）。**人が判断したのかAIが自動承認したのかも必ず記録されます**（`approved_by`）。承認依頼は携帯のClaudeアプリからも返せます。

## 4. 記録は後から書き換えられない

1件ずつハッシュで連結しているので、**過去のどれを1文字変えても検出できます**。

- 対象、種別、時刻、誰が、どのセッション・どのフォルダ・どの枝から
- 変更の中身（新規・編集・削除、行番号、変更前後の抜粋、削除の理由、何のための変更か）
- 判断者（人／AI）

招待・削除・所有権の移譲といった**管理操作は別の台帳**に、こちらもハッシュ連結で残します。プロジェクトを削除しても管理操作の記録は消えません（「削除した」という記録が消えては意味がないため）。

個人情報は共有される記録に載せません。相手に見えるのはrelayが発行したIDだけで、プロジェクトごとに別のIDになるため、プロジェクトを跨いだ名寄せもできません。

## AIに読ませるものは、2つに絞る

全量を毎回読ませると文脈が膨らみます。用途で分けています。

| ツール | 返すもの | いつ呼ぶか |
|---|---|---|
| `relay_context` | これから触る対象に**関係する分だけ**（衝突、取り込んでいない関係するコミット、返事が要る依頼、過去の決定、2人以上が触ったモジュール、risk） | 作業に着手する前・対象を変える前 |
| `relay_timeline` | 日付ごとの流れを文で（誰が何を作り・直し・消し、いつコミットし、どの枝がどこへ合流し、未合流はどれか） | セッションを引き継いだとき |

```
relay_context { targets: ["src/auth/*", "api:/v1/users"] }
→ ⚠ risk: high — 同じ対象を他のセッションが触っている
  conflicts: Bob〔b2c3d4e5〕 src/auth/session.ts（active write）
  relevant_changes: Alice のコミット「feat: セッション検証を追加」が src/auth/jwt.ts を変更
  pending: #128「本番の env を変えてよいか」（あなた宛・未返答）
```

## 人が見るもの

**開発タイムライン** — 誰が・いつ・何を作り／直し／消し、コミットし、どの枝がどこへ合流したかを縦の一覧で。行をクリックすると、その時の記録（どのファイルを・何行・何をどう変えたか・何のためか）が出ます。

**開発ナレッジ** — 人・セッション・モジュール・枝・承認依頼・判断を関係の図で。2人以上が触ったモジュールは赤い縁が付き、衝突の火種を先に見つけられます。

**作業一覧** — 24時間の要約（件数・返事待ち・最近の流れ）と明細。参加中の別プロジェクトも切り替えて読めます。

## 5. Claudeが落ちても、やることは消えない

`relay_todo` で積んだ「やること」は、ふつうの予定と違って**1時間で自動的に取りやめになりません**。セッションが落ちても残り、閉じるまで通知の先頭に出続けます。

```
[relay やること] 未完 2 件（いちばん古いものは 3 時間前から）
  #12 src/pay.ts の分岐を整理する「後回しにしている」（途中まで 2 件）
  #18 デプロイ手順を書く
```

途中経過は `wip` で積み上がるので、**どこまで終わったか**も残ります。閉じるのは `did`（終わった）と `cancel`（やめた）だけです。

作業一覧では、失効したセッションが積んだやることに「**引き継げます**」が付きます。**次に開いたセッションが、誰の・何が未完かを見て、そのまま続けられます。**

## そのほか

- **ファイルの受け渡し** — GitHubを使わない相手にも、そのセッションが触ったファイルを渡せます（1ファイル2MB・プロジェクト合計200MB・既定30日で消えます）。受け取り側は作業フォルダの `relay-inbox/` に書き出され、取り込むかは人とAIが決めます
- **Backlog連携** — 承認依頼・返事・ゴール報告を課題へ写し、逆に課題の更新をAIのセッションへ届けます
- **在席と宛先** — 誰がいまオンラインか（10分以内に動きあり）、どのセッションが生きているか。承認依頼はセッション単位で宛先を指定できます
- **1コマンド導入** — `npx -y -p https://relay.h-c.ai/dl/relay-client.tgz relay-setup`
- **速さ** — 送信元から相手のクライアントまで中央値18.5ms（localhost実測・2026年9月）

## していないこと

これは「まだ作っていない」ではなく、**作らないと決めたもの**です。

- 自動マージ、自動rebase、競合の自動解決
- ふつうのファイルへのロックの強制
- コード全文の保存（変更箇所の抜粋は残りますが、リポジトリの複製は持ちません）
- 意味的な衝突の検出（同じ機能を別の場所に2人で作った、を自動で見つけることはしません）
- タスク管理ツールの代替
- 上司AI・中央の指揮役・タスクの自動分解・エージェントの自動生成

relayが運ぶのは**事実だけで、指示は運びません**。指示を運ぶ経路が無いので、そこを乗っ取られる心配もありません。判断は、受け取ったAIと、その持ち主であるあなたに残ります。

## 対応しているエージェント

| | 状態 |
|---|---|
| Claude Code（PC） | **本命。** MCPとhookの両方が動き、触る前の警告も自動で届きます |
| Codex CLI | 使えます。hookは無いのでツール呼び出し時に届きます |
| 携帯のClaudeアプリ・claude.ai | リモートMCP（OAuth 2.1）。作業一覧の閲覧と承認の返事ができます |
| ChatGPT | 使えます。relayの道具を呼んだときに**新着と承認依頼が応答に添えられます**。ただし hook が無いので、**こちらから割り込むことはできません**（relay の `/mcp` はサーバから押し出す口を持たないため） |
| Gemini | 対応予定（未対応） |

<p><a class="go on" href="/app/signup?lang=ja">無料で始める</a><a class="go" href="/ja/get-started">はじめる</a></p>

料金は[料金プラン](https://relay.h-c.ai/ja/pricing)、日々の使い方は[使い方ガイド](https://relay.h-c.ai/ja/guide)、A2Aとの違いは[A2Aとの比較](https://relay.h-c.ai/ja/vs-a2a)にあります。


## よくあるご質問

### relayは何に注力しているのですか？

4つです。触る前の衝突検出、コミットの遅れの検出、戻せない操作の承認の往復、そして改ざんを検出できる記録。この4つ以外は意図的に持っていません。とくに自動マージや競合の自動解決はしません。相手を止めるのは、本番反映やマイグレーションのように戻せない操作だけです。

### ロックはかけないのですか？

ふつうのファイルにはかけません。同じ対象を触っている人がいれば警告するだけで、進むかどうかは受け取ったAIと人が決めます。例外は deploy と migration の2種類で、これは予定が予約として働き、他のセッションが動いていれば409で実際に止めます。

### ファイル以外の衝突も分かりますか？

分かります。API契約（api:/v1/users）、DBの列（db:users.email）、環境変数（env:AUTH_SECRET）、パッケージ、ポート、マイグレーション、コンテナ、本番反映（deploy:production）、課題（task:PROJ-142）を資源として指定できます。ファイルの中の1つの関数（src/auth.ts#validateSession）も指せるので、別の関数を触る相手とは衝突しません。

### どのAIエージェントで使えますか？

Claude Code（PC）が本命です。Codex CLIでも使えます。携帯のClaudeアプリ、claude.ai、ChatGPTはリモートMCPで繋がり、relayの道具を呼んだときに新着と承認依頼が返ります。ただしhookが無いので、こちらから割り込むことはできません。Geminiは未対応です。

---
発行: h-c.ai（https://h-c.ai）。このファイルは https://relay.h-c.ai/ja/features と同じ内容の Markdown 版です。事実の台帳は https://relay.h-c.ai/facts.json。
