NLDClient-yudde/ProjectNLD/.ai/sync-skills.sh

81 lines
2.6 KiB
Bash

#!/bin/bash
# sync-all.sh — 将 .ai/ 下的 skills、protocols、agents 同步到各平台目录
# 新增或更新后运行此脚本即可同步到全部平台
# 用法: cd ProjectNLD && bash .ai/sync-all.sh
set -e
PLATFORMS=(".cursor" ".claude" ".github" ".kiro")
# ── 1. Sync skills ──────────────────────────────────────────────
SKILLS_SRC=".ai/skills"
echo "=== Syncing skills from $SKILLS_SRC ==="
skill_count=0
for skill_dir in "$SKILLS_SRC"/*/; do
[ -d "$skill_dir" ] || continue
skill=$(basename "$skill_dir")
skill_md="$skill_dir/SKILL.md"
[ -f "$skill_md" ] || continue
for platform in "${PLATFORMS[@]}"; do
target_dir="$platform/skills/$skill"
mkdir -p "$target_dir"
cp "$skill_md" "$target_dir/SKILL.md"
done
echo " ✓ skill: $skill"
((skill_count++))
done
# ── 2. Sync protocols ──────────────────────────────────────────
PROTOCOLS_SRC=".ai/protocols"
echo ""
echo "=== Syncing protocols from $PROTOCOLS_SRC ==="
proto_count=0
if [ -d "$PROTOCOLS_SRC" ]; then
for proto_file in "$PROTOCOLS_SRC"/*.md; do
[ -f "$proto_file" ] || continue
filename=$(basename "$proto_file")
for platform in "${PLATFORMS[@]}"; do
target_dir="$platform/protocols"
mkdir -p "$target_dir"
cp "$proto_file" "$target_dir/$filename"
done
echo " ✓ protocol: $filename"
((proto_count++))
done
fi
# ── 3. Sync agents ─────────────────────────────────────────────
AGENTS_SRC=".ai/agents"
echo ""
echo "=== Syncing agents from $AGENTS_SRC ==="
agent_count=0
if [ -d "$AGENTS_SRC" ]; then
for agent_file in "$AGENTS_SRC"/*.md; do
[ -f "$agent_file" ] || continue
filename=$(basename "$agent_file")
for platform in "${PLATFORMS[@]}"; do
target_dir="$platform/agents"
mkdir -p "$target_dir"
cp "$agent_file" "$target_dir/$filename"
done
echo " ✓ agent: $filename"
((agent_count++))
done
fi
# ── Summary ─────────────────────────────────────────────────────
echo ""
echo "Done. Synced to ${#PLATFORMS[@]} platforms:"
echo " Skills: $skill_count"
echo " Protocols: $proto_count"
echo " Agents: $agent_count"