Warp Internal Doc · CS146S Week 5

How Warp uses Warp to build Warp:一份来自 Warp 内部的「编码强制令」

The Coding Mandate — Warp's internal engineering practice
📄 公开 Notion 文档🏢 Warp 工程团队内部规范🐶 Dogfooding 实践

Warp 团队要求每一个编码任务都从「在 Warp 里发一条 prompt」开始——这不是一句口号,而是一套写清楚了升级路径、质量红线和落地技巧的内部规范。它坦率到什么程度?连「实在不行就手写代码,我们毕竟要真的交付软件」都白纸黑字写了进去。这份文档是观察一家 AI 工具公司如何吃自己狗粮(dogfooding)的一手样本。

TL;DR

01
🎯 一段话读懂全文
Warp 的编码强制令(Coding Mandate)= 每个编码任务先在 Warp 里发 prompt;成功就在内部频道分享,10 分钟没进展就报反馈、可换竞品工具试、最后允许手写。理由有三:提示编码在很多任务上真的更快、dogfooding 是改进产品的最好方式、用竞品能建立「产品还差在哪」的直觉。同时立了一条硬红线:你对提交评审的代码负全责,「AI 写的」永远不是借口。落地技巧包括:告诉 agent 怎么造而不只是要什么、拆小任务别 one-shot、动手前先看计划、把重复指令沉淀成 rules、把重复流程沉淀成 prompts、给 agent 配 MCP 上下文、所有问题优先做成 eval。
📜

强制令本体:五步升级流程

02

原文标题就叫 The Coding Mandate:「Warp 的编码强制令:每个编码任务都从 Warp 开始」。它不是「只许用 Warp」,而是一条明确的升级路径:

每个编码任务,从在 Warp 里发一条 prompt 开始

这是不可跳过的第一步。

成功了?把战果分享到 #warped-it 频道

让「用 prompt 干成活」的案例在团队里可见。

10 分钟后觉得是在浪费时间?报反馈

把失败情况发到对应的 #feedback- 频道;附上你的 prompt、会话 id 等,团队可以定位问题、甚至围绕它构建一个 eval;这也是大家互相交流「怎么用 Warp 写代码」技巧的机会。

接着,鼓励你换一个 AI 编码工具再试(如 Cursor、Claude)

如果换了工具运气更好——请汇报什么顺利、什么不顺利。

最后,直接手写代码

原文原话:「我们毕竟要真的交付软件,如果手写仍然是最快的,你就应该手写。」

Warp 里发 prompt 所有任务的起点 ✅ 成功 分享到 #warped-it ⏱ 10 分钟没进展 #feedback- 报反馈 🔁 换竞品工具试 Cursor / Claude,汇报结果 ✍️ 手写代码 最快就该这么干
强制令的升级路径:prompt 起手 → 成功分享 / 10 分钟止损报反馈 → 换竞品再试 → 手写兜底。
🤔

为什么要有强制令:三个理由

03

① 用 prompt 写代码,在很多任务上确实更快

② Dogfooding(吃自己的狗粮)是改进产品的最好方式

③ 用竞品能建立「可能改进什么」的直觉

使用竞争对手的产品,能帮团队直观感受自家产品可能差在哪、以及什么是可能做到的。

🚨

红线:你对提交的代码负全责

04
⚠️ 原则(接近原文语气)
你必须像亲手写的一样理解你提交评审的每一行代码。agent 模式生成的代码,必须达到与手写代码相同的质量标准:结构良好(well-factored)、测试充分(well-tested)、遵守团队关于注释、API、import、测试文件位置等编码约定。「这是 AI 写的」永远不能成为 bug 或劣质代码的借口——AI 是工具,不是软件团队里可以担责的一方。

此外,团队常规的 How We Code 规范在提示编码时依然全部适用(小 PR、feature flag 等等)。

🏗️

别只说要什么,要告诉 agent 怎么造

05

原文的表述:如果你只对 agent 说「我要一个像 X 那样工作的功能」,它产出的代码大概率达不到团队标准。正确姿势是把工程决策交代清楚:

只给目标、放任 agent 自己「摸着结果走」(goal seek),最终会浪费大量时间——产出的代码也许「能跑」,但不可维护、不可测试、不可组合。

❌ 只给结果

「给我做一个像 X 那样的功能。」→ 代码能跑,但结构、测试、可维护性大概率不达标。

✅ 给工程方案

「数据模型这样设计、API 长这样、代码放这里、写这些测试。」→ agent 沿着你的工程决策产出达标代码。

🧩

拆小任务,不要 one-shot 大改动

06
🧠

确保你理解 Warp 在做什么

07
📈

投资学习,把心得共享出来

08
📣

报告问题:第一反应是做成 eval

09

原文作者强调「怎么强调都不过分」:只要有什么不好用,就报到对应的 #feedback- 频道。值得报告的情形包括:

🧪 处理反馈的第一直觉
原文:「在反馈处理侧,我们对这些问题的第一直觉应该是为它们构建 eval。」——把一次性的坏体验固化成可回归的评测用例,这与业界 AI 工程实践中「eval 驱动开发」的思路一致。
🔌

基础设施三件套:MCP / Rules / Prompts

10

① 配好 MCP server,让 agent 随手拿到上下文

原文列出「每个人都应该配上」的服务器:Sentry、Linear、Notion、Slack(原文此处还留了一个开放的「<what else>」占位,意为清单待补充)。并附一句经验:「agent 模式修 panic、从 Linear 快速进入状态的能力,会让你吃惊。」

② 把重复出现的约定沉淀成 rules

凡是你发现自己反复对 agent 交代的事(跑哪个 linter、unwrap/expect 的代码约定、import 规则、测试文件位置等),就花点时间做成 Warp Drive rules

③ 把重复出现的流程沉淀成 prompts

凡是你发现自己在重复执行的任务,就值得做成一条 Warp Drive prompt。作者自己的例子:生成 commit、创建和编辑 PR 描述、解决合并冲突等,都做成了 prompt。

📖

术语表(增补)

11
Coding Mandate
编码强制令:Warp 内部「每个编码任务从 prompt 开始」的强制工作流。
dogfooding
「吃自己的狗粮」:公司内部使用自家产品,以第一视角发现并改进问题。
#warped-it / #feedback-
Warp 内部 Slack 频道:前者晒「用 prompt 干成活」的战果,后者按主题收集失败反馈。
eval
可重复运行的 AI 行为评测用例;Warp 把用户反馈的坏案例优先固化成 eval 来防回归。
one-shot
试图让 agent 一次性完成整个复杂改动;原文视为复杂功能场景下的反模式。
goal seek
只给目标、放任 agent 自行摸索实现路径;原文认为这会产出「能跑但不可维护」的代码。
Warp Drive(WD)
Warp 中承载 rules、prompts 等可复用对象的地方——原文将「WD objects」与 rules、prompts 并列称为 agent 的持久上下文。
feature flag
功能开关,把新功能的发布与代码合入解耦;属于 Warp 常规工程规范的一部分。
panic
程序的运行时崩溃(Rust 术语);原文说 agent 修 panic、从 Linear 进入状态的能力会让你吃惊。

一句话带走

强制令的本质是:把「先试 AI」变成默认,把「人负全责」变成底线,把「每次失败」变成 eval。五步升级路径保证了它不教条(手写代码仍是合法终点),质量红线保证了它不失控(AI 永远不是借口),而「rules / prompts / MCP + 反馈进 eval」的闭环,则把个人经验持续沉淀为团队资产。