6.0 KiB
6.0 KiB
Analysis Packet Family 黄金 12 条案例(V2)
目的
这份文档是给 analysis_packet family 单独准备的高标准黄金案例,不再复用旧那批偏空、偏合同向的样例。
这 12 条案例只做一件事:
- 验证
analysis_project_snapshot_loader -> analysis_packet_builder -> Web/Feishu presenter这条链,是否真的围绕项目对象在分析,而不是“字段合法 + 模板句子通了”。
对应自动化真源:
高标准判定
每条案例都必须同时满足:
- 输入里有明确项目对象或上下文锚点,不接受只有
这个适合吗这种空问句。 analysis_packet必须命中正确packet_type,并且focus_objects只围绕最相关的 1-2 个对象。- 若 snapshot 已给显式 object ref,builder 必须优先吃 ref,不能再靠模糊 task 名称或 partial match 乱选。
- 最终客户可见文本要像“围绕本项目对象做判断”,不能退回:
当前项目:/外部判断:/下一步:先说我的判断status_summary外部推荐证据质量
- 若文本里出现了当前 packet 没选中的对象,判失败。
黄金 12 条
01. 项目适配判断:库存上报项目里的 Responses API
- 输入:
OpenAI Responses API 放到采购经理每日实时库存上报服务里,适合放在哪一层? - 预期 packet:
project_fit_analysis - 预期对象:
- better fit:
每日固定时段生成并推送结构化摘要卡片 - not fit:
WMS库存快照自动拉取与清洗
- better fit:
- 预期结论:明确区分“解释层”与“确定性主链”
02. 项目适配判断:generic task title 也要按 ref 选对
- 输入:
这类能力放到库存异常播报助手里,应该落在哪步? - 预期 packet:
project_fit_analysis - 预期对象:
- better fit:
任务B - not fit:
任务A
- better fit:
- 预期重点:不能因为 task title 太泛就乱选,必须尊重显式
fit_candidate_task_ref / fit_rejected_task_ref
03. 项目适配判断:已 direct match 的 fit 结论
- 输入:
这条外部变化已经打到我们库存项目上了吗? - 预期 packet:
project_fit_analysis - 预期对象顺序:
- dependent:
WMS库存快照自动拉取与清洗 - anchor:
外部信号源 - WMS实时库存接口
- dependent:
- 预期结论:先落业务 task,再补 formal anchor
04. 外部 blocked:卡在哪条线索上
- 输入:
这个外部变化现在能直接挂到项目结论吗? - 预期 packet:
external_impact_analysis - 预期对象:
- blocked:
外部信号源 - WMS实时库存接口 - dependent:
每日固定时段生成并推送结构化摘要卡片
- blocked:
- 预期结论:明确说卡在 signal 线索上,下一步是“补齐到可校验”,不能说“修正证据质量 / 继续外部推荐”
05. 外部 direct match:先看受影响业务 task
- 输入:
这个变化是不是已经直接打到当前项目对象上了? - 预期 packet:
external_impact_analysis - 预期对象顺序:
- dependent:
WMS库存快照自动拉取与清洗 - anchor:
外部信号源 - WMS实时库存接口
- dependent:
- 预期结论:不是 anchor-first
06. 外部 indirect only:先试解释层,不动主链
- 输入:
这个外部能力现在和我们项目是什么关系? - 预期 packet:
external_impact_analysis - 预期对象:
- better fit:
每日固定时段生成并推送结构化摘要卡片 - not fit:
WMS库存快照自动拉取与清洗
- better fit:
- 预期结论:仍是背景相关,不能直接挂主链
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_threadclarification_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 / 泛化建议
- 命中
验证方式
最小自动化入口:
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 合法
- 必须同时证明最终客户可见文本也通过禁词/禁模板/对象命中校验