☰
Vibe coding:从AI写代码到人定规则的工程方法论
2026/10/19 11:17:05 网站建设 项目流程

1. “Vibe coding”不是玄学,是开发者工作流的重构现场

当我第一次在 VS Code 里敲下// TODO: add health check endpoint,Copilot 瞬间补全了完整路由、响应结构、测试用例,甚至自动把jest.config.js的覆盖率阈值调高了0.5%——那一刻我确实笑了。但三小时后,我盯着自己刚合并进主干的 PR,发现它悄悄把axios升级到了 v1.7.0,而项目文档里白纸黑字写着“禁止引入任何非 peerDependency 的 HTTP 客户端”。更讽刺的是,这个升级引发的类型冲突,是我手动改了47行any类型注解才压下去的。

这根本不是 Copilot 的 bug,而是我把自己当成了“需求翻译器”,却忘了自己才是系统架构师。所谓“Vibe coding”,绝不是闭眼躺平等 AI 喂代码;它是把过去十年靠肌肉记忆完成的开发动作——读文档、查依赖、写测试、做 CR、更新 README——全部拆解、显性化、再编码成可复用的规则。Wictor Wilen 在那篇被转发超2万次的实践笔记里说得极准:“我停止把 Copilot 当魔法师,开始把它当坐在隔壁工位的初级工程师。”这句话的潜台词是:你得先有工位,才有隔壁;你得先能写 CR 意见,才能教 AI 写 CR 意见。

关键词里的“GitHub Copilot”和“Vibe coding”常被混为一谈,但它们本质是两层东西:Copilot 是工具层,是键盘输入的延伸;Vibe coding 是方法论层,是开发者认知框架的迁移。就像当年从 Sublime Text 切换到 VS Code,真正难的不是记快捷键,而是接受“插件即工作流”的新范式。现在,我们正经历第二次迁移:从“人写代码 → 人审代码”变成“人定义规则 → 人验证结果 → 人承担终局责任”。那个被热词反复刷屏的“AI养料”,真相是——你每一次模糊的 prompt、每一次跳过的测试、每一次没更新的 AGENTS.md,都在喂养一个越来越偏离你真实工程约束的幻觉模型。它不缺算力,缺的是你写在文档里的那句“禁止修改 package.json 的 dependencies 字段”。

我试过两种极端:一种是纯 Copilot 驱动,所有逻辑都靠自然语言描述,结果两周后代码库出现三个互不兼容的日期格式处理函数(ISO、Unix timestamp、Moment.js 格式各一个);另一种是严格遵循 Wictor 提出的 ROM/RAM/HDD 模型,把 AGENTS.md 当宪法、TASKS.md 当待办看板、/implement-task prompt 当每日站会模板,三个月后团队新人上手时间从平均11天缩短到3.2天。差别不在 AI 能力,而在你是否愿意把隐性知识变成显性契约。这不是技术问题,是工程成熟度问题——当你的项目连“如何拒绝一个不合理 PR”都要靠口头约定时,AI 只会把这种混沌放大十倍。

2. AGENTS.md:你的项目宪法,不是 Copilot 使用说明书

很多人把 AGENTS.md 当成 Copilot 的配置文件,这是致命误解。它真正的身份是项目宪法——规定谁有权修改核心逻辑、数据流向如何受控、错误边界在哪里。我在一个电商后台项目里见过最典型的反面案例:AGENTS.md 里只写了“技术栈:React 18 + Node.js 18”,但没提“所有 API 响应必须包含 X-Request-ID 头用于链路追踪”。结果 Copilot 生成的 12 个新接口里,7 个漏掉了这个头,而监控告警系统恰好依赖它做故障定位。运维同事半夜打电话来时,我才发现宪法里缺了这一条。

真正的 AGENTS.md 必须包含四个不可妥协的模块,缺一不可:

2.1 架构铁律(Architecture Commandments)

这不是技术选型列表,而是带惩罚机制的红线。例如:

  • 数据主权:“所有用户 PII 数据(手机号、身份证号)必须经encryptPII()函数处理后存储,该函数位于/shared/crypto.ts,严禁绕过或重写。”
  • 状态边界:“前端状态管理仅允许使用 Zustand,禁止引入 Redux Toolkit 或 Jotai。现有 Redux 代码已标记@deprecated,新功能不得引用。”
  • 部署契约:“Azure Functions 运行时版本锁定为~4,任何host.json修改需同步更新infrastructure/azure/functions-version-lock.md。”

