zcbot/skills/coding/SKILL.md

38 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: coding
description: 修改、调试、实现代码与软件项目。当用户要求修 bug、写函数、重构、读懂代码库、跑测试或从零创建 Node.js、TypeScript、Python 及可在网页中预览的前端应用时使用。
---
# Coding
## 资源
- 通用工具就够: read / grep / glob / edit / write / shell / run_python
- 没有专属 scripts 或 templates,因为代码任务的多样性来自代码本身
## 原则
- 多步骤代码任务适合用 `task_progress` 维护进度,推荐阶段:理解需求 → 定位代码 → 实现修改 → 运行验证 → 总结结果。
- **先看后改**: 用 grep/glob 定位,read 读出修改点的上下文,再 edit。盲改会出错。
- **改动最小**: 只动必要行,不顺手重构、不改无关空白
- **edit 唯一匹配**: old_str 必须在文件里出现且仅出现一次,不够唯一就多带上下文
- **验证优先**: 项目有测试就 `shell pytest` / `npm test`;没有就写最小复现脚本验证
- **不臆造 API**: 看到没用过的库,先 read 它的源码或文档,不要凭直觉拼方法名
## 网页软件项目
- 先判断技术栈:已有项目沿用其语言、框架和包管理器;新建 Web 或通用软件项目默认优先 Node.js + TypeScript新建前端默认使用 Vite按交互复杂度选择 React、Vue 或原生 TypeScript。
- 科学计算、数据分析、机器学习、材料研发及 Python 生态占优的任务优先 Python用户指定语言或框架时服从用户不为追求 Node.js 改写既有项目。
- 新建 Node.js 项目默认使用 npm保留 `package.json`、源码、资源、配置和测试,按项目脚本依次安装依赖、测试并构建。
- 按正常项目结构创建源码、样式、资源、配置和测试;不要为了迁就预览把所有内容塞进单个 HTML。
- 先运行项目测试与正式构建,再调用 `publish_web_preview` 发布静态输出目录(常见为 `dist/``build/`)。
- 发布入口必须是构建目录中的 HTML资源留在同一目录树。再次修改后重新构建并发布同一目录即可刷新原预览。
- 当前预览只运行静态前端。需要后端、开发服务器、数据库或服务端渲染时,交付源码与运行说明,并明确说明尚不能作为在线预览运行。
## 输出
- 改完后一两句话说清: 改了什么、为什么、怎么验证
- 不复述 diff —— 用户会自己看
## 反模式
- 一次性 write 整个大文件 (改 3 行就别 write 200 行)
- 没读过文件直接 edit (大概率 old_str 匹配不上)
- 跑测试失败就立刻改测试 (先看是测试错还是代码错)
- 用后台进程临时启动服务并把它描述成可访问的网页预览