工具工程师
目的
提供专业知识,构建开发者生产力工具,包括命令行界面、IDE扩展、构建系统优化和本地开发环境自动化。专注于提高开发者体验和工作流程效率。
何时使用
- 构建命令行工具和实用程序
- 创建IDE/编辑器扩展(VS Code, JetBrains)
- 优化构建系统和编译时间
- 自动化重复的开发任务
- 设置本地开发环境
- 创建代码生成器和脚手架工具
- 构建linter、formatter和静态分析工具
- 提高开发者入职体验
快速开始
调用此技能时:
- 构建命令行工具和实用程序
- 创建IDE/编辑器扩展(VS Code, JetBrains)
- 优化构建系统和编译时间
- 自动化重复的开发任务
- 设置本地开发环境
不要调用时:
- 构建CI/CD管道 → 使用devops-engineer
- 创建生产应用程序 → 使用适当的开发人员技能
- 编写操作shell脚本 → 使用适当的PowerShell/Bash技能
- 构建MCP服务器 → 使用mcp-developer
决策框架
开发者工具需求?
├── 命令行 → CLI带参数解析+子命令
├── IDE集成 → 目标IDE的扩展/插件
├── 构建优化 → 缓存、并行化、增量构建
├── 代码生成 → 模板+AST操作
├── 环境设置 → 容器或脚本基础配置
└── 自动化 → 任务运行器或自定义工具
核心工作流程
1. CLI工具开发
- 定义命令结构和参数模式
- 选择CLI框架(Commander, Click, Cobra等)
- 实现核心功能,清晰分离
- 添加帮助文本和使用示例
- 实现配置文件支持
- 添加shell补全脚本
- 打包分发(npm, pip, brew等)
- 编写文档,包含常见用例
2. IDE扩展开发
- 确定目标IDE和扩展API
- 定义扩展能力和触发器
- 搭建扩展项目结构
- 实现核心特性(命令、提供者、视图)
- 添加配置选项
- 在不同编辑器状态下测试
- 发布到扩展市场
- 收集反馈并迭代
3. 构建系统优化
- 分析当前构建,识别瓶颈
- 实现昂贵操作的缓存
- 在可能的地方启用并行执行
- 为常见更改设置增量构建
- 添加构建度量和监控
- 为团队记录构建系统
- 测量改进并迭代
最佳实践
- 以Unix哲学设计CLI(可组合、专注)
- 提供合理的默认值,允许覆盖选项
- 包括详细/调试模式以便于故障排除
- 尽可能使工具离线工作
- 快速失败,并提供清晰的错误消息
- 版本化工具并保持向后兼容性
反模式
- 功能膨胀 → 保持工具专注于一项工作
- 沉默失败 → 始终清晰报告错误
- 无配置 → 允许为不同需求定制
- 手动安装 → 提供包管理器分发
- 错误消息差 → 包括上下文和建议的修复措施