← ClaudeAtlas

worktree-disciplinelisted

cc-master 仓库自用的 git worktree 隔离纪律——Solo(单任务单 worktree)与 Fan-out(多 worktree 并行)两种操作模式 + 一组防止并行开发污染 main checkout 或彼此的红线。何时用 / Use when:(1) 开始一段需要与 main checkout 隔离的实现工作、动第一次文件编辑之前;(2) 把并行实现 fan-out 到多个 worktree;(3) 决定这场并行怎么收口(各自 feature-branch PR vs HUB 集成分支合并回);(4) 一次 merge / PR 落地后的清理墙、开下一个 PR 之前;(5) 给一个将在 worktree 内工作的 sub-agent 写派发 prompt;(6) 作为 master orchestrator dogfood 本仓、fan-out 后台 worker 之前先立起隔离拓扑。Triggers: worktree、隔离、fan-out、并行改文件、cd 进哪个树、main 被污染、清理残留 worktree、spoke 该不该 commit。Do NOT use when:把目标切成任务 DAG / 排 wave(那是 slicing-goals-into-dags + master-orchestrator-guide 的 decomposition),worktree 内的 TDD / 测量循环(dev-as-ml-loop / engineering-with-craft),或 PR 创建与 merge 机制(AGENTS.md §11 的 gh 手工流——本仓没有 github-pr skill)。
nemori-ai/cc-master · ★ 7 · AI & Automation · score 61
Install: claude install-skill nemori-ai/cc-master
# cc-master 的 worktree 隔离纪律 > **这是项目自用的 dev skill,不随插件分发。** 它住 `.claude/skills/`(cc-master 自己的贡献者 / dogfood 本仓的 orchestrator 用),不��� `plugin/src/skills/`(那才会 ship 给插件用户)。终端用户装 cc-master 看不到它;它只为「在本仓里安全地并行开发」存在。 worktree 是 cc-master 的并行开发**要么干净地汇成一次集成、要么悄悄污染 main checkout** 的分界点。这个 skill 承载两种操作模式——**Solo**(一个任务、一个 worktree)与 **Fan-out**(多个 worktree 并行推进一场 campaign)——以及一组红线。红线才是重点;模式只是红线适用的地形。 **cc-master 与通用 worktree 教条有一处关键背离,先记住**:cc-master 是 **single-committer**(AGENTS.md §11)——sub-agent / spoke worker 只写文件 + 自证测试绿、**绝不 commit**,由 orchestrator 端点验收后统一分组 commit。这与「你在自己的 worktree 里 commit 是安全的」这条到处流传的说法**相反**。隔离买到的是**并行改文件不互撞**,不是**commit 权**。这条见下面红线 6,是本仓移植这套纪律时最容易被合理化掉的一条。 ## 本仓约定(固定,不是选择) | 约定 | 取值 | |---|---| | 位置 | **仓库外的兄弟目录**——本仓惯例 `/data/qiwei/repos/cc-master-wt/<语义名>`(与 checkout 同级),或一个专用外部 worktrees 目录(如 `/data/qiwei/worktrees/cc-master-<名>`)。**绝不放进 repo 树内**(如 `.claude/worktrees/`)——放外部天然不入版本控制、不污染 `git status`,无需 gitignore | | 命名 | 语义化的 campaign / 任务名(`ddl`、`kimi`、`cursor-auth`);同一 campaign 的 spoke 共享前缀(`kimi-*`) | | main checkout | **永远停在 `main`。** feature 分支只活在 worktree 里 | | 依赖装配 | 只碰 plugin(bash/JS)→ 无需 build / 装依赖,直接编辑。碰 `ccm/`(pnpm/Turborepo TS)→ 在**这棵 worktree 里** `pnpm -C ccm install`(`ccm/**/node_modules` gitignored、**每棵树各一份**,不会从 main 继承) | | `git stash` | 到处都禁用——worktree 的存在就是让你永远不需要它 | ## 第 0 步 —— 先读清你站在哪 创建任何东西之前,先判断自己的位置: ```bash git rev-parse --git-dir --git-common-dir # 两者不同 → 你在一个 linked worktree 里 git branch --show-current ``` 三种位置,三种不