← 首頁 📋 設定文件同步踩坑實錄
⚠️ 踩坑實錄 2026-04-06

為什麼 AI 每次都要問同一個問題?
CLAUDE.md 與 settings.json 沒有同步

一個設定文件說「可以」,另一個說「不行」——AI 每次讀到「不行」就停下來問你。這個坑踩了不止一次,現在把根本原因和解決方法全部記錄下來。

😱 事件經過:AI 為什麼一直問同一件事?

Thomas 很早就設定好了「AI 可以自動 push(備份)到 GitHub」,但每次新對話,AI 還是問:「要 push 嗎?需要你確認。」重複了很多次,讓人崩潰。

某天早前
Thomas 在 settings.json 裡加入了 git push 白名單,意思是「這個命令不需要彈出確認框,直接執行」
問題根源
CLAUDE.md 沒有同步更新,裡面還寫著「禁止自動 git push — 所有 git push 必須由用戶手動執行」
每次新對話
AI 打開對話,第一件事讀 CLAUDE.md → 看到「禁止」→ 決定要問用戶 → Thomas 再次說「你直接 push 就好」→ AI 這次做了,但下次對話又忘了
2026-04-06 修復
發現矛盾 → 同步更新兩個文件 → CLAUDE.md 改成「AI 可自動 push/pull 到私人 repo」→ 問題永久解決
💥 痛點總結 技術設定(settings.json)說「可以」,行為規則(CLAUDE.md)說「不行」。AI 每次都優先遵守行為規則,導致每次新對話都重複同樣的溝通。

📚 名詞解釋:這些英文字是什麼意思?

