38 lines
2.7 KiB
Markdown
38 lines
2.7 KiB
Markdown
---
|
||
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 匹配不上)
|
||
- 跑测试失败就立刻改测试 (先看是测试错还是代码错)
|
||
- 用后台进程临时启动服务并把它描述成可访问的网页预览
|