From taskmaster
Close out a work session by logging what was accomplished. Invoke when the user says 'end session', 'I'm done for today', 'let's wrap up', 'log this work', 'mark this task done', or 'save progress'. Auto-generates Done/Decisions/Issues summary, transitions task status, commits tracking files. This is the ONLY correct way to mark tasks done or in-review with a session record.
How this skill is triggered — by the user, by Claude, or both
Slash command
/taskmaster:end-sessionThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Log the current work session, transition tasks, and commit tracking files.
Log the current work session, transition tasks, and commit tracking files.
backlog_complete_task atomically writes the changelog entry AND transitions the task status. If you use backlog_update_task directly to set status to "done", the PROGRESS.md changelog stays silent — the next /start-session will have no "last session" context, and the project loses its work history. This skill ensures every status transition comes with a session record.
This is the ONLY way to mark tasks as done or in-review with proper session logging.
Determine summary mode. Check the session weight:
git diff --stat HEAD~N and commit messagesbacklog_complete_task with auto_summary=true and pass the git stats as the done fieldAuto-generate session summary by reviewing the current conversation:
Generate session title: {Topic}: {Brief Description} (don't include the date — the server auto-prefixes with today's date)
Determine target status. Ask the user:
"Does this task need manual testing before it's considered done?"
- Yes →
in-review(implementation complete, you need to test/confirm)- No →
done(no manual testing needed, or you've already confirmed)
Default to in-review when unsure — it's better to have the user explicitly confirm than to silently skip testing.
Present the draft summary for review. Include the target status. Ask: "Does this look right? Edit anything or say 'looks good'."
After user approval — call backlog_complete_task with all session fields:
backlog_complete_task(
task_id="...",
session_title="Topic: Brief Description",
done="item 1\nitem 2\nitem 3",
decisions="decision 1\ndecision 2",
issues="None",
tasks_touched="task-001, task-002",
target_status="in-review" # or "done"
)
For OTHER tasks that also need transitions (not the primary task):
backlog_update_task for individual status changes — these won't get changelog entries, which is fine for secondary tasks.Worktree cleanup (done tasks only):
{task_id}? This removes the isolated working directory."git worktree remove .worktrees/{task-id}, then backlog_update_task(task_id, "worktree", "")in-review tasks — the user still needs the worktree for testing.Commit tracking files:
git add backlog.yaml PROGRESS.md
git commit -m "chore: log session — {brief topic}
{1-line summary}"
Confirm: "Session logged and committed. Task is now {target_status}."
backlog_complete_task on any task that changed, or skip the tool and just manually append to PROGRESS.md. Ask the user what they'd prefer.backlog_complete_task for the primary task (gets the full changelog entry), and backlog_update_task for secondary status changes.See references/task-lifecycle.md for the full state machine. Key point: in-review means "Claude is done, user tests now." done means "user confirmed it works."
npx claudepluginhub gruku/claude-tools --plugin taskmasterCloses out a session cleanly by reviewing work, updating project tracking files, committing changes, and capturing session knowledge. Use when a task is complete with no passoff needed.
Ends a work session by writing a concise HANDOFF.md snapshot summarizing progress, decisions, and next steps for the next session.
Wraps up a work session by recording changed files, caveats, decisions, and next steps so a fresh session can resume without re-deriving context.