/session-end
Close the session cleanly. Writes the session log, pushes artifacts, updates whereami. Run when the Stop hook fails or when you want to end deliberately. Three tiers of obligation: MUST, SHOULD, MAY.
/session-end/session-end defaultType it bare, or paste it with loose context after — Claude figures out the rest.
Sessions end without writing state. Next session starts cold. Session logs missing.
Three tiers of close. Must-tier always runs local. Should-tier pushes if network is up.
Takes in
- Optional — run explicitly or fires from Stop hook
Returns
- Session log entry
- Whereami updated
- Push and tag when scoped
- Journal draft when notable
What it does
A clean session close with three tiers of obligation.
/session-end saves state. It writes the session log. It updates whereami. It reconciles the roadmap. It pushes artifacts.
Read the full skill
The complete instructions live at .claude/skills/session-end/SKILL.md in your repo after bassclef-sync. Open with your editor for phases, rules, and worked examples.
Where in the SDLC
Why this phase: Close the session cleanly — MUST/SHOULD/MAY tiered obligations.
Related
- Skills catalog — browse all skills grouped by lifecycle phase
- Tier system — what each tier gives you
FAQ
Terms from bassclef vocabulary that appear on this page.
- load-bearing
- A part of the system that other parts depend on — remove it and downstream things break. Bassclef uses the word for artifacts that other artifacts read: a canvas is load-bearing when a spec cites it, a spec is load-bearing when Builder uses it. Plain equivalent: 'actually used' or 'counted on'.
- chronicle
- A narrative log of what a session shipped — what worked, what did not, what got deferred. Written at session-end. Bassclef's chronicles live under `docs/chronicles/YYYY-MM-DD-slug.md`. Chronicles are how future sessions understand context that the code alone cannot show. See: /docs/skills/session-log
- whereami
- The authoritative project-state snapshot — current phase, active goals, subsystem status, gate progress, session recap history. Read at session-start; updated at session-end. The one file every new session should read first to know where the project stands. See: /docs/skills/whereami
- hook
- A shell script bassclef wires into Claude Code's tool-invocation lifecycle. Hooks fire at events like PreToolUse (before an Edit lands) or SessionStart (when a session opens). Hooks enforce rules mechanically — a rule says 'don't do X'; a hook fires and BLOCKs if X happens.
- rule
- A markdown file auto-loaded into every session's context. Rules pin discipline the agent applies to every response (plain-English writing, blocked-items protocol, temperance gates). Different from a hook — rules are steering; hooks are enforcement.
- skill
- A user-invocable command (like `/kiss` or `/temperance`) that runs a specific bassclef workflow. Every skill lives at `.claude/skills/<name>/SKILL.md` with frontmatter + procedure. Adopters type the slash command; Claude Code loads the skill and runs it.
- adopter
- A repo that has bassclef installed — either via `bassclef init` (lite tier from npm) or via the symlink pattern (standard tier with an Anthropic key). Bassclef's discipline: never break adopters. Every change to a downstream-observable surface ships with a compat shim.
- bassclef-upstream
- The private repo where bassclef substrate is authored. Ships to a public `bassclef` npm package + a public `bassclef-web` docs site. Adopters read the public tier; the operator maintains upstream.
- session log
- Same shape as a chronicle — narrative record of what a session shipped. `/session-log` skill drafts it from the session's commits + branch state. Feeds into `/journal` when the operator wants an audience-tuned draft. See: /docs/skills/session-log
Shipped by @kingofrock · Read the essays
/retro
Reflect at session close. Names what worked, what didn't, and what to change next time. Feeds candidate follow-on tickets.
/session-log
Write the session's log entry — what shipped, what was decided, what's still open. Reads the day's commits and conversation. Outputs a markdown entry with gates fired, sources read, and discoveries surfaced. Renamed from /chronicle.