提示:每条铁律后面必须跟验证方式。比如“加密函数”这条,要注明“CI 流水线中lint:pii脚本会扫描所有.ts文件,匹配/(phone|idcard|email)/i正则并检查是否调用encryptPII(),失败则阻断构建”。

2.2 文件地图(File System Cartography)

别写“src/ 目录存放源码”这种废话。要精确到毫米级导航:

  • src/api/clients/:所有 HTTP 客户端实例,按域分组(authClient.ts,paymentClient.ts),禁止在组件内直接fetch()
  • src/shared/types/:全局类型定义,新增类型必须通过yarn typecheck:shared验证
  • docs/architecture/:C4 模型图存放在c4-container-diagram.puml,每次架构变更需同步更新

我曾在一个微前端项目里把apps/目录结构画成树状图,连webpack.config.js里module.rules的加载顺序都标出来。Copilot 生成路由时,它就能准确把新页面注册到shell-app/src/app-config.ts而不是胡乱塞进legacy-app/src/router.ts。

2.3 工作流契约(Workflow SLA)

明确每个环节的交付标准和验收人:

  • PR 描述规范:“必须包含## Context(为什么改)、## Changes(改了什么)、## Verification(如何验证),缺失任一节自动拒绝合并”
  • 测试覆盖要求:“新增业务逻辑必须提供单元测试(Jest)+ E2E 测试(Cypress),覆盖率报告需截图附在 PR 评论区”
  • 回滚协议:“所有数据库迁移脚本必须配对生成down.sql,且在migrations/目录下与up.sql同名”

2.4 模型行为指南(Model Behavior Charter)

这才是 Copilot 真正需要的“说明书”:

  • 禁用模式:“禁止生成eval()、Function()构造函数、setTimeout()动态字符串参数”
  • 安全偏好:“优先选择crypto.subtle.digest()而非md5(),优先选择zod而非joi做数据校验”
  • 性能红线:“API 响应时间 > 200ms 的函数必须添加console.time()日志,且在perf/目录下提交性能分析报告”

我在一个实时音视频项目里,把 WebRTC 的 ICE 候选者收集策略写进 AGENTS.md:“STUN 服务器必须使用stun:stun.l.google.com:19302,TURN 服务器凭据由getTurnCredentials()函数动态获取,禁止硬编码”。结果 Copilot 生成的 17 个信令处理函数,全部符合该策略,而之前靠人工写的 5 个函数里有 3 个用了错误的 STUN 地址。

关键不是写得多,而是写得准。AGENTS.md 的每一行,都应该能经得起这样的拷问:“如果某人完全没看过项目代码,仅凭这份文档能否独立完成一次合规的代码提交?” 如果答案是否定的,那就还没写到位。

3. TASKS.md:把模糊意图碾碎成可执行原子任务的粉碎机

Vibe coding 最大的陷阱,是把“优化登录流程”这种模糊需求直接丢给 AI。这就像让厨师凭“做顿好吃的饭”五个字开火——他可能端出佛跳墙,也可能煮糊一锅粥。TASKS.md 的核心使命,就是把所有模糊需求碾碎成“可验证、可回滚、可计时”的原子任务。我在一个 SaaS 产品重构中,把原本 3 页 PR 描述的“提升仪表盘加载速度”,拆解成 TASKS.md 里的 19 个具体任务,其中第 7 条是:“将DashboardChart组件的useEffect依赖数组从[data, config]改为[data?.length, config.theme],移除对config.filters的依赖,验证 Chrome DevTools Performance 面板中render阶段耗时下降 ≥40%”。

这种拆解不是炫技,而是建立人机协作的信任锚点。当 Copilot 生成代码后,你不需要凭感觉判断“好像快了点”,而是打开 Performance 面板,看数字是否落在 40% 降幅区间。如果没达到,说明要么任务定义错了,要么实现有偏差——问题根源清晰可见。反观那些没拆解的任务,比如“改善用户体验”,你永远无法证明 AI 做得好不好,最后只能沦为“我觉得还行”的主观评价。

TASKS.md 的结构必须强制包含五个字段,缺一不可:

