[BUG] /rewind to before the first user prompt hydrates a degraded harness: SessionStart hook output replayed stale (not re-fired), skills listing dropped entirely
Summary
Using /rewind to jump back to before the first user prompt of a session hydrates the replacement conversation with less context than a brand-new session, and with a silently degraded harness: the user-invocable skills listing is gone entirely, and SessionStart hook output is replayed verbatim-stale instead of being re-fired.
Environment
- Claude Code CLI
2.1.226 - macOS (Darwin 25.6.0)
- Session with SessionStart hooks configured and ~120 skills installed under
~/.claude/skills/
Repro
- Start a session in a project with SessionStart hooks (that inject dynamic state) and installed skills.
- Work for a while (so the hook-injected state changes — e.g. new items appear in whatever the hook reports).
/rewindand select the very first user prompt as the target (discarding the entire thread).- Submit a new prompt.
- Observe the hydrated context.
Observed
- SessionStart hooks are NOT re-fired — their original output is replayed verbatim. Concrete proof from our session: post-rewind, a SessionStart hook injection read "Deferrals: 3 active · top: ddf_255bc488", but ground truth at rewind time was 4 active with a different ticket (filed mid-thread, i.e. after session start) on top. The injection predated that ticket, so it was the preserved original, not a fresh hook run. Any hook-injected dynamic state (counts, reminders, mode banners) can be silently stale.
- The user-invocable skills listing is entirely absent post-rewind. ~120 skills installed; zero listed in context; the Skill tool's own guidance still referenced a listing that didn't exist. Description-triggered skill invocation is therefore dead — name-only invocation at best. The listing appears to ride with the first user prompt turn, which the rewind discarded, and it is never regenerated for the replacement prompt.
- Everything else survives: system prompt, CLAUDE.md files, git status, agent-type roster, MCP instructions, deferred-tools list. UserPromptSubmit hooks DO fire fresh per prompt (timestamps/banners were current).
Net effect: total post-hydration context was smaller than a fresh "hello" session (~30K baseline here). Reproduced across multiple sessions when rewinding to before the first prompt.
Expected
Either:
- re-fire session-start hooks and regenerate the skills listing when a rewind discards the turn(s) that carried them, or
- document the degradation (and ideally warn in the rewind picker when the selected target is the first prompt).
Why it matters
A "rewind to the top" looks like a clean fresh start but is strictly worse than one: the agent silently loses skill discoverability and trusts stale hook-injected state, with no indication anything is missing.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