session-end

SkillMonitoring & ops

Clean session teardown, commit all work, write a resumption-framed handoff, stop monitors, report readiness. Leaves a clean working tree. No asking.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the session-end skill

What this skill tells your AI

The instructions your AI receives, as published by the-agency-ai/the-agency in .claude/skills/session-end/SKILL.md and read by ahel’s review.

Session End

Why this exists

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.

Required reading

  • agency/REFERENCE/REFERENCE-HANDOFF-SPEC.md — handoff frontmatter, mode: resumption enum value.
  • agency/REFERENCE/REFERENCE-SKILL-CONVENTIONS.md — primitive-composition pattern.

Usage

/session-end
/session-end "end-of-day"
/session-end "switching-context"

[trigger-reason] (optional): short tag for telemetry + handoff frontmatter. Defaults to session-end.

Preconditions

  1. You're ending the session (or switching context). For mid-sprint refresh, use /compact-prepare.
  2. Uncommitted work is ready to commit as-is. The skill does not stash.

Idempotent: safe to run multiple times. Archives + re-writes each run.

Flow / Steps

Step 1: Run session-pause primitive

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

Step 2: Author resumption-framed handoff

Write the handoff file at handoff_path. Frontmatter:

  • type: session
  • agent: <org>/<principal>/<agent>
  • date: <UTC>
  • trigger: session-end
  • branch: <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.

Step 3: Verify handoff + report

./agency/tools/handoff read

Report: branch, last commit, handoff_path, "Handoff: written ✓", then:

Safe to /compact and/or /exit.

Failure modes

  • session-pause aborts on framework-code dirt: tool already force-committed the handoff. Run /quality-gate + /iteration-complete, then re-run /session-end.
  • Lock contention (exit 2): another PAUSE/PICKUP is running. Wait, retry.
  • Handoff write permission error (Step 2): session should not end without a handoff. Fix filesystem permission, retry.

What this does NOT do

  • Does not invoke /exit or /compact. It prepares; the user exits.
  • Does not stash. Resolve WIP first.
  • Does not run the quality gate. Framework code should have gone through QG at iteration boundaries.
  • Does not push. Push is /sync or /release.

Status

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.

Related

  • /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!

Signals

GitHub stars
55
Forks
8
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
session-end-the-agency-ai
Source
github.com/the-agency-ai/the-agency