字段示例强制理由
IDTASK-2025-087便于 Git commit 关联(git commit -m "feat: implement TASK-2025-087"),支持git log --grep="TASK-2025-087"快速追溯
TitleRemove redundant re-renders in DashboardChart用动宾短语,禁止名词化(如“DashboardChart 性能优化”)
Acceptance Criteria1.useEffect依赖数组不含config.filters<br>2. Chrome Performance 面板render阶段耗时 ≤120ms<br>3. 所有现有图表功能无 regressions必须可自动化验证,每条对应一个 CI 检查项
Blocked ByTASK-2025-085 (refactor config schema)显式暴露依赖关系,避免并行开发时的冲突
Statusin-progress/review-needed/blocked/done状态变更触发 Slack 通知,形成透明工作流

我曾用这套结构处理一个棘手的支付网关集成。原始需求是“支持 Stripe Connect 分账”,我拆成 23 个 TASK,其中 TASK-2025-112 的 Acceptance Criteria 包含:“1.createConnectAccount()返回account_id存入stripe_accounts表
2.transferFunds()调用stripe.transfers.create()时destination参数必须为account_id
3. 所有transferFunds()调用必须包裹try/catch,捕获StripeInvalidRequestError并记录error_code: 'invalid_destination'”。结果 Copilot 生成的代码,100% 符合这三条,而之前人工开发时,因漏掉第二条导致资金打错账户,损失了 3.2 万美元。

更关键的是 TASKS.md 的“状态驱动”机制。当某个任务卡在blocked状态超过 24 小时,/implement-task prompt 会自动触发提醒:“检测到 TASK-2025-112 长期阻塞,请检查 TASK-2025-085 是否已完成,或更新Blocked By字段”。这比人盯邮件高效十倍。TASKS.md 不是待办清单,它是项目神经系统的突触——每个任务都是一个可传导、可反馈、可放大的信号节点。

4. /implement-task prompt:把开发流程编译成可执行指令集

把“写个登录接口”变成 Copilot 能精准执行的指令,需要的不是更长的 prompt,而是更锋利的语法糖。我设计的/implement-taskprompt 不是自然语言描述,而是一套带编译器特性的 DSL(领域特定语言)。它的核心结构如下:

[ROLE] You are a senior full-stack engineer at Acme Corp, specializing in Node.js/React stacks. You follow strict TDD and zero-downtime deployment practices. [CONTEXT] - Read AGENTS.md for architecture rules and constraints - Current task is TASK-2025-087 from TASKS.md - Project uses TypeScript 5.2, Jest 29, Cypress 13 [INSTRUCTIONS] 1. RESTATE the task and ALL acceptance criteria EXACTLY as written in TASKS.md 2. PROPOSE a minimal implementation plan with: - Files to modify (absolute paths) - Key functions to change - Tests to update 3. IMPLEMENT with these RULES: - No new dependencies without explicit approval in AGENTS.md - All new functions must have JSDoc @param/@returns - Must pass `yarn test:unit` and `yarn test:e2e` 4. VERIFY by listing: - Which tests passed/failed - How each acceptance criterion was satisfied 5. UPDATE TASKS.md status to "review-needed" and add verification evidence

这个 prompt 的威力在于它把开发流程编译成了可验证的机器指令。当 Copilot 接收到指令,它不会自由发挥,而是像编译器一样逐条解析:第一步必须原样复述任务,这就杜绝了理解偏差;第二步强制输出文件路径,避免它在错误目录创建文件;第三步的 RULES 是硬性约束,违反即终止。

我在一个医疗影像系统里用这个 prompt 处理 DICOM 文件解析任务。TASK-2025-156 的 Acceptance Criteria 第四条是:“parseDicomHeader()函数必须返回PatientName字段的标准化格式LastName^FirstName^MiddleName,且对空值返回UNKNOWN^UNKNOWN^UNKNOWN”。Copilot 生成的代码里,PatientName解析逻辑完全符合,但漏掉了空值处理。这时 prompt 的第四步“VERIFY”就起作用了——它自动生成测试用例,运行后发现expect(parseDicomHeader({})).toBe('UNKNOWN^UNKNOWN^UNKNOWN')失败,于是自动回退到第二步重新规划,最终补全了空值分支。

更精妙的是 prompt 对“最小改动”的定义。它要求列出“Files to modify”,这迫使 Copilot 先做影响分析。在重构一个 GraphQL resolver 时,TASK-2025-199 要求“将userResolver的posts字段从 N+1 查询改为 DataLoader 批量查询”。Copilot 没有直接重写整个 resolver,而是精准定位到src/resolvers/user.ts的第 47 行,并生成DataLoader初始化代码插入src/loaders/postLoader.ts。这种粒度控制,远超人类开发者的手动修改精度。

