en un clic
github-skill-forge
// 一个"制造技能的技能"。这个工具自动化了将任意 GitHub 仓库转换为标准化 Trae 技能的全过程,是扩展 AI Agent 能力的核心工具。
// 一个"制造技能的技能"。这个工具自动化了将任意 GitHub 仓库转换为标准化 Trae 技能的全过程,是扩展 AI Agent 能力的核心工具。
| name | github-skill-forge |
| description | 一个"制造技能的技能"。这个工具自动化了将任意 GitHub 仓库转换为标准化 Trae 技能的全过程,是扩展 AI Agent 能力的核心工具。 |
| tags | ["github","skill-forge","meta-skill","automation","integration","CLI","scaffolding","Lite-RAG","context-aggregation","repository-clone","skill-management","tool-integration","开源集成","技能锻造","元技能","自动化工具","CLI工具集成","脚手架","上下文聚合","工具安装","GitHub工具","能力扩展","智能代理","工作流自动化"] |
一个"制造技能的技能"。这个工具自动化了将 GitHub 仓库转换为标准化 Trae 技能的过程。
# 基础依赖
Python 3.7+
Git
# 语法: python scripts/forge.py <URL> [SKILL_NAME]
python3 .trae/skills/github-skill-forge/scripts/forge.py "https://github.com/username/repo"
.trae/skills 库时运行脚手架脚本来克隆仓库、创建结构并生成上下文包。
# 基础用法
python3 .trae/skills/github-skill-forge/scripts/forge.py "https://github.com/username/repo"
# 指定技能名称
python3 .trae/skills/github-skill-forge/scripts/forge.py "https://github.com/username/repo" "my-custom-skill"
脚本会在新的技能文件夹中生成 context_bundle.md。你(作为 Agent)必须:
读取上下文包:查看 context_bundle.md
更新 SKILL.md:重写新技能目录中的草稿
pip install -r src/requirements.txt)src/... 运行工具的清晰示例创建包装脚本(可选):
.trae/skills/<new_skill>/scripts/ 中编写简化的 Python/Shell 脚本运行工具的帮助命令以确保其正常工作。
python3 .trae/skills/<new_skill>/src/<main_script>.py --help
用户:"安装这个仓库:https://github.com/sqlmapproject/sqlmap"
Agent 操作:
python3 .trae/skills/github-skill-forge/scripts/forge.py https://github.com/sqlmapproject/sqlmap
read .trae/skills/sqlmap/context_bundle.md
edit .trae/skills/sqlmap/SKILL.md
python3 .trae/skills/sqlmap/src/sqlmap.py --help
python3 .trae/skills/github-skill-forge/scripts/forge.py "https://github.com/requests/requests" "http-requests-lib"
这将创建一个名为 http-requests-lib 的技能目录。
用户:"我想用这个工具做数据可视化:https://github.com/mwaskom/seaborn"
Agent 操作:
context_bundle.md 了解 seaborn 的 APIscripts/ 目录用户:"我想用 fzf 这样的模糊查找工具:https://github.com/junegunn/fzf"
Agent 操作:
运行锻造脚本
分析 fzf 的功能:
创建简化的使用脚本:
scripts/fuzzy-search.py - 简化文件搜索scripts/history-search.py - 命令历史搜索更新 SKILL.md:
## 使用方法
### 基本文件搜索
```bash
python3 scripts/fuzzy-search.py
python3 scripts/history-search.py
# macOS
brew install fzf
# Linux
sudo apt install fzf
# Windows
choco install fzf
用户:"安装 jq 这样的 JSON 处理工具:https://github.com/jqlang/jq"
Agent 操作:
运行锻造脚本
读取 context_bundle.md
创建简化的包装脚本:
scripts/json-format.py - JSON 格式化scripts/json-query.py - JSON 查询工具更新 SKILL.md:
## 使用示例
### 格式化 JSON
```bash
cat data.json | python3 scripts/json-format.py
python3 scripts/json-query.py "data.json" ".users[0].name"
如果需要重新生成上下文包:
from forge import create_context_bundle
create_context_bundle("./src", "./context_bundle.md")
修改 forge.py 中的 limit 参数:
def get_file_tree(start_path, limit=100): # 增加限制到 100 个文件
...
# 创建一个批量安装脚本
for url in "https://github.com/fzf" "https://github.com/jqlang/jq" "https://github.com/sharkdp/bat"; do
python3 .trae/skills/github-skill-forge/scripts/forge.py "$url"
done
你可以通过环境变量定制生成的内容:
# 自定义默认技能名
export SKILL_FORCE_NAME="custom-skill"
# 自定义文件限制
export SKILL_FILE_LIMIT=100
# 自定义文档截断大小
export SKILL_DOC_TRUNCATE=20000
症状:
❌ Git clone failed: fatal: Could not read from remote repository.
解决方案:
git config --global credential.helper store
症状:
⚠️ Warning: Skill directory 'xxx' already exists.
❌ Aborting: Directory exists.
解决方案:
python3 forge.py <URL> new_skill_name
rm -rf .trae/skills/xxx
症状:
ModuleNotFoundError: No module named 'xxx'
解决方案:
症状:
生成的 context_bundle.md 超过预期大小
解决方案: 脚本已自动截断超过 10KB 的文档,如需更详细的上下文可手动查看源文件。
症状:
Permission denied: '.trae/skills/xxx'
解决方案:
ls -la .trae/skills/
chmod -R 755 .trae/skills/
症状:
Git LFS: (1 of 1 files) 0 B / 100.00 MB
解决方案:
git lfs install
git lfs pull
context_bundle.md-h/--help 参数.trae/skills/
└── <skill-name>/
├── SKILL.md # 技能说明文档
├── context_bundle.md # 上下文聚合(自动生成)
├── requirements.txt # 依赖项(可选)
├── src/ # 源代码
│ └── <main-script>
├── scripts/ # 包装脚本(可选)
│ └── <helper-scripts>
└── references/ # 参考文档(可选)
└── <documentation>
---
name: <skill-name>
description: <简短描述>
---
# <技能名称>
## 功能特性
- <特性1>
- <特性2>
## 使用要求
- <依赖项1>
- <依赖项2>
## 安装方法
```bash
<安装命令>
<基本命令>
<高级命令>
<解决方案>
## 性能优化
### 1. 减少克隆深度
```bash
# 使用浅克隆
git clone --depth 1 <url>
# 在 forge.py 中添加
SKIP_DIRS = ['.git', '.github', 'docs', 'test']
SKIP_FILES = ['*.md', '*.txt']
# 使用多线程处理多个任务
import concurrent.futures
with concurrent.futures.ThreadPoolExecutor() as executor:
executor.submit(process_file, file1)
executor.submit(process_file, file2)
# .github/workflows/skill-test.yml
name: Test Skills
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: pip install -r requirements.txt
- name: Test skill
run: python3 src/main.py --help
# 定期更新技能脚本
0 0 * * 0 cd /path/to/skills && python3 github-skill-forge/scripts/forge.py <url>
.git 文件夹以减小体积