diff --git a/agentydragon/README.md b/agentydragon/README.md index 57cd416442..2966b0d56e 100644 --- a/agentydragon/README.md +++ b/agentydragon/README.md @@ -22,6 +22,13 @@ This file documents the changes introduced on the `agentydragon` branch Tasks live under `agentydragon/tasks/` as individual Markdown files. Please update each task’s **Status** and **Implementation** sections in place rather than maintaining a static list here. +### Branch & Worktree Workflow + +- **Branch convention**: work on each task in its own branch named `agentydragon/-`. +- **Worktree helper**: run `create-task-worktree.sh -` + in `agentydragon/tasks/` to create or reuse a worktree at + `agentydragon/tasks/.worktrees/-` off the `master` branch. + --- *This README was autogenerated to summarize changes on the `agentydragon` branch.* \ No newline at end of file diff --git a/agentydragon/tasks/create-task-worktree.sh b/agentydragon/tasks/create-task-worktree.sh new file mode 100755 index 0000000000..8d82d9f99b --- /dev/null +++ b/agentydragon/tasks/create-task-worktree.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +# +# create-task-worktree.sh +# +# Create or reuse a git worktree for a specific task branch under agentydragon/tasks/.worktrees. +# Usage: create-task-worktree.sh - + +set -euo pipefail + +if [ "$#" -ne 1 ]; then + echo "Usage: $0 -" + exit 1 +fi + +task_slug="$1" +branch="agentydragon/$task_slug" + +# Determine repository root +repo_root=$(git rev-parse --show-toplevel) + +tasks_dir="$repo_root/agentydragon/tasks" +worktrees_dir="$tasks_dir/.worktrees" +worktree_path="$worktrees_dir/$task_slug" + +mkdir -p "$worktrees_dir" + +# Create branch if it does not exist +if ! git show-ref --verify --quiet "refs/heads/$branch"; then + echo "Creating branch $branch from master..." + git branch --track "$branch" master +fi + +# Create worktree if it does not exist +if [ ! -d "$worktree_path" ]; then + echo "Creating worktree for $branch at $worktree_path" + git worktree add "$worktree_path" "$branch" +else + echo "Worktree for $branch already exists at $worktree_path" +fi + +echo "Done." \ No newline at end of file