[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-claude-code-architecture-governance-practice-en":3,"tags-claude-code-architecture-governance-practice-en":30,"related-lang-claude-code-architecture-governance-practice-en":40,"related-posts-claude-code-architecture-governance-practice-en":44,"series-tools-70857652-9db2-481a-9622-fab4df3f8da7":81},{"id":4,"title":5,"content":6,"summary":7,"source":8,"source_url":9,"author":10,"image_url":11,"keywords":12,"language":18,"translated_content":10,"views":19,"is_premium":20,"created_at":21,"updated_at":21,"cover_image":11,"published_at":22,"rewrite_status":23,"rewrite_error":10,"rewritten_from_id":24,"slug":25,"category":26,"related_article_id":27,"status":28,"google_indexed_at":29,"x_posted_at":10,"tweet_text":10,"title_rewritten_at":10,"title_original":10,"key_takeaways":10,"topic_cluster_id":10,"embedding":10,"is_canonical_seed":20},"70857652-9db2-481a-9622-fab4df3f8da7","Claude Code 的架构、治理与工程实践","\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Fclaude-code\" target=\"_blank\" rel=\"noopener\">Claude Code\u003C\u002Fa> 最近被很多开发者当成“AI 结对编程”的默认选项，但真正把它用顺的人并不多。原因很简单：它不是一个单纯的聊天框，而是一套会读代码、调工具、记上下文、执行动作的工程系统。你要是只把它当问答机器人，它很快就会把上下文弄乱。\u003C\u002Fp>\u003Cp>这篇文章最有价值的地方，是把 \u003Ca href=\"\u002Fnews\u002Fclaude-code-source-leak-hidden-internals-en\">Claude Code\u003C\u002Fa> 拆成了几个工程问题来看：底层怎么运作、上下文为什么会漂、Skills 和 Hooks 怎么设计、Subagents 该放在哪些任务上，以及 \u003Ca href=\"https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fbuild-with-claude\u002Fprompt-caching\" target=\"_blank\" rel=\"noopener\">Prompt Caching\u003C\u002Fa> 会怎样影响成本和响应速度。说白了，这不是“会不会用”的问题，而是“怎么让它长期可控”的问题。\u003C\u002Fp>\u003Ch2>Claude Code 不是聊天工具，而是执行系统\u003C\u002Fh2>\u003Cp>\u003Ca href=\"\u002Fnews\u002Fclaude-code-source-analysis-agentic-loop-en\">Claude Code\u003C\u002Fa> 的使用体验很像一个会自己读仓库、找文件、改代码、跑命令的助手，但它背后更接近一个带工具调用能力的执行框架。它会把你的指令、项目文件、历史上下文和工具结果拼在一起，再决定下一步该做什么。这个过程一旦失控，模型就会开始“记错事”，然后把错误延续到后续操作里。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775113230662-z464.png\" alt=\"Claude Code 的架构、治理与工程实践\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>文章里强调的一个核心点是，\u003Ca href=\"\u002Fnews\u002Fclaude-code-source-code-analysis-510k-lines-en\">Claude Code\u003C\u002Fa> 的能力边界不在模型本身，而在上下文管理。模型能不能持续产出正确结果，取决于它拿到的信息是不是干净、稳定、可追踪。对工程团队来说，这意味着你不能只优化提示词，还要优化信息流。\u003C\u002Fp>\u003Cp>这也是为什么真正好用的 Claude Code 用法，通常都带着强约束：明确项目结构、明确任务边界、明确哪些文件可以改、明确哪些指令可以执行。少一点自由度，往往比多一点“智能”更靠谱。\u003C\u002Fp>\u003Cul>\u003Cli>Claude Code 会读取仓库内容，再结合当前任务决定工具调用顺序。\u003C\u002Fli>\u003Cli>上下文污染通常来自重复信息、过长历史记录、无关文件混入。\u003C\u002Fli>\u003Cli>工程化使用时，任务边界比“更长的提示词”更重要。\u003C\u002Fli>\u003Cli>模型输出质量和上下文治理直接相关，不是单靠模型大小决定。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>上下文治理：别让模型替你做记忆管理\u003C\u002Fh2>\u003Cp>Claude Code 最容易出问题的地方，就是上下文越来越长以后，模型开始把前面的旧信息当成当前事实。文章把这个问题讲得很直接：上下文不是越多越好，而是越清晰越好。你把整个项目历史、所有讨论记录、所有临时想法都塞进去，最后模型只会更难判断什么该信、什么该丢。\u003C\u002Fp>\u003Cp>这里最实用的思路是分层治理。项目级信息放在固定位置，任务级信息只在当前会话里保留，临时结论及时写回文档，不要靠模型“记住”。\u003Ca href=\"https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code\" target=\"_blank\" rel=\"noopener\">Anthropic 的 Claude Code 文档\u003C\u002Fa> 也一直在强调，好的上下文不是堆出来的，而是整理出来的。\u003C\u002Fp>\u003Cblockquote>“Good context is the result of good curation.” — Anthropic, Claude Code documentation\u003C\u002Fblockquote>\u003Cp>这句话很适合工程团队。你要的不是一个什么都知道的助手，而是一个每次都能拿到正确材料的助手。把上下文治理当成仓库治理的一部分，Claude Code 的稳定性会高很多。\u003C\u002Fp>\u003Cp>文章还提到，\u003Ca href=\"https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fbuild-with-claude\u002Fprompt-caching\" target=\"_blank\" rel=\"noopener\">Prompt Caching\u003C\u002Fa> 会让这个问题更值得认真处理。缓存能减少重复输入的成本，但前提是你把稳定内容和变化内容分开。否则缓存只是把混乱放大得更久。\u003C\u002Fp>\u003Ch2>Skills、Hooks、Subagents：别把它们用成装饰品\u003C\u002Fh2>\u003Cp>很多人第一次接触 Claude Code 的 Skills、Hooks、Subagents，会下意识把它们当成“高级功能”。文章的观点很明确：这些东西不是装饰，而是治理结构。用得好，它们能把大任务拆成可控的小块；用不好，它们只会让系统更难预测。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775113251135-vjw8.png\" alt=\"Claude Code 的架构、治理与工程实践\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code\u002Fskills\" target=\"_blank\" rel=\"noopener\">Skills\u003C\u002Fa> 更适合沉淀稳定能力，比如代码风格、测试流程、提交规范、常用操作模板。\u003Ca href=\"https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code\u002Fhooks\" target=\"_blank\" rel=\"noopener\">Hooks\u003C\u002Fa> 更适合处理事件驱动动作，比如文件变更后自动检查、提交前自动验证、任务完成后同步日志。\u003Ca href=\"https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code\u002Fsubagents\" target=\"_blank\" rel=\"noopener\">Subagents\u003C\u002Fa> 则适合做明确分工，比如一个负责检索，一个负责重构，一个负责测试。\u003C\u002Fp>\u003Cp>这三者的区别，不在名字，而在职责边界。Skills 是规则库，Hooks 是触发器，Subagents 是分工单元。你如果把所有逻辑都塞进一个地方，最后就会得到一个难维护的 AI 工作流。\u003C\u002Fp>\u003Cul>\u003Cli>Skills 适合沉淀长期不变的团队规范。\u003C\u002Fli>\u003Cli>Hooks 适合把动作自动化，减少人工检查。\u003C\u002Fli>\u003Cli>Subagents 适合把复杂任务拆开，避免单个上下文过载。\u003C\u002Fli>\u003Cli>三者一起用时，最好先定义输入、输出和失败条件。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Prompt Caching 的真正价值，是把成本变成架构问题\u003C\u002Fh2>\u003Cp>Prompt Caching 经常被说成“省钱功能”，但文章更像是在提醒你，它其实会改变系统设计方式。只要你开始缓存系统提示、项目规则、固定上下文，整个 Claude Code 的调用模型就会从“每次全量发送”变成“稳定部分复用，变化部分单独处理”。这会直接影响响应速度、调用成本和会话稳定性。\u003C\u002Fp>\u003Cp>对团队来说，这种变化很现实。比如一个大型代码库里，项目规则、编码约定、目录说明往往不会频繁变化，这些内容非常适合进入缓存层。变化最大的反而是当前任务、具体文件和最近几轮讨论，它们应该保持短小、明确、可替换。\u003C\u002Fp>\u003Cp>如果你把缓存和上下文治理一起做，Claude Code 的表现会更像一个“有记忆边界的工程助手”，而不是一个每次都从零开始的聊天机器人。这个差别在长会话、复杂重构、跨文件修改时尤其明显。\u003C\u002Fp>\u003Cul>\u003Cli>固定规则适合缓存，临时任务不适合缓存。\u003C\u002Fli>\u003Cli>缓存能降低重复输入开销，也能减少无意义的上下文膨胀。\u003C\u002Fli>\u003Cli>大仓库场景下，缓存设计会直接影响交互延迟。\u003C\u002Fli>\u003Cli>缓存不是万能的，错误的固定内容也会被稳定复用。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>真正有用的 CLAUDE.md，应该像项目操作手册\u003C\u002Fh2>\u003Cp>文章最后回到一个很实在的问题：CLAUDE.md 到底该怎么写。答案不是“写得越多越好”，而是“写得越像操作手册越好”。它应该告诉 Claude Code 这个项目的边界、目录结构、常见命令、测试方式、提交规范、危险操作，以及哪些事情必须先问人。\u003C\u002Fp>\u003Cp>一个好的 CLAUDE.md 不是给人看的笔记，而是给模型执行的说明书。它要短、清楚、稳定，最好能让模型在不反复追问的情况下完成大部分常规任务。换句话说，它应该减少歧义，而不是增加信息量。\u003C\u002Fp>\u003Cp>如果把 Claude Code 真正用到生产环境，CLAUDE.md 往往比花哨的提示词更重要。它决定了模型第一次读仓库时看到什么，也决定了团队能不能把经验沉淀下来，而不是每次都重新教一遍。\u003C\u002Fp>\u003Cp>我更愿意把这篇文章看成一份工程实践说明，而不是一篇功能介绍。Claude Code 的上限不只取决于模型能力，也取决于你有没有把上下文、自动化和分工设计好。接下来真正值得追问的，不是“Claude Code 能做什么”，而是“你的仓库准备好让它稳定工作了吗”。\u003C\u002Fp>","Claude Code 的上下文治理、Skills、Hooks、Subagents 与 Prompt Caching，决定了它能不能真正在工程里跑起来。","zhuanlan.zhihu.com","https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2016305520219268848",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775113230662-z464.png",[13,14,15,16,17],"Claude Code","上下文治理","Skills","Hooks","Prompt Caching","en",2,false,"2026-04-02T05:15:37.331402+00:00","2026-04-02T05:15:37.28+00:00","done","c7f8dcf6-357d-48b8-9afd-97cd96ffc988","claude-code-architecture-governance-practice-en","tools","ded70c08-e4d7-44d5-95e6-485fa98f3f13","published","2026-04-09T09:00:51.921+00:00",[31,33,35,37,38],{"name":32,"slug":32},"hooks",{"name":17,"slug":34},"prompt-caching",{"name":13,"slug":36},"claude-code",{"name":14,"slug":14},{"name":39,"slug":39},"skills",{"id":27,"slug":41,"title":42,"language":43},"claude-code-architecture-governance-practice-zh","Claude Code 的架構、治理與實作","zh",[45,51,57,63,69,75],{"id":46,"slug":47,"title":48,"cover_image":49,"image_url":49,"created_at":50,"category":26},"a6c1d84d-0d9c-4a5a-9ca0-960fbfc1412e","why-gemini-api-pricing-is-cheaper-than-it-looks-en","Why Gemini API pricing is cheaper than it looks","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778869846824-s2r1.png","2026-05-15T18:30:26.595941+00:00",{"id":52,"slug":53,"title":54,"cover_image":55,"image_url":55,"created_at":56,"category":26},"8b02abfa-eb16-4853-8b15-63d302c7b587","why-vidhub-huiyuan-hutong-bushi-quan-shebei-tongyong-en","Why VidHub 会员互通不是“买一次全设备通用”","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778789439875-uceq.png","2026-05-14T20:10:26.046635+00:00",{"id":58,"slug":59,"title":60,"cover_image":61,"image_url":61,"created_at":62,"category":26},"abe54a57-7461-4659-b2a0-99918dfd2a33","why-buns-zig-to-rust-experiment-is-right-en","Why Bun’s Zig-to-Rust experiment is the right move","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778767895201-5745.png","2026-05-14T14:10:29.298057+00:00",{"id":64,"slug":65,"title":66,"cover_image":67,"image_url":67,"created_at":68,"category":26},"f0015918-251b-43d7-95af-032d2139f3f6","why-openai-api-pricing-is-product-strategy-en","Why OpenAI API pricing is a product strategy, not a footnote","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778749841805-uyhg.png","2026-05-14T09:10:27.921211+00:00",{"id":70,"slug":71,"title":72,"cover_image":73,"image_url":73,"created_at":74,"category":26},"7096dab0-6d27-42d9-b951-7545a5dddf33","why-claude-code-prompt-design-beats-ide-copilots-en","Why Claude Code’s prompt design beats IDE copilots","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778742651754-3kxk.png","2026-05-14T07:10:30.953808+00:00",{"id":76,"slug":77,"title":78,"cover_image":79,"image_url":79,"created_at":80,"category":26},"1f1bff1e-0ebc-4fa7-a078-64dc4b552548","why-databricks-model-serving-is-right-default-en","Why Databricks Model Serving is the right default for production infe…","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778692290314-gopj.png","2026-05-13T17:10:32.167576+00:00",[82,87,92,97,102,107,112,117,122,127],{"id":83,"slug":84,"title":85,"created_at":86},"8008f1a9-7a00-4bad-88c9-3eedc9c6b4b1","surepath-ai-mcp-policy-controls-en","SurePath AI's New MCP Policy Controls Enhance AI Security","2026-03-26T01:26:52.222015+00:00",{"id":88,"slug":89,"title":90,"created_at":91},"27e39a8f-b65d-4f7b-a875-859e2b210156","mcp-standard-ai-tools-2026-en","MCP Standard in 2026: Integrating AI Tools","2026-03-26T01:27:43.127519+00:00",{"id":93,"slug":94,"title":95,"created_at":96},"165f9a19-c92d-46ba-b3f0-7125f662921d","rag-2026-transforming-enterprise-ai-en","How RAG in 2026 is Transforming Enterprise AI","2026-03-26T01:28:11.485236+00:00",{"id":98,"slug":99,"title":100,"created_at":101},"6a2a8e6e-b956-49d8-be12-cc47bdc132b2","mastering-ai-prompts-2026-guide-en","Mastering AI Prompts: A 2026 Guide for Developers","2026-03-26T01:29:07.835148+00:00",{"id":103,"slug":104,"title":105,"created_at":106},"d6653030-ee6d-4043-898d-d2de0388545b","evolving-world-prompt-engineering-en","The Evolving World of Prompt Engineering","2026-03-26T01:29:42.061205+00:00",{"id":108,"slug":109,"title":110,"created_at":111},"3ab2c67e-4664-4c67-a013-687a2f605814","garry-tan-open-sources-claude-code-toolkit-en","Garry Tan Open-Sources a Claude Code Toolkit","2026-03-26T08:26:20.245934+00:00",{"id":113,"slug":114,"title":115,"created_at":116},"66a7cbf8-7e76-41d4-9bbf-eaca9761bf69","github-ai-projects-to-watch-in-2026-en","20 GitHub AI Projects to Watch in 2026","2026-03-26T08:28:09.752027+00:00",{"id":118,"slug":119,"title":120,"created_at":121},"231306b3-1594-45b2-af81-bb80e41182f2","claude-code-vs-cursor-2026-en","Claude Code vs Cursor in 2026","2026-03-26T13:27:14.177468+00:00",{"id":123,"slug":124,"title":125,"created_at":126},"9f332fda-eace-448a-a292-2283951eee71","practical-github-guide-learning-ml-2026-en","A Practical GitHub Guide to Learning ML in 2026","2026-03-27T01:16:50.125678+00:00",{"id":128,"slug":129,"title":130,"created_at":131},"1b1f637d-0f4d-42bd-974b-07b53829144d","aiml-2026-student-ai-ml-lab-repo-review-en","AIML-2026 Is a Bare-Bones Student Lab Repo","2026-03-27T01:21:51.661231+00:00"]