ktg-plugin-marketplace/plugins/graceful-handoff/README.md
Kjell Tore Guttormsen b9269f853d feat(graceful-handoff): initial plugin with /graceful-handoff command
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.
2026-04-19 22:54:10 +02:00

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