Handoff protocol for sdg-skill

VerifiedSafe

Use at the end of a session to close out work cleanly so the next session can resume without reading chat history. Updates TASKS.md, STATE.md, appends to docs/decisions.md if needed, and commits with the T<id>: prefix.

Sby Skills Guide Bot
DevelopmentBeginner
207/24/2026
Claude Code
#handoff#session-handoff#task-tracking#git-commit

Recommended for

Our review

Ends a work session by updating task and state files and committing changes so a future AI session can resume without reading the full chat history.

Strengths

  • Ensures a clean handoff between sessions with all tracking files in sync.
  • Prevents loss of progress and reduces context required for the next session.
  • Enforces clear commit messages tied to task IDs for traceability.

Limitations

  • Relies on adherence to the specific TASKS.md and STATE.md format.
  • Does not capture informal decisions unless explicitly added to docs/decisions.md.
  • Requires consistent discipline from the user or agent to run at session end.
When to use it

Use at the end of every work session on the sdg-skill repo to enable seamless resumption.

When not to use it

Avoid for quick, throwaway explorations or when no future continuation is planned.

Security analysis

Safe
Quality score85/100

The skill only updates markdown files and runs `git add -A` + `git commit` with a prefixed message. No destructive commands, no exfiltration, no network access beyond git. The instructions are straightforward and do not include any obfuscated payloads or dangerous operations.

No concerns found

Examples

Handoff at end of session
Handoff, please.
Run handoff protocol
Run the handoff protocol for the sdg-skill repo.
Close out and prepare for next session
Finish up and prepare for next session using the handoff protocol.

name: handoff description: 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. disable-model-invocation: true

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

  1. 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.

  2. Update STATE.md. Set:

    • Active task — the task you just finished, or None if 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 in TASKS.md).
    • Blockers — list any new blockers; clear any that were resolved.
  3. Append to docs/decisions.md ONLY 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.md is for ADRs, not changelogs.

  4. 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 main with the T<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 in TASKS.md) was not actually met. Leave it [~] and note the gap in STATE.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/, or htmlcov/ (already gitignored, but double-check git status).
  • Don't run git push --force or amend commits that are already on main.
Related skills