注意:prompt 必须随项目演进持续迭代。当团队引入新的安全扫描工具时,我在 INSTRUCTIONS 里追加:“6. RUNyarn security:scanand report vulnerabilities found”。当接入新的监控平台,就增加:“7. ADD OpenTelemetry tracing to all modified functions”。/implement-task prompt 不是静态文档,它是项目健康度的实时映射。

5. ROM/RAM/HDD 模型:对抗 AI 认知熵增的工程防御体系

所有 Vibe coding 的崩溃,都始于一个简单事实:大语言模型没有持久记忆。它把每次对话当作全新世界,而你的项目却在持续演化。ROM/RAM/HDD 模型的本质,是用工程手段对抗这种认知熵增——把必须长期记住的规则(ROM)、当前上下文(RAM)、永久状态(HDD)严格隔离,避免信息污染。

5.1 ROM(只读存储):刻在石头上的规则

ROM 是项目最坚硬的部分,一旦写入就绝不通过聊天窗口修改。它包含:

  • AGENTS.md:架构宪法(前文详述)
  • Copilot Instructions:VS Code 设置里的全局指令,如“Always useconstinstead oflet”,“Never generateconsole.log()in production code”
  • Custom Prompts:/implement-task、/review-pr、/generate-test等 DSL 指令集

我在一个金融风控项目里,把 ROM 做成 Git 子模块git submodule add https://github.com/acme/rom-templates.git rom/。每次git pull后,CI 流水线自动校验AGENTS.md的 SHA256 哈希值是否匹配rom/中的权威版本。如果有人手动修改了本地 AGENTS.md,流水线会报错:“ROM integrity check failed - please rungit checkout rom/AGENTS.md”。这比任何代码审查都可靠。

5.2 RAM(随机存取存储):当前对话的临时沙盒

RAM 是 Copilot 的工作区,但必须受控。我的实践是:

  • 严格限制上下文窗口:在 VS Code 设置中将 Copilot 的 context window 设为 2048 tokens,强制它聚焦当前文件
  • 文件级沙盒:用@file语法显式指定作用域,如“@file src/utils/dateFormatter.ts —— 重写formatDate()函数,遵循 ISO 8601 标准”
  • 状态快照:每次对话开始前,自动注入git status --porcelain和git diff HEAD的摘要,让 Copilot 知道“当前工作区处于什么状态”

当 RAM 被污染时,症状非常明显:Copilot 开始重复建议已被拒绝的方案,或在旧分支上修改已删除的文件。这时必须启动“RAM 清洗协议”——关闭当前聊天,新建对话,只粘贴三样东西:1) AGENTS.md 的相关章节 2) TASKS.md 中当前任务全文 3) 待修改文件的当前内容。这相当于给 AI 重装操作系统。

5.3 HDD(硬盘存储):项目的真实状态源

HDD 是唯一可信的真相源,Copilot 的所有输出都必须落盘到 HDD。它包含:

  • TASKS.md / COMPLETED-TASKS.md:任务生命周期的完整日志
  • /docs/decisions/:架构决策记录(ADR),每份 ADR 包含status: accepted、date: 2025-03-17、context: why we chose WebSockets over SSE
  • /infrastructure/state/:Terraform 状态文件、Kubernetes manifests 等基础设施代码

最关键的 HDD 实践是“状态同步钩子”。我在项目根目录放了一个sync-hdd.sh脚本:

#!/bin/bash # 自动同步 HDD 状态 git add TASKS.md COMPLETED-TASKS.md docs/decisions/ infrastructure/state/ git commit -m "HDD sync: $(date +%Y-%m-%d_%H:%M)"

每天早上 9 点,GitHub Actions 自动运行此脚本。Copilot 的所有工作成果,只有落盘到 HDD 后才算生效。这解决了 Vibe coding 最大的信任危机:当你说“我让 Copilot 改了 API”,别人看到的不是聊天记录,而是git log --grep="TASK-2025-087"下真实的代码变更。

我曾用这套模型处理一个跨时区团队的紧急发布。东京团队在 22:00 提交了TASK-2025-201(修复支付回调签名验证),Copilot 生成代码后,自动更新 TASKS.md 状态为review-needed,并触发 Slack 通知。旧金山团队凌晨 2:00 上线前,只需运行git pull && grep -A5 "TASK-2025-201" TASKS.md,就能看到完整的验证证据,无需翻找聊天记录。ROM/RAM/HDD 不是理论模型,它是让分布式团队在 AI 时代依然能保持确定性的工程护栏。

