Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion plugins/session-flow/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "session-flow",
"version": "0.10.1",
"version": "0.10.2",
"description": "Session-lifecycle toolkit of seven skills: workflow (navigate a staged dev workflow and suggest the next stage), handoff (write a save-point and resume prompt for /clear, with optional --bg background-agent launch), keep-going (recover and continue after any interruption — inventory off-thread work, inspect its real state, resume or restart it, then continue the main task), clean-stop (get to a durable, linked stopping point before the machine may go away — sweep every repo/worktree for uncommitted, unpushed, or PR-less work, push it durable, put breadcrumbs in PR/issue bodies, then give a free-and-clear verdict), retro (structured session retrospective with transcript metrics and learning codification), orchestrate (arm a session or worker with proactive-orchestration imperatives), and reanchor (verify a session's working assumptions are still true against live reality — referenced PRs/issues/branches, base-branch drift, renamed/version-drifted surfaces, stale memory-tier files — before building on them).",
"author": {
"name": "Melodic Software",
Expand Down
10 changes: 10 additions & 0 deletions plugins/session-flow/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Changelog — session-flow plugin

## 0.10.2 — 2026-07-19

Fixed:

- retro: the Phase 1.1 multi-session snippet now derives `HANDOFF_DIR` from the
resolved `memory_dir` (reads the `.claude/topic-docs.yaml` concern file, falls
back to `.work`) instead of hard-coding the bare default `.work/handoffs`. A
copy-as-is run of the snippet previously bypassed the memory_dir seam, missing
the handoff chain in any repo that relocates its memory tier.

## 0.10.1 — 2026-07-19

Changed:
Expand Down
17 changes: 12 additions & 5 deletions plugins/session-flow/skills/retro/context/session.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,18 @@ done
# Single-session form:
"$PY" "$PARSER" --sessions "${CLAUDE_CODE_SESSION_ID}" --base "$SESSION_DATA_DIR"

# Multi-session form (handoff chain exists). Set HANDOFF_DIR to the resolved
# <memory_dir>/handoffs — the concern file's memory_dir first, else the consuming
# repo's documented save-point location (see the handoff skill's "Where handoffs
# live"); the plugin default is .work/handoffs/.
HANDOFF_DIR=.work/handoffs
# Multi-session form (handoff chain exists). Derive HANDOFF_DIR from the resolved
# memory_dir — the concern file's memory_dir key, else the plugin default .work.
# For the full resolution order (documented save-point locations, no-project-root
# fallback) see the handoff skill's "Where handoffs live".
MEMORY_DIR=.work
Comment thread
kyle-sexton marked this conversation as resolved.
if [[ -f .claude/topic-docs.yaml ]]; then
VAL=$(sed -n 's/^memory_dir:[[:space:]]*//p' .claude/topic-docs.yaml | head -1)
VAL="${VAL%%#*}"; VAL="${VAL%"${VAL##*[![:space:]]}"}"; VAL="${VAL%/}"
Comment thread
kyle-sexton marked this conversation as resolved.
VAL="${VAL#\"}"; VAL="${VAL%\"}"; VAL="${VAL#\'}"; VAL="${VAL%\'}"
[[ -n "$VAL" ]] && MEMORY_DIR="$VAL"
fi
HANDOFF_DIR="$MEMORY_DIR/handoffs"
NEWEST=$(ls -1 "$HANDOFF_DIR"/*-handoff-*.md 2>/dev/null | sort | tail -1)
"$PY" "$PARSER" --chain-from "$NEWEST" --current-session "${CLAUDE_CODE_SESSION_ID}" --base "$SESSION_DATA_DIR"
```
Expand Down
Loading