← 実例マッピング | livt
ストーリー ルール 提案中のルール テストが自動化している 自動化Issue 具体例 疑問点 ユビキタス言語
表示
実装リポジトリがlivtリポジトリを見てテスト駆動で自動化する→

ルール

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

疑問点

2
疑問点
#Q-05 ネットワーク(非ローカル)公開する場合の認証・公開モデルをどうするか(現状はローカル利用前提で認証なし)
#Q-06 同一性(どのlivtリポジトリか)と版方針を宣言するネイティブマニフェストを持つか(R-15のenv契約が供給するのは所在のみ。名前→所在のレジストリ、spec_versionのピン留めが論点)
ユビキタス言語