Skip to content

NDF Factory: スプリントの一覧(フェーズ)と詳細(工程・PR・CI・承認ゲート) #2172

Open

Description

@takemi-ohama

親: #2168(Neural Development Factory)。前提: #2169(確定仕様)・#2170(v10.26.0 で配布)・#2171(contracts と進捗の受け口)・#2186(実行の制御とランナー)。

形と契約は サービス全体の確定仕様 の「サービス全体の契約(子課題が実装する)」と、契約の定義と型・進捗の受け口・実行ジョブの token にある。この課題は「一覧と詳細」(進捗の事象から一覧と詳細の読み出しの形を導く派生)の持ち主で、phase.changed が運ぶフェーズの名前の集合を決める(確定仕様の「受け持つ課題」の #2172 の行)。

今の状態(2026-11-05)

受け入れ条件 1〜18 の実装は Pull Request #2484 (スプリント lfactory3-1)で develop へ入り、ndf 10.27.16 で配った。残るのは検証手段の「手動確認」(実環境の 1 本のスプリントの実行を一覧と詳細で開き、フェーズ・工程・Pull Request・CI・承認ゲートが実際の進み方と合うかを人が見る)で、factory/ がどの環境にもデプロイされていないため確かめていない。実環境で確かめるまで開いておく。

依頼(原文)

  • /ndf:development-workflow のsprintを並列で進めることが可能。
    • sprint一覧でそれぞれがどのフェーズを進めているかが化しかできる
  • sprint詳細で進捗状況が可視化できる。

(書き手: 利用者、日付: 2026-10-30。#2168 の構想を伝えた会話の原文のうち、この課題が受け持つ行。全文は #2169 の「依頼(原文)」にある。「化しか」は「可視化」の誤記と読む)

スプリントの一覧と詳細の画面を作る。

(書き手: 起票者、日付: 2026-10-30。この課題の旧本文の「何をするか」)

  • 工程の記録は 1 行ずつ詳細へ辿れる。押すと右側が詳細パネルに切り替わり、触ったファイル(GitHub へのリンク)・その工程で決めたこと・終了コード・秒・費用・ログと作業の報告を出す(モック https://claude.ai/artifact/MYL6CPBTsm6JFTNgtiwY2J の「スプリント詳細」)
  • 仕上げのフェーズに振り返りと棚卸し(必須)を出す(NDF の定義どおり。スプリントは棚卸しの報告で終わる)。棚卸しはスプリントの外でも実施できるよう、バックログの画面(順位・棚卸しの記録・今すぐ棚卸し)を持つ

(書き手: 起票者、日付: 2026-10-31。旧本文の「画面の方針(2026-10-31 の利用者の指摘、モックで確かめる)」。利用者の指摘の原文は確かめられないため、利用者の文としては扱わず、指摘の中身(詳細パネル・仕上げの 2 工程・バックログの画面)を利用者の方針として読む。モックは要求を書いた時点で読めなかった(未決 1))

起票者の推定

題・本文のうち、利用者の指示の原文に無く起票者が推して足した条件。承認ゲート 1 で利用者が確かめるまで、利用者の決定として扱わない。

# 条件 推した出所 この要求での扱い
S1 一覧のフェーズは 設計・実装・検査・取り込み・仕上げ の 5 つ #2168 の方針の表(「スプリントの一覧」の行)と NDF の agent-layers.md の「フェーズ」 受け入れ条件 1〜3・前提 2
S2 詳細に出すのは課題ごとの工程・Pull Request・CI の結果・承認ゲートの状態 #2168 の受け入れ条件 6 受け入れ条件 5〜9
S3 一覧と詳細は進捗の事象の列から導く派生で、課題の本文の ## 進行 とボードは読まない 確定仕様の「進捗の正本」(ゲート 1 で利用者が承認済み) 受け入れ条件 13・前提 1
S4 見せてよいのは resolveAccount で解決できたアカウントのスプリントの実行だけで、他人のものは同じ 403 #2170 の確定仕様の I18 受け入れ条件 11・12
S5 詳細パネルの「触ったファイル・決めたこと・ログと作業の報告」を出すため、step.recorded の形を足し、ランナーの翻訳もこの課題が直す 今の step.recorded の payload は step・exit_code・seconds・summary・pull_request だけで、出す項目が届かない。翻訳はランナーだけが持つ(確定仕様の決定 6)ため、形と翻訳を同じ課題で直さないと片方だけが変わる(Value 6) 前提 4・受け入れ条件 7。確定仕様を直す Pull Request を先に出す
S6 工程を課題へ結び付けるため、step.recorded に課題の番号を足す 1 つの実行ジョブの中で課題ごとの実装のプランが並列に流れ、事象が交互に届くため、直前の phase.changed の課題で引くと誤る 前提 5・受け入れ条件 5
S7 バックログの画面の「今すぐ棚卸し」は、スプリントの外で実行ジョブを起こす新しい種類の実行が要り、この課題に含めない 実行の種類と起動は実行の制御(#2186 の集約)が持ち、START は new / resume だけ。設計文書 1 本 1,000 行以下(#2168)と Value 10 含まない・未決 2
S8 画面を開いている間は一定の間隔で読み直し、押し出しの通知(WebSocket など)は作らない 承認の通知は #2173 が持つ。押し出しの経路は API の入口のインフラ(private リポジトリ)を足す 前提 7・受け入れ条件 10

目的

前提

  • 前提 1: 一覧と詳細は、進捗の記録(NDF Factory: contracts と進捗の受け口 #2171)の事象の列と、スプリントの実行(NDF Factory: スプリントの実行の制御とランナー #2186)の状態だけから導く。課題の本文・ボード・GitHub の API は読まない。例外はバックログの画面で、順位の表は NDF Factory: スプリントの実行の制御とランナー #2186 の GitHub の口(factory/api/src/github/port.ts の棚卸しの順位の表の読み出し)を使う
  • 前提 2: フェーズの名前の集合は 設計・実装・検査・取り込み・仕上げ の 5 つとし、factory/contracts/ に列挙として置く。NDF のプランの "フェーズ" の値 配布(開発版) は 取り込み、配布(本番) は 仕上げ へ、ランナーの翻訳が写す(NDF の agent-layers.md の「フェーズ」の表で、検証リリースは取り込み、本番へのリリースは仕上げの工程)。受け口は今どおり文字列で受け、集合に無い名前の phase.changed は 400 にせず残し、画面は「その他(<名前>)」と出す(NDF の版がフェーズを足しても記録が失われない)
  • 前提 3: 一覧の「今のフェーズ」は、そのスプリントの実行の最後の phase.changed の phase(order_key の順)とする。並列の実装で複数の課題が同じフェーズにいるときも 1 つの名前になる。phase.changed が 1 件も無い実行は「始まる前」と出す
  • 前提 4: 詳細パネルの「触ったファイル」「その工程で決めたこと」「ログと作業の報告」は、今の進捗の事象の形では届かない。この課題は step.recorded の payload に任意の項目(触ったファイルのパスの並び・決めたことの文の並び・作業の報告の本文)を足し、schema_version を上げない互換の追加とする(今のランナーの事象も通る)。足す形は設計で決め、確定仕様(ndf-factory-service-boundary.md の「進捗の事象の種類と受け口」・ndf-factory-contracts-and-progress.md の「進捗の事象の定義」)を直す Pull Request を先に出す。ランナーの翻訳(factory/runner/)もこの課題で直す
  • 前提 5: 工程を課題へ結び付けるため、step.recorded の payload に課題の番号の並び(任意)を足す(前提 4 と同じ互換の追加)。番号を持たない step.recorded(スプリントで 1 つの検査・取り込み・仕上げの工程や、足す前のランナーの事象)は、課題ごとの欄でなく「スプリント全体」の欄に出す
  • 前提 6: 工程の費用は、同じスプリントの実行の usage.recorded のうち payload.step がその工程と等しいものの cost の和とする。等しいものが無ければ「—」と出す。形態 ①・② の費用も同じく出す(確定仕様の「usage.recorded は 3 つの形態とも出す」)
  • 前提 7: 一覧と詳細は、画面を開いている間 30 秒ごとに API を読み直して更新する。押し出しの通知は作らない。読み直しの間隔は設定の 1 か所で変えられる
  • 前提 8: 承認ゲートの状態は、承認の依頼の集約(NDF Factory: 承認ゲートの通知(Slack を含む)と Web からの承認 #2173。まだ実装されていない)を読まず、進捗の事象 gate.reached・gate.answered・job.finished(gate)と、スプリントの実行の状態 awaiting_approval から導く。状態は「承認待ち」「承認された」「差し戻された」「判断を待っている」「判断に答えた」の 5 つとする。承認するボタンは NDF Factory: 承認ゲートの通知(Slack を含む)と Web からの承認 #2173 が置き、この課題は置かない
  • 前提 9: 見せる範囲は、resolveAccount で解決できたアカウントのスプリントの実行だけ。チームのアカウントでは席を持つ人なら誰でも一覧と詳細を読める(スプリントの一覧と同じ。NDF Factory: スプリントの実行の制御とランナー #2186 の確定仕様の「持ち主だけの経路」)。他人のアカウントのもの、アカウントに属さない sprint_run_id はどれも 403 forbidden と同じ本文で返し、有無を明かさない
  • 前提 10: 詳細の読み出しは、1 つのスプリントの実行の事象を全件読んで導く。件数の上限は設計で過去のスプリントの progress.jsonl の行数を実測して決め、超えたら古い工程から省いて省いた件数を出す
  • 前提 11: 時刻は ISO 8601 の UTC で受け、画面はブラウザの地域の時刻で出す
  • 前提 12: 「仕上げのフェーズに振り返りと棚卸し(必須)を出す」は、仕上げのフェーズの欄に工程 振り返り・棚卸し の行を常に置き、step.recorded がまだ無ければ「まだ」と出すことを指す。工程の名前の照合は、ランナーが step.recorded の step に写す NDF のステップの識別子のうち、どれを振り返り・棚卸しと見なすかを設計で決める
  • 前提 13: バックログの画面は、取り込んだリポジトリごとに、順位の表(NDF Factory: スプリントの実行の制御とランナー #2186 の候補が読むものと同じ)と、そのリポジトリのスプリントの実行のうち仕上げのフェーズで記録された棚卸しの工程の一覧(日時・要約・Pull Request)を出す。読むだけで、課題やマイルストーンを書き換えない

対象範囲

含む:

  • 画面(factory/web/): スプリントの一覧・スプリントの詳細(工程の詳細パネルを含む)・バックログの画面と、そこへの導線(アカウントとリポジトリの画面から)
  • API(factory/api/): 一覧の派生を足した読み出し・詳細の読み出し・バックログの読み出しの経路と、その OpenAPI(factory/contracts/openapi/)
  • 契約(factory/contracts/): フェーズの名前の列挙と、step.recorded の任意の項目の追加(前提 4・5)。確定仕様を直す Pull Request を先に出す
  • ランナー(factory/runner/): フェーズの名前の写し(前提 2)と、step.recorded の足した項目の翻訳(前提 4・5)

含まない:

ドメインイベント

# イベント 引き金 失敗したとき 順序の前提
E1 ランナーがフェーズの移りを phase.changed で送った NDF の sprint.json の計画と progress.jsonl の step の行が伸びた 受け口が 4xx を返す → 事象は残らず、一覧のフェーズが古いまま(受け口の契約どおり) スプリントの実行が始まっている(job.started)
E2 ランナーが工程の終わりを step.recorded で送った NDF の progress.jsonl の step の行 E1 と同じ E1(無ければ「始まる前」のまま工程が並ぶ)
E3 GitHub が Pull Request と CI の結果を Webhook で送り、pr.updated・ci.updated が残った GitHub の Webhook 宛先が引けない → 残らない。詳細は step.recorded の Pull Request の参照から最初の状態を出す E2 の pull_request(pr_ref)
E4 ランナーが承認ゲートに達し gate.reached と job.finished(gate)を送った 作業の報告の 判断が要る 送れない → 実行の制御が job.finished(failed)を書く E1
E5 利用者が答え、gate.answered が残った #2173 の API 未保存の答え → 受け口が 403(残らない) E4
E6 利用者がスプリントの一覧を開いた 画面の操作 401 → token を消してログインへ。403 → #2170 の画面と同じ表示。5xx → 読み込めない旨と再読み込み ログイン済み
E7 利用者がスプリントの詳細を開いた 一覧の行を押した・URL を開いた E6 と同じ。他人の実行 → 403 E6 か URL
E8 利用者が工程の行を押し、詳細パネルに切り替わった 画面の操作 足した項目が無い工程 → 該当の欄を「記録なし」と出す E7
E9 画面が一定の間隔で読み直した 時間の経過(前提 7) 読み直しの失敗 → 前の表示を残し、失敗した旨を出す E6 か E7
E10 利用者がバックログの画面を開いた 画面の操作 順位の表が無い → 「順位の表がありません」。GitHub の口の失敗 → 5xx の表示 リポジトリの登録

用語

用語 意味
スプリントの一覧 アカウントのスプリントの実行を新しい順に並べ、それぞれの今のフェーズと状態を出す画面
スプリントの詳細 1 つのスプリントの実行の、課題ごとの工程・Pull Request・CI の結果・承認ゲートの状態を出す画面
詳細パネル スプリントの詳細で工程の行を押すと右側に出る、その工程の中身の欄
バックログの画面 取り込んだリポジトリの順位と棚卸しの記録を、スプリントの外で読む画面

受け入れ条件

一覧:

  • 1. アカウントに、フェーズの異なる 3 つのスプリントの実行(最後の phase.changed が 設計・検査・仕上げ)があるとき、一覧の 3 行にそれぞれ 設計・検査・仕上げ が出る
  • 2. 一覧の各行に、リポジトリ・課題の番号・スプリントの実行の状態(実行中・承認待ち・終わった・止まった・失敗・取り消し)・今のフェーズ・始めた日時が出る。phase.changed が 0 件の実行は今のフェーズに「始まる前」が出る
  • 3. phase が 5 つの名前に無い phase.changed(例 準備)が最後の実行は、今のフェーズに「その他(準備)」が出て、一覧の読み出しは 200 を返す
  • 4. ランナーが NDF のプランの "フェーズ" の値 配布(開発版) を 取り込み、配布(本番) を 仕上げ として phase.changed に写す。5 つの名前はそのまま写す

詳細:

  • 5. 課題 2 つ(#A・#B)を持つ実行で、payload に課題 #A を持つ step.recorded は #A の欄に、#B を持つものは #B の欄に、課題を持たないものは「スプリント全体」の欄に、order_key の順で並ぶ
  • 6. 各課題の欄に、その課題の工程を作った・更新した Pull Request(番号と GitHub へのリンク)と、最後の pr.updated の状態(open / closed / merged)と、その Pull Request の ci.updated のチェックの名前ごとの最後の結論(未完了は「実行中」)が出る。pr.updated が無い Pull Request は状態に「不明」が出る
  • 7. 工程の行を押すと、右側が詳細パネルに切り替わり、ステップ・終了コード・秒・費用(前提 6)・要約・触ったファイル(各パスが GitHub のそのリポジトリのファイルへのリンクで、足した行数と消した行数を添える)・決めたこと(問い・答え・誰が決めたか)・作業の報告とログを開く操作・差分を GitHub で見るリンクが出る。「概要に戻る」で右側が承認ゲート・Pull Request と CI・使用量の欄に戻る。足した項目を持たない工程では、その欄に「記録なし」が出る
  • 8. 承認ゲートの状態が、gate.reached(ゲート 1)だけの実行では「ゲート 1: 承認待ち」、続いて承認の gate.answered があれば「ゲート 1: 承認された」、差し戻しなら「ゲート 1: 差し戻された」と出る。判断の gate.reached は「判断を待っている」、答えがあれば「判断に答えた」と出る。承認ゲート 1・2 と判断の 3 つの欄を持ち、承認の欄は 2 つだけである
  • 9. 仕上げのフェーズの欄に、工程 振り返り と 棚卸し の行が常にあり、step.recorded が届く前は「まだ」、届いた後はその工程の終了コードと秒が出る
  • 10. 一覧と詳細を開いたまま、新しい進捗の事象が追記されると、読み直しの間隔(既定 30 秒)の 2 倍以内に画面へ出る。読み直しが失敗しても前の表示は消えない

認可と読み方:

  • 11. 一覧・詳細・バックログの読み出しは、他人のアカウント・存在しないアカウント・そのアカウントに属さない sprint_run_id・存在しない sprint_run_id のどれでも、403 forbidden を同じ本文で返す
  • 12. API が 401 を返すと、画面は token を消してログインの画面へ移る
  • 13. 一覧と詳細の読み出しは、課題の本文・ボード・GitHub の API を呼ばない(偽の GitHub の口の呼び出しが 0 回)
  • 14. step.recorded の足した項目(前提 4・5)を持たない事象(今のランナーの形、schema_version 1)を受け口が 202 で受け、詳細に出る。受け口の既存のテストが変えずに通る

バックログ:

  • 15. バックログの画面に、リポジトリの順位の表(順位・課題の番号・題)と、そのリポジトリのスプリントの実行の棚卸しの工程の一覧(日時・要約・Pull Request)が新しい順に出る。順位の表が無いリポジトリでは「順位の表がありません」が出る
  • 16. バックログの画面は、課題・マイルストーン・ボードへ書き込む操作を持たない

退行:

  • 17. factory/ の npm run check(CI の factory-check)と境界の検査(python3 scripts/check-service-boundary.py)が通る
  • 18. スプリントの一覧の既存の経路(GET /accounts/{accountId}/sprint-runs)の既存の項目の名前と型は変わらない(足すだけ)

非機能の条件

大項目 条件
性能・拡張性 一覧(50 件)と詳細の読み出しの応答の時間の上限、詳細で読む事象の件数の上限は、設計で過去のスプリントの progress.jsonl を実測して決める(前提 10)
運用・保守性 フェーズの名前の集合は factory/contracts/ の 1 か所にあり、画面・API・ランナーはそこから型を得る
移行性 step.recorded の追加は任意の項目で、schema_version を上げない。今のランナーの事象と既に残った事象はそのまま読める
セキュリティ 他人の実行の有無を応答の本文・状態のコード・時間で区別できない(403 の本文を揃える)。作業の報告とログの本文に秘密が入りうるため、ランナーが送る前に NDF の既存の伏せ字の規則を通す範囲は設計で決める(未決 3)

影響

対象 影響
公開インタフェース 変わる。API の経路を足し、step.recorded に任意の項目を足す(互換あり)。フェーズの名前の列挙を factory/contracts/ に足す
データ 事象の表の形は変わらない(payload の中身が増えるだけ)。一覧のための派生の表を持つかは設計で決める
既存の振る舞い プラグイン(plugins/)と CLI の利用者の振る舞いは変わらない。リポジトリの画面に一覧と詳細への導線が増える

検証手段

項目 手段
起動 factory/ で npm run dev -w web(名前は設計で factory/web/package.json に合わせる)
テスト factory/ で npm run check(vitest を含む)
静的解析・型検査 factory/ で npm run check。境界は python3 scripts/check-service-boundary.py
手動確認 リリース後テストで、実環境の 1 本のスプリントの実行を一覧と詳細で開き、フェーズ・工程・Pull Request・CI・承認ゲートが実際の進み方と合うかを人が見る。詳細パネルの見た目がモックに沿うかを人が見る

前提とする取り決め

項目 参照先 / 決めたこと
プロジェクト構造 factory/ の中だけ。plugins/ と .claude-plugin/marketplace.json から factory/ を参照しない(AGENTS.md・境界の検査)。画面は factory/web/、API は factory/api/、契約は factory/contracts/、ランナーは factory/runner/
コーディング規約 TypeScript。npm の workspaces、ロックファイルは factory/package-lock.json の 1 つ(factory/README.md の「パッケージの管理」)。エラーの本文は {"error": {"code", "message"}}、経路は OpenAPI を正にする
テスト戦略 派生(事象の列 → 一覧・詳細の形)は純粋な関数の単体テストで条件 1〜9 を縛る。API は偽の保存(memory-store.ts)で認可と経路(条件 11・13・18)を縛る。画面は既存の App.test.tsx の形で表示と 401(条件 12)を縛る。ランナーの写し(条件 4)は翻訳の単体テスト。.md の文言のテストは書かない

境界

区分 内容
常に行う npm run check と境界の検査、factory/contracts/ からの型の生成、確定仕様と OpenAPI の同時の更新
確認してから行う 進捗の事象の形の追加(確定仕様を直す Pull Request を先に出し、承認ゲート 1 で見る)・API の経路の追加
行わない 課題・マイルストーン・ボードへの書き込み、承認の操作、インフラの定義、秘密の値のコミット、plugins/ の変更

モックの中身

モック https://claude.ai/artifact/MYL6CPBTsm6JFTNgtiwY2J の 3 画面(2026-10-31 に conductor が読んだ版 1793412669-5df4)。値は例示で、配置と項目だけを要求として読む。

画面 配置と項目
スプリント一覧(Main) 上に件数の札 3 つ(同時に動いている数と上限・対応待ち・今月の token)。絞り込みのタブ(すべて・動いている・対応待ち・終わった)。表の列はスプリント(名前とリポジトリ)・課題・フェーズ(5 つの棒。通ったものは濃く、今のものは薄く)と今の工程・状態(承認待ちなら「承認する」、判断待ちなら「答える」へのリンク)・最後の動き
スプリント詳細(SprintDetail) 見出し(名前・状態・リポジトリと課題)と「GitHub で開く」「止める」。概要の札(モードと進め方・NDF の版・実行の形態・始めた日時・実行ジョブの数)。フェーズの欄(5 つのフェーズごとに中の工程を並べ、仕上げに振り返りと棚卸し(必須)を置く)。左に工程の記録(新しいものが上、押すと右に詳細)。右は既定で承認ゲート(1・2)・Pull Request と CI・AI が代わりに判断した問い合わせの件数・使用量。工程を押すと右が詳細パネル(終了コード・秒・費用・要約・触ったファイルと増減の行数・この工程で決めたこと(問い → 答え、誰が決めたか)・差分を GitHub で見る・ログを開く・作業の報告を開く・概要に戻る)に切り替わる
バックログ(Backlog) リポジトリの選択と「今すぐ棚卸しする」。札 3 つ(最後の棚卸し・open な課題の数・次に棚卸しが動く所)。着手の順位の表(順位・課題・順位の値・前の棚卸しからの動き・状態)。棚卸しの記録(日時・きっかけ・結果・報告へのリンク)

モックにあってこの課題の受け入れ条件に入れないもの: 件数の札の token・上限(#2174)、「止める」(#2186)、承認する・答えるの操作(#2173)、「今すぐ棚卸しする」(未決 2)。表示の場所は残し、操作は前提の課題が入るまで出さない。

未決

項目 誰が決めるか 期限
1. (解決、2026-10-31)モック https://claude.ai/artifact/MYL6CPBTsm6JFTNgtiwY2J を conductor が読み、中身を「モックの中身」の節へ写した。受け入れ条件 7 を補った — —
2. 「今すぐ棚卸し」(スプリントの外で棚卸しの実行ジョブを起こす)を別の課題にするか、この課題に含めるか。含めるなら実行ジョブの指示の START に新しい値を足し、実行の制御(#2186 の集約)を変える 利用者 承認ゲート 1
3. step.recorded に足す作業の報告とログの本文に秘密が入りうる場合の伏せ方と、本文の大きさの上限(事象 1 件の上限の内) 設計 設計 Pull Request
4. 一覧のための派生の表を持つか、読み出しのたびに事象から導くか 設計(実測で決める) 設計 Pull Request

🤖 Generated with Claude Code

進行

モード: — / 進め方: auto

  • 要求と受け入れ条件 — 2026-10-31 08:26
  • 作業場所の用意 — 2026-11-04 08:23
  • 設計 — 2026-10-31 08:52
  • 素材の収集と出典の確定
  • ドキュメント再構成
  • ドキュメントレビュー
  • 計画 — 2026-11-04 08:23
  • 実装 — 2026-11-04 09:56
  • 構造改善 — 2026-11-04 10:52
  • 実装レビュー — 2026-11-04 11:33
  • 完了判定 — 2026-11-04 10:20
  • Pull Request — 2026-11-04 10:37
  • 確定仕様化 — 2026-11-04 14:29
  • 後片付け — 2026-11-04 15:02
  • 配布 — 2026-11-04 12:57
  • 体裁レビュー
  • リリース後テスト — 2026-11-04 14:58
  • 振り返り — 2026-11-04 14:58
  • 棚卸し — 2026-11-04 15:02

人の判断待ち(開発ループ l20261031)

  • 判定: follow(承認ゲート 1)
  • 理由: Mission と Vision に沿う: 並列のスプリントのフェーズ・工程・承認ゲートを画面で追えるようにし、人が止まる箇所(承認待ち・失敗)を探す手間を減らす。変更は factory/ の内側に限り、plugins/ の利用者の振る舞いは変えない/Value 3 に沿う: 件数の上限・報告の切り詰め・ページ数の見込みを過去 11 スプリントの実測で決めている。p95 2 秒は配布の後に測るものとしてリリース後テストへ回している/Value 6 と Value 7 に沿う: フェーズの写しをランナーの翻訳(腐敗防止層)の 1 か所に置き、列挙を contracts の 1 か所にまとめている。14 件の決定に、採らなかった案とその理由を残している/Value 2 に沿う: 事象の形の追加を、この設計 PR の承認ゲート 1 で見る(決定 13)。別の承認の工程は足していない/C1 と C2 に当たる設計を含む: 作業の報告・ログ・判断の文を外へ送る経路の伏せ字の範囲(決定 7)と、新しい 3 つの読み出しの経路の認可(I12・決定 14)は人が見る必要がある
  • 根拠の項目: Mission, Vision, Value 2, Value 3, Value 5, Value 6, Value 7, Value 10, C1, C2
  • 設計 Pull Request: NDF Factory: 並列に動くスプリントの今のフェーズと、課題ごとの工程・Pull Request・CI・承認ゲートを画面で追える(#2172) #2278
  • 答え: approved
  • 答え方: python3 /persistent/ai/.claude/plugins/cache/ai-plugins/ndf/10.27.7/scripts/sprint-state.py loop answer l20261031 2172 --approved|--rejected

前提にする方針(2026-11-02 追記)

利用者の指示で、マイルストーン「25 Neural Development Factory」の説明にスプリント MVV を置いた(操作性と UX 重視・画面先行・オフライン利用・AI からも人と同じく使える・国や地域を越えて使える。#2168 の方針の表にも同じ行がある)。この課題の画面は #2382(UX の土台)の上に作り、#2383(オフラインで読める)と #2384(API と MCP から画面と同じ操作)の形に合わせる。

振り返り: #2490 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions