!封面

Anthropic 在 2025 年 5 月发布了一份给创业者的指南《The Founder's Playbook: Building an AI-Native Startup》,里面有一段话让我反复读了三遍:

"Agentic coding tools now allow every aspiring founder to describe what they want to build in plain language and direct AI to generate, test, debug, and refactor a production-grade codebase at the speed and scale of a full engineering team."

翻译过来:Agentic coding 工具让每个创始人都能用自然语言描述想要构建的东西,并指挥 AI 以工程团队的速度和规模生成、测试、调试和重构生产级代码库。

报告中还有一个更直接的判断:"someone with no engineering background can build production software that brings their idea to life"——没有工程背景的人也能构建生产级软件。

我是律师。不写代码。但过去几个月,我用 Claude Code 的 Agentic Coding 能力,搭建了一套完整的工程化工作体系。这篇文章是我踩过的坑和得出的结论。

一个律师搭出了什么

先说结果。以下是我在 Claude Code 中构建的所有"工程化产物":

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 380">
  <rect width="600" height="380" fill="#fafafa" rx="4"/>

  <!-- 核心层 -->
  <rect x="200" y="16" width="200" height="44" rx="22" fill="#333"/>
  <text x="300" y="44" text-anchor="middle" font-size="15" font-weight="600" fill="#fff" font-family="system-ui, sans-serif">Claude Code(Agentic Coding 环境)</text>

  <!-- 连线:核心→工具层 -->
  <line x1="220" y1="60" x2="120" y2="90" stroke="#999" stroke-width="1"/>
  <line x1="300" y1="60" x2="300" y2="90" stroke="#999" stroke-width="1"/>
  <line x1="380" y1="60" x2="480" y2="90" stroke="#999" stroke-width="1"/>

  <!-- 工具层 -->
  <text x="300" y="88" text-anchor="middle" font-size="11" fill="#888" font-family="system-ui, sans-serif">工具层(MCP + Skills)</text>
  <rect x="30" y="96" width="110" height="32" rx="4" fill="#f0f0f0" stroke="#ddd"/>
  <text x="85" y="117" text-anchor="middle" font-size="11" fill="#555" font-family="system-ui, sans-serif">yuandian</text>
  <rect x="155" y="96" width="90" height="32" rx="4" fill="#f0f0f0" stroke="#ddd"/>
  <text x="200" y="117" text-anchor="middle" font-size="11" fill="#555" font-family="system-ui, sans-serif">filesystem</text>
  <rect x="260" y="96" width="90" height="32" rx="4" fill="#f0f0f0" stroke="#ddd"/>
  <text x="305" y="117" text-anchor="middle" font-size="11" fill="#555" font-family="system-ui, sans-serif">web-scout</text>
  <rect x="365" y="96" width="90" height="32" rx="4" fill="#f0f0f0" stroke="#ddd"/>
  <text x="410" y="117" text-anchor="middle" font-size="11" fill="#555" font-family="system-ui, sans-serif">puppeteer</text>
  <rect x="470" y="96" width="90" height="32" rx="4" fill="#f0f0f0" stroke="#ddd"/>
  <text x="515" y="117" text-anchor="middle" font-size="11" fill="#555" font-family="system-ui, sans-serif">lark(飞书)</text>

  <!-- 连线:工具层→产出层 -->
  <line x1="85" y1="128" x2="65" y2="170" stroke="#bbb" stroke-width="1" stroke-dasharray="3,3"/>
  <line x1="200" y1="128" x2="190" y2="170" stroke="#bbb" stroke-width="1" stroke-dasharray="3,3"/>
  <line x1="305" y1="128" x2="310" y2="170" stroke="#bbb" stroke-width="1" stroke-dasharray="3,3"/>
  <line x1="410" y1="128" x2="430" y2="170" stroke="#bbb" stroke-width="1" stroke-dasharray="3,3"/>
  <line x1="515" y1="128" x2="540" y2="170" stroke="#bbb" stroke-width="1" stroke-dasharray="3,3"/>

  <!-- 产出层 -->
  <text x="300" y="168" text-anchor="middle" font-size="11" fill="#888" font-family="system-ui, sans-serif">产出层</text>
  <rect x="20" y="176" width="100" height="36" rx="4" fill="#fff" stroke="#333"/>
  <text x="70" y="192" text-anchor="middle" font-size="10" fill="#333" font-family="system-ui, sans-serif">微信公众号</text>
  <text x="70" y="205" text-anchor="middle" font-size="10" fill="#333" font-family="system-ui, sans-serif">发布管线</text>
  <rect x="140" y="176" width="100" height="36" rx="4" fill="#fff" stroke="#333"/>
  <text x="190" y="192" text-anchor="middle" font-size="10" fill="#333" font-family="system-ui, sans-serif">合同审核</text>
  <text x="190" y="205" text-anchor="middle" font-size="10" fill="#333" font-family="system-ui, sans-serif">docx 处理链</text>
  <rect x="260" y="176" width="100" height="36" rx="4" fill="#fff" stroke="#333"/>
  <text x="310" y="192" text-anchor="middle" font-size="10" fill="#333" font-family="system-ui, sans-serif">知识库</text>
  <text x="310" y="205" text-anchor="middle" font-size="10" fill="#333" font-family="system-ui, sans-serif">全文检索系统</text>
  <rect x="380" y="176" width="100" height="36" rx="4" fill="#fff" stroke="#333"/>
  <text x="430" y="192" text-anchor="middle" font-size="10" fill="#333" font-family="system-ui, sans-serif">飞书</text>
  <text x="430" y="205" text-anchor="middle" font-size="10" fill="#333" font-family="system-ui, sans-serif">集成工具链</text>
  <rect x="500" y="176" width="80" height="36" rx="4" fill="#fff" stroke="#333"/>
  <text x="540" y="192" text-anchor="middle" font-size="10" fill="#333" font-family="system-ui, sans-serif">Rules</text>
  <text x="540" y="205" text-anchor="middle" font-size="10" fill="#333" font-family="system-ui, sans-serif">规则体系</text>

  <!-- 底部数字 -->
  <line x1="30" y1="240" x2="570" y2="240" stroke="#e0e0e0" stroke-width="1"/>
  <text x="65" y="268" text-anchor="middle" font-size="28" font-weight="700" fill="#333" font-family="system-ui, sans-serif">5</text>
  <text x="65" y="286" text-anchor="middle" font-size="10" fill="#888" font-family="system-ui, sans-serif">个 Python 脚本</text>
  <text x="185" y="268" text-anchor="middle" font-size="28" font-weight="700" fill="#333" font-family="system-ui, sans-serif">9</text>
  <text x="185" y="286" text-anchor="middle" font-size="10" fill="#888" font-family="system-ui, sans-serif">套排版主题</text>
  <text x="310" y="268" text-anchor="middle" font-size="28" font-weight="700" fill="#333" font-family="system-ui, sans-serif">10+</text>
  <text x="310" y="286" text-anchor="middle" font-size="10" fill="#888" font-family="system-ui, sans-serif">个 Rules 文件</text>
  <text x="430" y="268" text-anchor="middle" font-size="28" font-weight="700" fill="#333" font-family="system-ui, sans-serif">90+</text>
  <text x="430" y="286" text-anchor="middle" font-size="10" fill="#888" font-family="system-ui, sans-serif">个 Skills</text>
  <text x="540" y="268" text-anchor="middle" font-size="28" font-weight="700" fill="#333" font-family="system-ui, sans-serif">5</text>
  <text x="540" y="286" text-anchor="middle" font-size="10" fill="#888" font-family="system-ui, sans-serif">个 MCP 集成</text>

  <!-- 底部说明 -->
  <text x="300" y="330" text-anchor="middle" font-size="11" fill="#aaa" font-family="system-ui, sans-serif">全部由一个不会写代码的律师,通过自然语言指挥 AI 构建</text>
</svg>

这些不是 demo,不是玩具项目。它们每天在用。

五个案例,逐一拆解

案例一:微信公众号发布管线

需求很简单:写完 Markdown 文章,一条命令推到公众号草稿箱。

但"推到草稿箱"拆开来看,包含:Markdown 转 HTML(微信编辑器不认标准 Markdown)、图片上传到微信 CDN(外链图片会被过滤)、排版主题切换(不同文章风格不同)、封面图生成、草稿箱创建、完成后在 Finder 里打个标记。

我用自然语言把这些需求逐步描述给 Claude Code。它构建了五个 Python 脚本:wechat_publish.py(一键发布入口,串联所有步骤)、wechat_html.py(Markdown 转微信公众号 HTML,内置 9 套排版主题)、wechat_api.py(微信 API 客户端,处理 token 管理和图片上传)、wechat_images.py(图片下载上传加 MD5 去重)、wechat_cover.py(调用 Codex CLI + GPT Image 2 生成封面概念海报)。

最终效果:

python .claude/scripts/wechat_publish.py publish article.md --gen-cover --theme 红黑极简

一条命令,从 Markdown 到草稿箱。本文就是这么发布的。

案例二:合同审核 docx 处理链

合同审核是我的核心业务。以前用 python-docx 读取合同,人工逐条审查。现在 Claude Code 通过 docx skill 的 Redlining workflow(红线批注工作流),能自动读取合同 docx、做结构化分析、生成审查意见、生成带批注的修订版合同。

