auto-ai-coding/docs/session-handoff-protocol.md

119 lines
4.2 KiB
Markdown
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.

# Session Handoff Protocol - AI Reference v3.0 (Spec-Driven Aligned)
> 面向“规范驱动 + 接口先行”体系的会话接续协议。
> 核心目标在多窗口、长任务场景下通过单文档Progress实现 80% 上下文恢复。
---
## 🎯 核心目标
跨会话任务延续 = 读取 Progress 文档 + 引用模块 Spec 目录 = 立即开始工作。
---
## ⚡ 触发条件(硬门禁阈值)
当满足以下 **任一** 条件时AI **必须** 启用本协议并维护进度文档:
| 维度 | 触发阈值(必须启用) | 目的 |
| :--- | :--- | :--- |
| **子任务数** | `spec/<module>/tasks.md` 中子任务 ≥ 5 个 | 避免长列表任务丢失状态 |
| **文件变更** | 预计或已修改文件数 ≥ 10 个 | 追踪改动范围,防止遗漏 |
| **工具调用** | 单个会话内工具调用次数 ≥ 40 次 | 应对上下文堆积导致的智能下降 |
| **上下文质量** | 用户反馈或 AI 自检发现明显的指令偏移 | 强制重置上下文并对齐 SSOT |
---
## 📋 进度文档强制清单YAML 格式)
进度文档路径:`docs/progress/{module}-{feature}-progress.md`
```yaml
# 进度文档必须包含的字段(不可缺失)
context:
module: "{module_name}" # 对应 spec/<module>/ 目录名
feature: "{feature_id}" # 对应 requirements.md 中的 feature_id
status: [🔄进行中 | ⏳待开始 | ✅已完成]
spec_references:
# 必须引用模块 Spec 目录下的 SSOT 文档
requirements: "spec/{module}/requirements.md"
openapi_provider: "spec/{module}/openapi.provider.yaml"
openapi_deps: "spec/{module}/openapi.deps.yaml"
design: "spec/{module}/design.md"
tasks: "spec/{module}/tasks.md"
overall_progress:
format: "- [ ] Phase X: 名称 (进度%) [关联 Tasks.md ID]"
min_phases: 3
max_phases: 6
current_phase:
goal: "一句话描述本阶段目标"
sub_tasks:
- [x] 子任务 A (✅) [Task ID]
- [ ] 子任务 B (🔄) [Task ID]
next_action:
immediate: "下一步立即执行的具体原子任务"
details:
file: "path/to/file.ext:line_number"
action: "具体做什么(如:实现 XXX 接口的校验逻辑)"
reference: "参考文件及行号"
constraints: "执行此任务必须注意的硬约束(如:必须符合 AC-REG-01"
technical_context:
module_structure: "本次任务涉及的核心目录/文件"
key_decisions:
- decision: "技术决策内容"
reason: "为什么这么做"
impact: "对后续任务的影响"
code_snippets: "关键实现代码或 Mock 示例(至少 1-2 个)"
session_history:
- session: "Session #X (YYYY-MM-DD)"
completed: [任务列表]
changes: [改动的文件清单]
startup_guide:
- "Step 1: 读取本进度文档(了解当前位置与下一步)"
- "Step 2: 读取 spec_references 中定义的模块规范(了解业务与接口约束)"
- "Step 3: 直接执行 next_action"
```
---
## 🚀 工作规则CRITICAL
### 1. 启动模式
- **继续模式**:检查 `docs/progress/` 下是否存在对应模块的进度文档。若存在Read 文档 → 引用 Spec 目录 → 简短汇报状态 → 直接开始。
- **新建模式**:若满足“触发条件(硬门禁阈值)”任一项(或涉及跨模块并行),必须先创建进度文档,再开始工作。
### 2. 下一步行动The Gold Rule
- 禁止输出模糊的下一步(如“继续开发”)。
- **必须**具体到 `文件路径:行号``原子动作`
### 3. 停止与交接
- 触发条件Phase 完成、达到稳定检查点、或工具调用次数过多需同步。
- **动作**:更新进度文档(标记 ✅、更新 🔄、详细记录 `next_action`)、告知用户如何接续。
### 4. 禁止事项
- 禁止编造或假设需求;信息不足必须询问用户,并在 Progress 中记录澄清结果。
- 禁止使用不存在的工具接口名;所有操作应基于当前环境可用工具。
---
## 🎨 响应模板
### 会话结束(产出交接)
```text
已达到阶段性检查点,进度文档已更新:
- 路径: docs/progress/{module}-{feature}-progress.md
当前进度:
✅ {已完成任务}
🔄 当前停留: {具体文件:行号}
下次接续请指令:"继续 {module} 的 {feature} 任务"
```