6. 模型轮换策略:当 Copilot 卡在局部最优时,换一个大脑重启思考

把 Copilot 当成唯一模型,就像只用一把螺丝刀修所有设备。Wictor 提到的 GPT-Codex 与 Claude 的差异,背后是两种截然不同的推理范式:Codex 擅长在已有约束内做最小化改进(适合日常编码),Claude 擅长跳出框架重构问题(适合架构设计)。我在一个物联网平台项目里,把模型轮换做成标准化工作流:

6.1 三阶段模型调度协议

阶段触发条件推荐模型典型 Prompt
诊断阶段代码出现难以复现的偶发 bug,或性能瓶颈找不到根因Claude Sonnet“作为资深 SRE,请分析以下kubectl top pods输出和strace -p <pid>日志,指出资源争用的根本原因,并给出三套验证方案”
重构阶段需要跨模块调整数据流,或替换核心依赖(如从 Express 迁移到 Fastify)GPT-4 Turbo“基于 AGENTS.md 的架构铁律,设计 Express → Fastify 迁移路线图,包含:1) 兼容层实现方案 2) 逐步切流计划 3) 回滚检查清单”
生成阶段实现明确的原子任务(如新增一个 API endpoint)GitHub Copilot“/implement-task TASK-2025-222”

当 Copilot 在 TASK-2025-222 上连续三次生成不符合 Acceptance Criteria 的代码时,我不会反复修改 prompt,而是启动诊断阶段:把当前文件、错误日志、CI 报告打包发给 Claude,让它扮演“外部审计师”。Claude 的回复往往直指要害:“检测到validateInput()函数未处理null值,这是导致TypeError: Cannot read property 'length' of null的根本原因。建议在 AGENTS.md 的‘安全偏好’章节增加:‘所有输入验证函数必须显式检查 null/undefined’”。

6.2 模型能力指纹库

为避免盲目轮换,我维护了一个model-fingerprints.md,记录每个模型在本项目中的实际表现:

模型优势场景劣势场景典型失败模式应对策略
Copilot补全已有函数、生成测试用例、修复 lint 错误复杂状态管理、跨文件依赖分析生成useState但漏掉useEffect依赖数组启用/review-prprompt 进行二次审查
Claude生成架构文档、设计 API 合约、编写技术方案精确的 TypeScript 类型推导将Record<string, number>错误推导为{ [key: string]: number }要求输出tsc --noEmit --skipLibCheck验证结果
GPT-4 Turbo处理模糊需求、生成用户文档、编写 CLI 工具严格遵循项目约定忽略 AGENTS.md 中的“禁止使用 console.log”条款在 prompt 开头强制声明:“You MUST obey all rules in AGENTS.md”

这个指纹库不是静态文档,而是动态演化的。当某次 Claude 成功解决了 Copilot 无法处理的 WebSocket 连接池泄漏问题后,我在指纹库中新增一条:“Claude 在诊断异步资源泄漏方面表现卓越,建议将strace/lsof输出作为必传输入”。

6.3 模型切换的熔断机制

为防止无意义轮换,我设置了严格的熔断条件:

  • 时间熔断:单个任务在 Copilot 上耗时 > 15 分钟未达成 Acceptance Criteria,自动切换至 Claude
  • 质量熔断:连续 3 次生成代码的yarn test:unit通过率 < 60%,触发模型切换
  • 熵值熔断:Copilot 的输出中,与 AGENTS.md 冲突的条款数 > 2 条,立即终止

在一次支付网关重构中,Copilot 生成的代码连续 5 次违反“所有敏感操作必须记录 audit log”的铁律。触发熵值熔断后,我将问题转给 Claude,并附上 AGENTS.md 的安全章节。Claude 的回复第一句是:“检测到 7 处 audit log 缺失,根本原因是当前 prompt 未将安全日志要求纳入实施步骤。建议在/implement-taskprompt 的 INSTRUCTIONS 中增加第 8 条:‘所有修改数据库或调用外部服务的函数,必须在入口处调用auditLogger.log()’”。这直接推动了我们的 prompt 迭代。

模型轮换不是玄学,而是工程化的认知卸载。当你承认人类大脑不适合同时处理 20 个技术约束时,让不同模型各司其职,才是对复杂性的真正尊重。

