Files
skills/install.sh
empty e1f56ae793 Add interactive configuration to installation scripts
Features:
- Ask user whether to configure CLAUDE.md
- Support both user-level and project-level configuration
- For project-level: prompt for target directory
- Append content (never overwrite existing files)
- Detect existing configuration to avoid duplicates
- Auto-create project constitution section for new files

Scripts updated:
- install.sh (macOS/Linux)
- install.ps1 (Windows PowerShell)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-11 18:10:08 +08:00

209 lines
6.3 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Claude Code Skills 安装脚本
# 用法: bash <(curl -s https://git.let5see.xyz/let5see/skills/raw/main/install.sh)
set -e
REPO_URL="https://git.let5see.xyz/let5see/skills.git"
TEMP_DIR="/tmp/skills-install-$$"
SKILLS_DIR="$HOME/.claude/skills"
CLAUDE_MD_CONTENT="
## Codex 协作配置
本项目使用 \`codex-collab\` skill 进行 Codex CLI 协作。
### 快速安装
\`\`\`bash
bash <(curl -s https://git.let5see.xyz/let5see/skills/raw/main/install.sh)
\`\`\`
### 核心原则
**指导原则**
- Codex 是协作伙伴,而非唯一真理来源
- 必须有独立思考,对 Codex 的建议保持批判性审视
- 通过辩论和讨论达成最优方案
**职责分工**
- **Claude Code**:代码编写、文档编写、简单任务直接执行
- **Codex**:代码查找定位、逻辑梳理、代码审查、方案设计、问题诊断
**关键规范**
- 查找/搜索任务 → 必须调用 Codex
- 方案设计阶段 → 使用 \`sandbox=\"read-only\"\`
- 代码实现 → Claude Code 基于方案重写生产级代码
- 完成编码后 → 立即让 Codex 审查
### 详细文档
参考:\`~/.claude/skills/codex-collab/SKILL.md\`
或在线查看https://git.let5see.xyz/let5see/skills
---
"
echo "🚀 正在安装 Claude Code Skills..."
echo ""
# 创建临时目录
echo "📦 下载 skills..."
git clone "$REPO_URL" "$TEMP_DIR" --depth 1 --quiet
# 确保 skills 目录存在
mkdir -p "$SKILLS_DIR"
# 复制所有 skills
echo "📋 安装 skills..."
for skill_dir in "$TEMP_DIR"/*/; do
if [ -d "$skill_dir" ]; then
skill_name=$(basename "$skill_dir")
if [ -f "$skill_dir/SKILL.md" ]; then
echo " ✓ 安装 $skill_name"
cp -r "$skill_dir" "$SKILLS_DIR/"
else
echo " ⚠ 跳过 $skill_name (缺少 SKILL.md)"
fi
fi
done
# 清理临时文件
rm -rf "$TEMP_DIR"
echo ""
echo "✅ Skills 安装完成!"
echo ""
echo "已安装的 skills:"
ls -1 "$SKILLS_DIR" | sed 's/^/ - /'
echo ""
# 询问是否配置 CLAUDE.md
echo "────────────────────────────────────────"
echo "📝 是否要配置 Codex 协作规则到 CLAUDE.md"
echo ""
echo "这将帮助 Claude Code 更好地与 Codex 协作。"
echo "不会被覆盖现有内容,只会追加配置。"
echo ""
echo " [1] 用户级配置 (~/.claude/CLAUDE.md) - 所有项目生效"
echo " [2] 项目级配置 (./CLAUDE.md) - 仅当前项目生效"
echo " [0] 跳过配置"
echo ""
echo "────────────────────────────────────────"
read -p "请选择 [0/1/2]: " choice
case $choice in
1)
# 用户级配置
CLAUDE_MD_PATH="$HOME/.claude/CLAUDE.md"
echo ""
echo "📄 写入用户级配置: $CLAUDE_MD_PATH"
# 创建目录(如果不存在)
mkdir -p "$(dirname "$CLAUDE_MD_PATH")"
# 检查文件是否已存在
if [ -f "$CLAUDE_MD_PATH" ]; then
# 检查是否已包含配置标记
if grep -q "## Codex 协作配置" "$CLAUDE_MD_PATH"; then
echo " ⚠ 检测到已存在 Codex 协作配置,跳过写入"
else
# 追加配置
echo "" >> "$CLAUDE_MD_PATH"
echo "$CLAUDE_MD_CONTENT" >> "$CLAUDE_MD_PATH"
echo " ✓ 配置已追加到文件末尾"
fi
else
# 创建新文件
cat > "$CLAUDE_MD_PATH" << 'EOF'
## 项目宪法遵循规则(最高优先级)
进入任何项目目录时,**必须首先**执行以下检查:
1. 检查项目根目录是否存在 `CLAUDE.md` 文件
2. 若存在,**完整阅读**该文件内容
3. 将其作为该项目的"宪法",严格遵循其中定义的所有规则
**优先级规则**
- 项目级 `CLAUDE.md` > 本全局配置
- 若规则冲突,以项目级为准
EOF
echo "$CLAUDE_MD_CONTENT" >> "$CLAUDE_MD_PATH"
echo " ✓ 已创建新配置文件"
fi
;;
2)
# 项目级配置
echo ""
read -p "请输入项目目录路径 (默认为当前目录): " project_dir
project_dir=${project_dir:-.}
# 转换为绝对路径
if [[ "$project_dir" = "." ]]; then
project_dir="$(pwd)"
elif [[ ! "$project_dir" = /* ]]; then
project_dir="$(pwd)/$project_dir"
fi
CLAUDE_MD_PATH="$project_dir/CLAUDE.md"
echo ""
echo "📄 写入项目级配置: $CLAUDE_MD_PATH"
# 检查目录是否存在
if [ ! -d "$project_dir" ]; then
echo " ✗ 错误: 目录不存在: $project_dir"
exit 1
fi
# 检查文件是否已存在
if [ -f "$CLAUDE_MD_PATH" ]; then
# 检查是否已包含配置标记
if grep -q "## Codex 协作配置" "$CLAUDE_MD_PATH"; then
echo " ⚠ 检测到已存在 Codex 协作配置,跳过写入"
else
# 追加配置
echo "" >> "$CLAUDE_MD_PATH"
echo "$CLAUDE_MD_CONTENT" >> "$CLAUDE_MD_PATH"
echo " ✓ 配置已追加到文件末尾"
fi
else
# 创建新文件
cat > "$CLAUDE_MD_PATH" << 'EOF'
## 项目宪法遵循规则(最高优先级)
进入任何项目目录时,**必须首先**执行以下检查:
1. 检查项目根目录是否存在 `CLAUDE.md` 文件
2. 若存在,**完整阅读**该文件内容
3. 将其作为该项目的"宪法",严格遵循其中定义的所有规则
**优先级规则**
- 项目级 `CLAUDE.md` > 用户级配置
- 若规则冲突,以项目级为准
EOF
echo "$CLAUDE_MD_CONTENT" >> "$CLAUDE_MD_PATH"
echo " ✓ 已创建新配置文件"
fi
;;
0)
echo ""
echo "⏭ 跳过配置"
;;
*)
echo ""
echo "⚠ 无效选择,跳过配置"
;;
esac
echo ""
echo "────────────────────────────────────────"
echo "🎉 安装完成!"
echo ""
echo "提示: 重启 Claude Code 以加载新的 skills"
echo "────────────────────────────────────────"