From 281dc7a72527d150cf934dad46cd58ddd7650bd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E7=B3=AF=20=28Xiaonuo=29?= Date: Thu, 23 Apr 2026 20:12:27 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20~/skills=20=E2=86=92=20~/Code/skill?= =?UTF-8?q?s=EF=BC=8Csync.sh=20=E6=94=AF=E6=8C=81=20cursor=20rules=20?= =?UTF-8?q?=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 所有引用从 ~/skills 改为 ~/Code/skills(遵循 ~/Code/ 约定) - sync.sh 新增 cursor/*.mdc → ~/.cursor/rules/ 自动同步 - cfg HERMES_AGENT_CONVENTIONS 同步更新 [小糯] --- .../references/09-hermes-config.md | 2 +- .../references/11-skills-sync.md | 10 +-- .../scripts/self-check.sh | 2 +- sync.sh | 67 +++++++++++++------ 4 files changed, 53 insertions(+), 28 deletions(-) diff --git a/hermes/shazhou-family-onboard/references/09-hermes-config.md b/hermes/shazhou-family-onboard/references/09-hermes-config.md index e1ea8d0..433e5e8 100644 --- a/hermes/shazhou-family-onboard/references/09-hermes-config.md +++ b/hermes/shazhou-family-onboard/references/09-hermes-config.md @@ -98,7 +98,7 @@ hermes-har personality switch --tg ## 家族共识 - 代码仓库统一 clone 到 `~/Code/` -- Skills repo 在 `~/skills/` +- Skills repo 在 `~/Code/skills/` - Node.js 用 nvm 管理,非交互 shell 需先 `export NVM_DIR="$HOME/.nvm" && . "$NVM_DIR/nvm.sh"` - 配置管理用 cfg CLI,`eval "$(cfg env)"` 加载环境变量 - 代码托管在 git.shazhou.work(Gitea),Git 提交末尾署名 `[你的名字]` diff --git a/hermes/shazhou-family-onboard/references/11-skills-sync.md b/hermes/shazhou-family-onboard/references/11-skills-sync.md index 79dcedf..9a845e7 100644 --- a/hermes/shazhou-family-onboard/references/11-skills-sync.md +++ b/hermes/shazhou-family-onboard/references/11-skills-sync.md @@ -4,13 +4,13 @@ 确认 skills repo 已克隆: - ls ~/skills/sync.sh + ls ~/Code/skills/sync.sh 确认 skills 已同步到 Hermes: ls ~/.hermes/skills/ -✅ 达标:`~/skills` 存在,`~/.hermes/skills/` 下有从 repo 同步过来的 skill 目录 +✅ 达标:`~/Code/skills` 存在,`~/.hermes/skills/` 下有从 repo 同步过来的 skill 目录 ## 安装 @@ -21,13 +21,13 @@ ### 同步到 Hermes - cd ~/skills + cd ~/Code/skills bash sync.sh ### 目录结构 ``` -~/skills/ +~/Code/skills/ ├── hermes/ # Hermes Agent skills ├── cursor/ # Cursor rules ├── sync.sh # 同步脚本:hermes skills → ~/.hermes/skills/ @@ -43,4 +43,4 @@ 有新 skill 更新时: - cd ~/skills && git pull && bash sync.sh + cd ~/Code/skills && git pull && bash sync.sh diff --git a/hermes/shazhou-family-onboard/scripts/self-check.sh b/hermes/shazhou-family-onboard/scripts/self-check.sh index d712bae..0608b63 100644 --- a/hermes/shazhou-family-onboard/scripts/self-check.sh +++ b/hermes/shazhou-family-onboard/scripts/self-check.sh @@ -73,7 +73,7 @@ check "cursor-agent 已安装" "command -v cursor-agent" check "CURSOR_API_KEY 可用" "test -n \"\$CURSOR_API_KEY\"" echo "11. Skills" -check "skills repo 已克隆" "test -d ~/skills/.git" +check "skills repo 已克隆" "test -d ~/Code/skills/.git" check "skills 已同步" "ls ~/.hermes/skills/ | grep -qv '^$'" diff --git a/sync.sh b/sync.sh index a3a1f0a..cbdc8c5 100755 --- a/sync.sh +++ b/sync.sh @@ -1,37 +1,62 @@ #!/bin/bash # 同步 shazhou/skills 到各目标 # - hermes/ → ~/.hermes/skills/ -# - CONVENTIONS.md → ~/.hermes/CONVENTIONS.md -# - cursor/ → 不自动同步(手动复制到各项目 .cursor/rules/) +# - cursor/ → ~/.cursor/rules/ # 用法:bash sync.sh set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" -SOURCE="$SCRIPT_DIR/hermes" HERMES_HOME="${HERMES_HOME:-$HOME/.hermes}" -TARGET="$HERMES_HOME/skills" -if [ ! -d "$SOURCE" ]; then - echo "❌ 找不到 $SOURCE" - exit 1 +echo "🔄 沙洲家族 Skills 同步" +echo "========================" +echo "" + +# --- Hermes skills --- +HERMES_SOURCE="$SCRIPT_DIR/hermes" +HERMES_TARGET="$HERMES_HOME/skills" + +if [ -d "$HERMES_SOURCE" ]; then + mkdir -p "$HERMES_TARGET" + count=0 + for skill_dir in "$HERMES_SOURCE"/*/; do + [ -d "$skill_dir" ] || continue + skill_name=$(basename "$skill_dir") + rsync -a --delete "$skill_dir" "$HERMES_TARGET/$skill_name/" + echo " ✅ hermes: $skill_name" + count=$((count + 1)) + done + echo "" + echo "Hermes skills: $count → $HERMES_TARGET" +else + echo "⚠️ hermes/ 目录不存在,跳过" fi -mkdir -p "$TARGET" +echo "" -# 同步 hermes skills -count=0 -for skill_dir in "$SOURCE"/*/; do - skill_name=$(basename "$skill_dir") - target_dir="$TARGET/$skill_name" - rsync -a --delete "$skill_dir" "$target_dir/" - echo "✅ $skill_name" - count=$((count + 1)) -done +# --- Cursor rules --- +CURSOR_SOURCE="$SCRIPT_DIR/cursor" +CURSOR_TARGET="$HOME/.cursor/rules" + +if [ -d "$CURSOR_SOURCE" ]; then + mkdir -p "$CURSOR_TARGET" + count=0 + for rule_file in "$CURSOR_SOURCE"/*.mdc; do + [ -f "$rule_file" ] || continue + cp "$rule_file" "$CURSOR_TARGET/" + echo " ✅ cursor rule: $(basename "$rule_file")" + count=$((count + 1)) + done + echo "" + echo "Cursor rules: $count → $CURSOR_TARGET" +else + echo "⚠️ cursor/ 目录不存在,跳过" +fi echo "" -echo "同步完成!共 $count 个 hermes skills → $TARGET" - +echo "========================" +echo "✅ 同步完成" echo "" -echo "💡 cursor/ 下的 .mdc 文件请手动复制到项目的 .cursor/rules/" -echo "💡 家族共识通过 cfg (FAMILY_CONVENTIONS) 管理,hermes-har personality switch 时自动 append 到 SOUL.md" +echo "💡 家族共识通过 cfg (HERMES_AGENT_CONVENTIONS) 管理" +echo "💡 hermes-har personality switch 时自动 append 到 SOUL.md"