Files
claude-foundations/memory/log/2026-03-23.123545.md
Paul O'Reilly e7c8214499 Add statusline scripts, context-load improvements, and prior distill updates
- Add statusline.sh and set-topic.sh for per-session status line topics
- Update context-load with improved directory walking and output format
- Update CLAUDE.md with status line docs and early-call safety note
- Update MEMORY.md and README.md with new script/skill entries
- Add memory files: script-statusline, skill-decompose, skill-orchestrate, gotchas-gitea
- Add networking.md best practice (nftables, systemd sockets, Docker forwarding, TLS)
- Update best practices from prior distill: documentation, kubernetes, scripting,
  secrets-management, skills-development
- Prune reflected session logs, add new session logs
- Update reflection state

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 11:11:40 +13:00

2.0 KiB

Session Log — 2026-03-23

Summary

Set up a persistent status line for Claude Code that displays session topic, model name, and context window percentage. Scripts were created, moved into claude-foundations, and documentation updated across CLAUDE.md, MEMORY.md, and README.md. Status line config was added to all three profile settings files (~/.claude, ~/.claude-octopus, ~/.claude-oreillyit).

Decisions

  • Decision: Use per-session topic files at ~/.claude/status/<session-id>/claude-topic.txt — Rationale: Session ID from the status line JSON uniquely identifies each session, allowing multiple concurrent sessions to have independent topics
  • Decision: Status line script writes session ID to /tmp/claude-session-id-<md5 of cwd> — Rationale: Claude has no direct access to its own session ID; the status line script bridges this by writing it to a predictable path keyed by working directory
  • Decision: Canonical scripts live in claude-foundations/scripts/, symlinked from ~/.claude/status/ — Rationale: Follows the same pattern as hooks (canonical in repo, symlinked to ~/.claude/) for version control and consistency
  • Decision: Status line config added to all three profile settings files — Rationale: Each profile (default, octopus, oreillyit) has its own settings.json; statusLine must be present in each

Gotchas Discovered

  • [claude-code] Symptom: set-topic.sh fails on the first message of a session because the status line hasn't run yet to write the session ID file — Fix: This is expected; set the topic from the second message onward. The bootstrap caveat is documented in CLAUDE.md and the memory file.

Key Context

  • Claude Code status line receives session JSON on stdin with fields: session_id, model, context_window, cwd, cost, rate_limits, etc.
  • Status line script runs after each assistant message, debounced at 300ms
  • Three profile settings files need to stay in sync: ~/.claude/settings.json, ~/.claude-octopus/settings.json, ~/.claude-oreillyit/settings.json