You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
宣告(最小):acquire 寫入 .gitignore 時 stdout 印一行 → appended '.claude/.idd/tree-lock' to .gitignore (tree-lock state must not be tracked);idd-implement Step 0.4 的 case 0 把它轉印出來。
Problem
scripts/idd-tree-lock.sh acquire(#183)在第一次取得 lock 時,會把.claude/.idd/tree-lock這行寫進目標 repo 的 tracked.gitignore(腳本 L97–L102「Self-add the lock to .gitignore」),但 stdout 沒有任何一行宣告這件事(idd-implementStep 0.4 只印→ tree lock acquired — solo on shared tree)。結果:下游
idd-implement走到 Step 4 scope guard 時,git status冒出一個使用者沒動過的M .gitignore。在本例(PsychQuant/plaud-mcp-connector#60,2026-09-15)我花了一輪git diff才確認來源,然後得決定它進哪個 commit——這正是 scope guard 該攔的「不明改動」,只是製造者是 IDD 自己。Type
feature
Priority
P3
Expected
三選一(diagnose 定):
.gitignore時 stdout 印一行→ appended '.claude/.idd/tree-lock' to .gitignore (tree-lock state must not be tracked);idd-implementStep 0.4 的 case 0 把它轉印出來。.git/info/exclude:per-clone、不進 tracked 檔、不需要 commit——跟 feature: 偵測「clone 他人 repo」情境並建議非污染式 IDD setup(config 擺放 + .git/info/exclude) #192 third-party clone 的處置同一個理由(改對方的 tracked.gitignore= 在對方 history 疊 commit)。對自己的 repo 也適用:lock 是 per-machine session state,沒理由讓每個 clone 的.gitignore都多一行。傾向 2:
git-ignore-block.sh已經有--direction exclude的路徑(#192 在用),tree-lock 直接複用即可,不必新增機制。Actual
靜默 append 到 tracked
.gitignore;使用者在 scope guard 看到不明 diff。Impact
idd-implement的 repo 都會多一個.gitignore變更要處理(commit 或 revert),且沒人告訴使用者為什麼。.gitignore,這邊卻對每個 repo 都碰。Source: surfaced during /idd-implement PsychQuant/plaud-mcp-connector#60 reproduction (Step 5.7)