# list-sessions: show worktree slug in title

## Outcome
`list-sessions` shows the conversation's worktree slug (`.worktrees/<slug>` / `.claude/worktrees/<slug>` in cwd) as a `[slug]` prefix in the TITLE column; JSON rows gain a `slug` field. Sessions without a worktree slug (plain checkout) are unchanged. Handles a session whose worktree dir was deleted (` (deleted)` suffix in `/proc` cwd).

## Status
DONE

## Source request (owner)
"i want list-sessions to show me the slug of the conversation (if exists) in the title"

## Acceptance criteria
1. Human table TITLE shows `[<slug>] <title>` when the session cwd is inside `<anything>/.worktrees/<slug>` or `.claude/worktrees/<slug>`.
2. No slug prefix when cwd is a plain checkout or anything else.
3. `--json` rows carry `slug` (null when absent); `title` stays raw.
4. Slug is the first path segment after the marker, validated against the bare-slug form (od-worktree `require_slug`), so `deploy-unwedge` → `[deploy-unwedge]`, never a path.
5. Slug still shown when the worktree dir was deleted (cwd ends ` (deleted)`).

## Constraints
- stdlib only (script is stdlib-only by design).
- No change to filtering, kill, tmux, or classifier behavior.
- Column width/truncation semantics preserved (46 for TITLE).

## Execution steps
1. ~~Claim worktree `list-sessions-slug`~~ (done)
2. ~~Durable plan + INDEX entry~~ (done)
3. ~~Edit `modules/workstation/claude/bin/list-sessions`: `slug_of(cwd)` helper, table render `[slug]` prefix, JSON `slug` field~~ (done)
4. ~~Isolated verification with synthetic cwd input~~ (done — including deleted-worktree case)
5. ~~ship.sh land (queue ticket)~~ (done — conductor landed commit `833a8fb17` on origin/main)
6. RECOVERY (incident, 2026-08-15): installed-copy write went through the `~/.claude/bin` symlink INTO the deploy clone working tree and wedged the deploy re-pin. Restored the deploy clone's `list-sessions` to origin content with absolute `git` (`/usr/bin/git restore`), verified zero residue; installed path back to original bytes.
7. Deploy: the pids-guard lane landed its refined variant (`0fe056c2d`), which byte-matched the deploy clone's staged copy; deploy-local self-resolved (fetch → adopted_clean → re-pin) and deployed `0fe056c2` — `~/.claude/bin/list-sessions` now live with `[slug]` prefixes.

## Current receipt
Feature landed (`833a8fb17`) + deployed (`0fe056c2`): installed `list-sessions` verified live with `[multilingual-navigation-adapter]`, `[architecture-receipt]`, `[integrate-web-agent-project-control-2]`; plain checkouts unchanged.

## Next executable action
None — feature landed and deployed; owner-visible proof: `list-sessions` output with `[slug]` prefixes.