Files
VibeEngineering/.claude/hooks/session-start.sh
闫旭隆 c484cafb45 Initial commit: VibeEngineering V2
- 两阶段分离:设计阶段人工确认,执行阶段全自动化
- 子代理驱动:Implementer → Spec Reviewer → Quality Reviewer
- 原生 Task 系统:使用 Claude Code Task 替代自定义状态管理
- 跨 Compact 恢复:PreCompact + SessionStart Hook(内联命令实现)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 18:00:55 +08:00

80 lines
2.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# .claude/hooks/session-start.sh
# VibeEngineering V2 - SessionStart Hook
# 只有存在 last_task_context.jsonl 才触发恢复提示
# 不使用严格模式,避免 Windows 环境兼容问题
# 检查是否存在恢复上下文文件(当前目录已由调用者设置)
if [[ ! -f ".vibe/last_task_context.jsonl" ]]; then
exit 0
fi
if [[ ! -f ".vibe/session.yml" ]]; then
exit 0
fi
# 读取 task_list_id使用 grep + sed 替代 yq兼容性更好
TASK_LIST_ID=$(grep 'task_list_id:' .vibe/session.yml | sed 's/task_list_id: *//' | tr -d '"' | tr -d "'")
TASK_DIR="$HOME/.claude/tasks/$TASK_LIST_ID"
cat << 'PROMPT'
## 【系统提示:检测到跨 Compact 恢复 - VibeEngineering V2 执行阶段】
你正在从 Compact 后恢复执行上下文。请严格按以下顺序读取信息:
### Step 1: 读取执行流程定义
```
Read .claude/commands/vibe-execute.md
```
了解 Phase 2 执行循环的完整流程。
### Step 2: 读取 subagent-driven-development skill
```
Read .claude/skills/subagent-driven-development/SKILL.md
```
了解子代理派发模板Implementer、Spec Reviewer、Code Quality Reviewer
### Step 3: 读取设计文档
```
Read .vibe/session.yml
```
获取 design_doc 路径,然后读取设计文档了解需求。
### Step 4: 读取所有 Task JSON
PROMPT
echo '```'
echo "Glob pattern='*.json' path='$TASK_DIR'"
echo "然后 Read 每个返回的 JSON 文件"
echo '```'
cat << 'PROMPT'
从 Task JSON 了解:
- 所有任务列表subject和详细信息description
- 任务状态status: pending / in_progress / completed
- **已完成任务的 metadata**files_modified, errors_encountered, git_commit, test_results
### Step 5: 读取上一窗口执行上下文
```
Read .vibe/last_task_context.jsonl
```
从 last_task_context.jsonl 了解:
- 当前任务执行到哪一步
- Claude 的思考过程和决策
- 用户的纠正指令(如有)
- 子代理派发的任务和返回结果
### 恢复后行为
1. 找到第一个 status 为 pending 或 in_progress 的 Task
2. 如果有 in_progress 的 Task结合 last_task_context.jsonl 从中断点继续
3. 如果上一个 Task 已 completed从下一个 pending Task 开始
4. **按照 vibe-execute.md Phase 2 和 subagent-driven-development skill 执行**
- 业务 Task派发 Implementer → Spec Reviewer → Code Quality Reviewer → 标记完成
- 校验 Task执行 Step 0-5 固定流程
5. 所有 Task 完成后,校验 Task 保存快照并标记完成
PROMPT
exit 0