[{"data":1,"prerenderedAt":1793},["ShallowReactive",2],{"search-dialog-posts":3,"post-\u002Fposts\u002Fclaude-codex-config-locations":316,"post-surround-\u002Fposts\u002Fclaude-codex-config-locations":1786},[4,12,21,29,37,47,57,67,77,85,96,104,112,121,129,137,147,155,164,173,181,188,195,207,215,224,236,241,247,254,260,266,272,279,286,291,298,304,310],{"path":5,"title":6,"description":7,"category":8,"tags":9},"\u002Fposts\u002Fgit-commands-cheatsheet","Git 常用指令與終端機筆記","2018 年整理的 Git 學習筆記，包含基本終端機指令、Git 操作、分支、reset、SourceTree、Vim 與一些常用設定。","notes",[10,11],"Git","版本控制",{"path":13,"title":14,"description":15,"category":16,"tags":17},"\u002Fposts\u002Fjs-prototype-inheritance","JavaScript 物件導向：建構函式、prototype 與繼承三步驟","整理 ES5 時代用建構函式加 prototype 手刻物件導向的完整流程——封裝屬性與方法、共用函式為什麼要掛在 prototype 上、以及繼承的三個步驟（call 借用母類別建構子、Object.create 接上原型鏈、修正 constructor 指向），並附上物件縮寫與計算屬性這兩個順便學到的 ES6 寫法。","frontend",[18,19,20],"JavaScript","物件導向","prototype",{"path":22,"title":23,"description":24,"category":16,"tags":25},"\u002Fposts\u002Fflexbox-notes","Flexbox 對齊與彈性尺寸筆記","記錄 Flexbox 的主軸與交錯軸對齊、flex-direction、flex-wrap，以及 flex-grow、flex-shrink、flex-basis 等常用屬性。",[26,27,28],"CSS","Flexbox","版面",{"path":30,"title":31,"description":32,"category":16,"tags":33},"\u002Fposts\u002Fscreen-orientation-api","screen.orientation：現在判斷與鎖定螢幕方向的做法","整理現在 JavaScript 判斷螢幕方向的方式，包括 screen.orientation、change 事件與 lock()，並說明 RWD 使用 matchMedia 或 CSS orientation 會更適合。",[18,34,35,36],"RWD","螢幕方向","PWA",{"path":38,"title":39,"description":40,"category":16,"tags":41},"\u002Fposts\u002Fpinia-vuex-state-management","Pinia \u002F Vuex 狀態管理及差異","紀錄 Vuex、Pinia 的狀態管理概念、差異與用法。",[42,43,44,45,46],"Pinia","Vuex","Vue3","狀態管理","Nuxt",{"path":48,"title":49,"description":50,"category":8,"tags":51},"\u002Fposts\u002Fpyenv-python-version-management","Python 多版本管理 pyenv","紀錄 macOS 與 Windows 使用 pyenv 管理 Python 版本的方式。",[52,53,54,55,56],"Python","pyenv","macOS","Windows","版本管理",{"path":58,"title":59,"description":60,"category":8,"tags":61},"\u002Fposts\u002Fnpm-publish-vue2-component","npm 發布流程","紀錄 Vue 2 元件的 npm 發布、dist-tag 與打包流程。",[62,63,64,65,66],"npm","Vue2","Vue CLI","套件發布","MIT",{"path":68,"title":69,"description":70,"category":8,"tags":71},"\u002Fposts\u002Fmobile-debugging-today","現在怎麼 debug 手機網頁：從裝一堆工具到幾乎不用裝","對照 2022 年那套 scoop、iTunes、remotedebug-ios-webkit-adapter 的繁瑣設定，整理現在偵錯手機網頁的做法：Android 無線偵錯、iOS 的實際選項、on-device console、Playwright 裝置模擬，以及本機 HTTPS 的處理。",[72,73,74,75,76],"debug","iOS","Android","Chrome DevTools","Playwright",{"path":78,"title":79,"description":80,"category":16,"tags":81},"\u002Fposts\u002Fplaywright-vs-cypress","E2E 測試現在選什麼：Playwright 與 Cypress 的實際差異","對照幾年前用 Cypress 的做法，說明 Playwright 為什麼變成多數新專案的預設選擇：真正的多瀏覽器支援、免費的平行執行、trace viewer 除錯，以及兩者在架構上的根本差異與各自仍然適合的場景。",[76,82,83,84],"Cypress","E2E","測試",{"path":86,"title":87,"description":88,"category":89,"tags":90},"\u002Fposts\u002Fjs-encoding-today","現在處理編碼：TextEncoder、Uint8Array 的 Base64 方法與 URLSearchParams","整理 JavaScript 現代編碼方式，使用 TextEncoder、TextDecoder 與 Uint8Array 處理 UTF-8 與 Base64，並說明 Base64URL、URLSearchParams 與 encodeURIComponent 的差異。","research",[91,92,93,94,95,18],"編碼","TextEncoder","Base64","URLSearchParams","Uint8Array",{"path":97,"title":98,"description":99,"category":16,"tags":100},"\u002Fposts\u002Fdart-sass-migration","Dart Sass 遷移筆記：node-sass 之後怎麼裝 Sass","node-sass 與 LibSass 已停止維護，現在改用 Dart Sass。整理 webpack 與 Vite 的安裝方式，以及為什麼不再像 node-sass 一樣容易遇到 Node.js 版本與原生編譯問題。",[101,102,103],"Sass","Webpack","Vite",{"path":105,"title":106,"description":107,"category":16,"tags":108},"\u002Fposts\u002Fdayjs-vue3-computed","day.js 搭配 Vue 3 的日期格式化","整理 Vue 3 日期格式化的常見做法，使用 day.js 取代舊專案常見的 moment.js，並以 method 或 computed 取代 Vue 2 filter，也補充原生 Intl.DateTimeFormat 的使用方式。",[44,109,110,111],"day.js","日期","Intl",{"path":113,"title":114,"description":115,"category":16,"tags":116},"\u002Fposts\u002Fes-modules-today","ES Module 現在的樣子：Node ESM、exports 與 import maps","整理現代 JavaScript ES Module 的常見用法，包括 Node.js 原生 ESM、package.json exports、瀏覽器 import maps、JSON import attributes，以及 Vite 動態載入的注意事項。",[117,118,119,120,103,18],"ES Module","Node.js","import maps","exports",{"path":122,"title":123,"description":124,"category":89,"tags":125},"\u002Fposts\u002Fstructured-clone","structuredClone()：終於有內建的深層拷貝","整理 JavaScript structuredClone() 的深層拷貝用法，說明 Date、Map、Set、循環參考的處理方式，以及 Function、class 與 Vue reactive Proxy 的注意事項。",[18,126,127,128],"structuredClone","深拷貝","Vue",{"path":130,"title":131,"description":132,"category":16,"tags":133},"\u002Fposts\u002Fdynamic-import","JavaScript 動態載入：import() 與 Vue 非同步元件","整理靜態 import、動態 import() 與 Vue defineAsyncComponent 的使用方式，並簡單補充 Vite import.meta.glob 的用途。",[18,134,135,103,136],"ES Modules","Vue 3","Code Splitting",{"path":138,"title":139,"description":140,"category":16,"tags":141},"\u002Fposts\u002Fscreen-wake-lock-api","Screen Wake Lock API：不用套件也能讓頁面保持亮著","整理 Screen Wake Lock API 的基本用法，說明 HTTPS、頁面可見性、切換分頁後重新取得 wake lock，以及 Vue／Nuxt 計時器使用時的注意事項。",[142,128,143,144,145,146],"Wake Lock","Nuxt4","行動裝置","計時器","Web API",{"path":148,"title":149,"description":150,"category":16,"tags":151},"\u002Fposts\u002Fhtml-meta-boilerplate-today","現在的 HTML meta 標籤怎麼寫","整理現在一個新頁面該有的 meta 標籤骨架——viewport 補上 viewport-fit=cover 因應瀏海與圓角螢幕、color-scheme 讓表單控制項跟著深色模式換色、theme-color 決定行動瀏覽器工具列顏色，以及基本的 SEO 與 Open Graph 標籤。",[152,153,154],"HTML","meta","SEO",{"path":156,"title":157,"description":158,"category":8,"tags":159},"\u002Fposts\u002Fdocker-node-postgres","把 Node + PostgreSQL 的 backend 裝進 Docker：Dockerfile、.dockerignore 與 compose","從「本機裝了就跑」到打包成容器的通用做法——Dockerfile 每一行的理由與 layer cache 為什麼決定了指令順序、.dockerignore 漏掉 node_modules 對原生模組是災難級的問題、容器之間為什麼不能用 localhost 互相找到對方，以及怎麼驗證資料真的寫進了 volume。",[160,161,118,162,163],"Docker","Docker Compose","PostgreSQL","Express",{"path":165,"title":166,"description":167,"category":16,"tags":168},"\u002Fposts\u002Fnuxt-server-proxy","Nuxt 3 \u002F 4 用 Server API 做代理與轉發","整理 Nuxt 3 與 Nuxt 4 使用 server\u002Fapi 轉發第三方 API 的方式，可以避免瀏覽器 CORS 問題、隱藏 API Key，也能在伺服器端加入快取。",[169,143,170,171,172],"Nuxt3","CORS","Nitro","API",{"path":174,"title":175,"description":176,"category":16,"tags":177},"\u002Fposts\u002Fnuxt4-project-setup","Nuxt 4 建立專案：和 Nuxt 3 有哪些不同","整理 Nuxt 4 建立專案的基本流程與目錄結構，並對照 Nuxt 3 的差異，包括 app\u002F 目錄、路徑別名、TypeScript，以及目前常用的 ESLint 與 Tailwind CSS 4 設定。",[143,44,178,179,180],"TypeScript","ESLint","Tailwind CSS 4",{"path":182,"title":183,"description":184,"category":16,"tags":185},"\u002Fposts\u002Fnuxt3-route-middleware","Nuxt 3 \u002F 4 的 Route Middleware：進頁面前先做判斷","整理 Nuxt 3 與 Nuxt 4 的 Route Middleware，用 defineNuxtRouteMiddleware 在進入頁面前檢查登入狀態，搭配 navigateTo 重新導向，並說明一般 middleware、global middleware 與 definePageMeta 的用法。",[169,143,186,187],"Middleware","驗證",{"path":189,"title":190,"description":191,"category":16,"tags":192},"\u002Fposts\u002Fnuxt-route-rules-redirect","Nuxt 3 \u002F 4 的 routeRules：重新導向與頁面設定","整理 Nuxt 3 與 Nuxt 4 的 routeRules 用法，可以依照不同網址設定重新導向、預渲染、SSR 與快取，並簡單對照 Nuxt 2 的舊做法。",[169,143,193,194],"routeRules","重新導向",{"path":196,"title":197,"description":198,"category":16,"tags":199},"\u002Fposts\u002Fios-iframe-google-login-blank-page","iOS iframe 串接 Google 登入出現空白頁：Popup 與頁面回收問題排查紀錄","記錄 iframe 內串接 Google 第三方登入時，部分 iOS 裝置因背景頁面遭到回收並重新載入，導致 Popup 登入流程中斷，以及最後透過 Redirect 分流與登入狀態接回機制處理的過程。",[73,200,201,202,203,204,205,206],"Safari","iframe","Google Login","GIS","OAuth","Popup","Redirect",{"path":208,"title":209,"description":210,"category":16,"tags":211},"\u002Fposts\u002Fios-login-tab-return-behavior","iOS 第三方登入後回不到原頁？分頁開啟關係與回頁行為實測","記錄 iOS Safari 與 Chrome 在多分頁第三方登入流程中，登入頁關閉後不一定回到原頁的實測，以及分頁開啟關係、window.close 與 window.focus 的限制。",[73,200,212,202,204,201,213,214],"Chrome","window.close","window.focus",{"path":216,"title":217,"description":218,"category":16,"tags":219},"\u002Fposts\u002Fgoogle-app-about-blank-placeholder","Google App 內建瀏覽器：about:blank 佔位頁被關閉的排查紀錄","記錄 iOS Google App 內建瀏覽器在非同步開啟外部頁面時，about:blank 佔位分頁被自動關閉，導致第三方登入或外部導轉失敗的排查與解法。",[73,220,221,222,204,223],"Google App","window.open","about:blank","WebView",{"path":225,"title":226,"description":227,"category":228,"tags":229},"\u002Fposts\u002Fclaude-code-codex-cli-init-basics","AI 相關紀錄 v1｜Claude Code \u002F Codex CLI 初始化與基本概念","從 Claude Code 與 Codex CLI 開始，整理 CLI、Coding Agent、Context、\u002Finit 與 CLAUDE.md／AGENTS.md 這幾個一開始最容易搞混的概念，以及在既有專案中的安裝與啟動方式。","ai",[230,231,232,233,234,235],"AI","Claude Code","Codex CLI","Coding Agent","CLAUDE.md","AGENTS.md",{"path":237,"title":238,"description":239,"category":228,"tags":240},"\u002Fposts\u002Fclaude-agents-md-project-guidelines","AI 相關紀錄 v2｜CLAUDE.md \u002F AGENTS.md 怎麼寫？專案規範與實際範例","整理 CLAUDE.md 與 AGENTS.md 的用途、適合記錄的專案規範，以及可直接參考的設定範例。",[230,231,232,234,235],{"path":242,"title":243,"description":244,"category":228,"tags":245},"\u002Fposts\u002Fclaude-codex-config-locations","AI 相關紀錄 v3｜Claude Code `.claude\u002F` \u002F Codex CLI 設定位置：全域與專案設定基本概要介紹","整理 Claude Code 與 Codex CLI 的使用者層級、專案層級設定位置，以及 rules、skills、agents 等目錄的用途。",[230,231,232,246],"設定檔",{"path":248,"title":249,"description":250,"category":228,"tags":251},"\u002Fposts\u002Fclaude-settings-codex-config","AI 相關紀錄 v4｜Claude Code settings \u002F Codex config 基本設定","整理 Claude Code settings.json 與 Codex config.toml 的設定層級、權限控制和常見基本設定。",[230,231,232,252,253],"settings.json","config.toml",{"path":255,"title":256,"description":257,"category":228,"tags":258},"\u002Fposts\u002Fclaude-codex-rules-structure","AI 相關紀錄 v5｜Rules：專案規則多了之後怎麼拆？","整理 Claude Code Rules 與 Codex AGENTS.md 的拆分方式，說明何時該拆、怎麼依目錄管理專案規則。",[230,231,232,259,235],"Rules",{"path":261,"title":262,"description":263,"category":228,"tags":264},"\u002Fposts\u002Fclaude-codex-slash-commands","AI 相關紀錄 v6｜Commands \u002F Slash Commands：CLI 裡的 `\u002F` 指令是什麼？","介紹 Claude Code 與 Codex CLI 的 Slash Commands，整理常用內建指令、自訂指令與 Skills 的差異。",[230,231,232,265],"Slash Commands",{"path":267,"title":268,"description":269,"category":228,"tags":270},"\u002Fposts\u002Fclaude-codex-skills","AI 相關紀錄 v7｜Skills：把重複工作流程整理起來","介紹 Claude Code 與 Codex Skills，整理適合保存成 Skill 的重複流程、基本結構與使用方式。",[230,231,232,271],"Skills",{"path":273,"title":274,"description":275,"category":228,"tags":276},"\u002Fposts\u002Fclaude-codex-agents-subagents","AI 相關紀錄 v8｜Agent \u002F Subagent：什麼時候真的需要分工？","整理 Agent、Subagent 與 Custom Agent 的用途，說明何時適合分工，以及它們和 Rules、Skills 的差異。",[230,231,232,277,278],"Agent","Subagent",{"path":280,"title":281,"description":282,"category":228,"tags":283},"\u002Fposts\u002Fmcp-basics","AI 相關紀錄 v9｜MCP：讓 AI 使用其他工具與資料","介紹 MCP 如何讓 AI 使用外部工具與資料，並以 Pencil MCP 說明實際用途、權限風險及與 Skill 的差異。",[230,284,231,232,285],"MCP","Pencil",{"path":287,"title":288,"description":289,"category":228,"tags":290},"\u002Fposts\u002Fai-coding-agent-concepts-summary","AI 相關紀錄 v10｜基本概念小結論","用一篇快速整理 CLAUDE.md、AGENTS.md、設定檔、Rules、Commands、Skills、Agent 與 MCP 的角色和差異。",[230,231,232,284,271,277],{"path":292,"title":293,"description":294,"category":228,"tags":295},"\u002Fposts\u002Fclaude-code-codex-model-selection","Claude Code 與 Codex：不同模型怎麼選？","比較 Claude Code 與 Codex 不同模型的速度、能力與成本取捨，依工作難度整理實用的選擇方向。",[230,231,296,297],"Codex","模型選擇",{"path":299,"title":300,"description":301,"category":228,"tags":302},"\u002Fposts\u002Fclaude-model-selection","Claude 模型簡單怎麼選？","整理 Claude 各模型在速度、能力與使用情境上的差異，提供從輕量工作到複雜任務的選擇方向。",[230,231,303,297],"Claude",{"path":305,"title":306,"description":307,"category":228,"tags":308},"\u002Fposts\u002Fcodex-model-selection","Codex 模型簡單怎麼選？","整理 Codex 各模型在速度、能力與使用情境上的差異，提供從簡單修改到大型端到端任務的選擇方向。",[230,296,309,297],"OpenAI",{"path":311,"title":312,"description":313,"category":228,"tags":314},"\u002Fposts\u002Fclaude-code-codex-cli-command-cheatsheet","Claude Code \u002F Codex CLI 常用指令速查表","整理 Claude Code 與 Codex CLI 的常用斜線指令、快捷操作與進階功能，方便需要時快速查找。",[230,231,232,265,315],"速查表",{"id":317,"title":243,"body":318,"category":228,"description":244,"draft":1775,"extension":1776,"image":1777,"meta":1778,"navigation":1779,"path":242,"publishedAt":1780,"relatedExperiments":1781,"seo":1782,"stem":1783,"tags":1784,"updatedAt":1777,"__hash__":1785},"posts\u002Fposts\u002F20260903.claude-codex-config-locations.md",{"type":319,"value":320,"toc":1733},"minimark",[321,325,336,339,345,348,354,357,362,365,371,374,380,383,391,394,399,410,413,419,421,427,430,436,439,445,448,454,457,463,466,468,472,475,481,492,495,499,503,509,512,518,520,526,529,535,538,543,545,551,555,558,563,566,572,574,577,580,583,589,592,598,601,607,610,616,618,624,626,632,635,641,643,648,650,653,658,664,667,673,676,726,733,736,742,746,749,754,757,762,765,781,784,790,793,796,801,804,810,813,819,821,828,831,837,840,843,846,919,921,925,928,933,936,941,947,950,956,959,964,967,972,975,977,982,985,991,994,999,1001,1015,1018,1020,1025,1028,1034,1037,1042,1045,1051,1054,1057,1059,1064,1070,1072,1078,1081,1087,1090,1093,1099,1102,1105,1107,1112,1115,1120,1122,1128,1131,1151,1157,1163,1166,1168,1173,1176,1182,1184,1190,1193,1195,1201,1204,1221,1224,1226,1233,1236,1242,1244,1250,1253,1256,1259,1265,1268,1273,1276,1278,1284,1287,1293,1296,1302,1304,1310,1315,1335,1337,1343,1346,1349,1354,1357,1363,1366,1372,1375,1377,1380,1383,1388,1391,1394,1399,1402,1405,1411,1414,1420,1422,1432,1435,1438,1444,1446,1451,1454,1460,1465,1468,1474,1476,1481,1483,1487,1490,1492,1498,1501,1507,1510,1516,1518,1522,1525,1531,1534,1540,1543,1549,1552,1555,1557,1564,1567,1570,1576,1579,1585,1587,1593,1596,1602,1605,1610,1613,1619,1622,1624,1628,1631,1634,1640,1643,1648,1650,1653,1656,1662,1665,1670,1672,1678,1680,1684,1687,1690,1696,1699,1705,1708,1714,1717,1720,1723,1730],[322,323,324],"p",{},"前面兩篇整理了 Claude Code、Codex CLI，以及：",[326,327,333],"pre",{"className":328,"code":330,"language":331,"meta":332},[329],"language-text","CLAUDE.md\nAGENTS.md\n","text","",[334,335,330],"code",{"__ignoreMap":332},[322,337,338],{},"這兩個檔案主要可以用來記錄：",[340,341,342],"blockquote",{},[322,343,344],{},"AI 進入專案工作時，需要知道哪些規則？",[322,346,347],{},"但實際開始使用之後，還會陸續看到：",[326,349,352],{"className":350,"code":351,"language":331,"meta":332},[329],".claude\u002F\n.codex\u002F\nsettings.json\nconfig.toml\nrules\u002F\nagents\u002F\nskills\u002F\n",[334,353,351],{"__ignoreMap":332},[322,355,356],{},"第一次看到很容易搞混：",[340,358,359],{},[322,360,361],{},"這些東西到底要放哪裡？",[322,363,364],{},"而且同一個工具有時候還會同時看到：",[326,366,369],{"className":367,"code":368,"language":331,"meta":332},[329],"~\u002F.claude\u002F\n",[334,370,368],{"__ignoreMap":332},[322,372,373],{},"以及：",[326,375,378],{"className":376,"code":377,"language":331,"meta":332},[329],"my-project\u002F.claude\u002F\n",[334,379,377],{"__ignoreMap":332},[322,381,382],{},"所以這篇先整理一個更基本的問題：",[340,384,385],{},[322,386,387],{},[388,389,390],"strong",{},"Claude Code 與 Codex 的設定通常放在哪裡？全域設定與專案設定又有什麼差別？",[392,393],"hr",{},[395,396,398],"h3",{"id":397},"先理解使用者層級-vs-專案層級","先理解：使用者層級 vs 專案層級",[322,400,401,402,405,406,409],{},"在看 ",[334,403,404],{},".claude\u002F"," 與 ",[334,407,408],{},".codex\u002F"," 之前，我覺得先理解這個概念會比較容易。",[322,411,412],{},"Claude Code 與 Codex 都可能同時存在：",[326,414,417],{"className":415,"code":416,"language":331,"meta":332},[329],"使用者層級（Global \u002F 全域）\n",[334,418,416],{"__ignoreMap":332},[322,420,373],{},[326,422,425],{"className":423,"code":424,"language":331,"meta":332},[329],"專案層級（Project）\n",[334,426,424],{"__ignoreMap":332},[322,428,429],{},"簡單理解：",[326,431,434],{"className":432,"code":433,"language":331,"meta":332},[329],"使用者層級\n↓\n自己的預設設定\n可能套用到多個專案\n\n\n專案層級\n↓\n只有目前這個專案使用\n放專案特有的規則與設定\n",[334,435,433],{"__ignoreMap":332},[322,437,438],{},"我會先把它記成：",[326,440,443],{"className":441,"code":442,"language":331,"meta":332},[329],"全域設定 = 我的預設值\n\n專案設定 = 這個專案的特殊需求\n",[334,444,442],{"__ignoreMap":332},[322,446,447],{},"例如：",[326,449,452],{"className":450,"code":451,"language":331,"meta":332},[329],"Claude Code\n\n~\u002F.claude\u002F               ← 使用者層級\n\nmy-project\u002F\n├─ CLAUDE.md\n└─ .claude\u002F              ← 專案層級\n",[334,453,451],{"__ignoreMap":332},[322,455,456],{},"Codex 則可能是：",[326,458,461],{"className":459,"code":460,"language":331,"meta":332},[329],"Codex\n\n~\u002F.codex\u002F\n└─ config.toml           ← 使用者層級\n\nmy-project\u002F\n├─ AGENTS.md\n└─ .codex\u002F\n   └─ config.toml        ← 專案層級\n",[334,462,460],{"__ignoreMap":332},[322,464,465],{},"這樣之後看到同一個檔名出現在不同位置，就比較不容易混亂。",[392,467],{},[395,469,471],{"id":470},"不同作業系統的使用者設定在哪裡","不同作業系統的使用者設定在哪裡？",[322,473,474],{},"前面一直看到：",[326,476,479],{"className":477,"code":478,"language":331,"meta":332},[329],"~\u002F.claude\u002F\n~\u002F.codex\u002F\n",[334,480,478],{"__ignoreMap":332},[322,482,483,484,487,488,491],{},"這裡的 ",[334,485,486],{},"~"," 代表目前使用者的 ",[388,489,490],{},"Home 目錄","。",[322,493,494],{},"所以實際位置會依作業系統不同。",[496,497,231],"h4",{"id":498},"claude-code",[500,501,55],"h5",{"id":502},"windows",[326,504,507],{"className":505,"code":506,"language":331,"meta":332},[329],"C:\\Users\\你的使用者名稱\\.claude\\\n",[334,508,506],{"__ignoreMap":332},[322,510,511],{},"也可以寫成：",[326,513,516],{"className":514,"code":515,"language":331,"meta":332},[329],"%USERPROFILE%\\.claude\\\n",[334,517,515],{"__ignoreMap":332},[322,519,447],{},[326,521,524],{"className":522,"code":523,"language":331,"meta":332},[329],"C:\\Users\\你的使用者名稱\\.claude\\\n├─ settings.json\n├─ CLAUDE.md\n├─ agents\u002F\n└─ ...\n",[334,525,523],{"__ignoreMap":332},[500,527,54],{"id":528},"macos",[326,530,533],{"className":531,"code":532,"language":331,"meta":332},[329],"\u002FUsers\u002F你的使用者名稱\u002F.claude\u002F\n",[334,534,532],{"__ignoreMap":332},[322,536,537],{},"也就是：",[326,539,541],{"className":540,"code":368,"language":331,"meta":332},[329],[334,542,368],{"__ignoreMap":332},[322,544,447],{},[326,546,549],{"className":547,"code":548,"language":331,"meta":332},[329],"\u002FUsers\u002F你的使用者名稱\u002F.claude\u002F\n├─ settings.json\n├─ CLAUDE.md\n├─ agents\u002F\n└─ ...\n",[334,550,548],{"__ignoreMap":332},[500,552,554],{"id":553},"linux","Linux",[322,556,557],{},"Linux 同樣使用：",[326,559,561],{"className":560,"code":368,"language":331,"meta":332},[329],[334,562,368],{"__ignoreMap":332},[322,564,565],{},"通常實際會是：",[326,567,570],{"className":568,"code":569,"language":331,"meta":332},[329],"\u002Fhome\u002F你的使用者名稱\u002F.claude\u002F\n",[334,571,569],{"__ignoreMap":332},[392,573],{},[496,575,296],{"id":576},"codex",[322,578,579],{},"Codex 的使用者層級設定也是放在 Home 目錄。",[500,581,55],{"id":582},"windows-1",[326,584,587],{"className":585,"code":586,"language":331,"meta":332},[329],"C:\\Users\\你的使用者名稱\\.codex\\\n",[334,588,586],{"__ignoreMap":332},[322,590,591],{},"也可以表示成：",[326,593,596],{"className":594,"code":595,"language":331,"meta":332},[329],"%USERPROFILE%\\.codex\\\n",[334,597,595],{"__ignoreMap":332},[322,599,600],{},"主要設定檔：",[326,602,605],{"className":603,"code":604,"language":331,"meta":332},[329],"%USERPROFILE%\\.codex\\config.toml\n",[334,606,604],{"__ignoreMap":332},[500,608,54],{"id":609},"macos-1",[326,611,614],{"className":612,"code":613,"language":331,"meta":332},[329],"\u002FUsers\u002F你的使用者名稱\u002F.codex\u002F\n",[334,615,613],{"__ignoreMap":332},[322,617,537],{},[326,619,622],{"className":620,"code":621,"language":331,"meta":332},[329],"~\u002F.codex\u002F\n",[334,623,621],{"__ignoreMap":332},[322,625,600],{},[326,627,630],{"className":628,"code":629,"language":331,"meta":332},[329],"~\u002F.codex\u002Fconfig.toml\n",[334,631,629],{"__ignoreMap":332},[500,633,554],{"id":634},"linux-1",[326,636,639],{"className":637,"code":638,"language":331,"meta":332},[329],"\u002Fhome\u002F你的使用者名稱\u002F.codex\u002F\n",[334,640,638],{"__ignoreMap":332},[322,642,511],{},[326,644,646],{"className":645,"code":621,"language":331,"meta":332},[329],[334,647,621],{"__ignoreMap":332},[392,649],{},[322,651,652],{},"所以看到：",[326,654,656],{"className":655,"code":368,"language":331,"meta":332},[329],[334,657,368],{"__ignoreMap":332},[322,659,660,661,663],{},"不用特別去尋找一個叫做 ",[334,662,486],{}," 的資料夾。",[322,665,666],{},"它只是代表：",[326,668,671],{"className":669,"code":670,"language":331,"meta":332},[329],"目前登入使用者的 Home 目錄\n",[334,672,670],{"__ignoreMap":332},[322,674,675],{},"可以簡單記成：",[677,678,679,694],"table",{},[680,681,682],"thead",{},[683,684,685,689,691],"tr",{},[686,687,688],"th",{},"工具",[686,690,55],{},[686,692,693],{},"macOS \u002F Linux",[695,696,697,712],"tbody",{},[683,698,699,702,707],{},[700,701,231],"td",{},[700,703,704],{},[334,705,706],{},"%USERPROFILE%\\.claude\\",[700,708,709],{},[334,710,711],{},"~\u002F.claude\u002F",[683,713,714,716,721],{},[700,715,296],{},[700,717,718],{},[334,719,720],{},"%USERPROFILE%\\.codex\\",[700,722,723],{},[334,724,725],{},"~\u002F.codex\u002F",[322,727,728,729,732],{},"這些位置屬於",[388,730,731],{},"使用者層級設定","，通常會影響這個使用者所使用的多個專案。",[322,734,735],{},"而專案自己的設定則仍然放在專案目錄裡，例如：",[326,737,740],{"className":738,"code":739,"language":331,"meta":332},[329],"my-project\u002F\n├─ .claude\u002F\n└─ .codex\u002F\n",[334,741,739],{"__ignoreMap":332},[395,743,745],{"id":744},"什麼適合放全域什麼適合放專案","什麼適合放全域？什麼適合放專案？",[322,747,748],{},"假設有一個設定：",[340,750,751],{},[322,752,753],{},"我平常使用 Codex 時，希望使用某個預設 Model。",[322,755,756],{},"如果這是自己大部分專案都會使用的習慣，就比較適合放在：",[326,758,760],{"className":759,"code":629,"language":331,"meta":332},[329],[334,761,629],{"__ignoreMap":332},[322,763,764],{},"但如果只有某一個專案需要特殊設定，例如：",[766,767,768,772,775,778],"ul",{},[769,770,771],"li",{},"不同的 Sandbox",[769,773,774],{},"特定 MCP",[769,776,777],{},"特定執行方式",[769,779,780],{},"專案專用 Agent",[322,782,783],{},"那就比較適合放在：",[326,785,788],{"className":786,"code":787,"language":331,"meta":332},[329],"my-project\u002F.codex\u002Fconfig.toml\n",[334,789,787],{"__ignoreMap":332},[322,791,792],{},"Claude Code 也是類似概念。",[322,794,795],{},"可以先問自己：",[340,797,798],{},[322,799,800],{},"這是「我自己的習慣」，還是「這個專案的要求」？",[322,802,803],{},"如果換一個完全不同的專案，我還是會想保留這項設定：",[326,805,808],{"className":806,"code":807,"language":331,"meta":332},[329],"→ 比較偏向使用者層級\n",[334,809,807],{"__ignoreMap":332},[322,811,812],{},"如果換一個專案就不一定需要：",[326,814,817],{"className":815,"code":816,"language":331,"meta":332},[329],"→ 比較偏向專案層級\n",[334,818,816],{"__ignoreMap":332},[392,820],{},[822,823,825,826],"h2",{"id":824},"claude-codeclaude","Claude Code：",[334,827,404],{},[322,829,830],{},"Claude Code 的專案中可能會看到：",[326,832,835],{"className":833,"code":834,"language":331,"meta":332},[329],"my-project\u002F\n├─ CLAUDE.md\n│\n└─ .claude\u002F\n   ├─ settings.json\n   ├─ settings.local.json\n   ├─ rules\u002F\n   ├─ agents\u002F\n   └─ skills\u002F\n",[334,836,834],{"__ignoreMap":332},[322,838,839],{},"不用一開始把所有資料夾全部建立出來。",[322,841,842],{},"有需要時再增加即可。",[322,844,845],{},"先簡單整理：",[677,847,848,858],{},[680,849,850],{},[683,851,852,855],{},[686,853,854],{},"位置",[686,856,857],{},"用途",[695,859,860,869,879,889,899,909],{},[683,861,862,866],{},[700,863,864],{},[334,865,234],{},[700,867,868],{},"專案工作規則",[683,870,871,876],{},[700,872,873],{},[334,874,875],{},".claude\u002Fsettings.json",[700,877,878],{},"專案共用設定",[683,880,881,886],{},[700,882,883],{},[334,884,885],{},".claude\u002Fsettings.local.json",[700,887,888],{},"自己在這個專案使用的 Local 設定",[683,890,891,896],{},[700,892,893],{},[334,894,895],{},".claude\u002Frules\u002F",[700,897,898],{},"拆分較多的專案規則",[683,900,901,906],{},[700,902,903],{},[334,904,905],{},".claude\u002Fskills\u002F",[700,907,908],{},"可重複使用的工作流程或能力",[683,910,911,916],{},[700,912,913],{},[334,914,915],{},".claude\u002Fagents\u002F",[700,917,918],{},"自訂 Agent \u002F Subagent",[392,920],{},[395,922,924],{"id":923},"claude-code-的使用者層級","Claude Code 的使用者層級",[322,926,927],{},"除了專案裡面的：",[326,929,931],{"className":930,"code":377,"language":331,"meta":332},[329],[334,932,377],{"__ignoreMap":332},[322,934,935],{},"Claude Code 也有使用者自己的設定位置：",[326,937,939],{"className":938,"code":368,"language":331,"meta":332},[329],[334,940,368],{"__ignoreMap":332},[322,942,943,944,946],{},"Windows 的 ",[334,945,486],{}," 可以理解為目前使用者的 Home 目錄。",[322,948,949],{},"例如大致會落在：",[326,951,954],{"className":952,"code":953,"language":331,"meta":332},[329],"C:\\Users\\你的帳號\\\n",[334,955,953],{"__ignoreMap":332},[322,957,958],{},"所以：",[326,960,962],{"className":961,"code":368,"language":331,"meta":332},[329],[334,963,368],{"__ignoreMap":332},[322,965,966],{},"代表的是：",[340,968,969],{},[322,970,971],{},"屬於目前使用者，而不是某一個特定專案的 Claude Code 設定。",[322,973,974],{},"這裡比較適合放自己跨專案使用的設定。",[392,976],{},[395,978,980],{"id":979},"claudesettingsjson",[334,981,875],{},[322,983,984],{},"專案中的：",[326,986,989],{"className":987,"code":988,"language":331,"meta":332},[329],".claude\u002Fsettings.json\n",[334,990,988],{"__ignoreMap":332},[322,992,993],{},"比較適合放：",[340,995,996],{},[322,997,998],{},"希望這個專案共同使用的 Claude Code 設定。",[322,1000,447],{},[766,1002,1003,1006,1009,1012],{},[769,1004,1005],{},"Permission 設定",[769,1007,1008],{},"Plugin 設定",[769,1010,1011],{},"Hook",[769,1013,1014],{},"其他 Claude Code 行為設定",[322,1016,1017],{},"因為屬於專案設定，所以如果是團隊共同使用的內容，也可以跟著 Git 一起管理。",[392,1019],{},[395,1021,1023],{"id":1022},"claudesettingslocaljson",[334,1024,885],{},[322,1026,1027],{},"另外還可能看到：",[326,1029,1032],{"className":1030,"code":1031,"language":331,"meta":332},[329],".claude\u002Fsettings.local.json\n",[334,1033,1031],{"__ignoreMap":332},[322,1035,1036],{},"這個比較偏向：",[340,1038,1039],{},[322,1040,1041],{},"自己在目前這個專案使用的 Local 設定。",[322,1043,1044],{},"也就是說：",[326,1046,1049],{"className":1047,"code":1048,"language":331,"meta":332},[329],"settings.json\n→ 專案共同設定\n\nsettings.local.json\n→ 個人在這個專案的設定\n",[334,1050,1048],{"__ignoreMap":332},[322,1052,1053],{},"例如某個 Permission 只有自己本機開發時需要，就比較適合放在 Local 設定。",[322,1055,1056],{},"這類檔案通常也不適合提交到 Git。",[392,1058],{},[395,1060,1062],{"id":1061},"clauderules",[334,1063,895],{},[322,1065,1066,1067,1069],{},"如果 ",[334,1068,234],{}," 開始越寫越長，可以把規則拆開。",[322,1071,447],{},[326,1073,1076],{"className":1074,"code":1075,"language":331,"meta":332},[329],".claude\u002F\n└─ rules\u002F\n   ├─ code-style.md\n   ├─ testing.md\n   ├─ api-design.md\n   └─ security.md\n",[334,1077,1075],{"__ignoreMap":332},[322,1079,1080],{},"這樣比全部塞進：",[326,1082,1085],{"className":1083,"code":1084,"language":331,"meta":332},[329],"CLAUDE.md\n",[334,1086,1084],{"__ignoreMap":332},[322,1088,1089],{},"更容易整理。",[322,1091,1092],{},"例如可以把：",[326,1094,1097],{"className":1095,"code":1096,"language":331,"meta":332},[329],"程式風格\n測試方式\nAPI 規則\nSecurity 規則\n",[334,1098,1096],{"__ignoreMap":332},[322,1100,1101],{},"分開管理。",[322,1103,1104],{},"有些 Rule 也可以依照特定路徑套用，讓不同區域使用不同規範。",[392,1106],{},[395,1108,1110],{"id":1109},"claudeskills",[334,1111,905],{},[322,1113,1114],{},"Skill 可以先簡單理解成：",[340,1116,1117],{},[322,1118,1119],{},"可以重複使用的工作流程或能力。",[322,1121,447],{},[326,1123,1126],{"className":1124,"code":1125,"language":331,"meta":332},[329],".claude\u002F\n└─ skills\u002F\n   └─ review-code\u002F\n      └─ SKILL.md\n",[334,1127,1125],{"__ignoreMap":332},[322,1129,1130],{},"可能用來處理：",[766,1132,1133,1136,1139,1142,1145,1148],{},[769,1134,1135],{},"Code Review",[769,1137,1138],{},"檢查 Git Diff",[769,1140,1141],{},"建立 Commit",[769,1143,1144],{},"部署流程",[769,1146,1147],{},"文件產生",[769,1149,1150],{},"專案特有流程",[322,1152,1153,1154,1156],{},"它跟 ",[334,1155,234],{}," 的差別，可以先這樣理解：",[326,1158,1161],{"className":1159,"code":1160,"language":331,"meta":332},[329],"CLAUDE.md\n↓\n平常工作時持續需要知道的規則\n\n\nSkill\n↓\n要執行某種工作時才需要的流程與能力\n",[334,1162,1160],{"__ignoreMap":332},[322,1164,1165],{},"Skill 的詳細寫法之後再另外整理。",[392,1167],{},[395,1169,1171],{"id":1170},"claudeagents",[334,1172,915],{},[322,1174,1175],{},"如果需要建立特定用途的 Agent \u002F Subagent，可以放在：",[326,1177,1180],{"className":1178,"code":1179,"language":331,"meta":332},[329],".claude\u002Fagents\u002F\n",[334,1181,1179],{"__ignoreMap":332},[322,1183,447],{},[326,1185,1188],{"className":1186,"code":1187,"language":331,"meta":332},[329],".claude\u002F\n└─ agents\u002F\n   ├─ code-reviewer.md\n   └─ debugger.md\n",[334,1189,1187],{"__ignoreMap":332},[322,1191,1192],{},"不同 Agent 可以負責不同工作。",[322,1194,447],{},[326,1196,1199],{"className":1197,"code":1198,"language":331,"meta":332},[329],"code-reviewer\n↓\n只負責檢查問題，不修改程式\n\n\ndebugger\n↓\n專門調查 Bug\n",[334,1200,1198],{"__ignoreMap":332},[322,1202,1203],{},"也可以替 Agent 設定不同的：",[766,1205,1206,1209,1212,1215,1218],{},[769,1207,1208],{},"Prompt",[769,1210,1211],{},"Model",[769,1213,1214],{},"Tool",[769,1216,1217],{},"Permission",[769,1219,1220],{},"工作範圍",[322,1222,1223],{},"詳細用法之後再獨立整理。",[392,1225],{},[395,1227,1229,1232],{"id":1228},"claudecommands-呢",[334,1230,1231],{},".claude\u002Fcommands\u002F"," 呢？",[322,1234,1235],{},"如果以前有看過 Claude Code 的教學，可能還會看到：",[326,1237,1240],{"className":1238,"code":1239,"language":331,"meta":332},[329],".claude\u002Fcommands\u002F\n",[334,1241,1239],{"__ignoreMap":332},[322,1243,447],{},[326,1245,1248],{"className":1246,"code":1247,"language":331,"meta":332},[329],".claude\u002Fcommands\u002Fdeploy.md\n",[334,1249,1247],{"__ignoreMap":332},[322,1251,1252],{},"這種 Custom Command 的方式目前仍然可以使用。",[322,1254,1255],{},"不過現在 Claude Code 已經把這類能力逐漸整合到 Skills。",[322,1257,1258],{},"所以如果是現在才建立新的工作流程，我自己會優先考慮：",[326,1260,1263],{"className":1261,"code":1262,"language":331,"meta":332},[329],".claude\u002Fskills\u002Fdeploy\u002FSKILL.md\n",[334,1264,1262],{"__ignoreMap":332},[322,1266,1267],{},"而不是特別再建立：",[326,1269,1271],{"className":1270,"code":1239,"language":331,"meta":332},[329],[334,1272,1239],{"__ignoreMap":332},[322,1274,1275],{},"舊專案已經有的話不一定需要急著改，新功能則可以優先理解 Skills。",[392,1277],{},[822,1279,1281,1282],{"id":1280},"codex-clicodex","Codex CLI：",[334,1283,408],{},[322,1285,1286],{},"Codex 最常看到的使用者設定是：",[326,1288,1291],{"className":1289,"code":1290,"language":331,"meta":332},[329],"~\u002F.codex\u002F\n└─ config.toml\n",[334,1292,1290],{"__ignoreMap":332},[322,1294,1295],{},"Windows 通常可以理解為：",[326,1297,1300],{"className":1298,"code":1299,"language":331,"meta":332},[329],"%USERPROFILE%\\.codex\\\n└─ config.toml\n",[334,1301,1299],{"__ignoreMap":332},[322,1303,447],{},[326,1305,1308],{"className":1306,"code":1307,"language":331,"meta":332},[329],"C:\\Users\\你的帳號\\.codex\\config.toml\n",[334,1309,1307],{"__ignoreMap":332},[322,1311,1312,1314],{},[334,1313,253],{}," 可以設定 Codex 的許多執行行為，例如：",[766,1316,1317,1319,1322,1325,1328,1330,1332],{},[769,1318,1211],{},[769,1320,1321],{},"Reasoning",[769,1323,1324],{},"Sandbox",[769,1326,1327],{},"Approval",[769,1329,284],{},[769,1331,277],{},[769,1333,1334],{},"其他執行設定",[392,1336],{},[395,1338,1340,1341],{"id":1339},"codex-也有專案層級-codex","Codex 也有專案層級 ",[334,1342,408],{},[322,1344,1345],{},"這一點我一開始也很容易忽略。",[322,1347,1348],{},"Codex 不只有：",[326,1350,1352],{"className":1351,"code":629,"language":331,"meta":332},[329],[334,1353,629],{"__ignoreMap":332},[322,1355,1356],{},"也可以有專案層級的：",[326,1358,1361],{"className":1359,"code":1360,"language":331,"meta":332},[329],"my-project\u002F\n├─ AGENTS.md\n│\n└─ .codex\u002F\n   └─ config.toml\n",[334,1362,1360],{"__ignoreMap":332},[322,1364,1365],{},"所以可以理解成：",[326,1367,1370],{"className":1368,"code":1369,"language":331,"meta":332},[329],"~\u002F.codex\u002Fconfig.toml\n↓\n自己的 Codex 預設設定\n\n\nmy-project\u002F.codex\u002Fconfig.toml\n↓\n這個專案的 Codex 設定\n",[334,1371,1369],{"__ignoreMap":332},[322,1373,1374],{},"如果專案有自己的特殊需求，就不需要全部塞到使用者的全域設定裡。",[392,1376],{},[395,1378,1379],{"id":1379},"專案設定可以覆蓋全域設定",[322,1381,1382],{},"假設：",[326,1384,1386],{"className":1385,"code":629,"language":331,"meta":332},[329],[334,1387,629],{"__ignoreMap":332},[322,1389,1390],{},"設定了自己的預設行為。",[322,1392,1393],{},"但某個專案又有：",[326,1395,1397],{"className":1396,"code":787,"language":331,"meta":332},[329],[334,1398,787],{"__ignoreMap":332},[322,1400,1401],{},"那麼更接近目前專案的設定，可以覆蓋對應的上層設定。",[322,1403,1404],{},"大致可以想像成：",[326,1406,1409],{"className":1407,"code":1408,"language":331,"meta":332},[329],"使用者設定\n~\u002F.codex\u002Fconfig.toml\n        ↓\n專案設定\nmy-project\u002F.codex\u002Fconfig.toml\n        ↓\n更靠近目前工作目錄的設定\n",[334,1410,1408],{"__ignoreMap":332},[322,1412,1413],{},"越接近目前工作位置的專案設定，優先度越高。",[322,1415,1416,1417,1419],{},"不過基於安全考量，Codex 需要將專案視為 Trusted，才會載入專案層級的 ",[334,1418,408],{}," 設定。",[392,1421],{},[822,1423,1425,1427,1428,1431],{"id":1424},"agentsmd-跟-codexconfigtoml-有什麼差別",[334,1426,235],{}," 跟 ",[334,1429,1430],{},".codex\u002Fconfig.toml"," 有什麼差別？",[322,1433,1434],{},"這兩個也很容易混在一起。",[322,1436,1437],{},"可以先理解成：",[326,1439,1442],{"className":1440,"code":1441,"language":331,"meta":332},[329],"AGENTS.md\n↓\n告訴 Codex「這個專案應該怎麼工作」\n\n\n.codex\u002Fconfig.toml\n↓\n告訴 Codex「工具本身應該怎麼執行」\n",[334,1443,1441],{"__ignoreMap":332},[322,1445,447],{},[496,1447,1449],{"id":1448},"agentsmd",[334,1450,235],{},[322,1452,1453],{},"比較適合寫：",[326,1455,1458],{"className":1456,"code":1457,"language":331,"meta":332},[329],"Coding Style\n測試方式\n專案架構\n修改限制\n驗證流程\n",[334,1459,1457],{"__ignoreMap":332},[496,1461,1463],{"id":1462},"codexconfigtoml",[334,1464,1430],{},[322,1466,1467],{},"則比較偏向：",[326,1469,1472],{"className":1470,"code":1471,"language":331,"meta":332},[329],"Model\nReasoning\nSandbox\nApproval\nMCP\nAgent 設定\n",[334,1473,1471],{"__ignoreMap":332},[322,1475,958],{},[340,1477,1478],{},[322,1479,1480],{},"工作規則與工具設定，是兩件不同的事情。",[392,1482],{},[395,1484,1486],{"id":1485},"codex-的-agent","Codex 的 Agent",[322,1488,1489],{},"Codex 目前也可以建立自己的 Agent。",[322,1491,447],{},[326,1493,1496],{"className":1494,"code":1495,"language":331,"meta":332},[329],"my-project\u002F\n└─ .codex\u002F\n   ├─ config.toml\n   └─ agents\u002F\n      ├─ code-mapper.toml\n      └─ browser-debugger.toml\n",[334,1497,1495],{"__ignoreMap":332},[322,1499,1500],{},"使用者自己的 Agent 也可以放在：",[326,1502,1505],{"className":1503,"code":1504,"language":331,"meta":332},[329],"~\u002F.codex\u002Fagents\u002F\n",[334,1506,1504],{"__ignoreMap":332},[322,1508,1509],{},"所以 Agent 同樣可能分成：",[326,1511,1514],{"className":1512,"code":1513,"language":331,"meta":332},[329],"使用者 Agent\n↓\n跨專案使用\n\n\n專案 Agent\n↓\n只提供這個專案使用\n",[334,1515,1513],{"__ignoreMap":332},[392,1517],{},[395,1519,1521],{"id":1520},"codex-的-rules","Codex 的 Rules",[322,1523,1524],{},"Codex 也有 Rules：",[326,1526,1529],{"className":1527,"code":1528,"language":331,"meta":332},[329],".codex\u002Frules\u002F\n",[334,1530,1528],{"__ignoreMap":332},[322,1532,1533],{},"或使用者層級：",[326,1535,1538],{"className":1536,"code":1537,"language":331,"meta":332},[329],"~\u002F.codex\u002Frules\u002F\n",[334,1539,1537],{"__ignoreMap":332},[322,1541,1542],{},"主要可以用來控制某些 Command 執行時應該：",[326,1544,1547],{"className":1545,"code":1546,"language":331,"meta":332},[329],"Allow\nPrompt\nForbidden\n",[334,1548,1546],{"__ignoreMap":332},[322,1550,1551],{},"例如某些 Command 是否可以在 Sandbox 外執行。",[322,1553,1554],{},"不過目前 Rules 仍屬於比較容易隨版本調整的功能，因此如果之後要實際使用，我會再另外確認當下官方文件。",[392,1556],{},[395,1558,1560,1561],{"id":1559},"codex-的-skill-不在-codexskills","Codex 的 Skill 不在 ",[334,1562,1563],{},".codex\u002Fskills\u002F",[322,1565,1566],{},"這裡也是很容易因為 Claude Code 的結構而直覺猜錯的地方。",[322,1568,1569],{},"Claude Code 的專案 Skill 可以看到：",[326,1571,1574],{"className":1572,"code":1573,"language":331,"meta":332},[329],".claude\u002Fskills\u002F\n",[334,1575,1573],{"__ignoreMap":332},[322,1577,1578],{},"但 Codex 的專案 Skill 目前主要放在：",[326,1580,1583],{"className":1581,"code":1582,"language":331,"meta":332},[329],".agents\u002Fskills\u002F\n",[334,1584,1582],{"__ignoreMap":332},[322,1586,447],{},[326,1588,1591],{"className":1589,"code":1590,"language":331,"meta":332},[329],"my-project\u002F\n├─ AGENTS.md\n│\n├─ .codex\u002F\n│  └─ config.toml\n│\n└─ .agents\u002F\n   └─ skills\u002F\n      └─ my-skill\u002F\n         └─ SKILL.md\n",[334,1592,1590],{"__ignoreMap":332},[322,1594,1595],{},"使用者自己的 Skill 則可以放在：",[326,1597,1600],{"className":1598,"code":1599,"language":331,"meta":332},[329],"~\u002F.agents\u002Fskills\u002F\n",[334,1601,1599],{"__ignoreMap":332},[322,1603,1604],{},"所以不要因為：",[326,1606,1608],{"className":1607,"code":1573,"language":331,"meta":332},[329],[334,1609,1573],{"__ignoreMap":332},[322,1611,1612],{},"就直覺認為 Codex 一定是：",[326,1614,1617],{"className":1615,"code":1616,"language":331,"meta":332},[329],".codex\u002Fskills\u002F\n",[334,1618,1616],{"__ignoreMap":332},[322,1620,1621],{},"兩邊的資料夾並不是完全一一對應。",[392,1623],{},[822,1625,1627],{"id":1626},"claude-code-與-codex-簡單比較","Claude Code 與 Codex 簡單比較",[322,1629,1630],{},"到這裡，可以先整理成這樣。",[395,1632,231],{"id":1633},"claude-code-1",[326,1635,1638],{"className":1636,"code":1637,"language":331,"meta":332},[329],"使用者層級\n\n~\u002F.claude\u002F\n",[334,1639,1637],{"__ignoreMap":332},[322,1641,1642],{},"專案：",[326,1644,1646],{"className":1645,"code":834,"language":331,"meta":332},[329],[334,1647,834],{"__ignoreMap":332},[392,1649],{},[395,1651,296],{"id":1652},"codex-1",[322,1654,1655],{},"使用者層級：",[326,1657,1660],{"className":1658,"code":1659,"language":331,"meta":332},[329],"~\u002F.codex\u002F\n├─ config.toml\n├─ agents\u002F\n└─ rules\u002F\n",[334,1661,1659],{"__ignoreMap":332},[322,1663,1664],{},"Skill 則另外可能在：",[326,1666,1668],{"className":1667,"code":1599,"language":331,"meta":332},[329],[334,1669,1599],{"__ignoreMap":332},[322,1671,1642],{},[326,1673,1676],{"className":1674,"code":1675,"language":331,"meta":332},[329],"my-project\u002F\n├─ AGENTS.md\n│\n├─ .codex\u002F\n│  ├─ config.toml\n│  ├─ agents\u002F\n│  └─ rules\u002F\n│\n└─ .agents\u002F\n   └─ skills\u002F\n",[334,1677,1675],{"__ignoreMap":332},[392,1679],{},[822,1681,1683],{"id":1682},"最後怎麼記比較簡單","最後怎麼記比較簡單？",[322,1685,1686],{},"如果一口氣看這麼多路徑有點亂，我自己會先只記兩個概念。",[322,1688,1689],{},"第一個：",[326,1691,1694],{"className":1692,"code":1693,"language":331,"meta":332},[329],"使用者層級\n= 我自己的預設設定\n\n專案層級\n= 這個專案自己的設定\n",[334,1695,1693],{"__ignoreMap":332},[322,1697,1698],{},"第二個：",[326,1700,1703],{"className":1701,"code":1702,"language":331,"meta":332},[329],"CLAUDE.md \u002F AGENTS.md\n↓\n告訴 AI「這個專案怎麼工作」\n\n\n.claude\u002F \u002F .codex\u002F\n↓\n工具設定與功能擴充\n",[334,1704,1702],{"__ignoreMap":332},[322,1706,1707],{},"至於：",[326,1709,1712],{"className":1710,"code":1711,"language":331,"meta":332},[329],"Agent\nSkill\nRules\nPermission\nSandbox\nApproval\n",[334,1713,1711],{"__ignoreMap":332},[322,1715,1716],{},"這些都不用在第一次看到時全部搞懂。",[322,1718,1719],{},"我自己也是實際使用到某個功能，再回頭理解它應該放在哪裡。",[322,1721,1722],{},"先把：",[340,1724,1725],{},[322,1726,1727],{},[388,1728,1729],{},"規則放哪、設定放哪、全域跟專案差在哪",[322,1731,1732],{},"搞清楚，後面的 Agent、Skill、Rules 就會比較容易理解。",{"title":332,"searchDepth":1734,"depth":1734,"links":1735},3,[1736,1737,1742,1743,1755,1761,1770,1774],{"id":397,"depth":1734,"text":398},{"id":470,"depth":1734,"text":471,"children":1738},[1739,1741],{"id":498,"depth":1740,"text":231},4,{"id":576,"depth":1740,"text":296},{"id":744,"depth":1734,"text":745},{"id":824,"depth":1744,"text":1745,"children":1746},2,"Claude Code：.claude\u002F",[1747,1748,1749,1750,1751,1752,1753],{"id":923,"depth":1734,"text":924},{"id":979,"depth":1734,"text":875},{"id":1022,"depth":1734,"text":885},{"id":1061,"depth":1734,"text":895},{"id":1109,"depth":1734,"text":905},{"id":1170,"depth":1734,"text":915},{"id":1228,"depth":1734,"text":1754},".claude\u002Fcommands\u002F 呢？",{"id":1280,"depth":1744,"text":1756,"children":1757},"Codex CLI：.codex\u002F",[1758,1760],{"id":1339,"depth":1734,"text":1759},"Codex 也有專案層級 .codex\u002F",{"id":1379,"depth":1734,"text":1379},{"id":1424,"depth":1744,"text":1762,"children":1763},"AGENTS.md 跟 .codex\u002Fconfig.toml 有什麼差別？",[1764,1765,1766,1767,1768],{"id":1448,"depth":1740,"text":235},{"id":1462,"depth":1740,"text":1430},{"id":1485,"depth":1734,"text":1486},{"id":1520,"depth":1734,"text":1521},{"id":1559,"depth":1734,"text":1769},"Codex 的 Skill 不在 .codex\u002Fskills\u002F",{"id":1626,"depth":1744,"text":1627,"children":1771},[1772,1773],{"id":1633,"depth":1734,"text":231},{"id":1652,"depth":1734,"text":296},{"id":1682,"depth":1744,"text":1683},false,"md",null,{},true,"2026-09-03",[],{"title":243,"description":244},"posts\u002F20260903.claude-codex-config-locations",[230,231,232,246],"j_WtaBzhkdemvN9Emmg79GhFf2aiDLVaIoznjpO0tmo",[1787,1790],{"title":249,"path":248,"stem":1788,"description":250,"category":228,"publishedAt":1789,"children":-1},"posts\u002F20260904.claude-settings-codex-config","2026-09-04",{"title":238,"path":237,"stem":1791,"description":239,"category":228,"publishedAt":1792,"children":-1},"posts\u002F20260902.claude-agents-md-project-guidelines","2026-09-02",1791786900748]