Repository navigation
Closed
Milestone
Description
何を見つけたか
.ndf/ をリポジトリで追跡する(コミットして共有する)かどうかが、Skill の間で食い違っている。 そのため、リポジトリのルートの .gitignore が .ndf/ を丸ごと外していても、NDF はどこでも気づかずに進む。
| 場所 | 書いてあること |
|---|---|
skills/development-workflow/references/project-analysis.md:104 |
「宣言はメインディレクトリの .ndf/ に書き、コミットは利用者に任せる。要らなければコミットしない。.gitignore の対象なら、そのことが出力に出る」 |
scripts/supervise_lib/commands.py:102 |
「.ndf/ を追跡しないリポジトリの宣言」を、正規の場合として扱う |
skills/development-workflow/references/project-mvv.md:61(策定の 8) |
「.ndf/mvv.md・.ndf/mvv.json をコミットし、通常の Pull Request で届ける」。コミットできることが前提になっている |
skills/development-workflow/references/handoff.md:24 |
.ndf/handoff/ は「コミットしない。.gitignore にも書かない」 |
scripts/worktree-setup.sh:108 |
.ndf/.gitignore には worktree.local.json だけを書く(既にあれば触らない) |
ai-plugins・devbase・novel では、.ndf/ を追跡し、.ndf/.gitignore で worktree.local.json だけを外している。これが事実上の標準だが、そう書いた Skill は無い。
どこで見つけたか
volareinc/carmo-system-console でプロジェクト MVV を策定したとき(ndf 10.23.0、2026-10-29)。
- このリポジトリのルートの
.gitignoreは、/ndf:worktreeを導入したときに.ndf/を丸ごと除外していた(「各自の環境で持つ。共有しない」)。当時のworktree.jsonに、手元の作業状況に依存するbase_branchが入っていたため project-mvv.py approveは.ndf/mvv.md・.ndf/mvv.jsonを書いて成功(0)を返した。8 の「コミットして PR で届ける」に進もうとして、初めてgit check-ignoreで除外に気づいたapprove・check・vetのどれも、除外されていることを出さない。気づかなければ、MVV は書いた人の手元だけで効き、ほかの人の環境や CI には届かない。承認ゲートで人が見る(C7)という前提も成り立たない- ルートの
.gitignoreから.ndf/を外し、標準の.ndf/.gitignoreを置いて解決した(volareinc/carmo-system-console#18927)
決めてほしいこと
.ndf/は追跡するのが標準だと、1 か所で定める。 個人の値はworktree.local.json(.ndf/.gitignore)、実行時の出力はhandoff/・tmp/の決まりで外す。project-analysis.md:104の「コミットは利用者に任せる」と、supervise_libの「追跡しないリポジトリ」をどう扱うかも合わせる- 共有が前提の宣言を書くコマンドは、除外を検出して出す。
project-mvv.py approve/check、project-decl.py write、glossary.py initなど。少なくともapproveは、「書いたがコミットできない(<.gitignore の行>が除外している)」を 1 行出す - ファイルごとにチームで共有するか個人で持つかの区別は .ndf/ の定義ファイルに作成・更新の定義が無く、チーム単位と個人単位の区別と .gitignore による分離も無い #1512 で扱っている。この issue は、
.ndf/全体を追跡するかと、除外されていることを検出する部分に絞る
受け入れ条件
- 一時のリポジトリでルートの
.gitignoreに.ndf/を書いてproject-mvv.py approveを打つと → 結果は除外されていること(除外している.gitignoreの行と、対象の.ndf/mvv.md・.ndf/mvv.json)をitemsか要約に出す。status: ok・items: []の素の成功では返さない(note を添えたokにするかok以外にするかは設計で決める) - 同じ一時のリポジトリで、共有が前提の宣言を書く・確かめる他のコマンド(
project-mvv.py check、project-decl.py write、glossary.py init)も → 除外を同じ形で出す - 退行しない:
.ndf/が追跡され、.ndf/.gitignoreがworktree.local.jsonだけを外すリポジトリでは →approveは今と同じく exit 0・status: okで、除外の note を出さない - 「決めてほしいこと」1(
.ndf/を追跡するのを標準とするか)はどちらの判断でも、上の検出の条件はそのまま成り立つ。判断の結果は Skill の 1 か所に書かれ、project-analysis.md・project-mvv.md・handoff.md・supervise_lib/commands.pyの記述がそれと食い違わない
修正レイヤー
親 #2227(全工程の結果を統一した JSON レポートにし、失敗・未収束・未記録を ok で返さない)。宣言を書くコマンドに共通の層(scripts/lib)で除外を確かめ、ok に note を添えるか ok 以外を返す。前例は project-decl.py の _gitignore_note。一時のリポジトリで .ndf/ を除外して project-mvv.py approve を打つと exit 0・status: ok・items: [] で、git check-ignore は .ndf/mvv.md・.ndf/mvv.json を除外対象と返す。「決めてほしいこと」1 は利用者の判断として残る。
進行
モード: — / 進め方: auto
- 要求と受け入れ条件
- 作業場所の用意 — 2026-10-31 03:59
- 設計
- 素材の収集と出典の確定
- ドキュメント再構成
- ドキュメントレビュー
- 計画 — 2026-10-31 03:58
- 実装 — 2026-10-31 04:59
- 構造改善 — 2026-10-31 07:37
- 実装レビュー — 2026-10-31 09:12
- 完了判定 — 2026-10-31 05:07
- Pull Request — 2026-10-31 05:20
- 確定仕様化 — 2026-10-31 10:59
- 後片付け — 2026-10-31 10:57
- 配布 — 2026-10-31 10:33
- 体裁レビュー
- リリース後テスト — 2026-10-31 10:56
- 振り返り — 2026-10-31 11:00
- 棚卸し — 2026-10-31 11:21
振り返り: #2282 (comment)
Metadata
Metadata
Assignees
Labels
No labels
Activity
Merge pull request #2255 from devbasex/feat/issue-2157-m26-1
takemi-ohama commentedon Oct 31, 2026
スプリント(26 自律実行の信頼性のスプリントを閉じる)を通りました