From claude-code-hermit
Closes Claude Code work sessions via /session-close: compiles status/blockers/lessons/changed files, stops monitors/heartbeats, reflects, archives reports, prepares handoff for resumption. Auto-activates on 'I'm done' etc.
npx claudepluginhub gtapps/claude-code-hermit --plugin claude-code-homeassistant-hermitThis skill uses the workspace's default tool permissions.
`/session-close` is always a **Full Shutdown**. The operator explicitly invoked it — that's the confirmation. No close mode decision, no prompting.
Writes structured handoff to .claude/handoff.md capturing completed work, pending tasks, and learnings at session end. Auto-activates on wrap-up signals like 'end of session', 'handoff', or 'save progress'.
Starts or resumes work sessions with full context loading, task planning, progress tracking, blocker handling, execution, and finalization including status, lessons, and changes. Use at work start.
Verifies session work against agreed plan, creates issues for gaps and carryover tasks, runs quality gates, commits changes, mirrors to GitHub, and generates summary. Triggered by /close.
Share bugs, ideas, or general feedback.
/session-close is always a Full Shutdown. The operator explicitly invoked it — that's the confirmation. No close mode decision, no prompting.
Idle transitions happen automatically at task boundaries (handled by the session skill). By the time the operator runs /session-close, they want out.
If heartbeat is running, stop it before archiving.
If watches are registered (state/monitors.runtime.json has entries), stop all watches before archiving — invoke /claude-code-hermit:watch stop --all.
session-mgr handles updating both SHELL.md (cosmetic) and state/runtime.json (lifecycle truth) during archiving. For full shutdown, session-mgr sets shutdown_completed_at in runtime.json.
Use this when the operator wants to end everything (via hermit-stop or explicit --shutdown).
Status: one of completed | partial | blockedBlockers: one line each, enough context for a cold startLessons: only genuinely useful onesChanged: list of files modifiedArtifacts: if this session produced a durable output (research note, decision doc, audit summary), write it to compiled/<type>-<slug>-<date>.md with session: S-NNN in the frontmatter and list the wikilink here. Don't leave domain output wedged in SHELL.md Findings or a proposal body.completed, pending)claude-code-hermit:proposal-create skillclaude-code-hermit:reflect skill to reflect on accumulated experience. Reflect no longer requires archived reports — it uses memory. This runs before archiving so any findings are included in the archived report.TaskList, format as a markdown table. Then TaskUpdate(status=deleted) for completed tasks only — pending/in_progress tasks persist for next session.claude-code-hermit:session-mgr (full close — finalize SHELL.md and replace with fresh template in one operation). Pass the following compact structured payload in the prompt — keep it brief, no freeform prose:
Status: <completed|partial|blocked>
Blockers: <one line each, or none>
Lessons: <one line each, or none>
Changed: <file list, or none>
Artifacts: <wikilinks to compiled/ outputs produced this session, or none>
Next Start Point: <one line>
Also include the task table (if native Tasks were created).Verify these before proceeding with close (applies to both modes):
completed | partial | blocked)blocked: have you run /debug to check for tool/hook failures? Include diagnosis in blockers if relevantFull shutdown only:
If any check fails, fix it before closing.