src/claude/skills/session-end/SKILL.md
Clean session teardown — commit all work, write a resumption-framed handoff, stop monitors, report readiness. Leaves a clean working tree. No asking.
npx skillsauth add the-agency-ai/the-agency session-endInstall 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.
The next session starts from the handoff. A session that ends with a dirty tree, unsent dispatches, or a stale handoff leaves the next agent reverse-engineering what was in flight. This skill forces the three end-of-session preconditions and shells to agency/tools/session-pause --framing resumption for the mechanics — commit, archive, stop monitors, emit new handoff path.
PAUSE-for-end surface. Paired with /session-resume on the other side.
agency/REFERENCE/REFERENCE-HANDOFF-SPEC.md — handoff frontmatter, mode: resumption enum value.agency/REFERENCE/REFERENCE-SKILL-CONVENTIONS.md — primitive-composition pattern./session-end
/session-end "end-of-day"
/session-end "switching-context"
[trigger-reason] (optional): short tag for telemetry + handoff frontmatter. Defaults to session-end.
/compact-prepare.Idempotent: safe to run multiple times. Archives + re-writes each run.
./agency/tools/session-pause --framing resumption --trigger "${REASON:-session-end}"
--framing resumption tells the tool: stop monitors (registry-driven SIGTERM), fire SessionEnd hooks naturally on process exit, archive prior handoff, emit new path. If framework code is dirty, the tool force-commits the handoff alone first (handoff_commit_sha set), then aborts on the framework-code gate. Handoff is always persisted.
Parse the emitted key=value output. Key fields: handoff_path, archived_previous_handoff, commit_sha, handoff_commit_sha, status.
On status=aborted, surface error_reason. If handoff_commit_sha is non-none the handoff is safe — run /quality-gate + /iteration-complete on the framework code and re-run /session-end.
Write the handoff file at handoff_path. Frontmatter:
type: sessionagent: <org>/<principal>/<agent>date: <UTC>trigger: session-endbranch: <current>mode: resumption — REQUIRED. Tells /session-resume this is a fresh-session pickup.next-action: — the concrete first step of the next session. Not a backlog.Body: phase/iteration status, what was done, what's next, decisions/context the next session needs, open blockers. Frame for resumption — a future session will read this after a break.
./agency/tools/handoff read
Report: branch, last commit, handoff_path, "Handoff: written ✓", then:
Safe to
/compactand/or/exit.
/quality-gate + /iteration-complete, then re-run /session-end./exit or /compact. It prepares; the user exits./sync or /release.active (v2 refactored in session-lifecycle-refactor Phase 3 Iteration 3.3 — body collapsed from ~145 lines to ~60, now shells to session-pause). Paired with /session-resume, /compact-prepare.
/session-resume — fresh-session PICKUP (opposite bookend)./compact-prepare — mid-session PAUSE (continuation framing)./compact-resume — post-compact PICKUP.agency/tools/session-pause — primitive this skill shells to.agency/tools/handoff — handoff read/write tool.OFFENDERS WILL BE FED TO THE — CUTE — ATTACK KITTENS!
business
Sync worktree with master — merge, copy settings, run sandbox-sync, report changes
tools
List all git worktrees with status info (branch, clean/dirty, deps)
tools
Remove a git worktree and optionally delete its branch
development
Create a new git worktree with dedicated branch and bootstrapped dev environment