Files
getskills/PROJECT_SUMMARY.md
zlei9 4bbdbfd52e feat: 初始化 getskills 技能
添加 SKILL.md 文件,将 getskills 工具转换为标准技能格式

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-22 22:46:32 +08:00

254 lines
4.8 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.
# GetSkill 项目总结
## 项目概述
**GetSkill** 是一个用于管理 OpenClaw 技能的命令行工具,支持从 getskill.work 搜索、安装和更新技能文件。
## 核心特性
### 1. 零外部依赖
- 仅使用 Node.js 内置模块
- 轻量级,安装快速
- 无需担心依赖冲突
### 2. Git 集成
- 自动检测 Git 安装状态
- Windows 平台自动下载 Git 安装程序
- macOS/Linux 提供安装指南
- 通过 Git 管理技能版本
### 3. 跨平台支持
- Windows (32/64位)
- macOS
- Linux (多发行版)
- 自动适配操作系统路径
### 4. 双目录架构
```
~/.claude/
├── skills/ # 技能文件(.md
└── skills-cache/ # Git 仓库缓存
```
## 技术架构
### 依赖模块(全部为 Node.js 内置)
| 模块 | 用途 |
|------|------|
| `https/http` | API 请求和文件下载 |
| `fs` | 文件系统操作 |
| `path` | 路径处理 |
| `os` | 系统信息获取 |
| `child_process` | 执行 Git 命令 |
### 核心函数
| 函数 | 功能 |
|------|------|
| `searchSkills()` | 从 API 搜索技能 |
| `downloadSkill()` | 安装技能Git clone |
| `updateSkill()` | 更新技能Git pull |
| `checkGitInstalled()` | 检测 Git |
| `ensureGitInstalled()` | 确保 Git 可用 |
| `cloneOrUpdateRepo()` | Git 仓库管理 |
| `copySkillFiles()` | 复制技能文件 |
## API 接口设计
### 搜索接口
```
GET https://getskill.work/api/skills/search?q=<关键词>
Response:
{
"skills": [
{
"id": "skill-id",
"name": "skill-name",
"description": "描述",
"git_url": "https://github.com/...",
"author": "作者"
}
]
}
```
### 详情接口
```
GET https://getskill.work/api/skills/<技能ID>
Response:
{
"id": "skill-id",
"name": "skill-name",
"git_url": "https://github.com/...",
"description": "描述",
"files": ["skill.md"],
...
}
```
## 命令行界面
```bash
# 搜索
getskill search <关键词>
# 安装
getskill install <技能名称>
# 更新
getskill update <技能名称>
# 列出
getskill list
# 路径
getskill path
# 清理
getskill clean
```
## 文件结构
```
getskill/
├── index.js # 主程序578 行)
├── package.json # 项目配置
├── README.md # 使用文档
├── EXAMPLES.md # 使用示例
├── CONTRIBUTING.md # 贡献指南
├── CHANGELOG.md # 变更日志
├── LICENSE # MIT 许可证
├── verify.js # 验证脚本
├── .gitignore # Git 忽略文件
└── .npmignore # NPM 忽略文件
```
## 开发统计
- **总代码行数**: ~580 行index.js
- **函数数量**: 15+ 个
- **支持的命令**: 6 个
- **支持的平台**: 3 个Windows/macOS/Linux
- **外部依赖**: 0 个
## 工作流程
### 安装流程
```
用户执行: getskill install commit-helper
检查 Git 是否安装
调用 API 获取技能详情(含 git_url
执行 git clone 到缓存目录
复制 .md 文件到 skills 目录
完成
```
### 更新流程
```
用户执行: getskill update commit-helper
检查缓存目录是否存在仓库
进入仓库目录
执行 git pull
重新复制 .md 文件
完成
```
## 特殊处理
### Git 自动安装
#### Windows
1. 检测系统架构32/64位
2. 下载对应的 Git 安装程序
3. 显示下载进度
4. 启动安装向导
5. 提示用户完成安装后重新运行
#### macOS
- 提示使用 Homebrew: `brew install git`
- 提供 Homebrew 安装链接
#### Linux
- 根据发行版提供对应命令
- 支持 apt、yum、dnf、pacman
## 错误处理
- 网络错误:捕获并提示
- Git 未安装:自动引导安装
- API 失败:显示错误信息
- 文件不存在:创建目录
- 仓库克隆失败:显示 Git 错误
## 使用场景
1. **开发者**: 快速安装和更新技能
2. **团队**: 统一技能版本管理
3. **CI/CD**: 自动化技能部署
4. **学习者**: 探索可用技能
## 性能特点
- 轻量级:无外部依赖
- 快速:直接使用 Git
- 可靠Git 版本控制
- 缓存:避免重复下载
## 安全考虑
- 仅使用 HTTPS 连接
- 不存储敏感信息
- Git URL 验证
- 沙箱化技能目录
## 未来计划
- [ ] 技能版本管理
- [ ] 依赖解析
- [ ] 离线模式
- [ ] 配置文件支持
- [ ] Shell 自动补全
- [ ] 技能备份/恢复
- [ ] 交互式安装
- [ ] 单元测试
## 发布清单
- [x] 核心功能实现
- [x] Git 自动检测
- [x] 跨平台支持
- [x] 文档完善
- [x] 验证脚本
- [x] 示例文档
- [ ] 单元测试
- [ ] CI/CD 集成
- [ ] NPM 发布
## 贡献者
- workskills.store - 初始开发
## 许可证
MIT License - 详见 LICENSE 文件
---
**项目状态**: ✅ 功能完整,准备发布 v1.0.0
**最后更新**: 2026-03-21