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>
This commit is contained in:
168
install.ps1
168
install.ps1
@@ -7,6 +7,42 @@ $RepoUrl = "https://git.let5see.xyz/let5see/skills.git"
|
||||
$TempDir = Join-Path $env:TEMP "skills-install-$(Get-Random)"
|
||||
$SkillsDir = Join-Path $env:USERPROFILE ".claude\skills"
|
||||
|
||||
$ClaudeMdContent = @"
|
||||
## Codex 协作配置
|
||||
|
||||
本项目使用 `codex-collab` skill 进行 Codex CLI 协作。
|
||||
|
||||
### 快速安装
|
||||
|
||||
```powershell
|
||||
irm https://git.let5see.xyz/let5see/skills/raw/main/install.ps1 | iex
|
||||
```
|
||||
|
||||
### 核心原则
|
||||
|
||||
**指导原则**:
|
||||
- Codex 是协作伙伴,而非唯一真理来源
|
||||
- 必须有独立思考,对 Codex 的建议保持批判性审视
|
||||
- 通过辩论和讨论达成最优方案
|
||||
|
||||
**职责分工**:
|
||||
- **Claude Code**:代码编写、文档编写、简单任务直接执行
|
||||
- **Codex**:代码查找定位、逻辑梳理、代码审查、方案设计、问题诊断
|
||||
|
||||
**关键规范**:
|
||||
- 查找/搜索任务 → 必须调用 Codex
|
||||
- 方案设计阶段 → 使用 `sandbox="read-only"`
|
||||
- 代码实现 → Claude Code 基于方案重写生产级代码
|
||||
- 完成编码后 → 立即让 Codex 审查
|
||||
|
||||
### 详细文档
|
||||
|
||||
参考:`$env:USERPROFILE\.claude\skills\codex-collab\SKILL.md`
|
||||
或在线查看:https://git.let5see.xyz/let5see/skills
|
||||
|
||||
---
|
||||
"@
|
||||
|
||||
Write-Host "🚀 正在安装 Claude Code Skills..." -ForegroundColor Green
|
||||
Write-Host ""
|
||||
|
||||
@@ -66,7 +102,7 @@ foreach ($skillDir in $skillDirs) {
|
||||
Remove-Item -Recurse -Force $TempDir
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "✅ 安装完成!" -ForegroundColor Green
|
||||
Write-Host "✅ Skills 安装完成!" -ForegroundColor Green
|
||||
Write-Host ""
|
||||
Write-Host "已安装 $installedCount 个 skills:" -ForegroundColor Cyan
|
||||
|
||||
@@ -74,5 +110,135 @@ Get-ChildItem -Path $SkillsDir -Directory | ForEach-Object {
|
||||
Write-Host " - $($_.Name)" -ForegroundColor White
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "────────────────────────────────────────" -ForegroundColor Cyan
|
||||
Write-Host "📝 是否要配置 Codex 协作规则到 CLAUDE.md?" -ForegroundColor Yellow
|
||||
Write-Host ""
|
||||
Write-Host "这将帮助 Claude Code 更好地与 Codex 协作。" -ForegroundColor Gray
|
||||
Write-Host "不会被覆盖现有内容,只会追加配置。" -ForegroundColor Gray
|
||||
Write-Host ""
|
||||
Write-Host " [1] 用户级配置 (~/.claude/CLAUDE.md) - 所有项目生效" -ForegroundColor White
|
||||
Write-Host " [2] 项目级配置 (./CLAUDE.md) - 仅当前项目生效" -ForegroundColor White
|
||||
Write-Host " [0] 跳过配置" -ForegroundColor White
|
||||
Write-Host ""
|
||||
Write-Host "────────────────────────────────────────" -ForegroundColor Cyan
|
||||
|
||||
$choice = Read-Host "请选择 [0/1/2]"
|
||||
|
||||
switch ($choice) {
|
||||
"1" {
|
||||
# 用户级配置
|
||||
$ClaudeMdPath = Join-Path $env:USERPROFILE ".claude\CLAUDE.md"
|
||||
Write-Host ""
|
||||
Write-Host "📄 写入用户级配置: $ClaudeMdPath" -ForegroundColor Cyan
|
||||
|
||||
# 创建目录(如果不存在)
|
||||
$claudeDir = Split-Path $ClaudeMdPath -Parent
|
||||
if (-not (Test-Path $claudeDir)) {
|
||||
New-Item -ItemType Directory -Path $claudeDir -Force | Out-Null
|
||||
}
|
||||
|
||||
# 检查文件是否已存在
|
||||
if (Test-Path $ClaudeMdPath) {
|
||||
# 检查是否已包含配置标记
|
||||
$content = Get-Content $ClaudeMdPath -Raw
|
||||
if ($content -match "## Codex 协作配置") {
|
||||
Write-Host " ⚠ 检测到已存在 Codex 协作配置,跳过写入" -ForegroundColor Yellow
|
||||
} else {
|
||||
# 追加配置
|
||||
Add-Content -Path $ClaudeMdPath -Value "`n$ClaudeMdContent"
|
||||
Write-Host " ✓ 配置已追加到文件末尾" -ForegroundColor Green
|
||||
}
|
||||
} else {
|
||||
# 创建新文件
|
||||
$projectConstitution = @"
|
||||
## 项目宪法遵循规则(最高优先级)
|
||||
|
||||
进入任何项目目录时,**必须首先**执行以下检查:
|
||||
|
||||
1. 检查项目根目录是否存在 `CLAUDE.md` 文件
|
||||
2. 若存在,**完整阅读**该文件内容
|
||||
3. 将其作为该项目的"宪法",严格遵循其中定义的所有规则
|
||||
|
||||
**优先级规则**:
|
||||
- 项目级 `CLAUDE.md` > 本全局配置
|
||||
- 若规则冲突,以项目级为准
|
||||
|
||||
"@
|
||||
Set-Content -Path $ClaudeMdPath -Value "$projectConstitution`n$ClaudeMdContent"
|
||||
Write-Host " ✓ 已创建新配置文件" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
"2" {
|
||||
# 项目级配置
|
||||
Write-Host ""
|
||||
$projectDirInput = Read-Host "请输入项目目录路径 (默认为当前目录)"
|
||||
$projectDir = if ([string]::IsNullOrWhiteSpace($projectDirInput)) {
|
||||
Get-Location
|
||||
} else {
|
||||
$projectDirInput
|
||||
}
|
||||
|
||||
# 转换为绝对路径
|
||||
$projectDir = (Resolve-Path $projectDir).Path
|
||||
$ClaudeMdPath = Join-Path $projectDir "CLAUDE.md"
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "📄 写入项目级配置: $ClaudeMdPath" -ForegroundColor Cyan
|
||||
|
||||
# 检查目录是否存在
|
||||
if (-not (Test-Path $projectDir)) {
|
||||
Write-Host " ✗ 错误: 目录不存在: $projectDir" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 检查文件是否已存在
|
||||
if (Test-Path $ClaudeMdPath) {
|
||||
# 检查是否已包含配置标记
|
||||
$content = Get-Content $ClaudeMdPath -Raw
|
||||
if ($content -match "## Codex 协作配置") {
|
||||
Write-Host " ⚠ 检测到已存在 Codex 协作配置,跳过写入" -ForegroundColor Yellow
|
||||
} else {
|
||||
# 追加配置
|
||||
Add-Content -Path $ClaudeMdPath -Value "`n$ClaudeMdContent"
|
||||
Write-Host " ✓ 配置已追加到文件末尾" -ForegroundColor Green
|
||||
}
|
||||
} else {
|
||||
# 创建新文件
|
||||
$projectConstitution = @"
|
||||
## 项目宪法遵循规则(最高优先级)
|
||||
|
||||
进入任何项目目录时,**必须首先**执行以下检查:
|
||||
|
||||
1. 检查项目根目录是否存在 `CLAUDE.md` 文件
|
||||
2. 若存在,**完整阅读**该文件内容
|
||||
3. 将其作为该项目的"宪法",严格遵循其中定义的所有规则
|
||||
|
||||
**优先级规则**:
|
||||
- 项目级 `CLAUDE.md` > 用户级配置
|
||||
- 若规则冲突,以项目级为准
|
||||
|
||||
"@
|
||||
Set-Content -Path $ClaudeMdPath -Value "$projectConstitution`n$ClaudeMdContent"
|
||||
Write-Host " ✓ 已创建新配置文件" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
"0" {
|
||||
Write-Host ""
|
||||
Write-Host "⏭ 跳过配置" -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
default {
|
||||
Write-Host ""
|
||||
Write-Host "⚠ 无效选择,跳过配置" -ForegroundColor Yellow
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "────────────────────────────────────────" -ForegroundColor Cyan
|
||||
Write-Host "🎉 安装完成!" -ForegroundColor Green
|
||||
Write-Host ""
|
||||
Write-Host "提示: 重启 Claude Code 以加载新的 skills" -ForegroundColor Yellow
|
||||
Write-Host "────────────────────────────────────────" -ForegroundColor Cyan
|
||||
|
||||
167
install.sh
167
install.sh
@@ -8,13 +8,48 @@ 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
|
||||
git clone "$REPO_URL" "$TEMP_DIR" --depth 1 --quiet
|
||||
|
||||
# 确保 skills 目录存在
|
||||
mkdir -p "$SKILLS_DIR"
|
||||
@@ -37,9 +72,137 @@ done
|
||||
rm -rf "$TEMP_DIR"
|
||||
|
||||
echo ""
|
||||
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 "────────────────────────────────────────"
|
||||
|
||||
Reference in New Issue
Block a user