Ensures repo state, task tracking, and decision logs are updated before closing a coding session.
Install
mkdir -p .claude/skills/handoff-rajeshkanaka && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/12058" && unzip -o skill.zip -d .claude/skills/handoff-rajeshkanaka && rm skill.zipInstalls to .claude/skills/handoff-rajeshkanaka
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Use at the end of a session in the sdg-skill repo to close out work cleanly so the next session can resume without reading the chat history. Updates TASKS.md / STATE.md, appends to docs/decisions.md if needed, and commits with the right T<id>: prefix.Key capabilities
- →Mark completed tasks in TASKS.md
- →Update project state in STATE.md
- →Append architectural decisions to docs/decisions.md
- →Create a git commit with a specific prefix
- →Ensure repository consistency across files and git
How it works
The skill guides the user through updating project documentation files and creating a git commit to reflect the completed work, ensuring consistency.
Inputs & outputs
When to use handoff
- →Close session
- →Update task status
- →Save state for resumption
- →Commit architectural decisions
About this skill
Handoff protocol for sdg-skill
Run this when work is complete (or when stopping for the day) so the next
session can pick up cleanly via /resume. The goal: every session ends with
the repo in a state where git, STATE.md, and TASKS.md all agree.
Steps
-
Tick
TASKS.md. For each task completed in this session, change[ ]→[x]and append(done <ISO date YYYY-MM-DD>, <commit-sha>)to the same line. Use today's date. -
Update
STATE.md. Set:Active task— the task you just finished, orNoneif at a boundary.Last commit— the SHA you're about to create (or just created).Last action— one-line summary of what was done.Next action— the next concrete thing a future session should do (typically the next unblocked task inTASKS.md).Blockers— list any new blockers; clear any that were resolved.
-
Append to
docs/decisions.mdONLY if the work involved an architectural or non-obvious choice that a future contributor would need the rationale for. If it was a routine implementation, skip this step —docs/decisions.mdis for ADRs, not changelogs. -
Commit.
git add -A git commit -m "T<id>: <one-line summary>"- Use the task ID being closed (or the most relevant one).
- One-line subject; keep it under ~70 chars.
- Include a body only if the change is non-obvious from the diff.
Branch note
- Small fixes: commit directly to
mainwith theT<id>:prefix. - Risky / large changes: you should already be on a
feat/T<id>-<slug>branch — push and open a PR for squash-merge instead of committing direct.
Don't
- Don't tick a task as
[x]if its acceptance criteria (Acceptance:line inTASKS.md) was not actually met. Leave it[~]and note the gap inSTATE.md. - Don't bypass the redact / provenance rules in any handoff commit (those
are hard rules in
CLAUDE.md). - Don't commit
key.json,.env*,runs/, orhtmlcov/(already gitignored, but double-checkgit status). - Don't run
git push --forceor amend commits that are already onmain.
When not to use it
- →When acceptance criteria for a task are not met
- →When bypassing redact or provenance rules
- →When committing sensitive files like key.json or .env*
Limitations
- →Architectural decisions are only appended to `docs/decisions.md` if non-obvious
- →Commit messages must follow a `T<id>:` prefix and length guidelines
- →Cannot commit `key.json`, `.env*`, `runs/`, or `htmlcov/`
How it compares
This skill provides a structured protocol for ending a work session, ensuring all project state and documentation are synchronized and committed, unlike manual commit processes.
Compared to similar skills
handoff side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| handoff (this skill) | 0 | 3mo | Review | Beginner |
| github-manage | 6 | 9mo | Review | Beginner |
| jira | 11 | 6mo | No flags | Beginner |
| github-issues | 5 | 3mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
github-manage
matteocervelli
Manage operations concerning GitHub on behalf of user
jira
davila7
Use when the user mentions Jira issues (e.g., "PROJ-123"), asks about tickets, wants to create/view/update issues, check sprint status, or manage their Jira workflow. Triggers on keywords like "jira", "issue", "ticket", "sprint", "backlog", or issue key patterns.
github-issues
github
Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, or manage issue workflows. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", or any GitHub issue management task.
triaging-issues
pytorch
Triages GitHub issues by routing to oncall teams, applying labels, and closing questions. Use when processing new PyTorch issues or when asked to triage an issue.
summarize-activity
alpinejs
Summarize recent GitHub activity — discussions, PRs, issues, events, traffic — into an actionable report so you can stay on top of the project without reading everything.
agent-swarm-issue
ruvnet
Agent skill for swarm-issue - invoke with $agent-swarm-issue