impact --worktreeは未追跡のファイルも含め、コミットした時と同じ変更を見るAccepted(2026-10-12決定)。0046の決定2(未追跡のファイルを対象外とする)と、決定3の一時インデックスの作り方(git add -u)を置き換える。0046のそれ以外の決定は変わらない。
0046のimpact --worktreeは、追跡されているファイルだけを対象にした。そのため、knowledge/に新しい要求やFeatureを作った直後は、git addしないと影響を確かめられなかった(Issue #131)。作業者が確かめたいのは「今コミットしたら、どう見えるか」であり、新規ファイルだけがgit addの有無で見えたり見えなかったりするのは、その期待とずれる。0046は「未追跡のファイルも含める」を、.gitignoreとの整合を決める必要があるとして初期実装の範囲外にしていたが、git add -Aがその整合を自動で処理するので、決める必要はなくなる。
対象は、作業者がgit add -Aしてコミットした場合に得られるツリーとする。ステージ済み・未ステージ・未追跡を区別せず、.gitignoreで無視されないすべてのファイルの作業ツリー上の現在の内容を対象にし、削除も反映する。無視すべきファイルの判定はgit add -Aに任せ、markharnessは持たない。無視したいファイルは.gitignoreに書く。
.markharness/knowledgeに限らず、リポジトリ全体にgit add -Aをかける。外部要求のsource_locatorが指す.sdocのようにknowledge/の外にあるファイルも、コミットした時と同じ見え方にするためである。knowledge/だけに限ると、それらの未コミットの変更だけが食い違って見える。
実インデックスのコピーをGIT_INDEX_FILEに指定し、git add -A、git write-treeの順に実行する。空のインデックスから作らないのは、追跡中なのに.gitignoreに該当するファイルを、実際のコミットと同じくツリーに残すためである。0046の決定3のうち、git add -uをgit add -Aに変えるだけで、それ以外(ツリーOIDを既存のref向けの処理にそのまま渡すこと、実インデックスとHEADを変更しないこと)は変わらない。
未追跡のファイルのblobもオブジェクトDBに書き込まれる。.gitignoreに入れていない大きなファイル(ビルド成果物や動画など)があると、実行のたびにそのハッシュ計算と書き込みが発生する。サイズ上限、警告、--include-untrackedのようなopt-inは設けない。git add -Aも同じ挙動であり、現時点でそのようなファイルが問題になった事例はない(YAGNI)。代わりに、見積もりと「無視すべきファイルは.gitignoreに書く」ことをcli-manualに明記する。書き込まれるblobのうち参照されないものはgit gcが回収する。
src/git.rs: write_tree_of_tracked_worktreeをwrite_tree_of_worktreeに改名し、git add -uをgit add -Aに変更src/impact.rs: 呼び出しとcompute_worktreeのdocコメントの更新src/cli.rs: --worktreeのhelpから「未追跡は対象外」を除くtests/impact_cli.rs: 既存の未追跡のテストを反転し、.gitignore・新規Feature・knowledge/の外の.sdoc・実インデックス不変のテストを追加docs/ja/cli-manual.md・docs/en/cli-manual.md(§1.13)、docs/ja/design/cli-read-model-design.md・docs/en/design/cli-read-model-design.md、docs/ja/design/markharness-v2-design.md・docs/en/design/markharness-v2-design.md(§9.2.2)git addしてから実行する): 新規作成のたびにgit addが要り、コミットした時と同じ見え方にならない。.markharness/knowledgeだけに-Aをかける: 範囲は小さいが、knowledge/の外にある外部要求の参照先の変更が、コミットした時と違う見え方になる。id_cacheのtree SHA比較、changed_between、blob_sha_atを作業ツリー版として書き直す必要があり、変更が大きい。git add -Aで作る: 追跡中なのに.gitignoreに該当するファイルがツリーから消え、実際のコミットと食い違う。