refactor: ~/skills → ~/Code/skills,sync.sh 支持 cursor rules 同步
- 所有引用从 ~/skills 改为 ~/Code/skills(遵循 ~/Code/ 约定) - sync.sh 新增 cursor/*.mdc → ~/.cursor/rules/ 自动同步 - cfg HERMES_AGENT_CONVENTIONS 同步更新 [小糯]
This commit is contained in:
parent
5a08fe9308
commit
281dc7a725
@ -98,7 +98,7 @@ hermes-har personality switch <name> --tg
|
|||||||
## 家族共识
|
## 家族共识
|
||||||
|
|
||||||
- 代码仓库统一 clone 到 `~/Code/`
|
- 代码仓库统一 clone 到 `~/Code/`
|
||||||
- Skills repo 在 `~/skills/`
|
- Skills repo 在 `~/Code/skills/`
|
||||||
- Node.js 用 nvm 管理,非交互 shell 需先 `export NVM_DIR="$HOME/.nvm" && . "$NVM_DIR/nvm.sh"`
|
- Node.js 用 nvm 管理,非交互 shell 需先 `export NVM_DIR="$HOME/.nvm" && . "$NVM_DIR/nvm.sh"`
|
||||||
- 配置管理用 cfg CLI,`eval "$(cfg env)"` 加载环境变量
|
- 配置管理用 cfg CLI,`eval "$(cfg env)"` 加载环境变量
|
||||||
- 代码托管在 git.shazhou.work(Gitea),Git 提交末尾署名 `[你的名字]`
|
- 代码托管在 git.shazhou.work(Gitea),Git 提交末尾署名 `[你的名字]`
|
||||||
|
|||||||
@ -4,13 +4,13 @@
|
|||||||
|
|
||||||
确认 skills repo 已克隆:
|
确认 skills repo 已克隆:
|
||||||
|
|
||||||
ls ~/skills/sync.sh
|
ls ~/Code/skills/sync.sh
|
||||||
|
|
||||||
确认 skills 已同步到 Hermes:
|
确认 skills 已同步到 Hermes:
|
||||||
|
|
||||||
ls ~/.hermes/skills/
|
ls ~/.hermes/skills/
|
||||||
|
|
||||||
✅ 达标:`~/skills` 存在,`~/.hermes/skills/` 下有从 repo 同步过来的 skill 目录
|
✅ 达标:`~/Code/skills` 存在,`~/.hermes/skills/` 下有从 repo 同步过来的 skill 目录
|
||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
@ -21,13 +21,13 @@
|
|||||||
|
|
||||||
### 同步到 Hermes
|
### 同步到 Hermes
|
||||||
|
|
||||||
cd ~/skills
|
cd ~/Code/skills
|
||||||
bash sync.sh
|
bash sync.sh
|
||||||
|
|
||||||
### 目录结构
|
### 目录结构
|
||||||
|
|
||||||
```
|
```
|
||||||
~/skills/
|
~/Code/skills/
|
||||||
├── hermes/ # Hermes Agent skills
|
├── hermes/ # Hermes Agent skills
|
||||||
├── cursor/ # Cursor rules
|
├── cursor/ # Cursor rules
|
||||||
├── sync.sh # 同步脚本:hermes skills → ~/.hermes/skills/
|
├── sync.sh # 同步脚本:hermes skills → ~/.hermes/skills/
|
||||||
@ -43,4 +43,4 @@
|
|||||||
|
|
||||||
有新 skill 更新时:
|
有新 skill 更新时:
|
||||||
|
|
||||||
cd ~/skills && git pull && bash sync.sh
|
cd ~/Code/skills && git pull && bash sync.sh
|
||||||
|
|||||||
@ -73,7 +73,7 @@ check "cursor-agent 已安装" "command -v cursor-agent"
|
|||||||
check "CURSOR_API_KEY 可用" "test -n \"\$CURSOR_API_KEY\""
|
check "CURSOR_API_KEY 可用" "test -n \"\$CURSOR_API_KEY\""
|
||||||
|
|
||||||
echo "11. Skills"
|
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 '^$'"
|
check "skills 已同步" "ls ~/.hermes/skills/ | grep -qv '^$'"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
59
sync.sh
59
sync.sh
@ -1,37 +1,62 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# 同步 shazhou/skills 到各目标
|
# 同步 shazhou/skills 到各目标
|
||||||
# - hermes/ → ~/.hermes/skills/
|
# - hermes/ → ~/.hermes/skills/
|
||||||
# - CONVENTIONS.md → ~/.hermes/CONVENTIONS.md
|
# - cursor/ → ~/.cursor/rules/
|
||||||
# - cursor/ → 不自动同步(手动复制到各项目 .cursor/rules/)
|
|
||||||
# 用法:bash sync.sh
|
# 用法:bash sync.sh
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
SOURCE="$SCRIPT_DIR/hermes"
|
|
||||||
HERMES_HOME="${HERMES_HOME:-$HOME/.hermes}"
|
HERMES_HOME="${HERMES_HOME:-$HOME/.hermes}"
|
||||||
TARGET="$HERMES_HOME/skills"
|
|
||||||
|
|
||||||
if [ ! -d "$SOURCE" ]; then
|
echo "🔄 沙洲家族 Skills 同步"
|
||||||
echo "❌ 找不到 $SOURCE"
|
echo "========================"
|
||||||
exit 1
|
echo ""
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p "$TARGET"
|
# --- Hermes skills ---
|
||||||
|
HERMES_SOURCE="$SCRIPT_DIR/hermes"
|
||||||
|
HERMES_TARGET="$HERMES_HOME/skills"
|
||||||
|
|
||||||
# 同步 hermes skills
|
if [ -d "$HERMES_SOURCE" ]; then
|
||||||
|
mkdir -p "$HERMES_TARGET"
|
||||||
count=0
|
count=0
|
||||||
for skill_dir in "$SOURCE"/*/; do
|
for skill_dir in "$HERMES_SOURCE"/*/; do
|
||||||
|
[ -d "$skill_dir" ] || continue
|
||||||
skill_name=$(basename "$skill_dir")
|
skill_name=$(basename "$skill_dir")
|
||||||
target_dir="$TARGET/$skill_name"
|
rsync -a --delete "$skill_dir" "$HERMES_TARGET/$skill_name/"
|
||||||
rsync -a --delete "$skill_dir" "$target_dir/"
|
echo " ✅ hermes: $skill_name"
|
||||||
echo "✅ $skill_name"
|
|
||||||
count=$((count + 1))
|
count=$((count + 1))
|
||||||
done
|
done
|
||||||
|
echo ""
|
||||||
|
echo "Hermes skills: $count → $HERMES_TARGET"
|
||||||
|
else
|
||||||
|
echo "⚠️ hermes/ 目录不存在,跳过"
|
||||||
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "同步完成!共 $count 个 hermes skills → $TARGET"
|
|
||||||
|
# --- 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 ""
|
||||||
echo "💡 cursor/ 下的 .mdc 文件请手动复制到项目的 .cursor/rules/"
|
echo "========================"
|
||||||
echo "💡 家族共识通过 cfg (FAMILY_CONVENTIONS) 管理,hermes-har personality switch 时自动 append 到 SOUL.md"
|
echo "✅ 同步完成"
|
||||||
|
echo ""
|
||||||
|
echo "💡 家族共识通过 cfg (HERMES_AGENT_CONVENTIONS) 管理"
|
||||||
|
echo "💡 hermes-har personality switch 时自动 append 到 SOUL.md"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user