← Example Mappings | livt
Story Rule Automated rule Example Question Ubiquitous Language
実装リポジトリがlivtリポジトリを見てテスト駆動で自動化する
livtはlivtリポジトリをMCPサーバーとして公開し、消費側はlivtのソースを読まずに仕様を取得する ✓ automated #R-01
実装リポジトリは別ディレクトリにあるlivtリポジトリの場所を指定できる ✓ automated #R-02
各レスポンス(ツール・リソース)はlivtリポジトリのバージョン(gitリビジョン)を返し、仕様のズレを防ぐ ✓ automated #R-03
実装リポジトリはストーリー単位で実例マッピングをリソースとして取得できる ✓ automated #R-04
実装リポジトリはルール単位で仕様をリソースとして取得できる ✓ automated #R-05
実装リポジトリは利用可能なストーリーの一覧を取得できる ✓ automated #R-06
消費側は stdio で livt mcp をサブプロセスとして起動し、消費者ごとに1対1で接続する ✓ automated #R-07
消費側は常駐する1つの livt mcp --http サーバーをURL参照で共有する ✓ automated #R-08
実装リポジトリはストーリーマップをリソースとして取得できる ✓ automated #R-09
実装リポジトリはストーリー本文をリソースとして取得できる ✓ automated #R-10
実装リポジトリはユビキタス言語の用語をリソースとして取得できる ✓ automated #R-11
公開対象の一覧はツールとリソーステンプレートで提供し、concrete resources と変更通知には広げない ✓ automated #R-12
実装リポジトリはストーリーの一覧をオポチュニティで絞り込める ✓ automated #R-13
livtリポジトリの参照を成果物に残すときは、IDではなくlivt URIで引用する ✓ automated #R-14
livtリポジトリの所在は、消費側workspaceにコミットされる宣言で供給する #R-15
実装リポジトリはユビキタス言語の用語の一覧を取得できる ✓ automated #R-16
Questions
livt mcp コマンドでstdioのMCPサーバーが起動する #EX-01
消費側エージェントはツール/リソース経由で実例マッピング・ルールを取得する #EX-02
環境変数 LIVT_ROOT でlivtリポジトリのルートディレクトリを指定する #EX-01
CLI引数 --root が環境変数より優先される #EX-02
いずれも未指定ならカレントディレクトリをルートとする #EX-03
出力に spec_version としてlivtリポジトリのgit HEAD(rev-parse --short の短縮リビジョン)が含まれる #EX-01
livtリポジトリがgit管理でない場合 spec_version は空になる #EX-02
resources/templates/list に livt://mapping/{story_key} が現れる #EX-01
resources/read livt://mapping/{story_key} でルール・実例・質問を取得する #EX-02
各ルールは自分のリソースURI(livt://mapping/{story_key}/rule/{rule_id})を持つ #EX-03
resources/read livt://mapping/{story_key}/rule/{rule_id} で単一ルールと実例を取得する #EX-01
存在しないキーやルールIDのURIは not found を返す #EX-02
list_stories で全ストーリーのキーと名前を取得する #EX-01
各エントリは実例マッピングがあれば、そのリソースURI(livt://mapping/{key})を示す #EX-02
クライアントが livt mcp をサブプロセスとして spawn し、標準入出力で接続する #EX-01
livtリポジトリの場所は --root / LIVT_ROOT で指す(消費側に別チェックアウトが要る) #EX-02
1消費者につき1プロセスで、サーバーは共有しない #EX-03
livtリポジトリ側で livt mcp --http localhost:5488 を常駐起動する #EX-01
複数リポジトリが http://localhost:5488/mcp を共有参照し、per-repo の LIVT_ROOT は不要 #EX-02
ステートレス・読み取り専用なので1プロセスで複数クライアントを捌く #EX-03
list_story_maps で全ストーリーマップの名前とリソースURI(livt://story-map/{map_name})を取得する #EX-01
resources/read livt://story-map/{map_name} でアクティビティ・ステップ・ストーリーカード・リリースを取得する #EX-02
マップ名はビルド出力(story-map/{name}.html)と同じ表示名で、URI上はパーセントエンコードして表す #EX-03
存在しないマップ名は not found を返す #EX-04
resources/read livt://story/{story_key} でストーリーの名前・本文・frontmatterメタ(例 issue)を取得する #EX-01
list_stories の各エントリとストーリーマップ内のストーリーカードは、ストーリーのリソースURI(livt://story/{story_key})を示す #EX-02
実例マッピングがあるストーリーは、そのリソースURI(livt://mapping/{story_key})も示す #EX-03
存在しないストーリーキーは not found を返す #EX-04
resources/read livt://ubiquitous/{term_key} で用語の名前と定義本文を取得する #EX-01
実例マッピング・ストーリーマップのレスポンスは ubiquitous の各用語キーに解決済みの名前とリソースURIを添える(既存の ubiquitous フィールドはそのまま維持する) #EX-02
用語ファイルがないキーはURIなしでキーのみを示す #EX-03
存在しない用語キーは not found を返す #EX-04
resources/templates/list に全リソーステンプレート(mapping・rule・story-map・story・ubiquitous)が現れる #EX-01
resources/list への concrete resources 掲載や subscribe は提供せず、毎リクエスト読みのステートレスを保つ #EX-02
消費側はlivtリポジトリの更新を spec_version の変化で検知する #EX-03
list_stories の各エントリは所属オポチュニティ(マップ名とストーリーマップのリソースURI)を示し、無所属なら空になる #EX-01
list_stories に opportunity パラメータ(マップ名)を指定すると、そのマップに載るストーリーだけが返る #EX-02
存在しないオポチュニティ名の指定は空の一覧を返す #EX-03
livt://story/{story_key} リソースも所属オポチュニティを示す #EX-04
MCPサーバは接続時にこの引用作法を指示する #EX-01
テストコメント・Issue本文・コミットメッセージが対象 #EX-02
裸のR-13 EX-01は、どのマッピングの話か復元できない #EX-03
デプロイ済みサイトのURLを一次の引用形にしない #EX-04
束縛の契約は環境変数 LIVT_ROOT で、mise・direnv などコミットされるworkspace設定から供給する #EX-01
MCPのspawnは mise exec -- livt mcp のようにランチャー経由にし、shell外の起動でも同じ宣言が効く #EX-02
CIはlivtリポジトリをcheckoutし、そのパスをLIVT_ROOTに束縛する(宣言はworkflowにコミットされる) #EX-03
値は {{config_root}}/../ のような相対参照で書け、隣接checkoutの配置規約ごと機械非依存にコミットできる #EX-04
list_terms で全用語のキーと表示名を取得する #EX-01
各エントリは自分のリソースURI(livt://ubiquitous/{term-ref})を示す #EX-02
文脈を持つ用語はその文脈も示し、同じキーを持つ別の用語と見分けられる #EX-03
どのボードからも参照されていない用語も一覧に現れる #EX-04
ネットワーク(非ローカル)公開する場合の認証・公開モデルをどうするか(現状はローカル利用前提で認証なし) #Q-05
同一性(どのlivtリポジトリか)と版方針を宣言するネイティブマニフェストを持つか(R-15のenv契約が供給するのは所在のみ。名前→所在のレジストリ、spec_versionのピン留めが論点) #Q-06
Ubiquitous Language