CLAUDE.md
Claude 行為規則文件
MD = Markdown(一種純文字格式,用 # 做標題)

這是 Claude Code 每次開對話都會第一個讀取的文件。裡面寫的規則決定 AI 的行為和決策,例如「可不可以自動 push」「哪些 repo 是私人的」。

位置:D:\Backup\Downloads\CLAUDE.md
settings.json
技術設定檔(JSON 格式)
JSON = JavaScript Object Notation(一種用大括號 {} 和冒號 : 寫的資料格式)

這個文件控制的是工具層面:哪些命令執行時不彈出確認框。就算這裡說「允許」,如果 CLAUDE.md 說「禁止」,AI 的行為還是會被 CLAUDE.md 主導。

位置:D:\Backup\Downloads\.claude\settings.json
git push / git pull
推送 / 拉取(備份同步)
git = 版本控制工具,幫你追蹤每次改動
push = 把本地文件「推」到 GitHub 雲端存一份(備份)
pull = 把 GitHub 雲端的最新版本「拉」到本地(同步)

Thomas 的備份目標:私人 GitHub repo thomastangnz-commits/downloads-config
permissions.allow
白名單(自動允許清單)
settings.json 裡的一個清單,列出哪些命令不需要彈出確認框就直接執行。

例如加入 "Bash(git push:*)" 後,AI 執行 git push 時不會問你「要繼續嗎?」

⚠️ 但這只管「不彈框」,不管 AI 的行為決策(那是 CLAUDE.md 的工作)
defaultMode: bypassPermissions
預設模式:跳過所有確認
bypass = 繞過、跳過
permissions = 權限確認框

設為 bypassPermissions 後,所有工具調用都不彈確認框,直接執行。Thomas 的機器已設定這個模式,所以大部分操作都不需要手動點「允許」。
private repo vs public repo
私人倉庫 vs 公開倉庫
GitHub 上的 repo(repository,代碼倉庫)有兩種:

🔒 Private:只有你能看,全世界其他人看不到
🌍 Public:全世界任何人都能看到你的文件

Thomas 的鐵律:所有備份只能到 private repo,絕不能 push 到 public repo。

🔍 根本原因:兩個文件各管什麼?

文件 管什麼 AI 怎麼用它 如果兩個衝突
CLAUDE.md 🧠 行為規則
AI 應不應該做某件事
每次對話第一個讀取,決定整個對話的行為模式 CLAUDE.md 優先

技術上允許,但行為上禁止 = AI 還是會問你
settings.json ⚙️ 技術設定
執行命令時要不要彈確認框
決定工具調用的 UI 行為(彈框 or 不彈框)
🔑 關鍵理解 settings.json 的白名單只是說「不彈確認框」,但 AI 決定「要不要問用戶」這件事,是讀 CLAUDE.md 決定的。兩個要同時改,缺一不可。

🏠 生活比喻:一看就懂

🏢 公司比喻

想像你是老闆(Thomas),AI 是你的助理。

你有兩本手冊交給助理:

  • 公司守則手冊(CLAUDE.md):「所有快遞費報銷,必須先問老闆批准」
  • 財務系統設定(settings.json):「快遞費 500 元以下,系統自動過帳,不用填申請單」

現在發生了什麼?

助理去報銷 200 元快遞費,財務系統說「不用申請單,直接過帳」。但助理看了守則手冊,裡面寫「必須先問老闆批准」——所以他還是來問你了。

解決方法:同時更新兩本手冊。守則手冊改成「500 元以下快遞費,助理自行處理,不用問老闆」。這樣兩邊一致,助理就不會再多此一舉了。

🚦 交通比喻

settings.json 是綠燈(技術上通行)。

CLAUDE.md 是路牌(行為規則)。

就算燈是綠的,如果路牌寫「禁止通行」,守規矩的司機(AI)還是會停下來。

解決方法:綠燈亮起的同時,把路牌也換成「允許通行」。

✅ 永久規則:以後怎麼做才不會再踩坑

🔒 鐵律:改任何一個文件,必須同時改另一個

  • 1 settings.json 加入白名單(例如 "Bash(git push:*)")→ 必須同時在 CLAUDE.md 把對應的禁止規則改成允許規則
  • 2 CLAUDE.md 新增「AI 可以自動做 XXX」→ 確認 settings.json 有沒有加對應的白名單(如果需要不彈框的話)
  • 3 每次修改完,必須 兩個文件一起 commit + push 到 GitHub,確保兩台電腦(台式機 + 筆記本)都用同一份設定
  • 4 如果 AI 問了你「要 XXX 嗎?」但你以為已經設定過了——這是兩個文件不同步的信號,馬上叫 AI「比對 settings.json 和 CLAUDE.md,找出矛盾的地方」
✅ 2026-04-06 現況(已修復) CLAUDE.md 第2條:「AI 可自動執行 git push/pull — 已授權自動備份到私人 repo,無需每次詢問」
settings.json:已加入 git pullgit fetchgit push 白名單
兩個文件一致 ✅ 問題永久解決 ✅

🛠️ 怎麼操作:發現問題時的修復步驟

第一步:找出哪裡不一致

# 看 settings.json 裡有哪些白名單(搜索 git 相關)
grep -i "git" D:/Backup/Downloads/.claude/settings.json

# 看 CLAUDE.md 裡的規則
grep -A2 "git\|push\|pull\|自動" D:/Backup/Downloads/CLAUDE.md

第二步:同步更新兩個文件

把 CLAUDE.md 裡的禁止規則改成允許,或把 settings.json 裡的白名單補上。

第三步:兩個文件一起 commit

cd D:/Backup/Downloads
git add CLAUDE.md .claude/settings.json
git commit -m "Sync CLAUDE.md and settings.json: allow auto git push/pull"
git push origin master
💡 小技巧 叫 AI 直接幫你做:「幫我比對 settings.json 和 CLAUDE.md,找出有沒有矛盾的設定,如果有就同步修復並 push。」

📋 快速檢查清單

每次修改設定後,對照以下清單確認:

⚠️ 記住這句話 「技術允許 ≠ 行為允許。兩個文件要同時說『可以』,AI 才真的會自動做。」
本頁章節導覽
← 返回 Thomas AI 筆記首頁