# Active Session State — [project or branch] ` is free-form narrative for humans and for a returning agent that wants detail. No hook ever injects it, so it may grow — but see Rotation below. Why the split exists: before it, `active.md` was one append-only file doing both jobs. It reached 712 lines / 44 KB, and each consumer invented its own slice of it — the status line parsed for a STATUS block nothing wrote, pre-compact injected `head -100` (12.7 KB), and session-start previewed `tail -20`, the opposite end. They disagreed because there was no contract to agree on. Now every consumer reads the named region. ROTATION. When the narrative below grows past ~200 lines, move it to `production/session-logs/` and start it fresh: bash .claude/scripts/rotate-session-state.sh Nothing is lost — and the commit history already records most of what the narrative repeats. --> Epic: Feature: Task: **Updated:** [YYYY-MM-DD] **Branch:** `[branch]` **Current task:** [one line — what is actively being worked on] **Next step:** [one line — the very next action, concrete enough to resume cold] **Blocked on:** [one line, or `nothing`] **Files in progress:** [paths, comma-separated, or `none`] **Run result:** [`/dev-story` writes its `Run result:` line here, verbatim, for `/story-done` to read; other writers leave this line out] **Open questions:** [one line each, or `none`] --- ## Notes [Free-form. Decisions and their rationale, what was tried and rejected, context that would be expensive to reconstruct. Not machine-read — write for the person or agent picking this up cold.]