这里有一个技术细节值得展开,因为我在这个上面栽了整整一周。

案例三:法律知识库全文检索

我的法律知识库有数千份文件,格式混杂(md/pdf/docx)。Claude Code 配置了 rga(ripgrep-all)工具后,能在几秒内跨格式全文检索。

比如我审核一份施工合同时,想查"建设工程施工合同无效后的价款结算"相关的司法观点和地方口径,一条搜索指令下去,相关的司法解释、最高法判例、浙江高院指导意见全部出来了。以前这个动作要翻半天文件夹。

案例四:MCP 集成

MCP(Model Context Protocol,模型上下文协议)是 AI Agent 调用外部工具的标准化接口。我给 Claude Code 接了 yuandian(法律法规和案例检索)、filesystem(文件系统操作,只读,后面会说原因)、web-scout(网络搜索)、puppeteer(浏览器自动化)、context7(技术文档实时检索)。AI 直接调用,不需要我人工中转。

案例五:飞书集成

通过 lark 系列技能,Claude Code 能操作飞书文档读写、日历管理、多维表格、即时通讯、视频会议记录。案件管理、日程安排、团队协作都串进了 AI 工作流。

踩坑记录

这是本文最重要的部分。成功经验哪里都有,失败经历才值钱。

坑一:"直接说需求"和"工程化地说需求"差别巨大

最开始我用 Claude Code 的方式很原始——每次打开 session,就说"帮我写一个发布文章的脚本"。AI 确实写了,能用。但下一个 session 打开,我又得从头解释一遍需求。文件放哪里、叫什么名字、排版什么风格、图片怎么处理——每次重复。

后来我学会了写 CLAUDE.md。这个文件相当于给 AI 的项目说明书。我把发布流程、文件结构、命名规则、风格要求全写进去。AI 每次 session 启动时自动读取,不用重复解释。

再后来,我发现不同类型的任务需要不同的规则。合同审核和文章撰写的逻辑完全不同。于是我又建了 .claude/rules/ 目录,按场景拆分规则文件——合同审核规则、法律研究规则、文书编辑纪律、工具使用规范……现在有 10 个以上的规则文件,覆盖了法律工作的各个维度。

教训:Agentic Coding 的效率,取决于你能不能把需求"工程化"地表达。同一个需求,随口说和写成文档,产出质量天差地别。这不要求你会写代码,但要求你有把模糊想法拆解成明确步骤的能力——这恰恰是律师擅长的事。

坑二:docx 中文字符拆分——被坑了一整周

合同 docx 用 python-docx 读取时,中文经常被拆成单个字符的 run。什么是 run?在 docx 的 XML 结构里,同一段文字可能被分成多个片段,每个片段(run)有自己的格式属性。Word 这样做是为了支持局部加粗、变色等格式。

问题在于,Word 的分段逻辑对中文不太友好。"甲方"两个字可能变成"甲"(加粗)和"方"(不加粗)两个 run,甚至一个汉字被拆成多个 Unicode 片段。这导致 AI 在做文本定位和替换时,搜索"甲方"搜不到,因为它实际上被存成了两个独立的片段。

这个 bug 我跟 Claude Code 来回折腾了一周。起初我只说"输出不对",AI 改了半天也没改到点子上。后来我把问题描述改成了:"第3段第2行的'甲方'被分成了两个不同格式的 run 片段,搜索定位不到。"

教训:用自然语言描述问题时,越具体越好。"输出不对"是无效信息。"第3段第2行的特定文字被分成了两个不同格式的片段"才是有效信息。Agentic Coding 不是念咒——你描述问题的精度,决定了 AI 解决问题的效率。

