Herdr
Herdr owns worktrees and panes. Harbour owns the Laravel environment inside each checkout. Harbour can read a project herd.yml during installation but has no runtime dependency on Herdr.
After Herdr creates or opens a worktree:
composer install --no-interaction
composer workspace:setup
If the project uses Herd services, workspace:install detects their declared ports and configures native Laravel processes to connect through loopback. It does not run herd init, start a service, or rewrite herd.yml.
Before removing the worktree:
composer workspace:teardown -- --force
herdr worktree remove
Current built-in Herdr worktree commands do not provide a teardown-before-delete hook. Teams using the optional community worktree-hooks plugin may configure idempotent setup:
[default]
created = ["composer install --no-interaction", "composer workspace:setup"]
opened = ["test -f .harbour.json || composer workspace:setup"]
Do not place Harbour teardown in an after-removal hook; by then the state file needed for ownership verification is gone.