picking-up-task
Skill1 starsChanged 5 months agoMITView on GitHub
Use when the user wants to start a new task — accepts a Jira ticket URL, Jira key, or local ticket file path. Triggers on "start task", "begin PROJ-42", "set up a branch for", "start working on PROJ-42".
In this repository10 other files it gives its agents.
- crafting-commitsSkill
- fetching-ticketsSkill
- generating-tasksSkill
- implementing-tasksSkill
- planning-from-specSkill
- receiving-plan-reviewSkill
- reviewing-codeSkill
- reviewing-planSkill
- testing-pytestSkill
- testing-vitestSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
21 rules. About 0 are common, 8 are distinctive, and 13 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
13
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 43
Create a Jira ticket on the developer's behalf
- Distinctive: line 50
When input is a Jira URL or key:
- Very specific: line 58
After the ticket is on disk (fetched or read from local file), set up the branch.
- Very specific: line 62
Check for .agentic-sdlc/config.md in the project root:
- Very specific: line 68
If the file exists: read artifacts-root: value.
- Very specific: line 69
If absent, but
.claude/artifacts-rootexists (migration): read its value, write .agentic-sdlc/config.md: - Distinctive: line 79
If neither exists: ask the developer:
- Very specific: line 84
Write their answer (or the default) to .agentic-sdlc/config.md:
- Very specific: line 91
Gitignore (one-time): Ensure .agentic-sdlc/ is excluded from git:
- Distinctive: line 116
Wait for confirmation. Do not assume.
- Distinctive: line 124
If output is non-empty, stop and ask:
- Distinctive: line 127
Do not proceed until the developer explicitly says to continue.
- Very specific: line 169
When --worktree is passed:
- Very specific: line 175
After confirming the branch name, invoke superpowers:using-git-worktrees instead of git checkout -b.
- Very specific: line 177
Use --worktree when you have in-flight work on another branch, are dispatching an agent to implement in parallel, or need full isolation …
- Very specific: line 195
Collaborative mode (default): Wait for the developer to type approve.
- Very specific: line 197
Write (or upsert) this line in $ARTIFACTS_ROOT/PROJ-42/REVIEW-LOG.md (create the file if absent, overwrite any existing picking-up-task …
- Very specific: line 202
Write .agentic-sdlc/active/PROJ-42.md (create or overwrite):
- Very specific: line 220
Auto mode: Write the stamp automatically with AUTO:
- Distinctive: line 226
No push commands. No extra guidance beyond the next-step prompt.
- Distinctive: line 231
Accept ad-hoc descriptions: Not even under time pressure.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
picking-up-task
Bootstrap a new task: fetch the ticket (if remote) and set up a clean branch — so you can jump straight into planning.
Next step: once the branch is ready, run planning-from-spec on the ticket file.
Where You Sit in the Pipeline
[1] picking-up-task ← YOU ARE HERE
[2] planning-from-spec
[3] generating-tasks
[4] reviewing-plan
[5] implementing-tasks
[6] reviewing-code
[7] crafting-commitsInput Detection
Accepts one required argument. Detect the source type:
| Input | Example | Action |
| Jira URL | https://site.atlassian.net/browse/PROJ-42 | Extract key → invoke fetching-tickets skill |
| Jira key | PROJ-42 | Invoke fetching-tickets skill |
| Local file | ./$ARTIFACTS_ROOT/PROJ-42/PROJ-42.md | Read file directly — no fetch |
| Anything else | "add password reset" | STOP — reject immediately |
When input is unrecognized, say exactly this and do nothing else:
"I need a Jira ticket URL, Jira key (e.g.
PROJ-42), or a local ticket file path to start a task. For work without a ticket, use/planning-from-specdirectly with a spec file."
Do not:
- Accept ad-hoc descriptions, even under time pressure
- Create a Jira ticket on the developer's behalf
- Find a creative workaround to proceed
The rejection is not negotiable. A branch without a ticket has no anchor for planning.
Fetching the Ticket
When input is a Jira URL or key:
REQUIRED: Invoke the fetching-tickets skill. Do not call Jira APIs directly (no MCP calls, no curl). fetching-tickets owns all Jira fetch logic — custom field discovery, image download, self-review. Do not re-implement it here.
Once fetching-tickets completes, the ticket is at $ARTIFACTS_ROOT/PROJ-42/PROJ-42.md.
Workspace Setup
After the ticket is on disk (fetched or read from local file), set up the branch. This is required — do not skip it, do not hand off to planning-from-spec before completing it.
0. Resolve artifacts root
Check for .agentic-sdlc/config.md in the project root:
cat .agentic-sdlc/config.md 2>/dev/null- If the file exists: read
artifacts-root:value. Use it asARTIFACTS_ROOT. If absent, but
.claude/artifacts-rootexists (migration): read its value, write.agentic-sdlc/config.md:mkdir -p .agentic-sdlc echo "artifacts-root: $(cat .claude/artifacts-root)" > .agentic-sdlc/config.mdPrint migration notice:
"Migrated artifacts-root from
.claude/artifacts-root→.agentic-sdlc/config.md. You can delete.claude/artifacts-root."If neither exists: ask the developer:
"Where should ticket and plan files go? Press Enter for the default. Default:
local-dev/tickets"Write their answer (or the default) to
.agentic-sdlc/config.md:mkdir -p .agentic-sdlc echo "artifacts-root: local-dev/tickets" > .agentic-sdlc/config.md
Gitignore (one-time): Ensure .agentic-sdlc/ is excluded from git:
grep -q '\.agentic-sdlc' .gitignore 2>/dev/null \
|| echo '.agentic-sdlc/' >> .gitignoreGlobal gitignore for local-dev/ (unchanged — keep existing logic):
GITIGNORE_FILE="$(git config --global core.excludesfile 2>/dev/null || echo ~/.gitignore_global)"
grep -q 'local-dev' "$GITIGNORE_FILE" 2>/dev/null \
&& echo "already excluded" \
|| echo "local-dev/" >> "$GITIGNORE_FILE"1. Detect base branch
git remote show origin | grep 'HEAD branch' | awk '{print $NF}'Show the result and ask the developer to confirm:
"Base branch detected as
develop. Branch off this, or a different one?"
Wait for confirmation. Do not assume.
2. Check for dirty working tree
git status --porcelainIf output is non-empty, stop and ask:
"You have uncommitted changes on
<branch>. Should I stash them, or would you prefer to handle this first?"
Do not proceed until the developer explicitly says to continue. Do not reassure them that worktrees are isolated and proceed anyway — get explicit confirmation.
3. Sync
git fetch origin
git checkout <base-branch>
git pull origin <base-branch>4. Construct branch name
Pattern: {type}/{ticket-key}/{slug}
Examples: feat/PROJ-42/add-user-auth, fix/PROJ-55/null-pointer-payment
Derive type from Jira issue type:
| Jira issue type | Branch type |
| Bug | fix |
| Story, Task, Feature | feat |
| Sub-task | Inherit parent type, or ask |
| Anything else | Ask developer |
Derive slug: 2–4 word kebab-case from ticket title. Drop articles, prepositions, helper verbs. Keep core action and object. Only [a-z0-9-] characters.
Confirm before creating:
"I'll create branch
feat/PROJ-42/add-user-authbased offdevelop— sound good?"
Wait for confirmation.
5. Create branch (default)
git checkout -b feat/PROJ-42/add-user-authNo push. Branch stays local. superpowers:finishing-a-development-branch handles push and PR.
--worktree flag
When --worktree is passed:
/picking-up-task PROJ-42 --worktreeAfter confirming the branch name, invoke superpowers:using-git-worktrees instead of git checkout -b. Pass the constructed branch name to it. All worktree logic is owned by that skill.
Use --worktree when you have in-flight work on another branch, are dispatching an agent to implement in parallel, or need full isolation between concurrent tasks.
Handoff
Once the branch (or worktree) is ready, print the ticket summary and open the Review Gate.
Review Gate
Present to the developer:
Branch `feat/PROJ-42/add-user-auth` ready (based off `develop`).
Ticket saved to `$ARTIFACTS_ROOT/PROJ-42/PROJ-42.md`.
Review the ticket file above to confirm its content is correct before planning starts.
Type `approve` to stamp it and proceed, or describe what needs fixing.Collaborative mode (default): Wait for the developer to type approve. Any other response is a change request — address it and re-present. On approve:
- Write (or upsert) this line in
$ARTIFACTS_ROOT/PROJ-42/REVIEW-LOG.md(create the file if absent, overwrite any existingpicking-up-taskline if present):> **Human Review:** APPROVED — YYYY-MM-DD — picking-up-task Write
.agentic-sdlc/active/PROJ-42.md(create or overwrite):key: PROJ-42 step: planning-from-spec task: branch: feat/PROJ-42/add-dark-mode ticket: $ARTIFACTS_ROOT/PROJ-42/PROJ-42.md plan:Replace
PROJ-42with the actual ticket key andfeat/PROJ-42/add-dark-modewith the actual branch name.Ask:
Ready to proceed?
/planning-from-spec $ARTIFACTS_ROOT/PROJ-42/PROJ-42.md(yes/no)On yes, invoke
/planning-from-spec <ticket-file>.
Auto mode: Write the stamp automatically with AUTO:
> **Human Review:** AUTO — YYYY-MM-DD — picking-up-taskThen invoke /planning-from-spec <ticket-file> automatically.
No push commands. No extra guidance beyond the next-step prompt.
You Must NOT
- Skip branch creation. Fetching the ticket and handing off to
planning-from-specwithout creating a branch is wrong. Branch creation is part of this skill's job. - Accept ad-hoc descriptions. Not even under time pressure. Not even if the developer says "just figure it out." Reject and redirect.
- Create a Jira ticket. That is not in scope. The developer must provide an existing ticket or file.
- Call Jira APIs directly. Delegate to
fetching-tickets. No MCP Atlassian calls, no curl to Jira REST. - Proceed past a dirty working tree without explicit confirmation. Informing the developer that worktrees are isolated is not the same as getting confirmation — ask and wait.
- Push the branch. That is
superpowers:finishing-a-development-branch's job. - Trigger automatically. This skill is opt-in only.
Common Mistakes
| Mistake | Fix |
| Fetching the ticket and stopping — no branch created | Branch creation is mandatory. Always complete workspace setup. |
| Accepting "add password reset" as input | Reject immediately with the exact wording above. No creative workarounds. |
Calling mcp__claude_ai_Atlassian__getJiraIssue directly | Invoke fetching-tickets skill instead. |
| Reassuring developer about worktree isolation, then proceeding | Get explicit "go ahead" before any git operation on a dirty tree. |
| Pushing the new branch | Don't. superpowers:finishing-a-development-branch handles it. |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

