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