From auto-repo-setup
自动化代码库环境配置、故障诊断与修复。当非技术人员(剪辑、商务、运营)拿到仓库说"跑不起来"、"怎么启动"、"环境怎么配"、"帮我设置代码库"、"初始化项目"、"提交代码"、"冲突了怎么办"时,自动读取 ONBOARDING.md、诊断环境缺口、修复依赖、验证可运行,并安全地完成 git 操作。也用于技术用户快速标准化新仓库的 setup 流程(SessionStart hook、PII Guard、历史净化、项目隔离 API key)。 只要用户提到"环境"、"配置"、"跑不起来"、"setup"、"启动"、"clone 下来"、"怎么运行"、"依赖"、"装好了吗"、"提交代码"、"merge conflict"、"push 失败",就触发本 skill。
How this skill is triggered — by the user, by Claude, or both
Slash command
/auto-repo-setup:auto-repo-setup [仓库路径][仓库路径]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
本 skill 让 Claude Code 成为非技术用户的"环境医生":用户把仓库 clone 下来或打开项目后说"跑不起来",Claude 自动按标准流程诊断、修复、验证,无需用户理解底层技术细节。
本 skill 让 Claude Code 成为非技术用户的"环境医生":用户把仓库 clone 下来或打开项目后说"跑不起来",Claude 自动按标准流程诊断、修复、验证,无需用户理解底层技术细节。
同时,本 skill 也规范了技术用户搭建可移交仓库的标准动作(ONBOARDING.md、SessionStart hook、PII 安全)。
目标用户:
进入任何仓库后,第一件事是读取以下文件(按优先级):
ONBOARDING.md — 项目专属 setup 指南(如果存在)README.md — fallbackCLAUDE.md — 项目级规则(如果存在).claude/settings.json — 检查是否有 SessionStart hook如果 ONBOARDING.md 不存在:
逐条执行 ONBOARDING.md 中的 "Step X: 验证..." 或类似章节。每执行一条必须验证输出,不要假设成功。
常见检查项(根据项目类型取舍):
| 检查项 | 命令示例 | 失败处理 |
|---|---|---|
| git 状态 | git status / git remote -v | 提示用户配置 git identity |
| 系统依赖 | ffmpeg -version / which uv | 按 ONBOARDING.md 安装 |
| Python 环境 | uv --version / python --version | 用 uv 创建 venv |
| 项目依赖 | uv sync / uv pip install -e . | 读取 pyproject.toml |
| 模型/二进制 | ls models/ / whisper.cpp/whisper-cli -h | 按文档下载/编译 |
| 环境变量 | cat .env 检查 key 是否存在 | 指导用户填入或生成 |
注意:
uv 管理 Python,禁止用系统自带 Python调试先根因后 workaround(铁律):
禁止:
rm -rf 清理(必须分析文件用途、用户确认、创建备份)|| true、空的 except 块)修复后必须验证:
uv run pytest(最小集合)用简洁的非技术语言告诉用户:
任何 git push 之前,必须验证仓库真实可见性:
gh repo view <owner>/<repo> --json visibility,isPrivate,stargazerCount,forkCount
gh pr create)isPrivate: truepublic repo(多层扫描):
private repo:
.env 可直接提交(项目隔离的 API key)/Users/<name>/)Git Hook Bypass 禁令:
--no-verify / --no-gpg-sign--no-verify当系统无法确定一个值(从外部系统获取的关键字段),必须 fail-fast:
# ❌ 禁止
apiKey: process.env.KIMI_API_KEY || 'sk-kimi-...'
# ✅ 正确
import os
api_key = os.environ["KIMI_API_KEY"] # KeyError if missing
"your-key-here")只能在 .env.example 里,永不进真实代码.env 没加载会发生什么?能看见明文吗?可移交仓库必须包含 ONBOARDING.md,结构:
# 项目名 Setup 指南
## Step 1: 验证系统依赖
- [ ] git 已安装
- [ ] ffmpeg 已安装(`ffmpeg -version`)
- [ ] uv 已安装(`uv --version`)
## Step 2: 初始化 Python 环境
```bash
uv sync
uv run pytest tests/test_smoke.py -v
复制 .env 中的占位符为真实值(private repo 可直接编辑提交)
[具体命令]
**要求**:
- 所有命令可直接复制执行(无个人路径、无假设)
- 使用相对路径或占位符(`<REPO_ROOT>`)
- 包含"验证"步骤,不只是"安装"步骤
### SessionStart Hook 模式
让 Claude Code 打开仓库时自动检查环境:
**`.claude/settings.json`**:
```json
{
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": ".claude/hooks/session-start-check.sh"
}
]
}
]
}
}
.claude/hooks/session-start-check.sh:
#!/usr/bin/env bash
CACHE_DIR="$HOME/.claude/cache/env-check"
mkdir -p "$CACHE_DIR"
REPO_HASH=$(cd "$(dirname "$0")/../.." && pwd | sha256sum | cut -d' ' -f1)
CACHE_FILE="$CACHE_DIR/$REPO_HASH"
if [ -f "$CACHE_FILE" ] && [ "$(find "$CACHE_FILE" -mtime -1 2>/dev/null)" ]; then
exit 0
fi
touch "$CACHE_FILE"
echo "【环境自检】你刚刚进入 [项目名] 仓库。请在执行任何任务前,先阅读 ONBOARDING.md 并按 Step 1-3 验证环境。"
一键初始化脚本:
Skill 自带 scripts/init_session_start_hook.py,可为任意项目自动生成配置:
# 基础用法(自动推断项目名,默认读取 ONBOARDING.md)
python scripts/init_session_start_hook.py --repo /path/to/project
# 完整用法
python scripts/init_session_start_hook.py \
--repo /path/to/project \
--guide ONBOARDING.md \
--update-gitignore
脚本行为:
.claude/settings.json(SessionStart hook 配置).claude/hooks/session-start-check.sh(24h 缓存 + 自检提示)--update-gitignore 时追加规则,允许 .claude/settings.json 和 hooks/ 入 git--force-overwrite 覆盖)设计原则:
当需要创建新文件、修改核心配置、添加外部依赖、修改 CI/CD、变更安全策略时,启动多 agent 审查:
并行启动 4 个 lens(各一个 subagent):
Judge agent 过滤:
给用户分类汇报:✅ 真问题 / ⚠️ 部分对 / ❌ 虚构 / 🚫 反而有害
用户说"帮我提交"或"保存一下"时:
git status 看改动git diff 确认改动内容(向用户解释改了什么)git add(选择性,不要无脑 git add .)git commit -m "..."
Co-Authored-By: Claude <[email protected]>git push 前走 Push Safety 验证用户说"冲突了"时:
git status 定位冲突文件<<<<<<< / ======= / >>>>>>> 区块git add + git commit如果仓库历史中存在敏感信息(个人路径、secret、内部域名):
git checkout --orphan new-history
git add -A
git commit -m "Initial commit: sanitized history"
git push --force origin new-history:main
每个项目使用独立的 API key,禁止复用个人/生产 key:
.env 中只放项目专属 keyvideo-rough-cut-dev)仓库中禁止出现:
/Users/<name>/、/home/<name>/)<private-domain>.dev、<private-domain>.pro 等)清理方法:
<REPO_ROOT>、<USER_HOME>、<YOUR_NAME>).env 或配置文件存储环境相关值~/.local/bin 是否在 PATHcurl -LsSf https://astral.sh/uv/install.sh | shbrew install ffmpegffmpeg-fullxcode-select --install.env 是否配置了必要的 API key完成环境配置和基础修复后,建议的自然下一步:
Options: A) 运行 Counter-Review — 如果用户准备做较大改动,启动多 agent 安全审查(Recommended) B) 生成操作文档 — 为用户生成简洁的操作指南(下一步该点什么/运行什么) C) No thanks — 当前状态已足够,用户可以直接开始使用
git_safety.md — Git 操作安全细则(Push Safety、Hook Bypass、历史净化)pii_guard.md — PII Guard 规则摘要与应急处理onboarding_template.md — ONBOARDING.md 标准模板check_env.py — 环境检查脚本(ffmpeg、uv、python、git 状态)sanitize_history.sh — 历史净化辅助脚本(检查敏感信息、生成 orphan branch)npx claudepluginhub majuniores/claude-code-skills --plugin auto-repo-setupCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.