Files
small-scripts/context/claude-profile-modes.md
Paul O'Reilly 340c40392a End-of-session: statusline + session-start integration, docs update
- context: claude-profile-modes updated to reflect current state (statusline
  and session-start auto-select done; next step is real launch test)
- FUTURE.md: remove two completed items (status-line, CLAUDE.md picker)
- README: add missing scripts (check-skills, gen-secret, mp3-to-mp4,
  split-wezterm, sync-repos) to scripts table
- session log 2026-04-12.003747.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 00:40:17 +12:00

2.6 KiB

claude-profile engagement modes

Status

Core features shipped and pushed (commit 143b325). NOT yet exercised in a real claude launch.

What's done

Component State
Profile + mode picker (phases 1-3) Done, 37 dryrun assertions passing
5 mode files with escalates_to frontmatter Done
active-mode.env written on every launch Done (includes CLAUDE_ESCALATES_TO)
statusline.sh — [Sonnet→Opus] deep · topic format Done (reads CLAUDE_CONFIG_DIR/active-mode.env)
Root CLAUDE.md — auto-select project from cwd or CLAUDE_PROJECT Done
Preset support (presets.yaml) Done (example at data/claude-profile/presets.yaml.example)
  1. Install the symlink (if not already done):
    ln -sf "$HOME/dev/claude/small-scripts/scripts/claude-profile" "$HOME/sbin/claude-profile"
    
  2. Real-launch test: claude-profile oreillyit --mode chat first (lowest blast radius — Haiku driver, no project, no async). Verify:
    • Mode body appears in system prompt (CLAUDE.md announces the mode)
    • Status bar shows [Haiku] chat format
    • ~/.claude-oreillyit/active-mode.env is written with correct values
  3. Auto-select test: launch from inside a project dir (cd ~/dev/claude/small-scripts && claude-profile oreillyit --mode quick) — should skip the project picker and announce "Auto-selected project small-scripts"
  4. Then --mode deep to verify plan-mode auto-engagement and the [Sonnet→Opus] deep · topic status bar format
  5. If anything's off, tests/test-claude-profile.sh is the fast feedback loop

Remaining follow-ups (from FUTURE.md)

  1. bg-model-call wrapperdeep and hybrid modes reference it but it doesn't exist yet. Own spec + script entry.
  2. switch mode skill — mid-session re-pick writes new active-mode.env for the next /clear. Lower priority.
  3. MiniMax inverted architecture — long research project; requires token-budget sketch first.

Key gotchas

  • statusline.sh is not in any git repo — lives at ~/.claude/status/statusline.sh. Changes are live immediately; no commit needed.
  • Root ~/dev/claude/CLAUDE.md is also not git-tracked — changes there are also immediately live.
  • CLAUDE_CONFIG_DIR must be exported by claude-profile before exec claude. The statusline hook inherits it from the claude process environment.
  • read -rp under set -e exits silently if stdin is not a TTY. The picker guards all interactive reads with [[ -t 0 ]]. See memory/gotchas-bash.md.