Step 1 of v2.0 plan. Hard cut from commands/ to skills/ per Anthropic recommendation for new plugins. Frontmatter sets disable-model-invocation: true and pins model: claude-sonnet-4-6. Docs (README, CLAUDE.md, root README) deferred to Step 9 per plan.
5 KiB
| name | description | argument-hint | disable-model-invocation | model | allowed-tools |
|---|---|---|---|---|---|
| graceful-handoff | Produser handoff-artefakt, commit+push, og copy-paste-prompt for neste sesjon. Bruk når du nærmer deg 60-70% kontekst og må fortsette arbeidet i en ny sesjon uten tap. | [topic-slug] [--no-commit] [--dry-run] | true | claude-sonnet-4-6 | Bash(git:*) Bash(jq:*) Bash(node:*) Bash(find:*) Bash(pwd:*) Read Write Glob |
Graceful Handoff — sesjonsoverlevering v2.0
Orkestrerer JSON-pipeline-skriptet og fyller copy-paste-template-en for neste sesjon. Selve pipelinen (state-deteksjon, classification, fil-skriving, commit, push) er deterministisk og lever i scripts/handoff-pipeline.mjs. Denne skill-en er en tynn wrapper.
Tidsbudsjett: Hele kjøringen skal ligge under 60 sekunder reell tid. Bruker er typisk på 60-70% kontekst når de trigger dette — ingen Agent-delegering, ingen WebSearch.
Hvordan kjøres
-
Parse
$ARGUMENTS(kombinert streng). Støtt flag i vilkårlig rekkefølge.[topic-slug]— kebab-case, styrer filnavnet--no-commit— hopp over commit/push, bruker håndterer manuelt--dry-run— print hva som ville skjedd, ingen filer/git--no-push— commit OK men ikke push (Stop hook bruker dette i auto-eksekvering)--auto— non-interactive, auto-Y på commit-bekreftelse (kun for hooks)--non-interactive— uten--auto: feil; med--auto: kjør uten prompts
-
Kjør pipeline-skriptet:
node ${CLAUDE_PLUGIN_ROOT}/scripts/handoff-pipeline.mjs <args> -
Parse JSON-output fra stdout. Forventet schema:
{ "handoff_type": "multi-sesjon | plugin-arbeid | enkelt-oppgave", "write_dir": "/abs/path", "artifact_path": "/abs/path/NEXT-SESSION-...", "next_steps": ["..."], "git_status": { "branch": "...", "dirty": true, "ahead": 2 }, "commit_message": "...", "actions_taken": ["wrote artifact", "committed", "pushed"], "errors": [] } -
Hvis
errors[]non-empty: rapporter feilene til bruker, ikke fortsett. Foreslå manuelle skritt franext_steps. -
Hvis interaktiv (default): Skriptet skriver commit-bekreftelses-prompten til stderr. Modellen leser stderr-output og presenterer Y/n-valget til bruker via AskUserQuestion. Send svaret tilbake til skriptet via stdin. (NB: I denne skill-konteksten kan modellen også vise commit-meldingen direkte og spørre — fleksibelt.)
-
Når ferdig: Print copy-paste-prompt fra
next_stepsJSON til bruker:════════════════════════════════════════════════════════════ NESTE SESJON — copy-paste til ny Claude: ════════════════════════════════════════════════════════════ cd <absolute-WRITE_DIR> cat <NEXT-SESSION-filnavn> git log --oneline -5 git status Fortsett fra <konkret neste handling — én setning>. ════════════════════════════════════════════════════════════ Artefakt: <full sti til NEXT-SESSION-filen> Commit: <siste SHA eller "ingen endringer"> Push: <"pushet til Forgejo" eller "skippet (flag / ingenting)"> ════════════════════════════════════════════════════════════
Når brukes den
- Manuelt: kjør
/graceful-handoffselv ved 60-70% kontekst - Automatisk: Stop hook kaller
handoff-pipeline.mjs --auto --no-pushved estimert ≥70%. Skill-en invokeres IKKE i auto-modus — hook-en kaller skriptet direkte for å bevaredisable-model-invocation: true.
Hva blir skrevet
NEXT-SESSION-PROMPT.local.md(ellerNEXT-SESSION-<slug>.local.md) i riktig WRITE_DIRREMEMBER.mdoppdatert hvis den finnesTODO.mdoppdatert hvis den finnes- Git commit + push (med mindre
--no-commiteller--no-push)
Push-policy
- Direkte push til
mainpå Forgejo er pre-autorisert - Aldri GitHub — kun Forgejo (
git.fromaitochitta.com) - Pre-commit hooks respekteres uten
--no-verify
Begrensninger (v2.0)
- Auto-eksekvering ved kontekst-terskel er approksimasjon basert på transcript-størrelse, ikke Claude's reelle kontekst-måling. Estimat kan avvike ±10% — terskel satt konservativt til 70%.
- statusLine-plassering i
hooks/hooks.jsoner antakelse; smoke-test før release. disable-model-invocation: truehar en åpen issue (#26251) som potensielt kan blokkere user-invocation. Verifiser med smoke-test.
Feilsøking
- Pipeline-skriptet feiler: kjør med
--dry-runfor å se hva det ville gjort - Git-state uvanlig (detached HEAD, ingen remote): pipeline returnerer
errors[], ikke crash - Stop hook trigger for tidlig/sent: terskel kan justeres i
hooks/scripts/stop-context-monitor.mjs(look for0.70)