Playbook 07: a feature worktree needs the siblings the lab reads
A bed run from .work/<slug>/mesh-lab derives mesh-tools and mesh-sdk by sibling path and fails at once when the directory holds only the touched repos. Detached worktrees on main, never symlinks.
This commit is contained in:
@@ -28,6 +28,16 @@ One feature is **one branch name**, **one worktree per repo**, **one MR per repo
|
|||||||
git worktree add .work/<slug>/<repo> -b feat/<slug> origin/main
|
git worktree add .work/<slug>/<repo> -b feat/<slug> origin/main
|
||||||
```
|
```
|
||||||
Parallel features never collide, and no shared checkout is edited.
|
Parallel features never collide, and no shared checkout is edited.
|
||||||
|
|
||||||
|
**Add the untouched siblings the lab reads.** The lab beds find the other repositories by
|
||||||
|
sibling path from the lab checkout (`../mesh-tools/module.json`, `../mesh-sdk`, …), the way
|
||||||
|
the main layout has them. A `.work/<slug>/` directory holding only the touched repos fails a
|
||||||
|
bed at once with `no manifest for mesh-tools at …/.work/<slug>/mesh-tools/module.json`, after
|
||||||
|
genesis has already passed. Give the directory those repos as **detached worktrees on `main`**
|
||||||
|
— never symlinks:
|
||||||
|
```
|
||||||
|
git worktree add --detach .work/<slug>/mesh-tools main
|
||||||
|
```
|
||||||
3. **Commit as you go — locally.** Increments land on the one branch. Nothing is pushed and no
|
3. **Commit as you go — locally.** Increments land on the one branch. Nothing is pushed and no
|
||||||
MR is opened mid-feature.
|
MR is opened mid-feature.
|
||||||
4. **Finish, then publish.** When the whole feature is done — every repo, tests green — push
|
4. **Finish, then publish.** When the whole feature is done — every repo, tests green — push
|
||||||
@@ -52,6 +62,8 @@ The end state is visible, and its absence is the smell:
|
|||||||
|
|
||||||
- After a feature merges, `git branch -r | grep feat/<slug>` and `git worktree list` return
|
- After a feature merges, `git branch -r | grep feat/<slug>` and `git worktree list` return
|
||||||
nothing for it. A surviving branch or worktree means step 6 was skipped.
|
nothing for it. A surviving branch or worktree means step 6 was skipped.
|
||||||
|
- A bed run from `.work/<slug>/mesh-lab` that fails naming a `.work/<slug>/<repo>/…` path it
|
||||||
|
cannot find is a missing sibling worktree, not a mesh fault.
|
||||||
- More than one open MR in a repo that share no feature name, or a stack of MRs none of which is
|
- More than one open MR in a repo that share no feature name, or a stack of MRs none of which is
|
||||||
merged, is the failure this playbook exists to prevent — stop and consolidate before opening
|
merged, is the failure this playbook exists to prevent — stop and consolidate before opening
|
||||||
more.
|
more.
|
||||||
|
|||||||
Reference in New Issue
Block a user