Repository navigation
Description
親: #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 つのアカウントで並列に流れる複数のスプリントの実行が、それぞれ今どのフェーズにいて、承認待ちか止まったかを、1 つの画面で見分けられる状態にする(Neural Development Factory: NDF を Web UI で操作できる Software Factory のサービスにする #2168 の受け入れ条件 5 の後半)
- 1 つのスプリントの実行について、課題ごとの工程・Pull Request・CI の結果・承認ゲートの状態を 1 つの画面で追え、工程を 1 行ずつ辿ってその工程の中身(触ったファイル・決めたこと・終了コード・秒・費用・ログ)まで確かめられる状態にする(Neural Development Factory: NDF を Web UI で操作できる Software Factory のサービスにする #2168 の受け入れ条件 6)
- スプリントの外でも、取り込んだリポジトリの順位と棚卸しの記録を読める状態にする
前提
- 前提 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はどれも 403forbiddenと同じ本文で返し、有無を明かさない - 前提 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)
含まない:
- 承認と差し戻しの操作・承認の依頼の保存・Web と Slack の通知(NDF Factory: 承認ゲートの通知(Slack を含む)と Web からの承認 #2173)
- 「今すぐ棚卸し」の操作(スプリントの外で棚卸しの実行ジョブを起こす。未決 2)
- スプリントの開始と取り消しの操作(NDF Factory: スプリントの実行の制御とランナー #2186 が置いた画面のまま)
- 料金と請求の画面(NDF Factory: サブスクリプションと Bedrock の token 課金 #2174)
- 押し出しの通知(WebSocket・Server-Sent Events)
- DynamoDB の表と GSI・API の入口などインフラの定義(private リポジトリ)
- 課題の本文の
## 進行とボードを読むこと
ドメインイベント
| # | イベント | 引き金 | 失敗したとき | 順序の前提 |
|---|---|---|---|---|
| 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のどれでも、403forbiddenを同じ本文で返す - 12. API が 401 を返すと、画面は token を消してログインの画面へ移る
- 13. 一覧と詳細の読み出しは、課題の本文・ボード・GitHub の API を呼ばない(偽の GitHub の口の呼び出しが 0 回)
- 14.
step.recordedの足した項目(前提 4・5)を持たない事象(今のランナーの形、schema_version1)を受け口が 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)
Activity
fix(design): I11 の上限を step.recorded だけに掛け、ゲート・使用量の事象を欠かさない (#2172)
docs(#2172): listRunEvents の DynamoDB での読み方(全ページ読み・上限は応答の大きさだけ)を書く
Merge: develop を取り込み、用語集の衝突を解く
Merge: develop を再び取り込み、docs/glossary.md の衝突を解く
Merge pull request #2278 from devbasex/design/issue-2172
Merge pull request #2484 from devbasex/feat/issue-2172-lfactory3-1