New plugin that produces a complete session handoff in under 60s: NEXT-SESSION artifact, commit+push, and copy-paste prompt for next session. Built for context-constrained models like Opus 4.7 where sessions fill fast. - Single declarative command, no hooks/agents/skills - Detects handoff type: multi-session / plugin-work / single-task - Default filename NEXT-SESSION-PROMPT.local.md; slug-override - Flags: --no-commit, --dry-run - Auto-generated Conventional Commits message from git diff --stat - Respects pre-commit hooks (secrets, pathguard) — never bypasses Also: add *.local.md to root .gitignore (existing NEXT-SESSION files were untracked but not ignored) and list plugin in marketplace README + CLAUDE.md per docs-convention.
221 lines
6.1 KiB
Markdown
221 lines
6.1 KiB
Markdown
# graceful-handoff
|
|
|
|
> Sesjonsoverlevering på under 60 sekunder. Designet for Opus 4.7-sesjoner som fyller kontekst raskt.
|
|
|
|
**Problemet:** Opus 4.7 fyller kontekstvinduet mye raskere enn 4.6 — ofte innen ~5 minutter for reelt arbeid. Når du er på 60-70% og må starte ny sesjon, er det tre manuelle steg som blir hastverk eller glemt:
|
|
|
|
1. Oppsummere hvor arbeidet står (commits, lokale endringer, hva som er testet)
|
|
2. Commite og pushe ferdig arbeid (ellers tapes det)
|
|
3. Skrive en copy-paste-prompt som lar neste sesjon fortsette uten tap
|
|
|
|
`/graceful-handoff` gjør alle tre, automatisk, i ett steg.
|
|
|
|
## Installasjon
|
|
|
|
```bash
|
|
claude plugin marketplace add https://git.fromaitochitta.com/open/ktg-plugin-marketplace.git
|
|
# Deretter /plugin install graceful-handoff
|
|
```
|
|
|
|
## Bruk
|
|
|
|
Minimum:
|
|
|
|
```
|
|
/graceful-handoff
|
|
```
|
|
|
|
Med slug (hvis du har flere handoffs i samme mappe):
|
|
|
|
```
|
|
/graceful-handoff refactor-auth
|
|
```
|
|
|
|
Uten auto-commit:
|
|
|
|
```
|
|
/graceful-handoff --no-commit
|
|
```
|
|
|
|
Dry-run (se hva som ville skjedd):
|
|
|
|
```
|
|
/graceful-handoff --dry-run
|
|
```
|
|
|
|
## Hvordan den fungerer
|
|
|
|
Kommandoen utfører 6 faser inline i main-sesjonen (ingen Agent-delegering, ingen WebSearch — alt må skje raskt):
|
|
|
|
### 1. Detekter arbeidsmappe
|
|
|
|
```bash
|
|
pwd
|
|
git status --porcelain
|
|
git log --oneline -10
|
|
# Let oppover etter .claude-plugin/plugin.json
|
|
# Let etter .claude/projects/*/brief.md + progress.json
|
|
```
|
|
|
|
### 2. Identifiser handoff-type
|
|
|
|
| Type | Når |
|
|
|------|-----|
|
|
| `multi-sesjon` | Aktivt ultraplan-prosjekt finnes (progress.json status ≠ "completed") |
|
|
| `plugin-arbeid` | Inne i en marketplace-plugin (`.claude-plugin/plugin.json` finnes oppover i tre) |
|
|
| `enkelt-oppgave` | Ingen av over |
|
|
|
|
### 3. Skriv NEXT-SESSION-artefakt
|
|
|
|
Standardfilnavn: `NEXT-SESSION-PROMPT.local.md`. Med slug: `NEXT-SESSION-<slug>.local.md`.
|
|
|
|
Lokasjon:
|
|
- `multi-sesjon` → i prosjektmappen
|
|
- `plugin-arbeid` → i plugin-root
|
|
- `enkelt-oppgave` → i cwd
|
|
|
|
Innhold (7 seksjoner — samme struktur som `NEXT-SESSION-PROMPT.local.md` i llm-security/config-audit):
|
|
|
|
```markdown
|
|
# NEXT-SESSION-PROMPT — <tittel>
|
|
|
|
## Hvorfor dette eksisterer
|
|
...
|
|
|
|
## Status ved sesjonshåndoff
|
|
### ✅ Ferdig
|
|
### ⏳ Ikke startet / delvis
|
|
### ⚠️ Brutt / kjent risiko
|
|
|
|
## Slik fortsetter du
|
|
...
|
|
|
|
## Push-policy
|
|
...
|
|
|
|
## Verifiseringskommandoer
|
|
...
|
|
|
|
## Husk
|
|
...
|
|
```
|
|
|
|
### 4. Oppdater REMEMBER.md og TODO.md
|
|
|
|
Kun hvis filene finnes (opprettes ikke i random mapper). Flytter ferdige items, oppdaterer datoer.
|
|
|
|
### 5. Commit + push
|
|
|
|
Skip hvis `--no-commit`, `--dry-run`, eller `git status --porcelain` er tom.
|
|
|
|
Auto-genererer Conventional Commits-melding basert på endrede filer:
|
|
|
|
| Filmønster | Type |
|
|
|------------|------|
|
|
| `tests/**` | `test` |
|
|
| `*.md`, `README`, `CHANGELOG` | `docs` |
|
|
| Ny funksjon i `hooks/`, `scanners/` | `feat` |
|
|
| Bugfix | `fix` |
|
|
| Config, lockfile | `chore` |
|
|
|
|
Scope: plugin-navn hvis alle endringer er i én plugin.
|
|
|
|
Viser meldingen til bruker før commit. Pusher til `origin <current-branch>`.
|
|
|
|
Pre-commit hooks (secrets, pathguard) respekteres — hvis de blokkerer, stopper kommandoen og rapporterer uten bypass.
|
|
|
|
### 6. Print copy-paste-prompt
|
|
|
|
Kompakt blokk til terminal som bruker kopierer direkte til ny Claude-sesjon:
|
|
|
|
```
|
|
═════════════════════════════════════════════
|
|
NESTE SESJON — copy-paste til ny Claude:
|
|
═════════════════════════════════════════════
|
|
|
|
cd /Users/.../plugins/llm-security
|
|
cat NEXT-SESSION-PROMPT.local.md
|
|
git log --oneline -5
|
|
git status
|
|
|
|
Fortsett fra Commit 2 (entropy-scanner kontekst-suppression).
|
|
═════════════════════════════════════════════
|
|
```
|
|
|
|
## Argumenter
|
|
|
|
| Argument | Beskrivelse |
|
|
|----------|-------------|
|
|
| `[topic-slug]` | Kebab-case slug. Med slug: `NEXT-SESSION-<slug>.local.md`. Uten: `NEXT-SESSION-PROMPT.local.md` |
|
|
| `--no-commit` | Hopp over commit+push. Bruker håndterer commit manuelt |
|
|
| `--dry-run` | Ingen filer skrives, ingen git-operasjoner. Print kun hva som ville skjedd |
|
|
|
|
## Eksempler
|
|
|
|
**Plugin-arbeid:**
|
|
|
|
```
|
|
cd plugins/llm-security
|
|
# ... arbeid ...
|
|
/graceful-handoff
|
|
# → skriver plugins/llm-security/NEXT-SESSION-PROMPT.local.md
|
|
# → oppdaterer plugins/llm-security/REMEMBER.md + TODO.md
|
|
# → committer + pusher
|
|
# → printer copy-paste-prompt
|
|
```
|
|
|
|
**Multi-sesjon (ultraplan-prosjekt):**
|
|
|
|
```
|
|
cd prosjekt-med-.claude/projects/2026-04-18-foo/
|
|
/graceful-handoff
|
|
# → skriver .claude/projects/2026-04-18-foo/NEXT-SESSION-PROMPT.local.md
|
|
# → (REMEMBER/TODO kun hvis de finnes i prosjektmappen)
|
|
# → committer + pusher
|
|
```
|
|
|
|
**Flere parallelle handoffs:**
|
|
|
|
```
|
|
/graceful-handoff api-migration
|
|
/graceful-handoff token-refresh
|
|
# → to filer: NEXT-SESSION-api-migration.local.md + NEXT-SESSION-token-refresh.local.md
|
|
```
|
|
|
|
**Bare artefakt, ingen git:**
|
|
|
|
```
|
|
/graceful-handoff --no-commit
|
|
# → skriver artefakt + REMEMBER/TODO
|
|
# → git status viser fortsatt uncommittede endringer
|
|
```
|
|
|
|
**Forhåndssjekk:**
|
|
|
|
```
|
|
/graceful-handoff --dry-run
|
|
# → printer planlagt artefakt, foreslått commit-melding, copy-paste-prompt
|
|
# → skriver ingenting, gjør ingen git-operasjoner
|
|
```
|
|
|
|
## Tidsbudsjett
|
|
|
|
< 60 sekunder totalt. Hvis den drar ut: lag en minimal handoff med det du har, og noter det som ufullstendig. Aldri Agent-delegering eller WebSearch — main-sesjonen er raskere.
|
|
|
|
## Begrensninger (v1.0.0)
|
|
|
|
- Ingen auto-invokasjon ved kontekst-terskel — bruker triggrer manuelt. Vurderes i v1.1
|
|
- Commit-meldingen er auto-generert uten Y/n-bekreftelse. Hvis kvalitet blir et problem: rapporter, vurderer "vis og bekreft" i v1.1
|
|
- Overskriver eksisterende NEXT-SESSION-fil (merger fra innhold, men ikke fra diff). Sikkerhetskopi-mønster vurderes
|
|
- Ingen integrasjon mot `.claude/projects/*/progress.json` utover lesing
|
|
|
|
## Sikkerhet
|
|
|
|
- Respekterer alle pre-commit hooks (secrets-scanning, pathguard). Bypasser ALDRI
|
|
- Filer er `*.local.md` → matches av `*.local.md` i global/prosjekt-gitignore
|
|
- Ingen nettverks-kall, ingen eksterne avhengigheter
|
|
- Krever kun `allowed-tools: Read, Write, Edit, Bash, Glob`
|
|
|
|
## Lisens
|
|
|
|
MIT
|