我把“AI 编程八荣八耻”做成了一个可安装的 Skill
随着 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() 这个方法。
正确的做法应该是:
-
搜索当前项目中的订单接口;
-
查找已有的请求封装;
-
确认状态字段和参数名称;
-
找到相似页面的实现方式;
-
在现有结构中做最小修改;
-
运行测试、类型检查或构建命令。
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 的特点补充更多工程规则和实际案例。

更多推荐


所有评论(0)