wittyhub-cli开发指南:贡献代码,扩展功能,成为开源社区一员
wittyhub-cli开发指南贡献代码扩展功能成为开源社区一员【免费下载链接】wittyhub-cliCommand-line interface for searching, installing, and managing Skills Agents from the WittyHub repository.项目地址: https://gitcode.com/openeuler/wittyhub-cli前往项目官网免费下载https://ar.openeuler.org/ar/wittyhub-cli是开源智能体技能生态系统的命令行工具它让开发者能够轻松搜索、安装和管理AI编码助手的技能扩展。作为openEuler社区的重要项目wittyhub-cli支持超过70种不同的AI编码助手包括OpenCode、Claude Code、Cursor等为开发者提供了统一的技能管理体验。为什么参与wittyhub-cli开发参与wittyhub-cli开发不仅能提升你的TypeScript编程技能还能深入了解现代CLI工具的开发模式和开源协作流程。这个项目具有以下独特优势实际应用价值你的贡献将直接影响成千上万开发者的AI助手使用体验学习机会接触Git操作、技能解析、多平台兼容性处理等核心技术社区认可成为openEuler社区的一员获得宝贵的开源贡献经验职业发展展示你在命令行工具开发和AI集成方面的专业能力项目架构概览 wittyhub-cli采用模块化设计主要源代码位于src/目录下src/ ├── cli.ts # 主入口点命令路由初始化/检查/更新逻辑 ├── add.ts # 核心添加命令实现 ├── agents.ts # 智能体定义和检测 ├── installer.ts # 技能安装逻辑符号链接/复制 ├── skills.ts # 技能发现和解析 ├── skill-lock.ts # 全局锁文件管理 ├── local-lock.ts # 本地锁文件管理 ├── sync.ts # 同步命令 - 从node_modules爬取技能 ├── source-parser.ts # Git URL、GitHub简写、本地路径解析 ├── git.ts # Git克隆操作 ├── telemetry.ts # 匿名使用情况跟踪 ├── types.ts # TypeScript类型定义 └── providers/ # 远程技能提供商GitHub、HuggingFace等测试文件位于tests/目录涵盖了从路径处理到技能匹配的各个方面。开发环境搭建 ️1. 克隆仓库并安装依赖git clone https://gitcode.com/openeuler/wittyhub-cli cd wittyhub-cli pnpm install2. 构建项目pnpm build3. 本地测试# 开发模式运行 pnpm dev add vercel-labs/agent-skills --list # 运行所有测试 pnpm test # 运行特定测试文件 pnpm test tests/skill-matching.test.ts pnpm test tests/source-parser.test.ts # 类型检查 pnpm type-check4. 代码格式化项目使用Prettier进行代码格式化提交前务必运行pnpm format # 或检查格式 pnpm format:check贡献流程详解 第一步理解项目结构在开始贡献前花时间了解项目架构命令处理流程从cli.ts开始理解命令如何路由到各个模块技能发现机制查看src/skills.ts了解如何从不同位置发现SKILL.md文件智能体兼容性研究src/agents.ts中超过70种智能体的路径配置锁文件系统了解src/skill-lock.ts和src/local-lock.ts如何管理技能版本第二步选择贡献方向根据你的兴趣和技能水平可以选择以下贡献方向初学者友好任务文档改进完善README.md或添加使用示例测试用例为现有功能添加测试错误处理改进错误消息和用户提示代码注释为复杂逻辑添加解释性注释中级任务新功能开发实现新的CLI命令或选项智能体支持添加对新AI编码助手的支持提供商扩展集成新的技能源如GitLab、Bitbucket性能优化改进技能发现或安装速度高级任务架构改进重构核心模块以提高可维护性安全增强改进路径遍历防护和输入验证跨平台兼容解决Windows/macOS/Linux的兼容性问题CI/CD优化改进测试和发布流程第三步创建开发分支git checkout -b feature/your-feature-name # 或 git checkout -b fix/issue-description第四步实现功能并测试编写代码遵循项目编码规范添加测试确保新功能有充分的测试覆盖运行测试验证所有测试通过格式检查确保代码符合Prettier规范第五步提交更改git add . git commit -m feat: 添加对新智能体的支持 # 或 git commit -m fix: 修复技能路径解析问题使用语义化提交消息feat:新功能fix:错误修复docs:文档更新test:测试相关refactor:代码重构chore:构建过程或辅助工具的变动核心模块开发指南 添加新智能体支持要添加对新AI编码助手的支持需要修改src/agents.ts文件// 在agents数组中添加新智能体定义 { name: your-new-agent, displayName: Your New Agent, projectPaths: [.your-agent/skills/], globalPaths: [~/.your-agent/skills/], detection: [your-agent], // 用于检测是否安装的二进制名称 }然后运行验证脚本pnpm run -C scripts validate-agents.ts pnpm run -C scripts sync-agents.ts实现新CLI命令在src/cli.ts中注册新命令创建对应的命令实现文件如src/your-command.ts添加类型定义到src/types.ts编写测试文件src/your-command.test.ts技能发现机制扩展wittyhub-cli支持多种技能发现方式标准目录结构skills/目录插件清单.claude-plugin/marketplace.json递归搜索要扩展发现机制可以修改src/skills.ts中的discoverSkills函数。测试策略 项目使用Vitest进行测试测试文件位于tests/目录单元测试// 示例测试技能名称过滤 describe(filterSkills, () { it(should match multi-word skill names, () { const skills [{ name: react-best-practices }]; const result filterSkills(skills, react best); expect(result).toHaveLength(1); }); });集成测试// 示例测试完整的添加命令流程 describe(add command, () { it(should install skill from GitHub, async () { const result await runCommand([add, vercel-labs/agent-skills]); expect(result.exitCode).toBe(0); }); });跨平台测试项目包含专门的跨平台路径测试确保在Windows、macOS和Linux上都能正常工作。调试技巧 1. 使用开发模式pnpm dev command [options]2. 启用详细日志DEBUGwittyhub:* pnpm dev add vercel-labs/agent-skills3. 检查技能发现# 查看技能发现过程 pnpm dev add ./local-skills --list --verbose4. 测试特定场景# 测试符号链接安装 pnpm dev add vercel-labs/agent-skills --copy # 测试全局安装 pnpm dev add vercel-labs/agent-skills -g # 测试特定技能安装 pnpm dev add vercel-labs/agent-skills --skill react-best-practices代码审查要点 提交Pull Request前请确保1. 代码质量✅ 通过TypeScript类型检查✅ 通过所有测试✅ 代码格式符合Prettier规范✅ 没有控制台日志残留生产代码2. 功能完整性✅ 新功能有对应的测试✅ 错误处理完善✅ 用户提示清晰友好✅ 向后兼容性考虑3. 文档更新✅ README.md相应部分已更新✅ 新增命令有使用示例✅ 配置变更有说明4. 性能考虑✅ 没有不必要的文件操作✅ 网络请求有适当超时✅ 内存使用合理常见问题与解决方案 Q: 如何测试新的智能体路径A: 创建测试目录结构使用--copy选项避免符号链接问题mkdir -p test-agent/skills echo 测试技能 test-agent/skills/test-skill/SKILL.md pnpm dev add ./test-agent --copyQ: 技能安装失败怎么办A: 检查以下方面权限问题确保对目标目录有写入权限路径问题检查智能体路径配置是否正确网络问题GitHub API可能有限制尝试设置GITHUB_TOKENQ: 如何添加新的技能源提供商A: 在src/providers/目录下创建新的提供商文件实现fetchSkills接口然后在src/providers/index.ts中注册。Q: 测试覆盖率不够怎么办A: 使用--coverage标志运行测试查看覆盖率报告pnpm test --coverage社区协作指南 1. 问题报告使用清晰的标题描述问题提供复现步骤和环境信息包含相关错误信息和日志2. 功能建议说明使用场景和预期行为提供具体的实现建议讨论可能的替代方案3. 代码审查提供建设性反馈解释建议的原因尊重其他贡献者的工作4. 文档贡献保持文档与代码同步使用清晰简洁的语言提供实际的使用示例发布流程 1. 版本管理# 更新package.json中的版本号 # 然后构建和发布 pnpm build npm publish2. 快照发布# 发布预发布版本 npm run publish:snapshot3. 变更日志记录所有重大变更注明向后不兼容的更改感谢贡献者学习资源 项目内文档AGENTS.md - 开发者指南和架构说明README.md - 用户文档和快速开始源代码注释 - 详细的代码解释相关技术TypeScript官方文档Node.js CLI开发最佳实践Git操作和GitHub工作流测试驱动开发(TDD)社区资源openEuler社区论坛GitHub Discussions技能生态系统文档开始你的贡献之旅 wittyhub-cli是一个活跃的开源项目欢迎各种类型的贡献。无论你是TypeScript新手还是经验丰富的开发者都能在这里找到适合的任务。第一步从简单的文档改进或错误修复开始第二步熟悉代码库和开发流程第三步选择感兴趣的功能进行实现第四步参与代码审查和社区讨论记住每一次贡献都是学习的机会每一个Pull Request都是对开源社区的宝贵支持。加入wittyhub-cli开发团队让我们一起构建更好的AI技能管理工具【免费下载链接】wittyhub-cliCommand-line interface for searching, installing, and managing Skills Agents from the WittyHub repository.项目地址: https://gitcode.com/openeuler/wittyhub-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考