skills/handoff-memory/SKILL.md
Create, refresh, validate, and resume shared HANDOFF and memory documents for a repository, a workspace-wide cross-repo context, or a workstream inside a larger workspace. Use when asked to write a handoff, checkpoint progress, resume prior work, or standardize project-state notes in Git-trackable files such as `docs/HANDOFF.md`, `_memory/HANDOFF.md`, or `_memory/workstreams/checkout-flow/HANDOFF.md`.
npx skillsauth add 17-sss/agent-skills handoff-memoryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Keep shared memory documents close to the work they describe. For a single repository, keep the canonical handoff in the repo. For a multi-repository workspace, keep workspace-wide memory in the workspace root and workstream-specific memory under dedicated workstream folders.
This skill keeps one canonical handoff per scope and adds lightweight operational tooling:
_memory/INDEX.json for workspace workstreamspython3 must be available in PATH to run the bundled scripts.git must be available in PATH for freshness checks and repo metadata.--help. Prefer running them directly instead of recreating their logic by hand.Use this as the default flow unless the user already has a stronger convention:
Resolve or initialize the canonical document.
Run scripts/create_handoff.py --project-root <path> --scope auto --document handoff --format json.
Add --workstream <name> when the task belongs to one specific repo combination inside a larger workspace.
Read the canonical document before changing it. Preserve still-valid context. Remove stale claims that would mislead the next session.
Update the canonical document with the current state. Keep it short, explicit, and action-oriented.
Validate it before ending the session.
Run scripts/validate_handoff.py --project-root <path> --scope auto --document handoff.
Use --strict only when strict template conformance should fail the check. The default mode only requires the handoff to be resume-usable.
When resuming, check staleness before trusting old notes.
Run scripts/resolve_handoff_path.py --project-root <path> --scope auto --document handoff --resume --format json first, then scripts/check_staleness.py --project-root <path> --scope auto --document handoff.
In mixed multi-repo workspaces, do not treat the parent folder as automatically workspace-wide. Resume selection should prefer an explicit handoff or workstream, then repo overlap, then _memory/INDEX.json, then a unique current workstream. If more than one workstream still matches, return an ambiguous result instead of guessing. Use --workspace-wide only when the user explicitly wants status for every child repository.
For resume-style requests such as "continue", "resume", or "pick up where we left off", treat Next Actions as the default execution queue and Resume Prompt as the default execution framing. Do not reopen design direction that the handoff already narrowed unless the user asks to rethink it or the current repo state clearly invalidates it.
Use --snapshot with create_handoff.py only when the user wants a timestamped checkpoint that is worth preserving. Always pair it with --snapshot-kind and a short --snapshot-reason. Do not make snapshots the default shared state.
For day-to-day agent behavior, follow references/agent-usage-best-practices.md.
--handoff-path when the project already defines a canonical location.--handoff-path points inside _memory/workstreams/<name>/..., the scripts infer workspace scope and workstream name automatically.--handoff-path or --workstream should override auto-detection.docs/HANDOFF.md, memories/HANDOFF.md, or HANDOFF.md._memory/.docs/HANDOFF.md._memory/HANDOFF.md._memory/HANDOFF.md for workspace-wide summary and active workstream index_memory/WORKSPACE.md for durable workspace structure_memory/DECISIONS.md for cross-repo architecture or policy choices_memory/PATTERNS.md for repeatable conventions_memory/workstreams/<name>/HANDOFF.md_memory/workstreams/<name>/WORKSTREAM.md_memory/workstreams/<name>/DECISIONS.md_memory/workstreams/<name>/PATTERNS.md_memory/INDEX.json with last_active_workstream plus per-workstream canonical_path, last_updated, status, and repositories.docs/handoffs/, _memory/handoffs/, or _memory/workstreams/<name>/handoffs/.HANDOFF.md and WORKSTREAM.md. Only snapshots get timestamped names, using YYYYMMDD_HHMMSS[-n]-<kind>-<label>.md..codex, .claude, .windsurf, or .agents as the default shared mutable handoff location.Use repo scope when the task belongs to one repository.
docs/HANDOFF.mddocs/handoffs/*.mdUse workspace scope when the agent session starts from a parent folder that coordinates multiple repositories and the task spans more than one of them at the workspace-wide level.
_memory/HANDOFF.md_memory/handoffs/*.mddocs/HANDOFF.mdUse workstream scope when the same workspace hosts multiple independent repo combinations and one handoff per workspace would blur them together.
_memory/workstreams/<name>/HANDOFF.md_memory/workstreams/<name>/WORKSTREAM.md_memory/workstreams/<name>/handoffs/*.mdTL;DR./Users/... or other paths outside the current project root unless they are truly required. The validator warns on foreign absolute paths for portability.The canonical handoff is the shared source of truth. Optional session snapshots are secondary artifacts for traceability.
docs/HANDOFF.md_memory/HANDOFF.md_memory/workstreams/<name>/HANDOFF.mddocs/handoffs/*.md_memory/handoffs/*.md_memory/workstreams/<name>/handoffs/*.md_memory/INDEX.json with lightweight workstream metadata for resume-time targetingThis model keeps the current state easy to find while still allowing point-in-time captures when they are useful.
When asked to continue work from a prior session:
scripts/resolve_handoff_path.py --project-root <path> --scope auto --document handoff --resume --format json.
The selection priority is: explicit --handoff-path, explicit --workstream, current repo overlap, index last_active_workstream, unique current or in-progress workstream, then ambiguous instead of guessed restore.Next Actions as the default plan, and treat Resume Prompt as the default continuation frame.scripts/resolve_handoff_path.pyResolve the canonical repo-local, workspace-wide, or workstream-specific memory path. Use --scope repo|workspace|auto, --document handoff|workspace|workstream|decisions|patterns, --workstream, or --handoff-path to honor an explicit override. Use --resume to apply resume target selection and return ambiguous instead of guessing when multiple workstreams still match. Use --ensure to create the file when it does not exist.
scripts/create_handoff.pyInitialize or refresh the canonical file and sync metadata such as project root and update timestamp. In workspace scope, this also refreshes _memory/INDEX.json. Use --snapshot --snapshot-kind <kind> --snapshot-reason <text> to write a timestamped archive copy before the canonical file is refreshed.
scripts/validate_handoff.pyCheck that the document is resume-usable by default, warn on portability issues such as foreign absolute paths, and stay short enough to be useful. Use --strict when strict template conformance should fail on missing sections, placeholders, or empty required sections.
scripts/check_staleness.pyCompare the handoff timestamp against recent repo activity. The script prefers Last Updated metadata over file mtime, uses the selected workstream's declared repos when available, and does not fall back to scanning every child repo unless --workspace-wide is explicit. If resume targeting is ambiguous, it returns an ambiguous result instead of guessing.
references/handoff-template.mdUse this to understand the expected handoff structure and section intent.
references/workspace-memory-guide.mdUse this when the task spans multiple repositories and you need to decide whether the canonical workspace handoff is enough or whether the task needs a dedicated workstream.
references/agent-usage-best-practices.mdUse this when you want the recommended start-of-session, end-of-session, and scope-selection behavior for agents using this skill in normal work.
references/snapshot-strategy.mdUse this when you need explicit guidance on when to create a snapshot, when not to, and which snapshot kind to use.
references/agent-integrations.mdUse this when the user asks where to install the skill for Codex or another agent. Keep install notes separate from the handoff workflow itself.
AGENTS.md, CLAUDE.md, .codex/*, or .windsurf/rules/* may reference the shared handoff, but should not become the primary mutable store.tools
Agent-neutral workflow for safely publishing GitHub pull requests with gh CLI, local git, and constrained GitHub REST fallback. Use when asked to create, open, publish, draft, or preflight a GitHub PR from a local branch; push a branch for PR creation; create a PR in a public or private repo; diagnose PR creation auth, SSO, permission, or not-found failures; or avoid unsafe gh pr create prompting, fork creation, or accidental pushes.
tools
Inspect explicit repo-local commit rules, recent history, and staged changes to draft commit messages in the right style family. Use when the user asks for a commit message, asks to commit staged changes, or wants help choosing between conventional, gitmoji, plain imperative, or repo-custom commit formats.
tools
Agent-neutral workflow for reviewing GitHub pull requests with gh CLI, local git, tests, and GitHub REST or GraphQL APIs, then posting summary or inline review comments as the user's authenticated GitHub account. Use when asked to set up PR review authentication, review a PR URL, review owner/repo#123, review the current branch PR, post PR review comments, review public or private repo PRs, use gh to inspect a PR diff, or leave feedback from the user's GitHub account.
testing
Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".