원클릭으로
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 基于该人物生成新图时使用此技能。