- 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>
29 lines
880 B
Bash
Executable File
29 lines
880 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Usage: set-topic.sh <cwd> <topic text>
|
|
# Finds the session ID for the given cwd and writes the topic file
|
|
|
|
set -euo pipefail
|
|
|
|
CWD="$1"
|
|
shift
|
|
TOPIC="$*"
|
|
|
|
HASH=$(echo -n "$CWD" | md5sum | cut -d' ' -f1)
|
|
SESSION_FILE="/tmp/claude-session-id-$HASH"
|
|
|
|
if [[ ! -f "$SESSION_FILE" ]]; then
|
|
# Session ID file doesn't exist yet — the statusline hook hasn't run.
|
|
# Write the topic to a pending file so statusline.sh can pick it up
|
|
# on its first run for this cwd.
|
|
PENDING_FILE="/tmp/claude-pending-topic-$HASH"
|
|
echo "$TOPIC" > "$PENDING_FILE"
|
|
echo "Topic queued (session ID not yet available). Will be applied after next response."
|
|
exit 0
|
|
fi
|
|
|
|
SESSION_ID=$(cat "$SESSION_FILE")
|
|
TOPIC_DIR="$HOME/.claude/status/$SESSION_ID"
|
|
mkdir -p "$TOPIC_DIR"
|
|
echo "$TOPIC" > "$TOPIC_DIR/claude-topic.txt"
|
|
echo "Topic set for session $SESSION_ID: $TOPIC"
|