← ClaudeAtlas

repo-tidylisted

Prepare safe task branches/worktrees, preserve active or unverified work, and keep session working directories in sync. Use for new repository-changing tasks or requested cleanup; not for read-only audits, continued tasks, or status checks.
hanzhangzzz/agent-skills-zh · ★ 2 · AI & Automation · score 75
Install: claude install-skill hanzhangzzz/agent-skills-zh
# repo-tidy 把本地仓库恢复到「默认分支与远端一致、无可安全回收的遗留分支/worktree」的基线状态。默认分支优先读取 origin/HEAD,缺少该引用时才兼容 master/main。归位发生在**下一个任务开始时**(push 完 MR 未合,任务结束时无收尾时机)。 组件(脚本就地运行于 skill 目录,不复制副本): - `scripts/repo_tidy.py` —— 核心:tidy / `--all` / `--new` - `scripts/git-repo-status.sh` —— SessionStart hook:注入 `[repo-status]`(分支/ahead-behind/脏净)+ `[tasks]` 菜单(各 worktree 的分支与状态:已合并可回收 / 已推送 MR 待合 / 未推送 / 工作区脏),供判断续任务还是开新任务 - `scripts/session-cwd.sh` —— 把本 session 的 cwd 写到 `~/.claude/session-cwd/<iTerm 会话 id>`。用户的编辑器快捷键按前台标签页 id 读它,于是打开的永远是 AI 当前所在目录——**子进程改不了父 shell 的 cwd,所以不能靠 shell 的当前目录**。静默输出(挂在 SessionStart/UserPromptSubmit 上,stdout 会被注入上下文) - `scripts/worktree-fetch.sh` —— PreToolUse(EnterWorktree) 先 `fetch --prune`,保证新任务分支从最新的 origin/<默认分支> 切出 - `scripts/install.sh` —— 一键注册上面几个 hook 到 `~/.claude/settings.json`;幂等、改前备份、只增不删 - `scripts/editor-here.sh` —— 绑到编辑器快捷键:按前台标签页 id 读位置文件,打开 AI 当前所在目录;读不到再回退到终端路径 - `scripts/task-here.sh` —— 声明「本 session 当前在做哪个任务目录」,给运行中不能切 cwd 的 agent(Codex)用;Claude Code 不需要 - `tests/` —— `test_repo_tidy.sh`、`test_session_cwd.sh`、`test_install.sh`(另有 `scripts/test_git_repo_status.sh`),改脚本后必须跑 ## 安装 前置:`python3`、`git`、可写的 `~/.claude/`。缺任一项先停下说明,不带病安装。 私人配置(`settings.json` / `CLAUDE.md`)不进版本库,所以用脚本改——幂等、改前备份、只增不删,不碰用户已有的其它 hook: ```bash bash "$SKILL_DIR/scripts/install.sh" # 安装(可反复跑) bash "$SKILL_DIR/scripts/install.sh" status # 体检:依赖 / 核心层 / 增强层 / hook 注册 bash "$SKILL_DIR/scripts/install.sh" --uninstall # 只移除本 skill 注册的 hook ``` **Claude Code 与 Codex 都装