随着 Codex、Claude Code、Cursor、Cline、GitHub Copilot 等 AI 编程工具越来越普及,很多开发者已经开始让 AI 直接参与真实项目开发。

但在实际使用中,AI Coding Agent 经常会出现一些典型问题:

  • 没有阅读项目代码,就直接开始修改;

  • 根据函数名猜测接口;

  • 编造不存在的 API、文件或 Schema;

  • 需求不清楚时自行补全业务逻辑;

  • 为了修复一个小问题,顺手重构整个模块;

  • 代码生成完成后,没有运行测试就宣布任务完成;

  • 出现无法验证的内容时,依然给出非常确定的结论。

这些问题并不一定是模型不会写代码,而是因为 Coding Agent 缺少一套明确、稳定、可执行的工程协作规范

因此,我将网上很火的AI 编程八荣八耻进一步整理、扩展,制作成了一个可以直接安装和调用的 Coding Agent Skill:

Scientific Coding:科学 Coding 观

GitHub:https://github.com/visionlmlm/Scientific-Coding


一、这是什么项目

scientific-coding 是一个面向 AI 编程 Agent 的工程协作 Skill。

它不是一个普通 Prompt,也不是某个编程框架,而是一套用于约束 AI 编程行为的工程规范。

它希望让 AI Coding Agent 在真实项目中遵循以下基本原则:

先读上下文,再写代码。
先确认事实,再调用接口。
先验证结果,再宣布完成。

简单来说,它的目标不是让 AI 一次生成更多代码,而是让 AI 写得更谨慎、更可靠、更符合真实软件工程流程


二、为什么需要这个 Skill

很多时候,AI 生成的代码看起来很完整,但放到真实项目中却无法运行。

例如,我们让 AI 给订单页面增加一个状态筛选功能,AI 可能会直接写出:

client.orders.filterByStatus(status)

但项目里可能根本不存在 filterByStatus() 这个方法

正确的做法应该是:

  1. 搜索当前项目中的订单接口;

  2. 查找已有的请求封装;

  3. 确认状态字段和参数名称;

  4. 找到相似页面的实现方式;

  5. 在现有结构中做最小修改;

  6. 运行测试、类型检查或构建命令。

Scientific Coding Skill 的作用,就是把这些工程习惯写成 Agent 可以读取和执行的规范。


三、核心理念

这个 Skill 的核心理念可以概括为一句话:

少一点幻想,多一点查询;少一点猜测,多一点确认;少一点生成,多一点验证。

它要求 Agent 在处理编程任务时做到:

1. 先理解,再修改

在修改代码之前,先阅读相关文件,理解:

  • 项目结构;

  • 模块职责;

  • 数据流;

  • 调用链;

  • 已有实现;

  • 项目约定。

避免只看一个文件,就开始大范围修改。

2. 不编造 API

所有接口、参数、返回值、文件和 Schema,都应该来自:

  • 项目源代码;

  • 类型定义;

  • 官方文档;

  • API 文档;

  • 测试用例;

  • 用户确认。

不能因为某个函数名“看起来合理”,就假设它真实存在。

3. 不擅自决定业务规则

当用户说:隐藏不可用商品

Agent 不应该自行决定“不可用”是指:

  • 没有库存;

  • 未发布;

  • 已禁用;

  • 已过期;

  • 区域不可售。

正确做法是先在项目中查找已有定义,仍然无法确认时,再向用户询问。

4. 优先复用已有代码

新增代码前,优先级应该是:

已有代码
↓
已有组件
↓
已有工具
↓
扩展已有模块
↓
新增实现

尽量避免重复封装、重复造轮子和创建功能相同的新接口。

5. 小步修改

只修改完成当前任务所必需的代码。

不要在修复登录按钮时,顺手重写认证模块;也不要为了“代码更高级”,引入不必要的抽象层和依赖。

6. 尊重项目架构

Agent 应该遵循项目已有的:

  • 目录结构;

  • 命名规范;

  • 模块边界;

  • 代码风格;

  • 技术栈;

  • 设计模式。

不能为了方便实现而绕过已有封装或跨层调用。

7. 考虑异常、安全和边界

除了正常流程,还要考虑:

  • 空数据;

  • 异常输入;

  • 网络失败;

  • 权限不足;

  • 资源不存在;

  • 密钥泄露;

  • SQL 注入;

  • 命令注入;

  • 越权访问。

8. 完成后必须验证

代码生成完成,不代表任务完成。

Agent 应尽量运行:

  • 单元测试;

  • 集成测试;

  • 类型检查;

  • Lint;

  • 构建检查;

  • 手动冒烟测试。

无法验证时,也必须明确说明原因和剩余风险。


四、科学 Coding 十六荣十六耻

在原有“AI 编程八荣八耻”的基础上,我将其扩展为了十六条:

