#!/usr/bin/env bash # .claude/hooks/pre-compact.sh # VibeEngineering V2 - PreCompact Hook # 当上下文即将满时,从 transcript.jsonl 提取当前任务上下文 set -euo pipefail # 使用 CLAUDE_PROJECT_DIR 环境变量确保路径正确 PROJECT_DIR="${CLAUDE_PROJECT_DIR:-.}" cd "$PROJECT_DIR" INPUT=$(cat) TRANSCRIPT_PATH=$(echo "$INPUT" | jq -r '.transcript_path') # 等待 transcript.jsonl 完全写入 sleep 1 # 确保 .vibe 目录存在 mkdir -p .vibe # 调用 Node.js 脚本提取上下文 node "$PROJECT_DIR/.claude/hooks/extract-last-context.js" "$TRANSCRIPT_PATH" > .vibe/last_task_context.jsonl exit 0