7. AI 作为审查员:把代码生成后的被动防御,变成主动的质量免疫系统

Vibe coding 最危险的幻觉,是认为“AI 生成的代码 = 可交付代码”。真相是:Copilot 的输出只是原材料,真正的质量防线在它之后。我把 AI 审查员(AI Reviewer)设计成一个可编程的质量免疫系统,它不修改代码,而是持续扫描、识别风险、生成可执行任务——把防御动作变成开发流程的自然延伸。

7.1 审查触发器:从被动响应到主动免疫

传统代码审查是被动的(PR 提交后才启动),AI 审查员是主动的,它有三类触发器:

  • 定时触发:每天凌晨 3:00,自动扫描src/下所有新提交的.ts文件,运行yarn review:security
  • 事件触发:当package.json的dependencies字段变更时,自动触发yarn review:deps
  • 任务触发:当 TASKS.md 中某任务状态变为review-needed,自动运行yarn review:task

我在一个政府项目里,把审查触发器与合规要求绑定:每当docs/compliance/目录下的GDPR-checklist.md更新,AI 审查员会自动扫描全代码库,检查是否所有fetch()调用都包含credentials: 'include'(GDPR 要求的会话一致性)。这比人工抽查可靠百倍。

7.2 审查规则引擎:用 DSL 编写质量策略

AI 审查员不靠自然语言理解,而是执行预编译的规则。规则存放在/rules/目录,采用 YAML DSL:

# rules/security/no-eval.yaml id: no-eval severity: CRITICAL description: "禁止使用 eval() 或 Function() 构造函数" pattern: "(eval\\(|Function\\()" files: ["**/*.ts", "**/*.js"] remediation: "Use JSON.parse() for data parsing, or WebAssembly for dynamic code"

当规则匹配时,AI 审查员不直接修改代码,而是生成 TASKS.md 条目:

TASK-2025-255 Title: Remove eval() usage in legacy-parser.ts Acceptance Criteria: 1. Replace line 47 `eval(data)` with `JSON.parse(data)` 2. Add unit test verifying JSON.parse error handling 3. Run `yarn test:unit --testPathPattern=legacy-parser` Status: todo

这套机制让质量保障从“人盯代码”变成“规则盯代码”。在一次安全审计中,AI 审查员在 3 秒内扫描出 12 处eval()使用,而人工审计耗时 3 天只找到 4 处。

7.3 审查反馈闭环:把问题变成可追踪的资产

AI 审查员的终极价值,是把发现的问题转化为可追踪、可度量、可归因的资产。它的输出必须包含:

  • 可追溯性:每个 TASK 自动生成source: AI-reviewer-20250317-030022字段,关联到具体扫描时间
  • 可度量性:在docs/metrics/quality-score.md中更新指标:“安全漏洞密度:0.2/1000 LOC(↓15%)”
  • 可归因性:在 TASK 描述中注明“首次出现在 commit abc1234 的feature/login-refactor分支”

我在一个银行核心系统里,把 AI 审查员的输出直接对接 Jira。当它发现 SQL 注入风险时,自动生成 Jira Issue,字段包括:

  • Summary: "[SECURITY] Potential SQL injection in transactionService.ts line 89"
  • Description: "Copilot generated code concatenates user input into query string. See AGENTS.md section 3.2"
  • Labels:security,copilot-generated,high-risk
  • Epic Link:EPIC-2025-SECURITY-AUDIT

这彻底改变了团队的安全文化:不再争论“谁写的有问题”,而是聚焦“如何让规则引擎覆盖这个漏洞模式”。AI 审查员不是替代人类,而是把人类从重复劳动中解放出来,去解决真正需要创造力的问题——比如设计下一代规则引擎。

当我看着 TASKS.md 里自动生成的 237 个安全加固任务,突然明白标题里“成了 AI 的养料”的真相:我们不是在喂养 AI,是在用工程实践喂养自己的专业主义。每一次把模糊需求拆解成原子任务,每一次把隐性知识写成 AGENTS.md,每一次用 ROM/RAM/HDD 模型对抗熵增,都是在把开发者最珍贵的东西——判断力、责任感、系统思维——锻造成更锋利的工具。Vibe coding 的终点,从来不是让 AI 替代我们,而是让我们终于有底气说:“这段代码,我不仅写出来了,我还能向任何人解释它为什么这样写,以及它会在什么条件下失效。” 这才是技术人真正的体面。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询