From 12dced2d53dca76930f557103ccc1977af82966a Mon Sep 17 00:00:00 2001 From: "Rai (Michael Pokorny)" Date: Tue, 24 Jun 2025 13:41:53 -0700 Subject: [PATCH] tasks: allow numeric ID only resolving to full slug --- agentydragon/README.md | 3 ++- agentydragon/tasks/create-task-worktree.sh | 22 ++++++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/agentydragon/README.md b/agentydragon/README.md index 953cd5ccd3..9a6b196aca 100644 --- a/agentydragon/README.md +++ b/agentydragon/README.md @@ -28,7 +28,8 @@ Tasks live under `agentydragon/tasks/` as individual Markdown files. Please upda - **Worktree helper**: in `agentydragon/tasks/`, run: - - ```sh -- create-task-worktree.sh [--agent] - +- # Accept either a full slug (NN-slug) or just the two-digit task ID: +- create-task-worktree.sh [--agent] - ``` - - Without `--agent`, this creates or reuses a worktree at diff --git a/agentydragon/tasks/create-task-worktree.sh b/agentydragon/tasks/create-task-worktree.sh index a6bb7a2f68..40d6bb363d 100755 --- a/agentydragon/tasks/create-task-worktree.sh +++ b/agentydragon/tasks/create-task-worktree.sh @@ -30,13 +30,27 @@ if [ "$#" -ne 1 ]; then exit 1 fi -task_slug="$1" -branch="agentydragon/$task_slug" +# Capture raw input so we can accept just a two-digit task ID +task_input="$1" -# Determine repository root +# Determine repository root and tasks directory repo_root=$(git rev-parse --show-toplevel) - tasks_dir="$repo_root/agentydragon/tasks" + +# If given only a two-digit ID, resolve to the full task slug +if [[ "$task_input" =~ ^[0-9]{2}$ ]]; then + matches=( "$tasks_dir/${task_input}-"*.md ) + if [ "${#matches[@]}" -eq 1 ]; then + task_slug="$(basename "${matches[0]}" .md)" + echo "Resolved task ID '$task_input' to slug '$task_slug'" + else + echo "Error: expected exactly one task file matching '${task_input}-*.md', found ${#matches[@]}" >&2 + exit 1 + fi +else + task_slug="$task_input" +fi +branch="agentydragon/$task_slug" worktrees_dir="$tasks_dir/.worktrees" worktree_path="$worktrees_dir/$task_slug"