claude-skills/productivity/handoff
Claude 7405298b4b
fix: resolve the actionable reported issues (#954, #949, #933, #931, #969, #968, #924, #885)
- #954: strip non-spec source/attribution keys from all 39 plugin.json
  manifests so Claude Code's validator accepts them; metadata preserved in
  new .claude-plugin/authoring-notes.json sidecars; check_plugin_json.py now
  hard-fails manifests carrying those keys and sanity-checks the sidecar;
  CLAUDE.md ClawHub schema section updated to the new rule.
- #949: move the c-level-agents plugin out of c-level-advisor/ to a
  top-level directory so the two marketplace sources no longer overlap;
  updated marketplace.json source, homepage, descriptions, all
  cross-references, docs, harness manifest, mirror-tree symlinks/indexes,
  and rebased the moved files' relative links; domain counters trued up
  (18 -> 19 domains).
- #933: replace dead links to the gitignored maintainer-local megaprompts/
  tree with annotated plain-text references (44 files: SKILL.md, READMEs,
  agents, commands).
- #931: DynamoDB on-demand pricing updated to post-Nov-2024 rates
  ($0.625/M writes, $0.125/M strongly consistent reads).
- #969: skill_security_auditor.py and the three dossier scripts reconfigure
  stdout/stderr to UTF-8 (errors=replace) so legacy Windows codepages no
  longer crash at print time; PYTHONUTF8=1 documented.
- #968: Windows Notes section in INSTALLATION.md + README pointer for the
  core.symlinks mirror-tree checkout caveat.
- #924/#885 residuals: hook commands quote "${CLAUDE_PLUGIN_ROOT}" paths in
  all plugin hooks.json/settings.json (space-safe roots); removed the stale
  pre-rename status/review mirror symlinks and index entries left over from
  the memory-status/memory-review rename.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qgc6RYXWJPr5oW9DHU7zR4
2026-08-21 05:47:37 +00:00
..
.claude-plugin fix: resolve the actionable reported issues (#954, #949, #933, #931, #969, #968, #924, #885) 2026-08-21 05:47:37 +00:00
agents fix: resolve 11 P0 correctness defects from newgen audit 2026-06-10 14:32:43 +00:00
commands feat(productivity/handoff): v1.1 — SessionEnd hook, self-check script, --refresh flag 2026-05-23 01:22:07 +00:00
hooks fix: resolve the actionable reported issues (#954, #949, #933, #931, #969, #968, #924, #885) 2026-08-21 05:47:37 +00:00
skills/handoff feat(tooling): JSON-output sample gate (G9) + --sample fixtures (#654) 2026-06-11 15:29:39 +00:00
README.md feat(productivity/handoff): v1.1 — SessionEnd hook, self-check script, --refresh flag 2026-05-23 01:22:07 +00:00

handoff (productivity)

Compact the current conversation into a handoff document for another agent to pick up.

A productivity-shaped handoff skill. Configurable save location (no project clutter), redaction enforcement, SessionStart auto-load, mandatory checklist for the agent. Five sections, three to five recommended skills, references not copies.

Inspired by Matt Pocock's handoff skill (MIT). Matt's seven sentences are preserved verbatim in SKILL.md. The wrapper around them — first-run setup, redaction linter, SessionStart hook, mandatory checklist, skill recommender — is original work in this repo.

Five must-haves shipped in v1.0.0

# Feature Why
1 SessionStart hook auto-loads the latest handoff Without this, the file is written but unread. The hook turns the artifact into an actual handoff.
2 First-run setup asks where to save Avoids cluttering project folders. No pre-selected default — user picks explicitly on first run.
3 Mandatory checklist (handoff_prompt.md) Forces the agent to classify every topic (State / Decision / drop) rather than free-handing prose.
4 Redaction linter Operationalizes Matt's redaction sentence with regex + whitelist marker + strict/warn modes.
5 mtime-guarded cleanup Auto-cleanup never deletes a handoff the user edited as a working surface.

v1.1 additions

Feature Why
SessionEnd reminder hook Pairs with SessionStart. If a session ends without a recent handoff, prints a one-line reminder so the user doesn't lose context for next time. Disable with HANDOFF_SESSIONEND=0.
Self-check script (handoff_self_check.py) Operationalizes the mandatory checklist. Flags empty Goal, State bullets that reference no artifact, missing Open decisions when git is dirty, too few/many Skills, inline content in Artifacts. Runs before the redaction linter.
--refresh flag on the template generator Reuses the most recent handoff instead of creating a new file. Keeps the save location uncluttered when work continues past the original handoff.

Install

This plugin lives at productivity/handoff/. Enable through your plugin manager. On first invocation of /cs:handoff, the skill will prompt:

Run setup now? (Y/n)

  • Y — walks 5 questions and writes ~/.config/handoff/config.json.
  • N — uses defaults this run and never re-prompts (sentinel at ~/.config/handoff/.setup-declined).

Re-configure any time with /cs:handoff-setup.

Slash commands

Command Use
/cs:handoff [goal] Generate the handoff doc.
/cs:handoff-setup [--project] Configure (or reconfigure) save location, retention, redaction.

Tooling

Stdlib-only Python. No external deps.

Script Purpose
scripts/setup.py First-run Q&A. --reconfigure, --project, --decline, --sample.
scripts/config_loader.py Shared helper. --show, --status, --sample.
scripts/handoff_template_generator.py Writes the 5-section scaffold. --goal, --print-path-only, --sample.
scripts/redaction_linter.py Scans for secrets/PII. --mode strict|warn|off, --json, --sample.
scripts/skill_recommender.py Suggests 3-5 skills. --goal, --scope, --json, --sample.
scripts/cleanup.py mtime-guarded retention cleanup. --dry-run, --json, --sample.

Hooks

hooks/session_start.py (wired via hooks/hooks.json) — on every SessionStart, finds the most recent handoff in the configured save location and surfaces it as <handoff_from_previous_session> data. The next agent reads it as context, not instructions. Disable per-session with HANDOFF_SESSIONSTART=0.

References

File Topic
references/handoff_prompt.md The mandatory checklist the agent walks before writing.
references/handoff_structure.md The 5-section template with a worked example.
references/deduplication_discipline.md Matt's no-duplication rule with concrete do-this-not-that pairs.
references/redaction_checklist.md Regex patterns + manual review steps + whitelist mechanism.
references/configuration.md Field-by-field config reference.

Distinct from engineering/handoff/

Aspect productivity/handoff/ engineering/handoff/
Primary audience End-of-day session handoff, cross-machine handoff Code/PR handoff
First-run setup Yes (5 questions, configurable save location) No (fixed mktemp)
Redaction enforcement Yes (linter with strict/warn/off + inline whitelist) No
SessionStart auto-load Yes (hook + retention-aware) No
Mandatory checklist Yes (handoff_prompt.md, 6 steps) No
Retention cleanup Yes (mtime-guarded) No

Both exist deliberately. The engineering version stays optimized for code/PR contexts. This one is for the broader daily routine.

Inspired by

Matt Pocock's handoff skill (MIT). The seven-sentence body of SKILL.md is Matt's, preserved verbatim. The wrapper is this repo's.

License

MIT.