with one click
nextsession
instructions what to do when starting the next sessions
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
instructions what to do when starting the next sessions
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | nextsession |
| description | instructions what to do when starting the next sessions |
| disable-model-invocation | false |
| allowed-tools | Bash(git *) Bash(cargo test *) Bash(uv run pytest *) |
read NEXT_SESSION.md and follow its instructions. If you have any questions, ask me Remember our general coding principles:
(5) Handoff file model (NEXT_SESSION.md is a symlink — author the handoff once, not twice).
NEXT_SESSION.md at the repo root is a relative symlink to the latest file in docs/handoffs/. The handoff doc is the only authored file; NEXT_SESSION.md is a pointer that transparently resolves to it. This is intentional — it eliminates the prior pattern (carry two byte-identical copies of the baton, one at NEXT_SESSION.md and one at docs/handoffs/) which produced inevitable merge conflicts whenever the same content was edited on both the feature branch and main during a pause window.
Workflow:
docs/handoffs/<YYYY-MM-DD>-<task-or-feature-slug>-shipped.md.ln -snf docs/handoffs/<your-new-file>.md NEXT_SESSION.md.ls -la NEXT_SESSION.md shows the -> target; head -3 NEXT_SESSION.md reads the handoff content transparently.Why this avoids conflicts:
main already has a synced copy (per [[feedback_next_session_main_authoritative]]), the handoff file path becomes the conflict surface unless you bind the histories first (see next section).Fixup-time merge discipline (closes the add/add gap with main-side baton syncs):
When you resume an in-flight feature branch to apply review fixups (or any further commit), the FIRST thing you do — before editing files — is:
git fetch origin
git merge origin/main # absorbs any pause-window sync commits
# If the handoff doc conflicts (the typical case), branch version wins:
git checkout --ours docs/handoffs/<latest>.md
git add docs/handoffs/<latest>.md
git commit --no-edit
This binds the branch's history to main's so subsequent edits to the handoff doc on the branch are 3-way-mergeable at PR ship time. Without this step, the squash-merge surfaces an add/add conflict on the handoff doc path (both branches added the same path independently from a shared ancestor that didn't have it), and the PR ends up CONFLICTING / DIRTY.
Symptoms that this step was skipped:
gh pr view <n> --json mergeable,mergeStateStatus returns CONFLICTING / DIRTY.Do not author the handoff separately as a "frozen archive snapshot" of a hand-edited NEXT_SESSION.md — the handoff IS the live baton; NEXT_SESSION.md is its symlink. If you find yourself rewriting both files in lockstep, the symlink is broken — restore it.