151 lines
6.0 KiB
Markdown
151 lines
6.0 KiB
Markdown
# Analysis Packet Family 黄金 12 条案例(V2)
|
||
|
||
## 目的
|
||
|
||
这份文档是给 `analysis_packet family` 单独准备的高标准黄金案例,不再复用旧那批偏空、偏合同向的样例。
|
||
|
||
这 12 条案例只做一件事:
|
||
|
||
- 验证 `analysis_project_snapshot_loader -> analysis_packet_builder -> Web/Feishu presenter`
|
||
这条链,是否真的围绕项目对象在分析,而不是“字段合法 + 模板句子通了”。
|
||
|
||
对应自动化真源:
|
||
|
||
- [backend/tests/test_analysis_packet_golden_v2.py](/Users/yuuuu/Documents/AIProjectManger/.worktrees/codex/unified-project-ai-handoff/backend/tests/test_analysis_packet_golden_v2.py)
|
||
|
||
## 高标准判定
|
||
|
||
每条案例都必须同时满足:
|
||
|
||
1. 输入里有明确项目对象或上下文锚点,不接受只有 `这个适合吗` 这种空问句。
|
||
2. `analysis_packet` 必须命中正确 `packet_type`,并且 `focus_objects` 只围绕最相关的 1-2 个对象。
|
||
3. 若 snapshot 已给显式 object ref,builder 必须优先吃 ref,不能再靠模糊 task 名称或 partial match 乱选。
|
||
4. 最终客户可见文本要像“围绕本项目对象做判断”,不能退回:
|
||
- `当前项目:/外部判断:/下一步:`
|
||
- `先说我的判断`
|
||
- `status_summary`
|
||
- `外部推荐`
|
||
- `证据质量`
|
||
5. 若文本里出现了当前 packet 没选中的对象,判失败。
|
||
|
||
## 黄金 12 条
|
||
|
||
### 01. 项目适配判断:库存上报项目里的 Responses API
|
||
|
||
- 输入:`OpenAI Responses API 放到采购经理每日实时库存上报服务里,适合放在哪一层?`
|
||
- 预期 packet:`project_fit_analysis`
|
||
- 预期对象:
|
||
- better fit:`每日固定时段生成并推送结构化摘要卡片`
|
||
- not fit:`WMS库存快照自动拉取与清洗`
|
||
- 预期结论:明确区分“解释层”与“确定性主链”
|
||
|
||
### 02. 项目适配判断:generic task title 也要按 ref 选对
|
||
|
||
- 输入:`这类能力放到库存异常播报助手里,应该落在哪步?`
|
||
- 预期 packet:`project_fit_analysis`
|
||
- 预期对象:
|
||
- better fit:`任务B`
|
||
- not fit:`任务A`
|
||
- 预期重点:不能因为 task title 太泛就乱选,必须尊重显式 `fit_candidate_task_ref / fit_rejected_task_ref`
|
||
|
||
### 03. 项目适配判断:已 direct match 的 fit 结论
|
||
|
||
- 输入:`这条外部变化已经打到我们库存项目上了吗?`
|
||
- 预期 packet:`project_fit_analysis`
|
||
- 预期对象顺序:
|
||
- dependent:`WMS库存快照自动拉取与清洗`
|
||
- anchor:`外部信号源 - WMS实时库存接口`
|
||
- 预期结论:先落业务 task,再补 formal anchor
|
||
|
||
### 04. 外部 blocked:卡在哪条线索上
|
||
|
||
- 输入:`这个外部变化现在能直接挂到项目结论吗?`
|
||
- 预期 packet:`external_impact_analysis`
|
||
- 预期对象:
|
||
- blocked:`外部信号源 - WMS实时库存接口`
|
||
- dependent:`每日固定时段生成并推送结构化摘要卡片`
|
||
- 预期结论:明确说卡在 signal 线索上,下一步是“补齐到可校验”,不能说“修正证据质量 / 继续外部推荐”
|
||
|
||
### 05. 外部 direct match:先看受影响业务 task
|
||
|
||
- 输入:`这个变化是不是已经直接打到当前项目对象上了?`
|
||
- 预期 packet:`external_impact_analysis`
|
||
- 预期对象顺序:
|
||
- dependent:`WMS库存快照自动拉取与清洗`
|
||
- anchor:`外部信号源 - WMS实时库存接口`
|
||
- 预期结论:不是 anchor-first
|
||
|
||
### 06. 外部 indirect only:先试解释层,不动主链
|
||
|
||
- 输入:`这个外部能力现在和我们项目是什么关系?`
|
||
- 预期 packet:`external_impact_analysis`
|
||
- 预期对象:
|
||
- better fit:`每日固定时段生成并推送结构化摘要卡片`
|
||
- not fit:`WMS库存快照自动拉取与清洗`
|
||
- 预期结论:仍是背景相关,不能直接挂主链
|
||
|
||
### 07. 内部 explain:模型路由现状
|
||
|
||
- 输入:`现在活动引擎是什么?`
|
||
- 预期 packet:`internal_explain_analysis`
|
||
- 预期对象:`模型路由配置`
|
||
- 预期结论:说“这轮问的是当前状态,所以直接答现状”,不能把 `status_summary` 这类 contract 字样直接暴露给用户
|
||
|
||
### 08. 内部 explain:现状 + 仍有一层未确认
|
||
|
||
- 输入:`当前活动引擎是什么,已经切到最新灰度了吗?`
|
||
- 预期 packet:`internal_explain_analysis`
|
||
- 预期对象:`模型路由配置`
|
||
- 预期结论:先说现状,再单独指出“还有一层没完全确认”
|
||
|
||
### 09. follow-up explain:路由澄清
|
||
|
||
- 输入:`你是想问外部公开事实,还是系统内部配置/项目对象?`
|
||
- 预期 packet:`followup_explain_analysis`
|
||
- 预期重点:
|
||
- `anchor_kind=reply_thread`
|
||
- `clarification_state=query_route_clarify`
|
||
- 最终文本要保留“需要先确认查询来源”这个结论
|
||
|
||
### 10. Feishu 文本呈现:fit indirect only
|
||
|
||
- 输入:与 Case 01 同构,但验的是最终 `qa_direct` 文本
|
||
- 预期输出:
|
||
- 命中 `每日固定时段生成并推送结构化摘要卡片`
|
||
- 命中 `WMS库存快照自动拉取与清洗`
|
||
- 不出现 `当前项目:/外部判断:/下一步:`
|
||
|
||
### 11. Feishu 文本呈现:verifier blocked
|
||
|
||
- 输入:与 Case 04 同构,但验的是最终 `qa_direct` 文本
|
||
- 预期输出:
|
||
- 命中 `补齐到可校验`
|
||
- 命中被影响 task
|
||
- 不出现 `外部推荐 / 证据质量`
|
||
|
||
### 12. Feishu 文本呈现:internal status
|
||
|
||
- 输入:与 Case 07 同构,但验的是最终 `qa_direct` 文本
|
||
- 预期输出:
|
||
- 命中 `模型路由配置`
|
||
- 不出现 `status_summary / contract / 泛化建议`
|
||
|
||
## 验证方式
|
||
|
||
最小自动化入口:
|
||
|
||
```bash
|
||
cd /Users/yuuuu/Documents/AIProjectManger/.worktrees/codex/unified-project-ai-handoff
|
||
PYTHONPATH=backend /Users/yuuuu/Documents/AIProjectManger/backend/venv/bin/python -m pytest \
|
||
backend/tests/test_analysis_project_snapshot_loader.py \
|
||
backend/tests/test_analysis_packet_contract.py \
|
||
backend/tests/test_feishu_card_action_contract.py \
|
||
backend/tests/test_analysis_packet_golden_v2.py -q
|
||
```
|
||
|
||
通过标准:
|
||
|
||
- 12 条新黄金案例全部通过
|
||
- 不能只证明 packet/schema 合法
|
||
- 必须同时证明最终客户可见文本也通过禁词/禁模板/对象命中校验
|