[{"data":1,"prerenderedAt":1712},["ShallowReactive",2],{"navigation":3,"\u002Fcore-features\u002Fcodebase-scan":189,"\u002Fcore-features\u002Fcodebase-scan-surround":1707},[4,35,57,75,101,123,149,171],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":34},"第 1 章：认识 Claude Code","i-lucide-rocket","\u002Fintro","1.intro",[10,14,18,22,26,30],{"title":11,"path":12,"stem":13},"什么是 Claude Code","\u002Fintro\u002Fwhat-is-claude-code","1.intro\u002F1.what-is-claude-code",{"title":15,"path":16,"stem":17},"Claude Code 与 Copilot、Cursor、Windsurf 的本质区别","\u002Fintro\u002Fvs-competitors","1.intro\u002F2.vs-competitors",{"title":19,"path":20,"stem":21},"AI 编程助手生态全景与选型指南","\u002Fintro\u002Fecosystem-guide","1.intro\u002F3.ecosystem-guide",{"title":23,"path":24,"stem":25},"LLM 的概率本质","\u002Fintro\u002Fllm-probability","1.intro\u002F4.llm-probability",{"title":27,"path":28,"stem":29},"从聊天机器人到 Agent","\u002Fintro\u002Ffrom-chatbot-to-agent","1.intro\u002F5.from-chatbot-to-agent",{"title":31,"path":32,"stem":33},"Claude Code 的 Agentic Loop 全拆解","\u002Fintro\u002Fagentic-loop","1.intro\u002F6.agentic-loop",false,{"title":36,"icon":37,"path":38,"stem":39,"children":40,"page":34},"第 2 章：安装与配置","i-lucide-settings","\u002Fsetup","2.setup",[41,45,49,53],{"title":42,"path":43,"stem":44},"系统要求与安装方式","\u002Fsetup\u002Fsystem-requirements","2.setup\u002F1.system-requirements",{"title":46,"path":47,"stem":48},"认证、登录与多账户管理","\u002Fsetup\u002Fauthentication","2.setup\u002F2.authentication",{"title":50,"path":51,"stem":52},"选择你的界面","\u002Fsetup\u002Fchoose-interface","2.setup\u002F3.choose-interface",{"title":54,"path":55,"stem":56},"Coding Plan","\u002Fsetup\u002Fcoding-plan","2.setup\u002F4.coding-plan",{"title":58,"icon":59,"path":60,"stem":61,"children":62,"page":34},"第 3 章：快速上手","i-lucide-hand","\u002Fquickstart","3.quickstart",[63,67,71],{"title":64,"path":65,"stem":66},"启动、交互模式与基本命令","\u002Fquickstart\u002Fstartup","3.quickstart\u002F1.startup",{"title":68,"path":69,"stem":70},"让 Claude 理解你的项目","\u002Fquickstart\u002Fcodebase-understanding","3.quickstart\u002F2.codebase-understanding",{"title":72,"path":73,"stem":74},"第一次代码变更","\u002Fquickstart\u002Ffirst-change","3.quickstart\u002F3.first-change",{"title":76,"icon":77,"path":78,"stem":79,"children":80,"page":34},"第 4 章：核心功能","i-lucide-laptop","\u002Fcore-features","4.core-features",[81,85,89,93,97],{"title":82,"path":83,"stem":84},"代码库全景扫描与模块关系分析","\u002Fcore-features\u002Fcodebase-scan","4.core-features\u002F1.codebase-scan",{"title":86,"path":87,"stem":88},"代码编辑与生成","\u002Fcore-features\u002Fedit-generate","4.core-features\u002F2.edit-generate",{"title":90,"path":91,"stem":92},"测试与调试","\u002Fcore-features\u002Ftest-debug","4.core-features\u002F3.test-debug",{"title":94,"path":95,"stem":96},"Git 工作流","\u002Fcore-features\u002Fgit-workflow","4.core-features\u002F4.git-workflow",{"title":98,"path":99,"stem":100},"工具链执行","\u002Fcore-features\u002Ftoolchain","4.core-features\u002F5.toolchain",{"title":102,"icon":103,"path":104,"stem":105,"children":106,"page":34},"第 5 章：进阶配置","i-lucide-wrench","\u002Fadvanced","5.advanced",[107,111,115,119],{"title":108,"path":109,"stem":110},"CLAUDE.md","\u002Fadvanced\u002Fclaude-md","5.advanced\u002F1.claude-md",{"title":112,"path":113,"stem":114},"Skills","\u002Fadvanced\u002Fskills","5.advanced\u002F2.skills",{"title":116,"path":117,"stem":118},"MCP","\u002Fadvanced\u002Fmcp","5.advanced\u002F3.mcp",{"title":120,"path":121,"stem":122},"Hooks 与 Plan 模式","\u002Fadvanced\u002Fhooks-plan","5.advanced\u002F4.hooks-plan",{"title":124,"icon":125,"path":126,"stem":127,"children":128,"page":34},"第 6 章：实战开发","i-lucide-hammer","\u002Fpractice","6.practice",[129,133,137,141,145],{"title":130,"path":131,"stem":132},"需求分析与架构设计","\u002Fpractice\u002Frequirements-architecture","6.practice\u002F1.requirements-architecture",{"title":134,"path":135,"stem":136},"项目脚手架搭建与技术选型","\u002Fpractice\u002Fscaffolding","6.practice\u002F2.scaffolding",{"title":138,"path":139,"stem":140},"核心功能实现","\u002Fpractice\u002Fcore-features","6.practice\u002F3.core-features",{"title":142,"path":143,"stem":144},"测试覆盖、代码审查与质量调优","\u002Fpractice\u002Ftesting-quality","6.practice\u002F4.testing-quality",{"title":146,"path":147,"stem":148},"部署上线与成果分享","\u002Fpractice\u002Fdeployment","6.practice\u002F5.deployment",{"title":150,"icon":151,"path":152,"stem":153,"children":154,"page":34},"第 7 章：心法层","i-lucide-brain","\u002Fmindset","7.mindset",[155,159,163,167],{"title":156,"path":157,"stem":158},"提示词设计原则","\u002Fmindset\u002Fprompt-design","7.mindset\u002F1.prompt-design",{"title":160,"path":161,"stem":162},"上下文管理策略","\u002Fmindset\u002Fcontext-management","7.mindset\u002F2.context-management",{"title":164,"path":165,"stem":166},"安全与权限控制","\u002Fmindset\u002Fsecurity","7.mindset\u002F3.security",{"title":168,"path":169,"stem":170},"Boris Cherny 的 9 条实战心法与团队推广经验","\u002Fmindset\u002Fboris-cherny-tips","7.mindset\u002F4.boris-cherny-tips",{"title":172,"icon":173,"path":174,"stem":175,"children":176,"page":34},"附录","i-lucide-paperclip","\u002Fappendix","8.appendix",[177,181,185],{"title":178,"path":179,"stem":180},"常用命令速查表","\u002Fappendix\u002Fa.command-cheatsheet","8.appendix\u002Fa.command-cheatsheet",{"title":182,"path":183,"stem":184},"AI 核心术语汇编","\u002Fappendix\u002Fb.ai-terminology","8.appendix\u002Fb.ai-terminology",{"title":186,"path":187,"stem":188},"资源链接与延伸阅读","\u002Fappendix\u002Fc.resources","8.appendix\u002Fc.resources",{"id":190,"title":82,"body":191,"description":224,"extension":1701,"links":1702,"meta":1703,"navigation":301,"path":83,"seo":1705,"stem":84,"__hash__":1706},"docs\u002F4.core-features\u002F1.codebase-scan.md",{"type":192,"value":193,"toc":1667},"minimark",[194,199,204,208,214,225,230,252,258,262,271,276,463,466,540,546,550,561,566,572,576,580,583,586,638,641,662,666,669,674,680,685,691,696,702,706,709,714,720,723,727,731,738,875,879,885,889,893,896,901,907,912,918,923,929,934,940,945,951,955,961,965,969,1072,1075,1079,1085,1089,1093,1096,1101,1130,1135,1140,1154,1158,1163,1177,1182,1196,1200,1203,1208,1226,1231,1237,1241,1245,1250,1292,1297,1303,1308,1314,1318,1321,1330,1336,1341,1347,1359,1363,1439,1443,1618,1621,1663],[195,196,198],"h2",{"id":197},"一代码库全景扫描claude-如何快速建立项目地图","一、代码库全景扫描：Claude 如何快速建立项目地图",[200,201,203],"h3",{"id":202},"_11-初始探索策略","1.1 初始探索策略",[205,206,207],"p",{},"当面对一个全新的代码库时，Claude Code 的核心优势在于其\"代理式\"（agentic）的工作方式——它不只是回答问题，而是主动规划步骤、执行命令、读取文件并自主探索。根据 Anthropic 官方最佳实践文档，最有效的代码库探索遵循\"先探索、再计划、后编码\"（Explore first, then plan, then code）的原则。",[205,209,210],{},[211,212,213],"strong",{},"快速建立项目地图的提问示例：",[215,216,221],"pre",{"className":217,"code":219,"language":220},[218],"language-text","\"请分析这个项目的整体结构。我需要了解：\n1. 项目使用的主要技术栈和框架\n2. 目录结构的核心组织逻辑\n3. 主要的入口文件和配置文件\n4. 测试结构如何组织\n不要修改任何文件，仅做分析。\"\n","text",[222,223,219],"code",{"__ignoreMap":224},"",[205,226,227],{},[211,228,229],{},"预期输出：",[205,231,232,233,236,237,236,240,243,244,247,248,251],{},"Claude 会遍历项目根目录，识别 ",[222,234,235],{},"package.json","、",[222,238,239],{},"Cargo.toml",[222,241,242],{},"pyproject.toml"," 等配置文件，分析 ",[222,245,246],{},"src\u002F"," 或 ",[222,249,250],{},"app\u002F"," 目录结构，并给出类似以下的结构化总结：",[215,253,256],{"className":254,"code":255,"language":220},[218],"项目概览：\n- 技术栈：Next.js 14 + TypeScript + Tailwind CSS + Prisma ORM\n- 架构模式：分层架构（API Routes → Services → Repository → DB）\n- 关键目录：\n  - src\u002Fapp\u002F — Next.js App Router 页面\n  - src\u002Flib\u002Fservices\u002F — 业务逻辑层\n  - src\u002Flib\u002Fdb\u002F — 数据访问层（Prisma）\n  - src\u002Fcomponents\u002F — React 组件\n  - src\u002Ftypes\u002F — TypeScript 类型定义\n- 入口文件：src\u002Fapp\u002Flayout.tsx, src\u002Fapp\u002Fpage.tsx\n- 测试：Vitest + React Testing Library，位于 __tests__\u002F 目录\n",[222,257,255],{"__ignoreMap":224},[200,259,261],{"id":260},"_12-使用-claudemd-构建知识基础","1.2 使用 CLAUDE.md 构建知识基础",[205,263,264,265,267,268,270],{},"Claude Code 会在项目启动时自动读取 ",[222,266,108],{}," 文件，将其内容注入到每次对话的上下文中。这是建立项目地图的关键基础设施。官方文档建议，根目录的 ",[222,269,108],{}," 应充当\"宪法\"角色，定义技术栈、核心命令和不可妥协的标准。",[205,272,273],{},[211,274,275],{},"根级 CLAUDE.md 示例：",[215,277,281],{"className":278,"code":279,"language":280,"meta":224,"style":224},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# 项目规范\n\n## 构建命令\n- 生产构建：`pnpm build`\n- 开发模式：`pnpm dev`\n\n## 测试命令\n- 单元测试：`pnpm test:unit \u003Cfile>`\n- E2E 测试：`pnpm test:e2e`\n\n## 代码风格\n- 仅使用函数组件\n- 禁止使用默认导出（default exports）\n- 样式使用 Tailwind CSS\n\n## 架构\n- Next.js monorepo\n- 共享逻辑位于 `\u002Fpackages\u002Fshared`\n","markdown",[222,282,283,296,303,312,332,347,352,360,375,390,395,403,411,419,427,432,440,448],{"__ignoreMap":224},[284,285,288,292],"span",{"class":286,"line":287},"line",1,[284,289,291],{"class":290},"sMK4o","# ",[284,293,295],{"class":294},"sBMFI","项目规范\n",[284,297,299],{"class":286,"line":298},2,[284,300,302],{"emptyLinePlaceholder":301},true,"\n",[284,304,306,309],{"class":286,"line":305},3,[284,307,308],{"class":290},"## ",[284,310,311],{"class":294},"构建命令\n",[284,313,315,318,322,325,329],{"class":286,"line":314},4,[284,316,317],{"class":290},"-",[284,319,321],{"class":320},"sTEyZ"," 生产构建：",[284,323,324],{"class":290},"`",[284,326,328],{"class":327},"sfazB","pnpm build",[284,330,331],{"class":290},"`\n",[284,333,335,337,340,342,345],{"class":286,"line":334},5,[284,336,317],{"class":290},[284,338,339],{"class":320}," 开发模式：",[284,341,324],{"class":290},[284,343,344],{"class":327},"pnpm dev",[284,346,331],{"class":290},[284,348,350],{"class":286,"line":349},6,[284,351,302],{"emptyLinePlaceholder":301},[284,353,355,357],{"class":286,"line":354},7,[284,356,308],{"class":290},[284,358,359],{"class":294},"测试命令\n",[284,361,363,365,368,370,373],{"class":286,"line":362},8,[284,364,317],{"class":290},[284,366,367],{"class":320}," 单元测试：",[284,369,324],{"class":290},[284,371,372],{"class":327},"pnpm test:unit \u003Cfile>",[284,374,331],{"class":290},[284,376,378,380,383,385,388],{"class":286,"line":377},9,[284,379,317],{"class":290},[284,381,382],{"class":320}," E2E 测试：",[284,384,324],{"class":290},[284,386,387],{"class":327},"pnpm test:e2e",[284,389,331],{"class":290},[284,391,393],{"class":286,"line":392},10,[284,394,302],{"emptyLinePlaceholder":301},[284,396,398,400],{"class":286,"line":397},11,[284,399,308],{"class":290},[284,401,402],{"class":294},"代码风格\n",[284,404,406,408],{"class":286,"line":405},12,[284,407,317],{"class":290},[284,409,410],{"class":320}," 仅使用函数组件\n",[284,412,414,416],{"class":286,"line":413},13,[284,415,317],{"class":290},[284,417,418],{"class":320}," 禁止使用默认导出（default exports）\n",[284,420,422,424],{"class":286,"line":421},14,[284,423,317],{"class":290},[284,425,426],{"class":320}," 样式使用 Tailwind CSS\n",[284,428,430],{"class":286,"line":429},15,[284,431,302],{"emptyLinePlaceholder":301},[284,433,435,437],{"class":286,"line":434},16,[284,436,308],{"class":290},[284,438,439],{"class":294},"架构\n",[284,441,443,445],{"class":286,"line":442},17,[284,444,317],{"class":290},[284,446,447],{"class":320}," Next.js monorepo\n",[284,449,451,453,456,458,461],{"class":286,"line":450},18,[284,452,317],{"class":290},[284,454,455],{"class":320}," 共享逻辑位于 ",[284,457,324],{"class":290},[284,459,460],{"class":327},"\u002Fpackages\u002Fshared",[284,462,331],{"class":290},[205,464,465],{},"对于大型代码库，单一扁平的 README 会导致 token 浪费和上下文混淆。Think in Python 博客（技术博客，非 Python 编程书籍）提出的\"渐进式披露\"（Progressive Disclosure）原则建议采用三级层次结构：",[467,468,469,488],"table",{},[470,471,472],"thead",{},[473,474,475,479,482,485],"tr",{},[476,477,478],"th",{},"层级",[476,480,481],{},"文件位置",[476,483,484],{},"目的",[476,486,487],{},"内容密度",[489,490,491,508,524],"tbody",{},[473,492,493,497,502,505],{},[494,495,496],"td",{},"Tier 1: 项目根",[494,498,499],{},[222,500,501],{},"\u002FCLAUDE.md",[494,503,504],{},"全局上下文——技术栈、核心命令、代码规范",[494,506,507],{},"高密度规则",[473,509,510,513,518,521],{},[494,511,512],{},"Tier 2: 模块\u002F领域",[494,514,515],{},[222,516,517],{},"\u002Fsrc\u002Ffeatures\u002Fbilling\u002FCONTEXT.md",[494,519,520],{},"战略上下文——业务逻辑、数据流、安全要求",[494,522,523],{},"中等密度",[473,525,526,529,534,537],{},[494,527,528],{},"Tier 3: 叶子\u002F组件",[494,530,531],{},[222,532,533],{},"\u002Fsrc\u002Fcomponents\u002FDataGrid\u002FNOTES.md",[494,535,536],{},"战术上下文——坑点、技术债务、TODO",[494,538,539],{},"低密度备注",[541,542,543],"blockquote",{},[205,544,545],{},"上述文件名（CONTEXT.md、NOTES.md）为 Think in Python 博客的建议命名，非 Claude Code 官方强制要求。实际项目中可使用 CLAUDE.md 统一命名。",[200,547,549],{"id":548},"_13-利用-git-历史理解演进","1.3 利用 Git 历史理解演进",[205,551,552,553,556,557,560],{},"代码库不仅是当前的快照，更是决策、权衡和修复的历史记录。Claude Code 可以通过 ",[222,554,555],{},"git"," 和 ",[222,558,559],{},"gh"," CLI 工具深入挖掘这段历史。",[205,562,563],{},[211,564,565],{},"提问示例：",[215,567,570],{"className":568,"code":569,"language":220},[218],"\"查看 ExecutionFactory 的 git 历史，总结它的 API 是如何演进的。\n特别关注：\n1. 最初的 API 设计意图\n2. 重大变更的 PR 编号和原因\n3. 当前 API 中的技术债务\"\n",[222,571,569],{"__ignoreMap":224},[195,573,575],{"id":574},"二模块关系分析依赖图调用链数据流追踪","二、模块关系分析：依赖图、调用链、数据流追踪",[200,577,579],{"id":578},"_21-从-ast-到知识图谱的范式转变","2.1 从 AST 到知识图谱的范式转变",[205,581,582],{},"传统的代码分析工具将代码库视为孤立文件的集合——逐文件解析为抽象语法树（AST），独立分析后结束。但真实的软件是一个相互关联的关系网络，依赖和调用链横跨多个文件、模块甚至语言。",[205,584,585],{},"CodePrism 等新兴工具正在探索\"通用 AST（跨语言的统一抽象语法树表示）+ 图分析\"方法。CodePrism 是一个小众开源项目（rustic-ai\u002Fcodeprism），使用 Rust 编写，旨在将代码结构转换为语言无关的图表示。虽然概念有趣，但尚未成为业界主流方案。其核心思想如下：",[215,587,591],{"className":588,"code":589,"language":590,"meta":224,"style":224},"language-rust shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F 通用 AST 节点类型示例\npub enum UniversalNode {\n    Module { name: String, path: PathBuf, exports: Vec\u003CString> },\n    Class { name: String, methods: Vec\u003CString>, fields: Vec\u003CString> },\n    Function { name: String, parameters: Vec\u003CString>, return_type: Option\u003CString> },\n    Import { source: String, symbols: Vec\u003CString> },\n    Call { target: NodeId, arguments: Vec\u003CNodeId> },\n    DataFlow { from: NodeId, to: NodeId, flow_type: FlowType },\n}\n","rust",[222,592,593,598,603,608,613,618,623,628,633],{"__ignoreMap":224},[284,594,595],{"class":286,"line":287},[284,596,597],{},"\u002F\u002F 通用 AST 节点类型示例\n",[284,599,600],{"class":286,"line":298},[284,601,602],{},"pub enum UniversalNode {\n",[284,604,605],{"class":286,"line":305},[284,606,607],{},"    Module { name: String, path: PathBuf, exports: Vec\u003CString> },\n",[284,609,610],{"class":286,"line":314},[284,611,612],{},"    Class { name: String, methods: Vec\u003CString>, fields: Vec\u003CString> },\n",[284,614,615],{"class":286,"line":334},[284,616,617],{},"    Function { name: String, parameters: Vec\u003CString>, return_type: Option\u003CString> },\n",[284,619,620],{"class":286,"line":349},[284,621,622],{},"    Import { source: String, symbols: Vec\u003CString> },\n",[284,624,625],{"class":286,"line":354},[284,626,627],{},"    Call { target: NodeId, arguments: Vec\u003CNodeId> },\n",[284,629,630],{"class":286,"line":362},[284,631,632],{},"    DataFlow { from: NodeId, to: NodeId, flow_type: FlowType },\n",[284,634,635],{"class":286,"line":377},[284,636,637],{},"}\n",[205,639,640],{},"这种图表示支持跨语言分析，能够回答传统工具无法处理的问题：",[642,643,644,652,655],"ul",{},[645,646,647,648,651],"li",{},"\"找出所有直接或间接调用 ",[222,649,650],{},"authenticate"," 的函数\"",[645,653,654],{},"\"追踪用户输入到数据库查询的数据流\"",[645,656,657,658,661],{},"\"展示所有继承自 ",[222,659,660],{},"BaseModel"," 的类（跨所有语言）\"",[200,663,665],{"id":664},"_22-claude-code-中的依赖分析实践","2.2 Claude Code 中的依赖分析实践",[205,667,668],{},"在 Claude Code 中，可以通过系统化的提问来获取模块关系洞察。",[205,670,671],{},[211,672,673],{},"依赖图分析提问示例：",[215,675,678],{"className":676,"code":677,"language":220},[218],"\"分析 src\u002Ffeatures\u002Fauth\u002F 模块的依赖关系：\n1. 它直接依赖哪些其他模块？\n2. 哪些模块依赖于它？\n3. 是否存在循环依赖？\n4. 画出模块间的依赖方向图\"\n",[222,679,677],{"__ignoreMap":224},[205,681,682],{},[211,683,684],{},"调用链追踪提问示例：",[215,686,689],{"className":687,"code":688,"language":220},[218],"\"追踪一个用户登录请求的完整调用链：\n从 API 路由入口开始，经过中间件、控制器、服务层、数据访问层，直到数据库查询。\n列出每个环节的函数名和文件路径。\"\n",[222,690,688],{"__ignoreMap":224},[205,692,693],{},[211,694,695],{},"数据流追踪提问示例：",[215,697,700],{"className":698,"code":699,"language":220},[218],"\"分析用户注册流程中的数据流：\n1. 请求数据从哪个接口进入系统？\n2. 数据经过哪些验证\u002F转换步骤？\n3. 最终存储到哪些数据表？\n4. 是否有敏感数据（密码等）的加密处理？在哪里进行？\"\n",[222,701,699],{"__ignoreMap":224},[200,703,705],{"id":704},"_23-使用子代理进行并行调查","2.3 使用子代理进行并行调查",[205,707,708],{},"上下文窗口是 Claude Code 中最宝贵的资源。当需要深入调查代码库时，子代理（subagents）可以在独立的上下文中运行，避免污染主对话。",[205,710,711],{},[211,712,713],{},"并行调查示例：",[215,715,718],{"className":716,"code":717,"language":220},[218],"\"使用子代理并行调查以下内容：\n1. 认证系统如何处理 token 刷新\n2. 项目中是否有现有的 OAuth 工具可以复用\n3. 用户权限系统的实现方式\n每个子代理独立探索后，汇总发现。\"\n",[222,719,717],{"__ignoreMap":224},[205,721,722],{},"ProofSource.ai 的作者报告，在其个人项目中并行子代理可将代码库审计时间从 8 分钟缩短至 2 分钟（4 倍加速），Bug 调查从 5 分钟缩短至 1.5 分钟（3.3 倍加速）。此为轶事数据，非严谨基准测试，实际加速比取决于项目类型、任务复杂度和子代理数量。",[195,724,726],{"id":725},"三技术栈自动识别","三、技术栈自动识别",[200,728,730],{"id":729},"_31-基于文件指纹的检测","3.1 基于文件指纹的检测",[205,732,733,734,737],{},"Claude Code 的 ",[222,735,736],{},"\u002Finit"," 命令会自动分析代码库，检测构建系统、测试框架和代码模式。其检测逻辑基于以下文件指纹：",[467,739,740,753],{},[470,741,742],{},[473,743,744,747,750],{},[476,745,746],{},"技术类型",[476,748,749],{},"检测文件\u002F模式",[476,751,752],{},"示例",[489,754,755,773,791,808,826,844,858],{},[473,756,757,760,763],{},[494,758,759],{},"语言",[494,761,762],{},"文件扩展名、shebang",[494,764,765,768,769,772],{},[222,766,767],{},".ts"," → TypeScript, ",[222,770,771],{},".rs"," → Rust",[473,774,775,778,781],{},[494,776,777],{},"包管理器",[494,779,780],{},"锁文件、清单文件",[494,782,783,786,787,790],{},[222,784,785],{},"package-lock.json"," → npm, ",[222,788,789],{},"pnpm-lock.yaml"," → pnpm",[473,792,793,796,799],{},[494,794,795],{},"框架",[494,797,798],{},"配置文件、目录结构",[494,800,801,804,805,807],{},[222,802,803],{},"next.config.js"," + ",[222,806,250],{}," → Next.js",[473,809,810,813,816],{},[494,811,812],{},"构建工具",[494,814,815],{},"配置文件",[494,817,818,821,822,825],{},[222,819,820],{},"vite.config.ts"," → Vite, ",[222,823,824],{},"webpack.config.js"," → Webpack",[473,827,828,831,834],{},[494,829,830],{},"测试框架",[494,832,833],{},"依赖声明、测试文件",[494,835,836,839,840,843],{},[222,837,838],{},"vitest"," in package.json + ",[222,841,842],{},"*.test.ts"," → Vitest",[473,845,846,849,852],{},[494,847,848],{},"ORM",[494,850,851],{},"配置文件、schema 文件",[494,853,854,857],{},[222,855,856],{},"prisma\u002Fschema.prisma"," → Prisma",[473,859,860,863,866],{},[494,861,862],{},"数据库",[494,864,865],{},"迁移文件、连接配置",[494,867,868,804,871,874],{},[222,869,870],{},"migrations\u002F",[222,872,873],{},"docker-compose.yml"," with postgres → PostgreSQL",[200,876,878],{"id":877},"_32-提问获取技术栈全景","3.2 提问获取技术栈全景",[215,880,883],{"className":881,"code":882,"language":220},[218],"\"请识别这个项目的完整技术栈，包括：\n1. 主要编程语言及版本\n2. 前端\u002F后端框架\n3. 数据库和 ORM\n4. 测试框架和工具\n5. 构建和部署工具\n6. 代码质量工具（lint、format 等）\n7. 第三方服务集成（如果有的话）\"\n",[222,884,882],{"__ignoreMap":224},[195,886,888],{"id":887},"四架构模式识别","四、架构模式识别",[200,890,892],{"id":891},"_41-常见架构模式的代码特征","4.1 常见架构模式的代码特征",[205,894,895],{},"通过分析目录结构和导入关系，可以识别出代码库采用的架构模式：",[205,897,898],{},[211,899,900],{},"MVC（Model-View-Controller）：",[215,902,905],{"className":903,"code":904,"language":220},[218],"特征目录：controllers\u002F, models\u002F, views\u002F\n导入方向：controllers → models, controllers → views\n典型框架：Ruby on Rails, Django, Laravel, ASP.NET MVC\n",[222,906,904],{"__ignoreMap":224},[205,908,909],{},[211,910,911],{},"分层架构（Layered Architecture）：",[215,913,916],{"className":914,"code":915,"language":220},[218],"特征目录：api\u002Froutes\u002F, services\u002F, repositories\u002F, models\u002F\n导入方向：routes → services → repositories → models（单向）\n典型框架：Express.js, Spring Boot, NestJS\n",[222,917,915],{"__ignoreMap":224},[205,919,920],{},[211,921,922],{},"六边形\u002F整洁架构（Hexagonal\u002FClean Architecture）：",[215,924,927],{"className":925,"code":926,"language":220},[218],"特征目录：domain\u002F, application\u002F, infrastructure\u002F, adapters\u002F\n导入方向：infrastructure → application → domain（向内依赖）\n核心特征：领域逻辑完全独立于框架和数据库\n",[222,928,926],{"__ignoreMap":224},[205,930,931],{},[211,932,933],{},"微服务架构：",[215,935,938],{"className":936,"code":937,"language":220},[218],"特征目录：services\u002F{user-service,order-service,payment-service}\u002F\n通信方式：HTTP API、消息队列、事件总线\n配置文件：docker-compose.yml, k8s manifests\n",[222,939,937],{"__ignoreMap":224},[205,941,942],{},[211,943,944],{},"Monorepo + 模块：",[215,946,949],{"className":947,"code":948,"language":220},[218],"特征目录：packages\u002F{web,mobile,shared-ui,utils}\u002F\n工具链：Turborepo, Nx, pnpm workspaces\n根配置：turbo.json, pnpm-workspace.yaml\n",[222,950,948],{"__ignoreMap":224},[200,952,954],{"id":953},"_42-claude-架构识别提问","4.2 Claude 架构识别提问",[215,956,959],{"className":957,"code":958,"language":220},[218],"\"分析这个代码库的架构模式：\n1. 它最符合哪种架构模式？（MVC、分层、微服务、DDD 等）\n2. 目录结构反映了什么设计意图？\n3. 依赖关系是否符合该架构模式的预期方向？\n4. 是否存在架构漂移（architecture drift）的迹象？\n5. 如果我要添加一个新功能，应该放在哪个层级\u002F模块？\"\n",[222,960,958],{"__ignoreMap":224},[195,962,964],{"id":963},"五代码质量初步评估","五、代码质量初步评估",[200,966,968],{"id":967},"_51-核心质量指标","5.1 核心质量指标",[467,970,971,987],{},[470,972,973],{},[473,974,975,978,981,984],{},[476,976,977],{},"指标",[476,979,980],{},"定义",[476,982,983],{},"健康阈值",[476,985,986],{},"工具",[489,988,989,1003,1017,1031,1045,1059],{},[473,990,991,994,997,1000],{},[494,992,993],{},"圈复杂度（Cyclomatic Complexity）",[494,995,996],{},"代码中独立路径的数量",[494,998,999],{},"函数 \u003C 10",[494,1001,1002],{},"SonarQube, ESLint",[473,1004,1005,1008,1011,1014],{},[494,1006,1007],{},"认知复杂度（Cognitive Complexity）",[494,1009,1010],{},"理解代码所需的认知负荷",[494,1012,1013],{},"函数 \u003C 15",[494,1015,1016],{},"SonarQube",[473,1018,1019,1022,1025,1028],{},[494,1020,1021],{},"代码覆盖率（Code Coverage）",[494,1023,1024],{},"被测试覆盖的代码比例",[494,1026,1027],{},"> 80%（新代码）",[494,1029,1030],{},"SonarQube Quality Gate 对新增代码的要求",[473,1032,1033,1036,1039,1042],{},[494,1034,1035],{},"技术债务比率（TDR）",[494,1037,1038],{},"(修复工时 \u002F 开发成本) × 100",[494,1040,1041],{},"\u003C 5%（新代码）",[494,1043,1044],{},"SonarQube 对新增代码的要求",[473,1046,1047,1050,1053,1056],{},[494,1048,1049],{},"可维护性指数（MI）",[494,1051,1052],{},"综合复杂度、体积的评分",[494,1054,1055],{},"> 65",[494,1057,1058],{},"Visual Studio（专有指标；SonarQube 使用 A-E 评级）",[473,1060,1061,1064,1067,1070],{},[494,1062,1063],{},"重复代码率",[494,1065,1066],{},"重复代码占总代码比例",[494,1068,1069],{},"\u003C 3%（新代码）",[494,1071,1044],{},[205,1073,1074],{},"Johal AI Hub 报道称，某单一案例（QuantumLeap AI）在集成 SonarQube 和 CodeClimate 后技术债务降低高达 68%。但此为上限值，非平均效果，且缺乏同行评审研究支持。Johal AI Hub 还声称可维护性指数低于 40 的系统 Bug 率高出 3 倍，但未提供原始研究引用。",[200,1076,1078],{"id":1077},"_52-使用-claude-进行质量评估","5.2 使用 Claude 进行质量评估",[215,1080,1083],{"className":1081,"code":1082,"language":220},[218],"\"对 src\u002Fservices\u002F 目录下的代码进行质量评估：\n1. 找出圈复杂度最高的 5 个函数\n2. 识别重复代码或近似的逻辑\n3. 检查错误处理是否完善\n4. 评估类型安全性（TypeScript 项目）\n5. 指出潜在的技术债务区域\n请给出具体的文件名、行号和改进建议。\"\n",[222,1084,1082],{"__ignoreMap":224},[195,1086,1088],{"id":1087},"六大型代码库的分层理解策略","六、大型代码库的分层理解策略",[200,1090,1092],{"id":1091},"_61-洋葱式理解模型","6.1 洋葱式理解模型",[205,1094,1095],{},"面对大型代码库，应采用由内而外的分层理解策略：",[205,1097,1098],{},[211,1099,1100],{},"第一层：骨架层（5 分钟）",[642,1102,1103,1106,1119,1127],{},[645,1104,1105],{},"查看顶层目录结构",[645,1107,1108,1109,236,1112,236,1115,1118],{},"识别入口文件（",[222,1110,1111],{},"main.ts",[222,1113,1114],{},"index.ts",[222,1116,1117],{},"app.ts","）",[645,1120,1121,1122,556,1125],{},"阅读 ",[222,1123,1124],{},"README.md",[222,1126,108],{},[645,1128,1129],{},"查看关键配置文件",[541,1131,1132],{},[205,1133,1134],{},"以上为中小型 Web 项目的参考时间。对于大型复杂系统（如分布式微服务、底层基础设施），各层所需时间可能显著增加。",[205,1136,1137],{},[211,1138,1139],{},"第二层：脉络层（30 分钟）",[642,1141,1142,1145,1148,1151],{},[645,1143,1144],{},"追踪一个完整请求的数据流",[645,1146,1147],{},"识别核心模块及其边界",[645,1149,1150],{},"理解依赖注入\u002F服务定位模式",[645,1152,1153],{},"查看数据库 schema 或 API 定义",[541,1155,1156],{},[205,1157,1134],{},[205,1159,1160],{},[211,1161,1162],{},"第三层：血肉层（数小时）",[642,1164,1165,1168,1171,1174],{},[645,1166,1167],{},"深入关键业务模块的实现",[645,1169,1170],{},"理解状态管理和数据流",[645,1172,1173],{},"阅读测试用例以理解预期行为",[645,1175,1176],{},"查看错误处理和边界情况",[205,1178,1179],{},[211,1180,1181],{},"第四层：细节层（按需）",[642,1183,1184,1187,1190,1193],{},[645,1185,1186],{},"特定功能的实现细节",[645,1188,1189],{},"性能优化点",[645,1191,1192],{},"安全相关的代码路径",[645,1194,1195],{},"第三方集成的实现",[200,1197,1199],{"id":1198},"_62-使用-plan-mode-进行安全探索","6.2 使用 Plan Mode 进行安全探索",[205,1201,1202],{},"Claude Code 的 Plan Mode（计划模式）限制工具使用为只读操作（Read、Grep、Glob），阻止写操作（Edit、Write）和危险 Bash 命令（rm、curl 等）。read-only Bash 命令（ls、cat、grep 等）仍可执行。这是探索大型代码库的安全方式。",[205,1204,1205],{},[211,1206,1207],{},"启动 Plan Mode：",[215,1209,1213],{"className":1210,"code":1211,"language":1212,"meta":224,"style":224},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","claude --permission-mode plan\n","bash",[222,1214,1215],{"__ignoreMap":224},[284,1216,1217,1220,1223],{"class":286,"line":287},[284,1218,1219],{"class":294},"claude",[284,1221,1222],{"class":327}," --permission-mode",[284,1224,1225],{"class":327}," plan\n",[205,1227,1228],{},[211,1229,1230],{},"Plan Mode 中的探索流程：",[215,1232,1235],{"className":1233,"code":1234,"language":220},[218],"用户：\"我需要理解支付模块的架构。先不要修改任何代码。\"\n\nClaude（Plan Mode）：\n1. 搜索 payment 相关文件\n2. 读取核心服务文件\n3. 分析数据流和依赖关系\n4. 提出澄清问题（AskUserQuestion）\n5. 生成结构化分析报告\n\n用户：\"基于以上分析，请制定一个添加退款功能的实施计划。\"\n\nClaude：生成详细的步骤计划，待用户批准后执行。\n",[222,1236,1234],{"__ignoreMap":224},[195,1238,1240],{"id":1239},"七与-claude-对话的最佳实践","七、与 Claude 对话的最佳实践",[200,1242,1244],{"id":1243},"_71-提问的黄金法则","7.1 提问的黄金法则",[205,1246,1247],{},[211,1248,1249],{},"具体优于模糊：",[467,1251,1252,1262],{},[470,1253,1254],{},[473,1255,1256,1259],{},[476,1257,1258],{},"模糊提问",[476,1260,1261],{},"具体提问",[489,1263,1264,1272,1284],{},[473,1265,1266,1269],{},[494,1267,1268],{},"\"给 foo.py 添加测试\"",[494,1270,1271],{},"\"为 foo.py 编写测试，覆盖用户未登录的边界情况，避免使用 mock\"",[473,1273,1274,1277],{},[494,1275,1276],{},"\"让仪表盘更好看\"",[494,1278,1279,1280,1283],{},"\"",[284,1281,1282],{},"粘贴截图"," 实现这个设计。完成后截图对比差异并修复\"",[473,1285,1286,1289],{},[494,1287,1288],{},"\"修复登录 bug\"",[494,1290,1291],{},"\"用户反馈会话超时后登录失败。检查 src\u002Fauth\u002F 中的 token 刷新逻辑，先写复现测试再修复\"",[205,1293,1294],{},[211,1295,1296],{},"提供验证标准：",[215,1298,1301],{"className":1299,"code":1300,"language":220},[218],"\"实现一个验证邮箱地址的函数。验证标准：\n- user@example.com → true\n- invalid → false\n- user@.com → false\n实现后运行测试验证。\"\n",[222,1302,1300],{"__ignoreMap":224},[205,1304,1305],{},[211,1306,1307],{},"引用现有模式：",[215,1309,1312],{"className":1310,"code":1311,"language":220},[218],"\"查看首页上现有组件的实现方式以理解模式。\nHotDogWidget.php 是个好例子。\n按照这个模式实现一个新的日历组件，\n让用户可以选择月份并前后翻页选择年份。\n仅使用代码库中已有的库。\"\n",[222,1313,1311],{"__ignoreMap":224},[200,1315,1317],{"id":1316},"_72-上下文管理策略","7.2 上下文管理策略",[205,1319,1320],{},"上下文窗口是 Claude Code 的核心约束。针对代码库扫描场景，以下策略特别有效：",[205,1322,1323],{},[211,1324,1325,1326,1329],{},"使用 ",[222,1327,1328],{},"\u002Fcompact"," 保留扫描结果：",[215,1331,1334],{"className":1332,"code":1333,"language":220},[218],"\u002Fcompact 保留项目架构分析、依赖关系图和关键文件列表\n",[222,1335,1333],{"__ignoreMap":224},[205,1337,1338],{},[211,1339,1340],{},"使用子代理隔离大工作量：",[215,1342,1345],{"className":1343,"code":1344,"language":220},[218],"\"使用子代理调查认证系统如何处理 token 刷新，\n以及是否有现有的 OAuth 工具可以复用。\"\n",[222,1346,1344],{"__ignoreMap":224},[541,1348,1349],{},[205,1350,1351,1352,236,1355,1358],{},"更多通用上下文管理策略（",[222,1353,1354],{},"\u002Fclear",[222,1356,1357],{},"\u002Fbtw"," 等）参见 3.2 节。",[200,1360,1362],{"id":1361},"_73-避免常见失败模式","7.3 避免常见失败模式",[467,1364,1365,1378],{},[470,1366,1367],{},[473,1368,1369,1372,1375],{},[476,1370,1371],{},"失败模式",[476,1373,1374],{},"症状",[476,1376,1377],{},"修复方案",[489,1379,1380,1393,1406,1417,1428],{},[473,1381,1382,1385,1388],{},[494,1383,1384],{},"厨房水槽会话",[494,1386,1387],{},"在一个会话中处理多个无关任务",[494,1389,1390,1392],{},[222,1391,1354],{}," 分隔任务",[473,1394,1395,1398,1401],{},[494,1396,1397],{},"反复纠正",[494,1399,1400],{},"同一问题纠正两次以上仍未解决",[494,1402,1403,1405],{},[222,1404,1354],{}," 后用更精确的 prompt 重新开始",[473,1407,1408,1411,1414],{},[494,1409,1410],{},"过度指定的 CLAUDE.md",[494,1412,1413],{},"文件太长，Claude 忽略一半规则",[494,1415,1416],{},"无情删减，只保留 Claude 无法从代码推断的内容",[473,1418,1419,1422,1425],{},[494,1420,1421],{},"信任-验证缺口",[494,1423,1424],{},"Claude 产出了看起来对但边缘情况未处理的代码",[494,1426,1427],{},"始终提供验证方式（测试、脚本、截图）",[473,1429,1430,1433,1436],{},[494,1431,1432],{},"无限探索",[494,1434,1435],{},"要求\"调查\"某事但不限定范围",[494,1437,1438],{},"限定调查范围或使用子代理",[195,1440,1442],{"id":1441},"八参考来源","八、参考来源",[1444,1445,1446,1479,1510,1541,1564,1595],"ol",{},[645,1447,1448,1451],{},[211,1449,1450],{},"Anthropic 官方文档",[642,1452,1453,1463,1471],{},[645,1454,1455,1462],{},[1456,1457,1461],"a",{"href":1458,"rel":1459},"https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fbest-practices",[1460],"nofollow","Best Practices for Claude Code"," — Claude Code 最佳实践官方指南",[645,1464,1465,1470],{},[1456,1466,1469],{"href":1467,"rel":1468},"https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fcommon-workflows",[1460],"Common Workflows - Claude Code Docs"," — 日常开发工作流",[645,1472,1473,1478],{},[1456,1474,1477],{"href":1475,"rel":1476},"https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fagent-sdk\u002Fsubagents",[1460],"Subagents in the SDK"," — 子代理使用文档",[645,1480,1481,1484],{},[211,1482,1483],{},"代码库导航与架构分析",[642,1485,1486,1494,1502],{},[645,1487,1488,1493],{},[1456,1489,1492],{"href":1490,"rel":1491},"https:\u002F\u002Fwww.eesel.ai\u002Fblog\u002Fnavigate-codebase-claude-code",[1460],"How to navigate any codebase with Claude Code"," — Eesel.ai 的深度实践指南",[645,1495,1496,1501],{},[1456,1497,1500],{"href":1498,"rel":1499},"https:\u002F\u002Fwww.thinkinpython.com\u002Fpost\u002Fclaude-code-large-codebase-best-practices.html",[1460],"Best Practices for Large Codebases with Claude Code"," — 大型代码库的分层知识库实践",[645,1503,1504,1509],{},[1456,1505,1508],{"href":1506,"rel":1507},"https:\u002F\u002Fdeeprepo.dev\u002Fblog\u002Fcode-architecture-guide",[1460],"Code Architecture: A Practical Guide"," — DeepRepo 的架构识别方法论",[645,1511,1512,1515],{},[211,1513,1514],{},"依赖图与知识图谱",[642,1516,1517,1525,1533],{},[645,1518,1519,1524],{},[1456,1520,1523],{"href":1521,"rel":1522},"https:\u002F\u002Frustic-ai.github.io\u002Fcodeprism\u002Fblog\u002Fgraph-based-code-analysis-engine\u002F",[1460],"Building a Graph-Based Code Analysis Engine"," — CodePrism 的通用 AST 与图分析引擎",[645,1526,1527,1532],{},[1456,1528,1531],{"href":1529,"rel":1530},"https:\u002F\u002Fdevoxsoftware.com\u002Fblog\u002Fusing-ai-for-dependency-mapping-in-large-codebases-a-practical-approach\u002F",[1460],"Using AI for Dependency Mapping in Large Codebases"," — AI 驱动的依赖映射实践",[645,1534,1535,1540],{},[1456,1536,1539],{"href":1537,"rel":1538},"https:\u002F\u002Fwww.virge.io\u002Fen\u002Fblog\u002Fgitnexus-code-knowledge-graph\u002F",[1460],"GitNexus: Codebase as Knowledge Graph"," — 将代码库转换为知识图谱的工具",[645,1542,1543,1546],{},[211,1544,1545],{},"并行子代理",[642,1547,1548,1556],{},[645,1549,1550,1555],{},[1456,1551,1554],{"href":1552,"rel":1553},"https:\u002F\u002Fproofsource.ai\u002F2025\u002F12\u002Fparallel-sub-agents-in-claude-code-multiplying-your-development-speed\u002F",[1460],"Parallel Sub-Agents in Claude Code"," — 并行子代理的性能实测",[645,1557,1558,1563],{},[1456,1559,1562],{"href":1560,"rel":1561},"https:\u002F\u002Ftimdietrich.me\u002Fblog\u002Fclaude-code-parallel-subagents\u002F",[1460],"How to Use Claude Code Sub-Agents for Parallel Work"," — 并行工作实践指南",[645,1565,1566,1569],{},[211,1567,1568],{},"代码质量评估",[642,1570,1571,1579,1587],{},[645,1572,1573,1578],{},[1456,1574,1577],{"href":1575,"rel":1576},"https:\u002F\u002Fwww.qodo.ai\u002Fblog\u002Fcode-analysis-tools\u002F",[1460],"Top 10 Code Analysis Tools For Enterprises"," — 企业级代码分析工具对比",[645,1580,1581,1586],{},[1456,1582,1585],{"href":1583,"rel":1584},"https:\u002F\u002Fjohal.in\u002Fcode-quality-metrics-sonarqube-and-codeclimate-for-technical-debt-reduction-strategies-2026\u002F",[1460],"Code Quality Metrics: SonarQube and CodeClimate"," — 技术债务量化与减少策略",[645,1588,1589,1594],{},[1456,1590,1593],{"href":1591,"rel":1592},"https:\u002F\u002Fdocs.sonarsource.com\u002Fsonarqube-server\u002Fuser-guide\u002Fcode-metrics\u002Fmetrics-definition",[1460],"SonarQube Metric Definitions"," — SonarQube 指标定义官方文档",[645,1596,1597,1600],{},[211,1598,1599],{},"架构模式",[642,1601,1602,1610],{},[645,1603,1604,1609],{},[1456,1605,1608],{"href":1606,"rel":1607},"https:\u002F\u002Fdev.to\u002Fsahilkalra\u002Funderstanding-key-software-architecture-patterns-monolith-microservices-monorepo-and-more-3m91",[1460],"Understanding Key Software Architecture Patterns"," — 软件架构模式概览",[645,1611,1612,1617],{},[1456,1613,1616],{"href":1614,"rel":1615},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.04188",[1460],"Automated Microservice Pattern Instance Detection"," — 微服务模式自动检测学术论文",[1619,1620],"hr",{},[541,1622,1623,1628],{},[205,1624,1625],{},[211,1626,1627],{},"核心要点回顾：",[1444,1629,1630,1639,1645,1651,1657],{},[645,1631,1632,1635,1636,1638],{},[211,1633,1634],{},"上下文是最宝贵的资源"," — 通过 CLAUDE.md 分层管理、子代理隔离、频繁 ",[222,1637,1354],{}," 来最大化利用。",[645,1640,1641,1644],{},[211,1642,1643],{},"先探索、再计划、后编码"," — Plan Mode 是安全探索大型代码库的最佳工具。",[645,1646,1647,1650],{},[211,1648,1649],{},"并行化加速理解"," — 子代理可将多维度调查时间从分钟级压缩到秒级。",[645,1652,1653,1656],{},[211,1654,1655],{},"验证驱动开发"," — 始终给 Claude 提供验证标准（测试、截图、脚本），避免\"看起来对但实际错\"。",[645,1658,1659,1662],{},[211,1660,1661],{},"架构可视化是长期投资"," — 依赖图、调用链、数据流追踪是理解系统的关键，值得投入工具建设。",[1664,1665,1666],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":224,"searchDepth":287,"depth":298,"links":1668},[1669,1674,1679,1683,1687,1691,1695,1700],{"id":197,"depth":298,"text":198,"children":1670},[1671,1672,1673],{"id":202,"depth":305,"text":203},{"id":260,"depth":305,"text":261},{"id":548,"depth":305,"text":549},{"id":574,"depth":298,"text":575,"children":1675},[1676,1677,1678],{"id":578,"depth":305,"text":579},{"id":664,"depth":305,"text":665},{"id":704,"depth":305,"text":705},{"id":725,"depth":298,"text":726,"children":1680},[1681,1682],{"id":729,"depth":305,"text":730},{"id":877,"depth":305,"text":878},{"id":887,"depth":298,"text":888,"children":1684},[1685,1686],{"id":891,"depth":305,"text":892},{"id":953,"depth":305,"text":954},{"id":963,"depth":298,"text":964,"children":1688},[1689,1690],{"id":967,"depth":305,"text":968},{"id":1077,"depth":305,"text":1078},{"id":1087,"depth":298,"text":1088,"children":1692},[1693,1694],{"id":1091,"depth":305,"text":1092},{"id":1198,"depth":305,"text":1199},{"id":1239,"depth":298,"text":1240,"children":1696},[1697,1698,1699],{"id":1243,"depth":305,"text":1244},{"id":1316,"depth":305,"text":1317},{"id":1361,"depth":305,"text":1362},{"id":1441,"depth":298,"text":1442},"md",null,{"date":1704},"2026-04-26",{"title":82,"description":224},"lOvTCUx7uKnqKbxNxyEuqwsck2rpcMAIRRhhOqO2PFA",[1708,1710],{"title":72,"path":73,"stem":74,"description":1709,"children":-1},"体验修改前请求许可的安全机制",{"title":86,"path":87,"stem":88,"description":1711,"children":-1},"Claude Code 的核心价值在于它能够像一位经验丰富的开发者一样，直接在你的代码库中执行编辑操作。不同于传统的 AI 补全工具只提供建议，Claude Code 使用 Edit 和 Write 工具直接修改文件，并通过代理循环（Agentic Loop）自主规划、执行和验证跨文件的复杂变更。本章将深入探讨如何高效利用这些能力进行单文件编辑、多文件协同修改、代码生成以及编辑审查。",1777395306167]