Skip to content

📄 本页由源文件 skills/dev-flow/references/cross-project/handoff.md 自动投影生成(单一权威源)。请勿直接编辑本页。

跨项目联调 · B 项目衔接

父文件 → references/cross-project-flow.md。 本文件按需加载:A 项目 step-2 触发后生成 prompt / B 项目新对话识别衔接信号时。

A 项目生成的衔接 prompt 模板

markdown

### 🔗 跨项目衔接

检测到修复目标不在当前项目,需要跨项目操作:

| 项目 | 角色 | 说明 |
| --- | --- | --- |
| {A 项目} | 发现方/验证方 | 当前项目,问题在此发现,修复后在此验证 |
| {B 项目} | 修复方 | 需要在此项目中修改代码 |

📋 **B 项目衔接 prompt**(可直接粘贴到 B 项目新对话中):

> dev-flow,跨项目修复衔接
> **来源**:{A 项目名} 的 {需求标题}
> **工作上下文**`{工作上下文文件路径}`
> **根因**:{一句话根因描述}
> **修复方案**:{一句话方案描述}
> **修改目标**:{文件列表}
> **依赖关系**:{A 项目} 依赖 {B 项目包名} {版本}

B 项目新对话:衔接 prompt 识别

识别信号(任一)

  • 包含"跨项目修复衔接"关键词
  • 包含"来源" + "工作上下文"路径 + "根因"
  • 用户粘贴了 step-2 生成的衔接 prompt

衔接后行为

  1. 读取 A 项目工作上下文:从衔接 prompt 中提取路径,read_file 加载
  2. 提取关键信息:根因、修复方案、修改目标、依赖关系
  3. 更新共用工作上下文(A/B 共用同一个 .md 文件,详见父文件「单 .flow 架构」说明):
  • 在需求标题前追加 [跨项目修复] 前缀,标记当前阶段
  • 根因分析直接复用
  • cross_project.statuspending_fix 改为 fixing
  • ## 进度 中追加 B 项目修复进展
  1. 更新共用 .flow 锁文件
  • phase=codingstatus=active、刷新 recovery("已接收衔接,正在 B 项目修复")
  1. 流程简化
  • 阶段 0:增量理解(从 A 项目上下文提取,不重新分析)
  • 🆕 根因与方案确认(阻塞性):阶段 0 增量理解完成后、步骤 2 之前,必须使用 ask_followup_question 弹出交互式选项让用户确认根因和方案在 B 项目侧是否正确:
markdown
### 🔗 B 项目根因与方案确认

**来源**:{A 项目名} 的 {需求标题 / 任务平台 ID}

**A 项目分析的根因**
{从 A 工作上下文提取的根因描述,1~3 句话}

**需要在 B 项目做的修改**
- {修改点 1}:{文件路径},{改什么}
- {修改点 2}:{文件路径},{改什么}

**依赖关系**:{A 项目} 依赖 {B 项目包名} {版本}

请确认以上信息在 B 项目侧是否正确:
选项说明
✅ 确认无误根因和方案正确,开始执行修复
✏️ 根因需要调整在 B 项目侧发现不同的根因 → 重新分析
✏️ 方案需要调整根因对但实现方案不适用 B 项目 → 调整方案
❌ 先跳过,等确认暂时不执行,标记为 blocked

交互循环

  • ✅ → 进入步骤 1(跳过,输出 skipped 标记)
  • ✏️ 根因 → AI 重新分析 B 项目侧根因 → 更新工作上下文 → 再次弹窗确认
  • ✏️ 方案 → AI 调整方案 → 更新工作上下文 → 再次弹窗确认
  • ❌ → 标记 cross_project.status = blocked,暂停等待

与 profile 预检的关系:两个弹窗独立,互不干扰。执行顺序:profile 预检(如触发)→ 根因与方案确认 → 步骤 2 范围确认。

  • 步骤 1:跳过(A 已完成研究定位)→ 输出 status: "skipped" 的完成标记 JSON
  • 步骤 2:快速确认范围(仅确认 B 项目中的文件)
  • 步骤 3~7:正常执行
  1. 更新 A 项目工作上下文cross_project.statuspending_fixfixing

B 项目衔接后的 profile 预检(C3 场景)

B 项目接收衔接 prompt 后、创建 B 项目工作上下文之前,执行:

  1. 根据包名从 remote-knowledge.md §二 项目映射表解析 B 项目名
  2. 检查 ~/.codebuddy/knowledge/{B项目}/_profile.md 是否存在且未过期
  3. profile 不存在必须用 ask_followup_question 弹出
选项说明
✅ 立即 dev:onboard B 项目~6k token,提升后续 80% 效率
⏭️ 跳过,本次走本地检索不触发 知识库平台 MCP
  1. profile 存在但 >45 天 → 同样用 ask_followup_question 弹出「🔄 立即刷新 / ⏭️ 本次沿用」
  2. profile 新鲜 → 直接注入上下文,零 MCP 调用

详细 profile 生命周期 → onboard-flow.md §五

A 项目验证回流

详见 integration.md §「A 项目验证回流」与「契约对齐」。

基于「单一权威源」哲学构建 —— 文档由源文件投影生成