タスク

オポチュニティ

未解決の疑問点

24 — 会話で閉じる
ネットワーク(非ローカル)公開する場合の認証・公開モデルをどうするか(現状はローカル利用前提で認証なし)
同一性(どのlivtリポジトリか)と版方針を宣言するネイティブマニフェストを持つか(R-15のenv契約が供給するのは所在のみ。名前→所在のレジストリ、spec_versionのピン留めが論点)
走査が拾うパターンをリポジトリごとに宣言できるようにするか(マーカーを1つに決めたので今は要らないが、言語ネイティブのアノテーションを使いたい場合の拡張先)
同じ人を全ルールに繰り返し書く手間をどうするか(実例マッピング全体の既定を1か所に書き、違うルールだけ上書きする形が考えられる)
合意済みのルールに書かれた合意が要る人を、そのルールを変えるときにも合意が要る人として扱うか
GitHub以外のforgeでの書き方をどう扱うか(livtは文字列として運ぶだけだが、チェックとスキルは解釈する)
タスクページを合意が要る人で絞り込めるようにするか(自分を待っている提案だけを見たい。絞り込みの軸が1つ増えるので、別のストーリーになりそう)
解決した疑問点はどう扱うか(現状はルール化して付箋を消す運用のため、一覧は常に未解決のみを映す)
同じ集約をMCPにも出すか(実装リポジトリのエージェントが着手前に未解決の疑問点を拾えるようにする)
並び順を何を軸に決めるか(TDDのテストリストとして「どこから書くか」に答えるなら順序が要るが、リリーススライスは3マップ中2マップに存在せず軸にならない)
自動化Issueが起票済みのルールを「着手済み」として区別するか(livtリポジトリはIssueのリンクだけを持ち、その開閉状態は持たない)
合意済みのルールをADRのようにイミュータブルに扱うか(現状はchange-ruleがルール本文の書き換えを許しており、変更を退役+新ルールで表してはいない)
差分を載せたサイトを公開するか(いまのサイトはGitHub Pagesへ公開される。差分はレビューのあいだだけのものなので、同じ出力先に出していいか)
レビュアーは手元でビルドを走らせるのか、PRから差分に辿り着けるべきか(後者ならCIとプレビューの公開が要る)
付箋の並び替えだけの変更を差分として映すか(livt URIは変わらないが、ボードの見えは変わる)
ルールにも具体例にも付かない引用(解決しないURIなど)が増減したとき、差分にどう映すか(付く先が無いので映らず、レポートのPRが開いても差分は空になりうる)
ボードごとに既定の文脈を宣言し、bare keyをその文脈で解決するか(現状はボード側が参照ごとに文脈を書く)
文脈そのものに表示名や説明を持たせるか(現状はディレクトリ名がそのまま文脈名を兼ねる)
どのユーザーストーリーマップにも載っていない実例マッピングをどこに映すか(オポチュニティのページには定義上載らない)
ストーリーの分母をマップ上のカード数とストーリーファイル数のどちらで数えるか(前者はそのオポチュニティが取り上げた範囲、後者はlivtリポジトリ全体で、両者はズレる)
いつ合意され、いつ自動化されたかという時間軸を映すか(livtはいまYAMLだけを読み、gitに依存していない。映すならビルドがgitリポジトリを要求する)
1つのworkspaceが複数のlivtリポジトリを消費するとき、裸のlivt URIのスコープを何が復元するか(default宣言+エイリアス修飾のxmlns型が候補。現時点では考慮外とし、R-08 EX-03で拡張の席だけ確保している)
代替先URIの妥当性を検証するか(現状は解決しないURIも素通しする。未コミットのubiquitous参照を素通しで見せるのと揃えてはいるが、退役の代替先は誰の目にも触れないまま壊れうる)
マージ前に却下された提案を、rejectedとして残すか削除するか(livt://mapping/propose-rule-before-agreement/rule/R-05/example/EX-02 は却下された提案を削除せずrejectedにすると言うが、デフォルトブランチに載らなかった提案まで含むかは決めていない。現状はrejectedとして残す)

提案中のルール

0 — 合意で閉じる

提案中のルールはありません。

未自動化のルール

80 — テストで閉じる
livtはlivtリポジトリをMCPサーバーとして公開し、消費側はlivtのソースを読まずに決定を取得する
実装リポジトリは別ディレクトリにあるlivtリポジトリの場所を指定できる
各レスポンス(ツール・リソース)はlivtリポジトリのバージョン(gitリビジョン)を返し、読んだ版のズレを防ぐ
実装リポジトリはストーリー単位で実例マッピングをリソースとして取得できる
実装リポジトリはルール単位で仕様をリソースとして取得できる
実装リポジトリは利用可能なストーリーの一覧を取得できる
消費側は stdio で livt mcp をサブプロセスとして起動し、消費者ごとに1対1で接続する
消費側は常駐する1つの livt mcp --http サーバーをURL参照で共有する
実装リポジトリはストーリー本文をリソースとして取得できる
実装リポジトリはユビキタス言語の用語をリソースとして取得できる
公開対象の一覧はツールとリソーステンプレートで提供し、concrete resources と変更通知には広げない
livtリポジトリの参照を成果物に残すときは、IDではなくlivt URIで引用する
livtリポジトリの所在は、消費側workspaceにコミットされる宣言で供給する
実装リポジトリはユビキタス言語の用語の一覧を取得できる
走査はルールと具体例を独立に拾い、構造を推論しない
どの実装リポジトリが参加するかは実装側のCIが決め、livtリポジトリは宣言を持たない
レポートはlivtリポジトリにコミットし、書き戻しは機械だけが行う
ルールをどこで引用するかは実装リポジトリで働くAIスキルが導き、走査は推論しない
ビルドはレポートを入力として読み、ネットワークに出ない
ルールと具体例は、それぞれ自分の引用で状況が決まる
状況は引用の有無で決まり、レポートがあること自体が「見た」という宣言になる
どの実装リポジトリで自動化されたかが分かる
ruleのautomatedは、誰も書かなくなった後も、投影が単独でボードを支えられるまで読まれてから退役する
走査と投影のテストは、ドッグフーディングでは現れない形を含む
引用が古い意味を検証し続けないのは、意味が変わったルールが別のIDを取るから
ルールメンテナーはlivtリポジトリのルールを指定して、対象実装リポジトリへ自動化Issueを起票できる
起票したIssueのURLは、スキルがマッピングYAMLのruleに書き戻す
dedupeはlivtリポジトリ側の記録で判定し、同じルール×対象リポジトリを二重起票しない
Issue本文はルール・具体例の本文とlivtリポジトリへのバックポインタを運ぶ
ストーリーにUS Issueが紐づいていれば、ルールIssueはそのsub-issueとして起票する
起票は実装リポジトリのコードを読まず、Issueというポインタだけを送る
本ストーリーはAIスキルとして提供し、livtのCLIコマンドやMCPツールは追加しない
実例マッピングYAMLの各ruleは、対応する自動化IssueのURLをissuesとして持てる
紐づけの正はlivtリポジトリが持ち、GitHub側の構造には依存しない
対象実装リポジトリは、ストーリーのfrontmatterのreposで宣言する
Issue本文の一次参照はlivt URIで、デプロイ済みURLは補助にとどめる
ユーザーストーリーマップメンテナーはストーリーを指定して、対象実装リポジトリへストーリー単位のIssueを起票できる
起票したIssueのURLは、スキルがストーリーのfrontmatterのissuesに書き戻す
dedupeはlivtリポジトリ側の記録で判定し、同じストーリー×対象リポジトリに二重起票しない
ストーリー単位のIssueはルールIssueなしでも成立し、両方あるときだけ親子になる
本ストーリーはAIスキルとして提供し、livtのCLIコマンドやMCPツールは追加しない
対象実装リポジトリの宣言はfile-automation-issues-to-impl-reposと共通で、ストーリーのfrontmatterのreposを参照する
ルールは、合意が要る人をdecision_makersとして持てる
decision_makersは任意で、書かれていないルールには何も求めない
合意が要る人は、statusに関わらずルールと一緒に示される
MCPとCLIは、decision_makersをルールに付けて返す
合意が要る人の変更は、差分にそのルールの変更として出る
ストーリーと実例マッピングの両方が名前を持つとき、2つは同じ名前にする(揃えるのはAIスキルで、livt本体は比べない)
R-05 実例マッピング自体に名前を付ける
未自動化のルールは全実例マッピングを横断して一覧できる
各ルールはどのストーリーのものか分かり、その付箋まで辿れる
アクティビティとユーザータスクを俯瞰できる
ストーリーファイルを持つストーリーは詳細ページにリンクする
リリーススライスでストーリー行が区切られる
ストーリーカードのリンクを容易に取得できる
提案はADRと同じ流れで閉じる — 合意されればaccepted、却下されればrejected
どの成果物の一覧も、現在の内容を映したプレビュー付きのタイルで並ぶ
差分は追加・変更・廃止の3通りで、git diffの赤緑で読める。ただし赤緑が言うのはファイルではなく決定
差分とそのURIのページは、互いに辿れる
実例マッピングはボードとリストを切り替えて読める
リストではルールが1つにつき1行で並ぶ
具体例はルールの行の下に折りたたまれ、開いたときだけ見える
付箋へのリンクは、どちらの表示でもその付箋に着地する
用語は文脈ディレクトリで切れる
文脈は用語の識別子の一部になる
用語集は文脈で絞り込める
ルールと具体例は、それぞれ自分の付箋で自動化を見分けられる
表示はlivtリポジトリの記録だけから導出され、buildはネットワークに出ない
ルール付箋から、記録された自動化Issueへ辿れる
リンクはlivtリポジトリの記録をそのまま使い、buildはネットワークに出ない
新しいIDはretiredを含めたmax + 1で採番する
一度使われたIDは、指す対象を変えない
livt URIはlivtリポジトリ相対の名前で、どのリポジトリかは運ばない
退役した項目は代替先をlivt URIで示し、そこから現行の決定へ辿り直せる
デフォルトブランチにマージされる前の項目は退役させず、書き換えるか削除する