os-control-worktree · git:20261015.fe76d7e · 2026-10-15 · sha256 dd5700aa7d4ed99b

os-control-worktree git:20261015.fe76d7eA

Immutable. This exact content never changes and is served at /api/v1/blob/dd5700aa7d4ed99b.

---
name: os-control-worktree
plugin: agent-agentic-os
description: >
  Selects confirmed native worktree facilities or the governed portable
  repository worktree fallback, validates placement, and reports cleanup guidance.
allowed-tools: Bash, Read
---

# Worktree Manager

Selects confirmed native worktree facilities or the governed portable repository worktree fallback, validates placement, and reports cleanup guidance.

## Contents

- [Critical Constraints](#critical-constraints)
- [Quick start](#quick-start)
- [Workflow](#workflow)
- [Verification](#verification)
- [References](#references)

## Critical Constraints

1. **Origin Base Invariant**: Before creating any worktree, run `git fetch origin main` and base new branches on `origin/main` — never on local `main`.
2. **Path Confinement**: Portable worktrees must reside strictly below `<repo>/.worktrees/<task-id>`.
3. **Governance Equivalence**: Native worktree execution is an implementation facility, not a governance bypass. Both native and portable execution require identical approval, verification, and review gates.
4. **Reconciliation & Concurrency**: Never assume pre-worktree dirty state or concurrent branches carry over automatically. `APPROVED -> IN_WORKTREE` requires deterministic reconciliation (`main_worktree_reconciliation`). Rebase onto fresh `origin/main` immediately before merging.

## Quick start

Probe the active runtime to determine available worktree facilities:

```bash
python3 scripts/capability_probe.py
```

## Workflow

1. **Probe Runtime**: Run `capability_probe.py` and treat returned capability as authoritative. Never infer native support from model name or binary presence.
2. **Select Facility**:
   - If `native_worktree` is true: follow returned activation guidance and retain task control-plane gates.
   - If portable fallback: generate execution plan via `scripts/worktree_manager.py` and delegate lifecycle management to `issue-worktree-agent`.
3. **Reconcile Base & State**: Fetch `origin/main` and verify base commit. If migrating uncommitted edits, run deterministic reconciliation.
4. **Report & Activate**: Report selected strategy, exact path, branch, activation guidance, and cleanup commands before mutating repository.

## Verification

1. Confirm worktree directory path matches `<repo>/.worktrees/<task-id>`.
2. Verify branch HEAD is derived directly from `origin/main`.
3. Inspect `git status` inside worktree to confirm reconciliation succeeded without uncommitted file collisions.

## References

- [worktree-reconciliation-and-multi-worktree-practices.md](references/worktree-reconciliation-and-multi-worktree-practices.md) — Read when handling dirty working trees, rebase conflicts, or concurrent worktrees.
- [acceptance-criteria.md](references/acceptance-criteria.md) — Acceptance gates and readiness checks.
- [fallback-tree.md](references/fallback-tree.md) — Recovery procedures when worktree creation fails.