Chronicle
Narrative record of a session — what shipped, what was decided, what's still open. Written automatically at session end by /session-end.
Ships with bassclef execution
The chronicle is not something you invoke by hand. It ships with
bassclef and is written automatically as one of the MUST-tier
obligations of /session-end. If you're closing a session with
substantive work, the chronicle lands as part of that flow. You do
not need to remember to run anything.
The /chronicle skill (also aliased as /session-log during the
2026-06-25 → 2026-10-31 rename grace window) exists for the case
where you want to draft one on demand — for example, retroactively
after a session that ended abruptly. In normal flow, /session-end
composes it.
Use this when
You are ending a session and want to know what the chronicle will capture, or you are picking up a session where someone else left off and want to read what happened last time.
Skip this when
You are mid-session. Chronicles are session-end artifacts. Mid-session
state lives in docs/whereami.md.
What it is
A chronicle is a Markdown file with YAML frontmatter that names what one session accomplished. Every session that ships substantive work produces one at close.
Path: chronicle/YYYY-MM-DD-<slug>.md (bassclef repo) or
docs/chronicles/YYYY-MM-DD-<slug>.md (adopter repo).
Storage shape: Shape B (Markdown + YAML frontmatter) per state-spine.
Sections a chronicle carries
- Frontmatter — session id, date, active goal reference, phase, outcome
- What shipped — commits, PRs opened, artifacts produced
- What was decided — new ADRs, canvas amendments, scope shifts
- What's still open — items paused, deferred, or handed off to the next session
- Gate evidence — which gates fired (temperance, verify, diagnose) with markers
The chronicle-template.md at templates/ in bassclef ships the
full shape.
Who writes it
The /session-end skill writes the chronicle as one of its MUST-tier
obligations. The /chronicle skill (also aliased as /session-log
per ADR-040 during the rename grace window) drafts the body from the
session's commits + conversation.
Session-end runs at the end of every substantive session. It composes
/chronicle to produce the record — you don't invoke the drafting
skill by hand in normal flow.
Session-end vs. session-rescue
Sometimes the session ends before /session-end fires — context
exhaustion, sandbox teardown, OS interruption. When that happens,
the Stop hook writes a session-rescue deferred-action entry. The
next session sees the entry as BLOCKED: and completes the missing
obligations.
Session-rescue is the safety net. Session-end is the primary path.
Related concepts
- State spine — Shape B storage shape
- Whereami primitive — the singleton project-state snapshot that session-end updates