From lets
This skill should be used when claiming a task to work on - "take task", "візьми таск", "працюю над", "work on task X", "pick task X", "switch to task X", "claim task". Sets task to in_progress, creates/switches branch, saves session start ref.
How this skill is triggered — by the user, by Claude, or both
Slash command
/lets:take-taskThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Claim a beads task and prepare the working environment.
Claim a beads task and prepare the working environment.
IMPORTANT: If the spec below invokes any deferred tool (e.g.
AskUserQuestion), you MUST load and call it as specified. Never skip the call, never substitute a default answer of your own — the tool invocation is part of the contract. This is critical.
Multiple flows need "claim task + prepare branch": /lets:start, mid-session task switch, direct "візьми таск X". Centralizing ensures consistent branch naming, worktree handling, and session ref saving.
bd show <task-id>
Verify task exists. Then claim it:
bd update <task-id> --status=in_progress
Before switching branches, check for uncommitted changes:
git status --short
If changes exist and branch switch is needed, ask user:
AskUserQuestion(
questions=[{
question: "Uncommitted changes on current branch. What to do?",
header: "LETS",
options: [
{ label: "Stash", description: "git stash, switch branch, remind to pop later" },
{ label: "Commit first", description: "Commit changes, then switch branch" },
{ label: "Stay", description: "Skip branch switch - work on current branch" }
],
multiSelect: false
}]
)
Handle response:
git stash, proceed with branch switch, remind to git stash pop laterIf staying on current branch (worktree, already correct) or no changes - skip this step.
GIT_DIR=$(git rev-parse --git-dir 2>/dev/null)
If in a worktree ($GIT_DIR contains worktrees/):
worktree-<task-id>-<slug><prefix>-<alphanum>[.<number>]bd showIf in main repo ($GIT_DIR is .git):
Branch naming: feature/<task-id>-<slugified-title>
Slug rules: lowercase, spaces to hyphens, remove special chars, max 50 chars.
Examples: feature/proj-ch15-fix-proxy-config, feature/proj-ch5-add-mobile-api
Check current state:
git checkout <branch>AskUserQuestion(
questions=[{
question: "How do you want to work on this task?",
header: "LETS",
options: [
{ label: "Branch (Recommended)", description: "Regular feature branch in current repo" },
{ label: "Worktree", description: "Separate directory for parallel work in another terminal" }
],
multiSelect: false
}]
)
Handle response:
git checkout -b <branch> {LETS_MERGE_BRANCH} (from LETS Config)/lets:worktree create <task-id>-<slug>, then inform:
"Worktree created. Open a new terminal and run:"
cd {absolute-worktree-path} && claude
"Then use /lets:start to pick a task."
Stop here - the worktree session continues in a separate terminal.LETS_PROJECT_ROOT=$(git rev-parse --show-toplevel)
BRANCH=$(git branch --show-current)
BRANCH_SLUG=$(echo "$BRANCH" | tr '/' '-')
mkdir -p "$LETS_PROJECT_ROOT/.lets/sessions"
git rev-parse HEAD > "$LETS_PROJECT_ROOT/.lets/sessions/.session-start-ref-${BRANCH_SLUG}"
If the branch already existed (continuing a multi-session task):
bd show <task-id>
bd comments <task-id>
Read the full description and ALL comments — they hold the multi-session context. Present: "Resuming {task title} ({task-id}). Last session: {summary from latest beads comment}"
When triggered standalone (not via /lets:start):
Task claimed: **{task title}** (`{task-id}`)
Branch: {branch-name}
┌─ LETS ────────────────────────┐
│ Plan? /lets:plan │
│ Check? /lets:check │
└───────────────────────────────┘
When invoked by /lets:start - skip this output, the command has its own.
bd update --status=in_progressUser-facing skill. Auto-triggers on "take task X", "візьми таск". Primary consumer: /lets:start.
See: grep -r "take-task" commands/ for command references.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub restarter/lets-workflow --plugin lets