# 変更の追従と差分チェック

PM on Railsは「一度作って終わり」ではありません。新しい議事録が来るたびに**既存の要求を更新**し、**変わったことを下流（ストーリー・タスク）と関係者に伝える**しくみを持っています。

## 議事録の再取り込みと自動更新（差分チェック）

同じ案件で打ち合わせを重ねると、要求は少しずつ変わります。新しい議事録から要求カードを生成するとき、AIが既存カードと見比べて「更新すべきもの」を見つけます。

![PM on Railsの差分チェック。類似度、変更前後、新規 / 更新 / スキップが並ぶ。導入前は新しい議事録の影響を自分で探していた。導入後は取り込むものだけを人が選ぶ。](https://pmonrails.com/docs-img/diff-check.png)

- **意味で照合** — 新しく抽出した要求カードを、既存カードと**ベクトル検索で照合**します。言葉が違っても同じ要求なら拾います（上の画像の「類似度」）。
- **自動マージはしない** — 重なりが見つかっても勝手に統合しません。複数の候補を**最新順**に「叩き台」として提示し（最新候補にバッジ）、人が選びます。
- **フィールド単位の差分** — 各候補について「どの項目が、どう変わるか」を差分表示します（例: 概要が「A」→「B」、優先度が「中」→「必須」）。候補は最新の5件まで提示します。
- **3択で一括適用** — 抽出された要求ごとに「新規作成 / 既存を更新 / スキップ」を選び、まとめて適用できます。
- **根拠の維持** — 資料から作った要求では、更新したときも根拠の資料へのひも付けが保たれます（[ナレッジ](https://pmonrails.com/docs/knowledge.md)）。

## 変更の波及（影響範囲の自動検出）

要求が変わると、その下流も影響を受けます。

- 要求カードを更新すると、連動する**ストーリー・受入シナリオ**と「どの項目が変わるか」を自動で見つけて提示します。
- 要求カードを 「**今回やらない**」 にすると、その要求から作られた要件も自動で「対象外」になり、宙に浮いた要件が残りません。
- 「変更したら何に影響するか」は、つながりを辿る機能でも確認できます（[進捗を管理する](https://pmonrails.com/docs/progress.md)、エンジニアは [MCP](https://pmonrails.com/docs/mcp.md)）。

## 更新に「気づける」しくみ

AIや他のメンバーが内容を更新しても、**作業者が必ず気づける**ようになっています。

![PM on Railsのスコープ確定にある変更ありバッジ。前回見てから増えた・変わったカードが色分けされる。導入前は何が新しいかを探しに行っていた。導入後は自分の未読だけが向こうから分かる。](https://pmonrails.com/docs-img/scope-change-badge.png)

- **要求カードの「New / 変更あり」（個人ごと・自動既読）** — スコープ確定・要求カードの画面で、自分が前回その画面を見たあとに「増えた／変わった」カードを色分け表示します（上の画像の「変更あり」バッジ）。個人ごとの最終閲覧時刻で判定し、見て離れれば自動で既読になります（クリック不要）。
- **「未確認の上流変更」一覧** — 要求・要件・ストーリー・シナリオの内容が（AIでも人でも）変わると変更が記録され、ユーザーストーリー画面に「未確認の上流変更」として件数つきで表示されます。何がどう変わったか（変更前後）と影響するストーリー・シナリオを確認でき、AIが下流の更新案も提案します。確認は人ごとに記録されます。
- **タスクの上流変更マーカー** — 着手中のタスクの上流（要求・シナリオ）が変わると、「上流が変わった（未反映）」と分かるようにマークされます。
- **PR着手後の仕様乖離** — タスクに着手したあとで仕様が変わると、PRマージ時に「再確認が必要」とマークします。
- **変更時刻をすべてのデータが記録** — 要求・要件・ストーリー・シナリオ・タスクは「中身がいつ変わったか」を記録します。これにより、Claude Codeなどの実装者（[MCP](https://pmonrails.com/docs/mcp.md)）も「自分が着手したあとに上流が変わった」ことを検知できます。仕様そのものの変更と、担当・状態だけの操作は区別して扱われます。

## 変更の通知

- 要求やスコープが変わると、関係者に**変更通知**が届きます（アプリ内のベル / メール / デイリーダイジェスト）。
- 長期間更新されていない要件は「滞留」として警告します（90日で警告 / 180日で重大）。レビュー待ちで滞留しているPRもダイジェストに出ます。
- 通知の種類・受け取り方は[通知とSlack](https://pmonrails.com/docs/notifications.md)を参照してください。

## 確認事項の回答が仕様へ戻る

[確認事項](https://pmonrails.com/docs/clarifications.md)で回答が付いて解決すると、AIが対象の要件・ストーリー・シナリオへの更新案を作ります。更新案は**承認待ち**で残り、適用するまで仕様は変わりません。確認事項画面で「解決」を押すと、その場で回答から更新案を作って差分を表示します。「適用する」で仕様に書き、「あとで」を選ぶと「承認待ちの更新案」に残ります。残った更新案は、一覧で1件ずつ「適用」するか「すべて適用」でまとめて反映します。解決済みの確認事項の「更新案を作る」でも同じ画面を開けます。承認待ちが残っていると、プロジェクトの開発用チャンネルに毎朝届くチーム状況の「要対応」に件数が載り、古いものから待ち日数が付き、その確認事項を解決した人がSlackアカウントを連携していればメンションも付きます。回答が後から変わったときは、古い更新案を取り下げて作り直します。なお、AIエージェントがMCPの `create_question_reflection_proposal` で作る更新案は承認待ちにならず、呼び出した時点で仕様に書きます（その呼び出しを承認として扱います）。

**要求・要件・ストーリーなどの本文を人やAIが直接変えた結果**として出る下流の更新案（上流変更の追随）も、同じように更新案一覧で差分を確認してから適用します。

## 版を切り替える（履歴を残す）

進行中の仕様を変更すると、上書きではなく**新しい版**を作り、古い版も履歴として残ります（要求・要件・ストーリー・シナリオ・タスクで共通）。詳しくは[バグと変更管理](https://pmonrails.com/docs/bugs-changes.md)を参照してください。

## AIによる品質チェック

AIアシスタントは、つながりが切れた要件・シナリオのないストーリー・古いまま放置された進行中タスク・トレーサビリティの断絶などの**品質リスク**を自動で指摘できます（[AIアシスタント](https://pmonrails.com/docs/ai-assistant.md)）。

## 次のステップ

- [進捗を管理する](https://pmonrails.com/docs/progress.md)

---

https://pmonrails.com/docs/change-tracking
