بنقرة واحدة
skills-link
自动发现并整理本地 skill 目录为符号链接。先预览计划,用户确认后再执行。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
自动发现并整理本地 skill 目录为符号链接。先预览计划,用户确认后再执行。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | skills-link |
| description | 自动发现并整理本地 skill 目录为符号链接。先预览计划,用户确认后再执行。 |
| metadata | {"short-description":"统一管理本地 skill 目录,链接到 .agents/skills"} |
自动发现并整理用户目录下所有工具的 skills 目录,先预览计划,用户确认后再执行。
# 预览模式(默认):显示操作计划,不执行
skills-link
# 执行模式:用户确认后执行
skills-link --execute
~/ 下 maxdepth=3 的所有 skills 目录*/.agents/* 下的 skills → 跳过~/.hermes/hermes-agent/skills → 跳过| 目录 | 目标 |
|---|---|
~/.hermes/skills | ~/.agents/.hermes/skills(独立存储) |
~/.hermes/skills/agentsSkills | ~/.agents/skills(统一存储) |
| 其他 skills | ~/.agents/skills(统一存储) |
#!/bin/bash
# Skills Link - 自动发现并整理 skills 目录到统一存储
# 用法: skills-link [--execute]
# 支持: Linux, macOS, Windows (Git Bash)
TARGET_DIR="$HOME/.agents/skills"
EXECUTE=false
# 解析参数
if [[ "$1" == "--execute" ]]; then
EXECUTE=true
fi
# 检测操作系统
detect_os() {
case "$(uname -s)" in
Linux*) echo "linux" ;;
Darwin*) echo "macos" ;;
CYGWIN*|MINGW*|MSYS*) echo "windows" ;;
*) echo "unknown" ;;
esac
}
OS=$(detect_os)
mkdir -p "$TARGET_DIR"
# 创建符号链接
create_link() {
local source="$1"
local target="$2"
case "$OS" in
windows)
local source_win=$(cygpath -w "$source" 2>/dev/null || echo "$source")
local target_win=$(cygpath -w "$target" 2>/dev/null || echo "$target")
powershell -Command "New-Item -ItemType Junction -Path '$source_win' -Target '$target_win' -Force" > /dev/null 2>&1 ;;
linux|macos)
ln -sfn "$target" "$source" ;;
*)
echo " [错误] 不支持的系统: $OS" && return 1 ;;
esac
}
# 转换为绝对路径
to_abs() {
local path="$1"
if [[ "$path" == /* ]]; then echo "$path"
else echo "$(cd "$(dirname "$path")" 2>/dev/null && pwd)/$(basename "$path")"; fi
}
# 获取非链接真实目录的技能数量
count_skills() {
if [ -d "$1" ] && [ ! -L "$1" ]; then
ls "$1" 2>/dev/null | wc -l | tr -d ' '
else
echo "0"
fi
}
# 预览单个目录,返回计划项
plan_one() {
local dir="$1"
local source_abs
source_abs=$(to_abs "$dir")
# 已是链接
if [ -L "$dir" ]; then
return
fi
# 不存在
if [ ! -d "$dir" ]; then
return
fi
# 排除:.agents 下
if [[ "$dir" == *"/.agents/"* ]]; then
return
fi
# 排除:hermes-agent
if [[ "$dir" == "$HOME/.hermes/hermes-agent/skills" ]]; then
return
fi
# hermes/skills/agentsSkills 特殊处理:链接到统一存储
if [[ "$dir" == "$HOME/.hermes/skills/agentsSkills" ]]; then
local target="$HOME/.agents/skills"
if [ -z "$(ls -A "$dir" 2>/dev/null)" ]; then
echo "DELETE|$dir|空目录"
echo "LINK|$dir|$target"
else
local cnt
cnt=$(count_skills "$dir")
echo "COPY|$dir|$target|$cnt|迁移到统一存储"
echo "DELETE|$dir|迁移后删除"
echo "LINK|$dir|$target|创建链接"
fi
return
fi
# hermes/skills 特殊处理:链接到独立存储
if [[ "$dir" == "$HOME/.hermes/skills" ]]; then
local target="$HOME/.agents/.hermes/skills"
mkdir -p "$target"
if [ -z "$(ls -A "$dir" 2>/dev/null)" ]; then
echo "DELETE|$dir|空目录"
echo "LINK|$dir|$target"
else
local cnt
cnt=$(count_skills "$dir")
echo "COPY|$dir|$target|$cnt|迁移到独立存储"
echo "DELETE|$dir|迁移后删除"
echo "LINK|$dir|$target|创建链接"
fi
return
fi
# 其他目录:统一迁移
if [ -z "$(ls -A "$dir" 2>/dev/null)" ]; then
echo "DELETE|$dir|空目录"
echo "LINK|$dir|$TARGET_DIR"
else
local cnt
cnt=$(count_skills "$dir")
echo "COPY|$dir|$TARGET_DIR|$cnt|迁移到统一存储"
echo "DELETE|$dir|迁移后删除"
echo "LINK|$dir|$TARGET_DIR|创建链接"
fi
}
# 执行单个操作
do_op() {
local op="$1"
local src="$2"
local tgt="$3"
local msg="$4"
case "$op" in
COPY)
mkdir -p "$tgt"
if cp -r "$src"/* "$tgt/" 2>/dev/null; then
echo " ✓ COPY $src -> $tgt"
else
echo " ✗ COPY 失败: $src"
return 1
fi ;;
DELETE)
if [ -d "$src" ]; then
rm -rf "$src" && echo " ✓ DELETE $src" || echo " ✗ DELETE 失败: $src"
fi ;;
LINK)
if create_link "$src" "$tgt"; then
echo " ✓ LINK $src -> $tgt"
else
echo " ✗ LINK 失败: $src"
return 1
fi ;;
esac
}
# 主流程
main() {
echo "=== Skills Link - 操作计划预览 ==="
echo "目标: $TARGET_DIR"
echo "系统: $OS"
echo ""
if ! $EXECUTE; then
echo "【预览模式】添加 --execute 参数开始执行"
echo ""
else
echo "【执行模式】"
echo ""
fi
local total_ops=0
local plans=()
# 扫描并生成计划
while IFS= read -r dir; do
while IFS= read -r line; do
if [ -n "$line" ]; then
plans+=("$line")
((total_ops++)) || true
fi
done < <(plan_one "$dir")
done < <(find "$HOME" -maxdepth 3 -type d -name "skills" 2>/dev/null)
if [ $total_ops -eq 0 ]; then
echo "未发现需要处理的 skills 目录。"
exit 0
fi
# 输出计划
echo "┌─────────────────────────────────────────────────────────────┐"
echo "│ 操作计划 ($total_ops 项) │"
echo "├─────────────────────────────────────────────────────────────┤"
while IFS='|' read -r op src tgt msg; do
printf "│ %-6s │ %-30s │ %s\n" "$op" "$(basename "$src")" "$msg"
done <<< "$(printf '%s\n' "${plans[@]}")"
echo "└─────────────────────────────────────────────────────────────┘"
echo ""
if ! $EXECUTE; then
echo "输入 skills-link --execute 确认执行。"
exit 0
fi
# 确认
echo -n "确认执行以上 $total_ops 项操作?(y/N): "
read -r confirm
if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
echo "已取消。"
exit 0
fi
# 执行
echo ""
echo "=== 执行中 ==="
local failed=0
for plan in "${plans[@]}"; do
IFS='|' read -r op src tgt msg <<< "$plan"
if ! do_op "$op" "$src" "$tgt" "$msg"; then
((failed++)) || true
echo " 停止于: $op $src"
break
fi
done
echo ""
if [ $failed -eq 0 ]; then
echo "=== 完成 ==="
local cnt
cnt=$(ls "$TARGET_DIR" 2>/dev/null | wc -l | tr -d ' ')
echo "统一存储: $TARGET_DIR ($cnt 个 skills)"
else
echo "执行失败: $failed 项"
exit 1
fi
}
main
=== Skills Link - 操作计划预览 ===
目标: /home/user/.agents/skills
系统: linux
【预览模式】添加 --execute 参数开始执行
┌─────────────────────────────────────────────────────────────┐
│ 操作计划 (9 项) │
├─────────────────────────────────────────────────────────────┤
│ COPY │ .claude/skills │ 迁移到统一存储 │
│ DELETE │ .claude/skills │ 迁移后删除 │
│ LINK │ .claude/skills │ 创建链接 │
│ COPY │ .hermes/skills │ 迁移到独立存储 │
│ DELETE │ .hermes/skills │ 迁移后删除 │
│ LINK │ .hermes/skills │ 创建链接 │
│ DELETE │ .hermes/hermes-agent/skills│ 空目录 │
│ DELETE │ .codex/skills │ 空目录 │
│ LINK │ .codex/skills │ 创建链接 │
└─────────────────────────────────────────────────────────────┘
输入 skills-link --execute 确认执行。
Karpathy's LLM Wiki: build/query interlinked markdown KB.
Use when parsing novel chapters into a structured knowledge base with chapter summaries, entity updates, change logs, memory points, and strict multi-step extraction/query/update discipline.
MiniMax API 调用指南,包含 M2.5/M2.7 模型选择、Python 调用示例、错误处理与性能对比。触发词:MiniMax API、调用 MiniMax、minimax-api
MiniMax M2.5/M2.7 模型上下文测试套件,支持 Recall、筛选、数学、代码、推理多维度测试。触发词:MiniMax 测试、上下文测试、minimax-context-testing
Use mmx to generate or analyze images via MiniMax (image-01 for generation, vision for understanding). Use when the user wants to generate images from text, analyze/describe images, extract text from images, check image content, or do character-consistent image generation. Triggers on "生成图片", "图片生成", "看图", "图片识别", "image generate", "describe image", "图片理解", "从图生图", "角色一致性".
一站式 MiniMax 图片生成封装脚本 mmx-image 的技能入口。 适用场景:(1)文生图(t2i);(2)人物转换风格(i2i,保持同一人物特征);(3)水印自动检测与裁剪;(4)参考图含 UI 元素时自动预清洗。 当用户说"生成图片"、"画一张图"、"把照片转成古风"、"人物换装"、或直接提供参考图要求 AI 基于该人物生成新图时使用此技能。