不猜接口,先查文档。
不糊执行,先问边界。
不想业务,先做人类确认。
不造轮子,先复用已有。
不跳验证,先写测试。
不破架构,先守规范。
不装理解,坦白未知。
不乱修改,谨慎重构。

不看局部,先懂全局。
不求一步,先做迭代。
不忘安全,先做防护。
不堆复杂,保持简单。
不漏异常,考虑边界。
不改旧物,先懂原因。
不留黑盒,补充文档。
不卷代码,追求质量。

这些规则覆盖了 Coding Agent 在真实项目中最常见的工程风险。


五、项目结构

当前仓库结构如下:

Scientific-Coding/
├── README.md
└── scientific-coding/
    ├── SKILL.md
    ├── README.md
    ├── RULES.md
    ├── CHECKLIST.md
    ├── PROMPTS.md
    ├── agents/
    │   └── openai.yaml
    ├── examples/
    │   ├── correct_workflow.md
    │   └── hallucination_cases.md
    └── templates/
        └── task_report.md

各文件的作用分别是:

  • SKILL.md:Skill 入口文件和主要执行流程;

  • RULES.md:完整的科学 Coding 观规则;

  • CHECKLIST.md:修改前、修改中、修改后的检查清单;

  • PROMPTS.md:可直接复制给 Agent 的提示词;

  • examples/:正确工作流和错误案例;

  • templates/task_report.md:任务完成报告模板;

  • agents/openai.yaml:Skill 的界面和调用元数据。


六、如何安装

项目已经可以被 skills CLI 正确识别。

先查看仓库中的 Skill:

npx skills add visionlmlm/Scientific-Coding --list

正常情况下会看到:

Found 1 skill

scientific-coding

安装到 Claude Code

npx skills add visionlmlm/Scientific-Coding --skill scientific-coding -a claude-code -g -y

安装到 Codex

npx skills add visionlmlm/Scientific-Coding --skill scientific-coding -a codex -g -y

其中:

  • --skill scientific-coding:选择指定 Skill;

  • -a:指定目标 Coding Agent;

  • -g:全局安装;

  • -y:自动确认安装。

查看全局安装结果:

npx skills list -g

七、如何使用

安装完成后,可以在 Claude Code 中输入:

/scientific-coding 请分析当前项目结构,不要修改任何文件。

执行实际开发任务:

/scientific-coding 请修复当前登录接口报错。先搜索现有接口和调用方式,不要编造 API,完成后运行相关测试。

进行 Code Review:

/scientific-coding 请审查当前分支的代码修改,重点检查接口编造、架构破坏、边界条件、安全问题和测试缺失。

进行重构规划:

/scientific-coding 请分析支付模块的重复代码,先给出重构原因、影响范围、风险和验证方案,不要直接修改核心逻辑。

也可以使用自然语言调用:

请按科学 Coding 观处理这个任务:先读上下文,不编造 API,小步修改,并完成验证。

八、它能解决什么问题

这个 Skill 不能让模型参数变大,也不会让模型突然掌握更多编程语言。

它主要解决的是 Agent 的工程行为问题:

  • 降低编造接口的概率;

  • 减少无关代码修改;

  • 避免过度重构;

  • 提高现有代码复用率;

  • 强化测试和验证意识;

  • 提升任务结果的可解释性;

  • 明确区分已确认事实、推测和未知内容;

  • 让不同成员使用 AI 编程工具时遵循相对统一的流程。

因此,它更像一套面向 AI Coding Agent 的工程制度,而不是单纯的提示词模板。


九、适用场景

Scientific Coding 比较适合以下任务:

  • Bug 修复;

  • 小功能开发;

  • 前后端接口联调;

  • Code Review;

  • 项目结构分析;

  • 重构方案设计;

  • 测试补充;

  • 安全审查;

  • 团队 AI 编程规范统一;

  • Codex、Claude Code、Cursor 等 Coding Agent 行为约束。

对于核心模块重构、权限系统、支付系统、数据库迁移等高风险任务,这类行为规范尤其重要。


十、总结

AI Coding Agent 正在从“代码生成工具”逐渐变成“工程协作者”

但一个可靠的工程协作者,不应该只是快速生成代码,还应该具备:

  • 查询事实的习惯;

  • 理解上下文的能力;

  • 尊重架构的意识;

  • 控制修改范围的原则;

  • 主动验证的流程;

  • 坦白未知的态度。

Scientific Coding 希望解决的正是这个问题:

让 AI 不再看起来很聪明地瞎写,而是更像一个靠谱、谨慎、可验证的工程协作者。

项目地址:https://github.com/visionlmlm/Scientific-Coding

欢迎 Star、Fork、提交 Issue,也欢迎根据不同 Coding Agent 的特点补充更多工程规则和实际案例。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