---
name: worktree-aware
description: >
  Use when working in a git worktree checkout for a parallel agent task.
  The presence of an .agent-task file in the current working directory indicates
  a task worktree (NOT the main checkout). Encodes branch hygiene: commit only
  to the assigned task branch, NEVER push origin master, NEVER touch the main
  checkout at ~/homelab-codex-ws, NEVER manage worktrees yourself. On task
  completion, report the branch name verbatim and stop — the human merges via
  scripts/dev/agent.sh.
---

## When this applies

- `.agent-task` present in your `cwd` → you are in a task worktree. Apply all rules below.
- `.agent-task` absent → you are in the main checkout. Do NOT treat yourself as a task agent.
  In the main checkout these rules do not apply.

## Reading the marker

`.agent-task` is a YAML file. Your assigned branch is the value of the `branch:` key, e.g.:

```yaml
task: my-feature
branch: task/my-feature
parent_commit: abc1234
created_utc: 2026-06-03T10:00:00Z
worktree_path: /home/oskar/homelab-codex-ws-my-feature
```

Always read this file first before taking any action.

## Rules

1. **Commit only to your branch.**
   Before any `git commit`, run `git status` and confirm it says `On branch task/<name>`.
   If it does not, stop immediately and report the discrepancy.

2. **Push only to your branch.**
   The only permitted push is `git push origin task/<name>`.
   NEVER `git push origin master` or any other branch.

3. **Do not touch the main checkout.**
   `~/homelab-codex-ws/` is the main checkout — deploy-only, owned by the human.
   Do not read from, write to, or execute commands inside it.

4. **Stay scoped.**
   Only change files directly related to your assigned task.
   If you notice other problems, report them in your final summary as separate follow-up proposals.
   Do not fix them in this worktree.

5. **Never `git add -A`.**
   Always stage specific files by name: `git add path/to/file`.

6. **Do not manage worktrees.**
   Never run `git worktree add/remove` or invoke `scripts/dev/agent.sh`.
   Worktree lifecycle is the human's responsibility.

7. **Final report before stopping.**
   When the task is done, provide a structured report containing:
   - Files changed (path and one-line summary of change)
   - Tests run and results
   - All commit hashes on the task branch
   - **Branch name verbatim** (copy-paste ready)
   - Follow-up items as bulleted proposals for separate tasks

## Definition of Done

- All commits are on `task/<name>` (verify with `git log --oneline master..task/<name>`)
- Test suite passes
- Branch pushed: `git push origin task/<name>`
- Full report delivered in conversation

## What you do NOT do

- Merge branches
- Create or push tags
- Run deploys or healthchecks against production nodes
- Delete branches or worktrees
- Modify files in other worktrees
- Push to `origin master` under any circumstances