坑三:MCP 工具的安全边界

最初我给 filesystem MCP(文件系统操作工具)配置了写权限。某次 session 中,AI 在处理合同时差点覆盖了原始合同文件。吓得我出了一身冷汗——原始证据材料被覆盖,在法律业务里是不可接受的事故。

之后我严格限制 filesystem MCP 只读。所有写操作只用本地 Write 工具,而且写之前 Claude Code 会自动确认路径。

教训:给 AI 工具权限时,默认最小权限。确实需要再加。这跟法律里的"最小必要原则"一样——不是不信任,是风险控制。

坑四:脚本维护的"非技术人员之痛"

脚本出 bug 了,我不会 debug。

解决方式很原始:把完整的错误信息贴给 Claude Code,让它自己修。偶尔修不好,就让它重写整个函数。

这个过程里我得出一个认知:我不需要理解代码,但我得理解系统架构。说白了就是搞清楚三件事——每个脚本做什么(输入什么、输出什么)、脚本之间怎么串联(上游输出是下游输入)、数据怎么流(文件从哪来、到哪去、中间经过什么处理)。

这三件事用自然语言就能描述清楚,不需要懂编程。但你必须花时间把这个架构想清楚。Anthropic 那份报告里说的——从"我有一个想法"到"我有一个产品"的时间线被压缩了——前提是你得能把想法拆解成可执行的步骤。

这套东西的局限

诚实说几个不太舒服的点。

维护成本不低。脚本和规则需要持续更新。Claude Code 升级、MCP 接口变化、业务流程调整,都会导致东西需要修。我修不了代码,只能找 AI 修。偶尔 AI 也修不好,就得花时间重写。

学习曲线不在代码层面,而在工程化思维层面。不写代码,但需要理解"分层""解耦""输入输出"这些概念。如果你的工作本身就是结构化的(比如法律文书天然讲究层次),转过来难度不大。但工作方式偏直觉和经验驱动的人,上手会有一段不短的适应期。

也不适合所有人。如果你的工作内容稳定、重复性流程不多,投入产出比不高。这套东西有价值的前提是:你有重复执行的流程,而且这些流程的步骤可以被明确描述。

还有一个问题是绑定特定工具。这套体系建立在 Claude Code 之上,规则文件、Skills 机制、MCP 集成方式都是 Claude Code 的约定。换工具的话,迁移成本不低。

回到 Anthropic 的判断

Anthropic 在那份报告里说:"When the founding pool expands beyond people with engineering backgrounds, you get startups built by people with radically different lived experiences, solving real problems that the traditional tech-founder pipeline never prioritized."

当创始人群扩展到工程背景之外,你会得到由完全不同人生经历的人创建的公司,解决传统技术创始人从未关注过的真实问题。

这段话对律师同样成立。法律行业的真实痛点——合同审查的重复劳动、法律检索的低效、文书排版的时间消耗——这些问题在技术圈排不上优先级。因为做工具的人不审合同,不写法律意见书,不在凌晨两点对着一份 200 页的施工合同逐条标注风险。

Agentic Coding 让你可以自己搭,不用等某个 SaaS 公司做出"法律 AI 产品"。前提是:你得知道自己的问题是什么,而且能把问题拆解成明确的步骤。


作者简介: 陈石律师,浙江海泰律师事务所副主任、高级合伙人、房地产与建设工程部主任,宁波市律师协会副秘书长、第七届宁波仲裁委员会仲裁员,聚焦建筑房地产、投融资、并购重组及商事争议解决。曾获多家法律媒体与专业机构认可,荣登 LegalOne 2025 中国区建工及房地产实务先锋 45 强、律新社 2025 年度管理合伙人 20 佳(华东),入选《商法》The A-List 法律精英,获评 ALB China 区域市场十五佳长三角地区律师新星,并获律新社 2024 年度并购领域品牌之星。长期为万科、华润置地、信达地产、保利置业、招商蛇口、中海地产等企业提供法律服务,承办"首宗百亿地王""长春第一高楼""台州第一高楼"等代表性项目,累计服务项目投资额超千亿。近年来持续推动 AI 与法律实务融合,强调以结构化方法打通技术逻辑、法律判断与商业场景;著有《赋能法律人:AI 底层思维与应用范式》,并在多地开展相关主题讲座与分享。