Skip to content

NDF Factory: 画面の地図の「予定」の画面に、作る課題(持ち主)が書かれていない(#2382 の受け入れ条件 2 の残り) #2431

Closed

Description

@takemi-ohama

何を見つけたか

ndf v10.27.14(タグ ndf--v10.27.14、commit 84381ee)のリリース後テストで、#2382 の受け入れ条件 2「まだ画面が無い機能は、載せる予定の画面と持ち主の課題が分かる」のうち、持ち主の課題が画面の地図に無い。

docs/specifications/ndf-factory-screen-map.md の「画面の地図」で状態が「予定」の 3 行(承認・請求と使用量・手元のマシン)は、載る機能だけを書き、どの課題がその画面を作るかを書いていない。

| 未定 | 承認 | 個人・管理者・席 | 予定 | 承認の依頼・Web からの承認・通知 |
| 未定 | 請求と使用量 | 個人・管理者 | 予定 | 料金プランの料金・使用量の台帳・決済 |
| 未定 | 手元のマシン | 個人・管理者 | 予定 | 手元のマシンの登録・心拍 |

タグの時点(2026-11-02 21:50 JST に確かめた)と、確定仕様化の後の develop の両方で同じである。

どこで見つけたか

  • docs/specifications/ndf-factory-screen-map.md の「画面の地図」43〜45 行
  • リリース後テストの記録: Pull Request Release: ndf v10.27.14 #2426 のコメント

なぜこの変更の範囲外なのか

リリース後テストは不合格を即時修正しない(release-verification の「合否を判定する」)。リリース後の修正は新しい変更として、モードの判定から始める。根拠: プロジェクト Value 7(判断の理由を残す・正本を 1 か所に)・スプリント Value 2(画面先行で地図を土台にする)(MVV 版 4)。

直さないと何が起きるか

画面を足す課題が、地図の「予定」の行を自分の持ち物か判断できない。#2382 の非機能の条件(運用・保守性)「画面を足す課題は、地図の行と翻訳のキーを足すだけで済む」の前提になる、行と課題の対応が無いままになる。#2382 が閉じられると、この条件の残りを持つ課題が無くなる。

起票者の推定

由来

PR #2426


以下は要求と受け入れ条件である(2026-11-04、requirements-design)。上の節は起票の時点の本文で、書き換えていない。

依頼(原文)

NDF Factory: 画面の地図の「予定」の画面に、作る課題(持ち主)が書かれていない(#2382 の受け入れ条件 2 の残り)

(書き手: 起票者、日付: 2026-11-02。課題の題。リリース後テストの記録 #2426 から起票した AI の文で、利用者の指示の原文ではない)

  1. 確定仕様 docs/specifications/ndf-factory-*.md の機能のうち利用者が操作するものが、地図のどの画面に載るか(まだ画面が無い機能は、載せる予定の画面と持ち主の課題)が分かる

(書き手: 起票者、日付: 不明。#2382(UX の土台)の受け入れ条件 2。#2382 は承認ゲート 1 を通っており、この条件は利用者が承認で確かめた条件として扱う)

画面を足す課題は、地図の行と翻訳のキーを足すだけで、部品・整形・API クライアントの仕組みに手を入れずに済む

(書き手: 起票者、日付: 不明。#2382 の非機能の条件の「運用・保守性」の行)

この課題の要求の出所は #2382 の受け入れ条件 2 の後半(「持ち主の課題」)だけである。利用者が会話で書いた文は無い。

起票者の推定

# 条件 推した出所 この要求での扱い
S1 承認の画面を作る課題は #2173(承認ゲートの通知と Web からの承認)である 起票の本文の「起票者の推定」。#2173 の題 前提 1・受け入れ条件 1
S2 請求と使用量・手元のマシンの画面を作る課題は、直す変更で探して書く 起票の本文の「起票者の推定」 前提 2・前提 3・受け入れ条件 1
S3 地図の「予定」の行ごとに、作る課題の番号を書けば足りる(地図の表の形を変えずに済む) この要求を書いた AI の推定。起票の本文は「どの課題がその画面を作るかを書いていない」とだけ書く 前提 4・未決 1

目的

前提

対象範囲

含む:

  • 画面の地図(docs/specifications/ndf-factory-screen-map.md)の「予定」の 3 行に、作る課題を書く
  • 画面の地図の冒頭の、画面を足す課題が行う手順の文に、「予定」の行を自分の課題が作るときの扱い(行を「あり」へ変える)を書く

含まない:

ドメインイベント

# イベント 引き金 失敗したとき 順序の前提
E1 予定の画面に、作る課題を書いた この課題の実装 書いた番号が閉じた課題か、その画面を作らない課題を指す → 受け入れ条件 2 が落とす —
E2 画面を足す課題が、予定の行を自分の持ち物と判断した その課題の設計か実装 行に自分の番号が無い → その課題の要求で、地図の行の作る課題を書き換える(この課題の範囲外) E1
E3 予定の画面を作り、行を「あり」へ変えた 作る課題の実装 経路の集合が screens.ts と食い違う → 既存のテスト(factory/web/src/docs.test.ts)が落とす E2

E2 の失敗の経路(作る課題が後から変わる)は、この課題では作る課題を書き換える仕組みを作らず、画面を足す課題が自分の要求で直すものとして扱う(含まない)。

用語

用語 意味
画面の地図 Factory の Web の画面の全体を 1 つの表にまとめた確定仕様(docs/specifications/ndf-factory-screen-map.md)。用語集の文脈 ndf-factory の語
予定の画面 画面の地図の状態が「予定」の行。経路がまだ無く、載る機能だけが決まっている画面
作る課題 予定の画面を作り、その行を「あり」へ変える GitHub の課題。起票の本文と #2382 は「持ち主の課題」と書く

「持ち主」は用語集で状態の持ち主・見直しの持ち主など別の意味に使われているため、この要求では「作る課題」と書く。

受け入れ条件

非機能の条件

大項目 条件
運用・保守性 画面を足す課題は、地図の「予定」の行を読むだけで、その行を自分が作るかを判断できる(地図のほかの文書や課題の一覧を探しに行かない)

影響

対象 影響
公開インタフェース 変わらない(文書だけの変更。配布物の plugins/ と Factory の API・画面の振る舞いは変わらない)
データ 変わらない
既存の振る舞い 変わらない。画面の地図の文書の「予定」の 3 行と冒頭の手順の文だけが変わる

検証手段

項目 手段
テスト factory/ で npm test -w web(docs.test.ts を含む)。コマンドは実装の前に打って確かめる
静的解析・型検査 無し(コードを変えない)
手動確認 受け入れ条件 2: 書いた番号ごとに gh issue view <番号> --json state,title を打ち、OPEN とその画面を作る題であることを確かめる。リリース後テストで、develop の画面の地図を読んで受け入れ条件 1・3 を確かめる

前提とする取り決め

項目 参照先 / 決めたこと
プロジェクト構造 確定仕様は docs/specifications/ に置く。factory/ は変えない。plugins/ と marketplace.json は factory/ を参照しない(AGENTS.md の「マーケットプレイスの構造」)
コーディング規約 文書は document-style に従う。.md の文言を照合するテストを書かない(AGENTS.md の DON'T)
テスト戦略 既存の docs.test.ts が経路の集合を見る。作る課題の番号を照合するテストは足さない(文言の照合に当たるため)。番号の正しさは受け入れ条件 2 の手動確認で見る

境界

区分 内容
常に行う 画面の地図の「予定」の行と冒頭の手順の文の変更、既存テストの実行
確認してから行う 画面の地図の表に列を足すこと(表の形が変わるため。承認ゲート 1 で人が見る)
行わない #2173・#2174・#2189 の本文の書き換え、screens.ts と翻訳のファイルの変更、「あり」の行の変更

未決

項目 誰が決めるか 期限
1. 作る課題を、表に列(例: 「作る課題」)を足して書くか、「載る機能」の列の末尾に書くか 設計(design の工程)。列を足すときは承認ゲート 1 で人が確かめる 設計 PR を出すまで

根拠にした MVV の項目

  • プロジェクト Value 8(判断の理由を残し、語をそろえる。正本を 1 か所に置き、番号には題か中身を添える): 作る課題を画面の地図の 1 か所に書き、screens.ts へ写さない(前提 6)。「持ち主」を多義を避けて「作る課題」と書く
  • スプリント Value 2(画面先行。画面の地図を UX の土台にする): 予定の画面と作る課題の対応を地図に持たせる
  • プロジェクト Value 2(人が判断できる量に収める): 変更を「予定」の 3 行と冒頭の 1 文に限る
  • 共通原則の C1〜C8・プロジェクトの P1 に当たる操作は無い(文書だけの変更)

進行

モード: — / 進め方: auto

  • 要求と受け入れ条件 — 2026-11-04 15:29
  • 作業場所の用意 — 2026-11-04 22:15
  • 設計 — 2026-11-04 15:33
  • 素材の収集と出典の確定
  • ドキュメント再構成
  • ドキュメントレビュー
  • 計画 — 2026-11-04 22:15
  • 実装 — 2026-11-05 00:08
  • 構造改善 — 2026-11-05 00:25
  • 実装レビュー — 2026-11-05 00:50
  • 完了判定 — 2026-11-05 00:10
  • Pull Request — 2026-11-05 00:22
  • 確定仕様化 — 2026-11-05 03:28
  • 後片付け — 2026-11-05 03:53
  • 配布 — 2026-11-05 01:34
  • 体裁レビュー
  • リリース後テスト — 2026-11-05 03:48
  • 振り返り — 2026-11-05 03:48
  • 棚卸し — 2026-11-05 03:54

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

  • 判定: unknown(承認ゲート 1)
  • 理由: 設計の中身はスプリント Value 2(画面先行)とプロジェクト Value 8(判断の理由を残し、語をそろえる)に沿う。予定の画面の行に作る課題を括弧で添え、表の形と状態が「あり」の行は変えない。決定の記録に根拠もある。人の承認が要る操作(C1〜C8・P1)に当たる変更も見当たらない/変更したファイルの一覧に plugins/ndf/scripts/tests/test_sprint_loop.py(+3 -1)がある。しかし本文は「変更は 4 ファイル・追加 373 行・削除なし」と書き、設計の適用範囲も「配布物(plugins/)は変えない」と定めている。配布物のテストへの変更が何を目的とし範囲内なのかを、材料から判断できない(Value 2・Value 8 に照らした承認資料の正しさ)/要求の検査(requirements-check)は exit 2 で止まった。理由は issues/issue-2431-requirements.md を読めなかったことで、原因は未確認のまま。この検査は配布の前に取れる確認であり、通らないままでは要求の文書が検査の基準を満たすかを決められない(Value 1: 確かめていないものを済んだと記録しない)/このため、Mission・Vision に沿い Value のどれにも反しないとは、材料だけでは言い切れない。人へ戻して、余分なファイルの扱いと検査が止まった原因を確かめてもらう必要がある
  • 根拠の項目: Mission, Value 1, Value 2, Value 8, スプリント Value 2
  • 設計 Pull Request: 画面の地図: 予定の画面ごとに、その画面を作る課題が分かる(#2431) #2496
  • 答え: approved
  • 答え方: python3 /persistent/ai/.claude/plugins/cache/ai-plugins/ndf/10.27.16/scripts/sprint-state.py loop answer lfactory3 2431 --approved|--rejected|--revise --note <指摘ファイル>

閉じた理由

ndf v10.27.19 で直った。docs/specifications/ndf-factory-screen-map.md の画面の地図の「予定」の 3 行(承認・請求と使用量・手元のマシン)に、作る課題(#2173・#2174・#2189)が書かれている(タグ ndf--v10.27.19 の 44〜46 行で確かめた)。冒頭の段落に、作る課題が画面を作ったときの行の書き換え方もある。

振り返り: #2532 (comment)

Activity

  1. added 4 commits that reference this issue on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions