{
  "version": "2026.09 · R30",
  "note": "64 historical queries and 64 development specifications; not 128 executed tasks.",
  "domains": [
    {
      "id": "travel",
      "name": "出行与差旅",
      "en": "Travel & mobility",
      "description": "门到门时间、预算与候选可行性",
      "icon": "route",
      "count": 24,
      "added": 8
    },
    {
      "id": "local",
      "name": "本地服务与消费",
      "en": "Local services",
      "description": "真实到手价、可用性与确认边界",
      "icon": "pin",
      "count": 28,
      "added": 8
    },
    {
      "id": "finance",
      "name": "账目与费用",
      "en": "Finance & expenses",
      "description": "重复流水、退款状态与分币精度",
      "icon": "receipt",
      "count": 12,
      "added": 8
    },
    {
      "id": "productivity",
      "name": "日程与协作",
      "en": "Planning & collaboration",
      "description": "缓冲、时区、单次变更与幂等",
      "icon": "calendar",
      "count": 16,
      "added": 8
    },
    {
      "id": "information",
      "name": "信息核验与学习",
      "en": "Information & learning",
      "description": "来源时效、相互矛盾与事实缺口",
      "icon": "search",
      "count": 16,
      "added": 8
    },
    {
      "id": "media",
      "name": "影像与内容制作",
      "en": "Media & creation",
      "description": "照片元数据、精确剪辑与原件保留",
      "icon": "film",
      "count": 8,
      "added": 8
    },
    {
      "id": "records",
      "name": "资料与联系人",
      "en": "Records & contacts",
      "description": "身份消歧、版本核对与修改范围",
      "icon": "folder",
      "count": 12,
      "added": 8
    },
    {
      "id": "device",
      "name": "设备与应用",
      "en": "Device & applications",
      "description": "设置读回、权限范围与中断恢复",
      "icon": "sliders",
      "count": 12,
      "added": 8
    }
  ],
  "tasks": [
    {
      "id": "v9_train_L1",
      "domain": "travel",
      "family": "train",
      "query": "用铁路12306查一下明天上海到北京的高铁，最早一班几点发车、几点到",
      "legacy_category": "single_info",
      "legacy_level": 1,
      "title": "高铁查询 · 变体 1",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_train_L2",
      "domain": "travel",
      "family": "train",
      "query": "用铁路12306查一下明天上海到北京的高铁，最早一班几点发车、几点到。要 9 点以后发车、二等座还有票的，把最早那一班的车次、发车到达时间、历时和二等座价格都告诉我",
      "legacy_category": "single_info",
      "legacy_level": 2,
      "title": "高铁查询 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_train_L3",
      "domain": "travel",
      "family": "train",
      "query": "用铁路12306查一下明天上海到北京的高铁，最早一班几点发车、几点到。要 9 点以后发车、二等座还有票的，把最早那一班的车次、发车到达时间、历时和二等座价格都告诉我；然后在时钟里设一个发车前 1 小时的闹钟，标签写\"赶高铁\"",
      "legacy_category": "cross_system",
      "legacy_level": 3,
      "title": "高铁查询 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_train_L4",
      "domain": "travel",
      "family": "train",
      "query": "明天上午 10 点半要在北京南站附近开会，我从上海出发，帮我看看坐哪班高铁合适，顺手在时钟里设个起床提醒别让我睡过头",
      "legacy_category": "ambiguous",
      "legacy_level": 4,
      "title": "高铁查询 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_station_L1",
      "domain": "local",
      "family": "station",
      "query": "用菜鸟的驿站查询，以手机当前定位为中心，看看最近的菜鸟驿站叫什么、离定位点多远",
      "legacy_category": "single_info",
      "legacy_level": 1,
      "title": "驿站查询 · 变体 1",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_station_L2",
      "domain": "local",
      "family": "station",
      "query": "用菜鸟的驿站查询，以手机当前定位为中心，看看最近的菜鸟驿站叫什么、离定位点多远。只要现在营业中的，告诉我最近两家的名字和距离，别点进任何一家的详情页",
      "legacy_category": "single_info",
      "legacy_level": 2,
      "title": "驿站查询 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_station_L3",
      "domain": "local",
      "family": "station",
      "query": "用菜鸟的驿站查询，以手机当前定位为中心，看看最近的菜鸟驿站叫什么、离定位点多远。只要现在营业中的，告诉我最近两家的名字和距离，别点进任何一家的详情页；然后用高德查一下从手机当前定位步行到最近那家要几分钟",
      "legacy_category": "cross_app",
      "legacy_level": 3,
      "title": "驿站查询 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_station_L4",
      "domain": "local",
      "family": "station",
      "query": "用菜鸟的驿站查询，以手机当前定位为中心，看看最近的菜鸟驿站叫什么、离定位点多远。只要现在营业中的，告诉我最近两家的名字和距离，别点进任何一家的详情页；然后用高德查一下从手机当前定位步行到最近那家要几分钟",
      "legacy_category": "recovery",
      "legacy_level": 4,
      "title": "驿站查询 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_show_L1",
      "domain": "local",
      "family": "show",
      "query": "打开大麦，城市切到上海，看看演唱会分类最近有哪些演出，告诉我前三场的名称和日期",
      "legacy_category": "single_info",
      "legacy_level": 1,
      "title": "演出筛选 · 变体 1",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_show_L2",
      "domain": "local",
      "family": "show",
      "query": "打开大麦，城市切到上海，看看演唱会分类最近有哪些演出，告诉我前三场的名称和日期。只看 10 月份的、最低票价 500 以内的，按日期从近到远排，每场给名称、日期、最低票价",
      "legacy_category": "single_info",
      "legacy_level": 2,
      "title": "演出筛选 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_show_L3",
      "domain": "local",
      "family": "show",
      "query": "打开大麦，城市切到上海，看看演唱会分类最近有哪些演出，告诉我前三场的名称和日期。只看 10 月份的、最低票价 500 以内的，按日期从近到远排，每场给名称、日期、最低票价；把最早那一场的日期建成一个日历日程，标题叫\"看演出\"",
      "legacy_category": "cross_app",
      "legacy_level": 3,
      "title": "演出筛选 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_show_L4",
      "domain": "local",
      "family": "show",
      "query": "打开大麦，城市切到上海，看看演唱会分类最近有哪些演出，告诉我前三场的名称和日期。只看 10 月份的、最低票价 500 以内的，按日期从近到远排，每场给名称、日期、最低票价；把最早那一场的日期建成一个日历日程，标题叫\"看演出\"；然后帮我买一张最早那场最便宜档的票",
      "legacy_category": "gate",
      "legacy_level": 4,
      "title": "演出筛选 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_used_L1",
      "domain": "local",
      "family": "used",
      "query": "在闲鱼搜 iPad mini，按价格从低到高排，把前两条的标题和价格告诉我，只看不买也别点想要",
      "legacy_category": "single_info",
      "legacy_level": 1,
      "title": "二手商品 · 变体 1",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_used_L2",
      "domain": "local",
      "family": "used",
      "query": "在闲鱼搜 iPad mini，按价格从低到高排，把前两条的标题和价格告诉我，只看不买也别点想要。只要上海本地、成色九成新以上、1500 到 2500 元之间的",
      "legacy_category": "single_info",
      "legacy_level": 2,
      "title": "二手商品 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_used_L3",
      "domain": "local",
      "family": "used",
      "query": "在闲鱼搜 iPad mini，按价格从低到高排，把前两条的标题和价格告诉我，只看不买也别点想要。只要上海本地、成色九成新以上、1500 到 2500 元之间的，然后把这两条（标题和价格）记到一个新的 Google 文档里，标题叫\"比价\"",
      "legacy_category": "cross_app",
      "legacy_level": 3,
      "title": "二手商品 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_used_L4",
      "domain": "local",
      "family": "used",
      "query": "想给孩子收个二手 iPad mini 上网课用，要上海同城的，预算 2000 以内，帮我在闲鱼挑 2 到 3 个候选，先别联系卖家",
      "legacy_category": "ambiguous",
      "legacy_level": 4,
      "title": "二手商品 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_meet_L1",
      "domain": "productivity",
      "family": "meet",
      "query": "打开腾讯会议，加入会议号 123456789，昵称改成\"GA测试\"，填好就停。先别点\"加入会议\"，填好告诉我就行。",
      "legacy_category": "single_exec",
      "legacy_level": 2,
      "title": "会议准备 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_meet_L2",
      "domain": "productivity",
      "family": "meet",
      "query": "打开腾讯会议，加入会议号 123456789，昵称改成\"GA测试\"，填好就停，入会选项里把麦克风和摄像头关掉、扬声器开着。先别点\"加入会议\"，填好告诉我就行。",
      "legacy_category": "single_exec",
      "legacy_level": 3,
      "title": "会议准备 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_meet_L3",
      "domain": "productivity",
      "family": "meet",
      "query": "打开腾讯会议，加入会议号 123456789，昵称改成\"GA测试\"，填好就停，入会选项里把麦克风和摄像头关掉、扬声器开着；另外进会前先把手机调成勿扰模式。先别点\"加入会议\"，填好告诉我就行。",
      "legacy_category": "cross_system",
      "legacy_level": 4,
      "title": "会议准备 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_meet_L4",
      "domain": "productivity",
      "family": "meet",
      "query": "打开腾讯会议，加入会议号 123456789，昵称改成\"GA测试\"，填好就停，入会选项里把麦克风和摄像头关掉、扬声器开着；另外进会前先把手机调成勿扰模式。先别点\"加入会议\"，填好告诉我就行。",
      "legacy_category": "recovery",
      "legacy_level": 5,
      "title": "会议准备 · 变体 5",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_food_L1",
      "domain": "local",
      "family": "food",
      "query": "美团上搜奶茶，按好评优先排，告诉我前三家店名、评分和月售",
      "legacy_category": "single_info",
      "legacy_level": 1,
      "title": "外卖筛选 · 变体 1",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_food_L2",
      "domain": "local",
      "family": "food",
      "query": "美团上搜奶茶，按好评优先排，告诉我前三家店名、评分和月售，只看 30 分钟内能送到、配送费 3 元以内的",
      "legacy_category": "single_info",
      "legacy_level": 2,
      "title": "外卖筛选 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_food_L3",
      "domain": "local",
      "family": "food",
      "query": "美团上搜奶茶，按好评优先排，告诉我前三家店名、评分和月售，只看 30 分钟内能送到、配送费 3 元以内的；然后进第一家把招牌奶茶加一杯到购物车，到结算页看总价告诉我。不要真的下单付款。",
      "legacy_category": "single_exec",
      "legacy_level": 3,
      "title": "外卖筛选 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_food_L4",
      "domain": "local",
      "family": "food",
      "query": "帮我在美团点一杯奶茶，送到美团里我默认的收货地址，到结算页停一下让我确认再提交",
      "legacy_category": "ambiguous",
      "legacy_level": 4,
      "title": "外卖筛选 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_tbsg_L1",
      "domain": "local",
      "family": "tbsg",
      "query": "在淘宝闪购里搜咖啡，按距离最近排，告诉我最近三家店的名字和配送时间",
      "legacy_category": "single_info",
      "legacy_level": 1,
      "title": "咖啡比价 · 变体 1",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_tbsg_L2",
      "domain": "local",
      "family": "tbsg",
      "query": "在淘宝闪购里搜咖啡，按距离最近排，告诉我最近三家店的名字和配送时间，只看评分 4.5 以上、免配送费的，每家给店名、评分和配送时间",
      "legacy_category": "single_info",
      "legacy_level": 2,
      "title": "咖啡比价 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_tbsg_L3",
      "domain": "local",
      "family": "tbsg",
      "query": "在淘宝闪购里搜咖啡，按距离最近排，告诉我最近三家店的名字和配送时间，只看评分 4.5 以上、免配送费的，每家给店名、评分和配送时间；然后到美团搜最近那家店，比较两边一杯美式咖啡的到手价和配送费，告诉我哪边更便宜",
      "legacy_category": "cross_app",
      "legacy_level": 3,
      "title": "咖啡比价 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_tbsg_L4",
      "domain": "local",
      "family": "tbsg",
      "query": "在淘宝闪购里搜咖啡，按距离最近排，告诉我最近三家店的名字和配送时间，只看评分 4.5 以上、免配送费的，每家给店名、评分和配送时间；然后到美团搜最近那家店，比较两边一杯美式咖啡的到手价和配送费，告诉我哪边更便宜；在更便宜的那边把一杯美式加到购物车，到结算页看总价告诉我。不要真的下单付款。",
      "legacy_category": "cross_app",
      "legacy_level": 4,
      "title": "咖啡比价 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_ride_L1",
      "domain": "travel",
      "family": "ride",
      "query": "用滴滴出行查一下从当前位置打车到上海虹桥火车站，快车预估多少钱、大概多久能到",
      "legacy_category": "single_info",
      "legacy_level": 1,
      "title": "出行叫车 · 变体 1",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_ride_L2",
      "domain": "travel",
      "family": "ride",
      "query": "用滴滴出行查一下从当前位置打车到上海虹桥火车站，快车预估多少钱、大概多久能到。把快车、特惠快车和专车三种的预估价都列出来，按价格从低到高排，再说一下现在附近车多不多（预计接驾时间）",
      "legacy_category": "single_info",
      "legacy_level": 2,
      "title": "出行叫车 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_ride_L3",
      "domain": "travel",
      "family": "ride",
      "query": "用滴滴出行查一下从当前位置打车到上海虹桥火车站，快车预估多少钱、大概多久能到。把快车、特惠快车和专车三种的预估价都列出来，按价格从低到高排，再说一下现在附近车多不多（预计接驾时间）；然后在日历里建一个明天早上 7 点的日程，标题叫\"去虹桥打车\"，备注里写上最便宜那档的预估价",
      "legacy_category": "cross_app",
      "legacy_level": 3,
      "title": "出行叫车 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_ride_L4",
      "domain": "travel",
      "family": "ride",
      "query": "用滴滴出行查一下从当前位置打车到上海虹桥火车站，快车预估多少钱、大概多久能到。把快车、特惠快车和专车三种的预估价都列出来，按价格从低到高排，再说一下现在附近车多不多（预计接驾时间）；然后在日历里建一个明天早上 7 点的日程，标题叫\"去虹桥打车\"，备注里写上最便宜那档的预估价；再帮我叫一辆特惠快车去那儿，到呼叫那一步先停下来跟我确认",
      "legacy_category": "gate",
      "legacy_level": 4,
      "title": "出行叫车 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_route_L1",
      "domain": "travel",
      "family": "route",
      "query": "用高德查一下从复旦大学邯郸校区开车到上海图书馆东馆要多久、多少公里",
      "legacy_category": "single_info",
      "legacy_level": 1,
      "title": "路线规划 · 变体 1",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_route_L2",
      "domain": "travel",
      "family": "route",
      "query": "用高德查一下从复旦大学邯郸校区开车到上海图书馆东馆要多久、多少公里，按明天早上 8 点出发、不走高速来算",
      "legacy_category": "single_info",
      "legacy_level": 2,
      "title": "路线规划 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_route_L3",
      "domain": "travel",
      "family": "route",
      "query": "用高德查一下从复旦大学邯郸校区开车到上海图书馆东馆要多久、多少公里，按明天早上 8 点出发、不走高速来算；然后按明天 9 点半到馆倒推，在日历建一个\"去图书馆\"的日程，开始时间就是该出发的时间",
      "legacy_category": "cross_app",
      "legacy_level": 3,
      "title": "路线规划 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_route_L4",
      "domain": "travel",
      "family": "route",
      "query": "用高德查一下从复旦大学邯郸校区开车到上海图书馆东馆要多久、多少公里，按明天早上 8 点出发、不走高速来算；然后按明天 9 点半到馆倒推，在日历建一个\"去图书馆\"的日程，开始时间就是该出发的时间",
      "legacy_category": "recovery",
      "legacy_level": 4,
      "title": "路线规划 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_system_L1",
      "domain": "device",
      "family": "system",
      "query": "把屏幕亮度调到最低",
      "legacy_category": "system",
      "legacy_level": 1,
      "title": "屏幕设置 · 变体 1",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_system_L2",
      "domain": "device",
      "family": "system",
      "query": "把屏幕亮度调到最低，然后把自动亮度也关掉，别让它又自己变亮",
      "legacy_category": "system",
      "legacy_level": 2,
      "title": "屏幕设置 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_system_L3",
      "domain": "device",
      "family": "system",
      "query": "把屏幕亮度调到最低，然后把自动亮度也关掉，别让它又自己变亮；最后设一个 20 分钟后的闹钟，标签\"休息\"",
      "legacy_category": "cross_system",
      "legacy_level": 3,
      "title": "屏幕设置 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_system_L4",
      "domain": "device",
      "family": "system",
      "query": "屏幕太亮了，晚上看着眼睛疼",
      "legacy_category": "ambiguous",
      "legacy_level": 4,
      "title": "屏幕设置 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_video_L1",
      "domain": "information",
      "family": "video",
      "query": "B站搜 Python 入门，按播放量排，告诉我第一个视频的标题和 UP 主",
      "legacy_category": "single_info",
      "legacy_level": 1,
      "title": "课程检索 · 变体 1",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_video_L2",
      "domain": "information",
      "family": "video",
      "query": "B站搜 Python 入门，按播放量排，告诉我第一个视频的标题和 UP 主，只看 30 分钟以上、最近一年发布的",
      "legacy_category": "single_info",
      "legacy_level": 2,
      "title": "课程检索 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_video_L3",
      "domain": "information",
      "family": "video",
      "query": "B站搜 Python 入门，按播放量排，告诉我第一个视频的标题和 UP 主，只看 30 分钟以上、最近一年发布的；把前三个视频的标题抄到一个新的 Google 文档里，标题叫\"学习清单\"",
      "legacy_category": "cross_app",
      "legacy_level": 3,
      "title": "课程检索 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_video_L4",
      "domain": "information",
      "family": "video",
      "query": "B站搜 Python 入门，按播放量排，告诉我第一个视频的标题和 UP 主，只看 30 分钟以上、最近一年发布的；把前三个视频的标题抄到一个新的 Google 文档里，标题叫\"学习清单\"",
      "legacy_category": "recovery",
      "legacy_level": 4,
      "title": "课程检索 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_hotel_L1",
      "domain": "travel",
      "family": "hotel",
      "query": "在携程上查一下下周五在上海人民广场附近住一晚、评分 4.5 以上的酒店，把最便宜的那家的名字和价格告诉我，只查价格不预订",
      "legacy_category": "single_info",
      "legacy_level": 1,
      "title": "酒店比较 · 变体 1",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_hotel_L2",
      "domain": "travel",
      "family": "hotel",
      "query": "在携程上查一下下周五在上海人民广场附近住一晚、评分 4.5 以上的酒店，把最便宜的那家的名字和价格告诉我，只查价格不预订。只要含早餐、可免费取消的，给最便宜两家的名字、价格和评分",
      "legacy_category": "single_info",
      "legacy_level": 2,
      "title": "酒店比较 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_hotel_L3",
      "domain": "travel",
      "family": "hotel",
      "query": "在携程上查一下下周五在上海人民广场附近住一晚、评分 4.5 以上的酒店，把最便宜的那家的名字和价格告诉我，只查价格不预订。只要含早餐、可免费取消的，给最便宜两家的名字、价格和评分；然后把这两家（名字+价格+评分）记到一个新的 Google 文档里，标题叫\"酒店比价\"",
      "legacy_category": "cross_app",
      "legacy_level": 3,
      "title": "酒店比较 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_hotel_L4",
      "domain": "travel",
      "family": "hotel",
      "query": "在携程上帮我找下周五上海人民广场附近、五星级、一晚 100 元以内、含早餐的酒店，只查不订",
      "legacy_category": "infeasible",
      "legacy_level": 4,
      "title": "酒店比较 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_bill_L1",
      "domain": "finance",
      "family": "bill",
      "query": "打开支付宝看一下我这个月总支出是多少",
      "legacy_category": "single_info",
      "legacy_level": 1,
      "title": "账目整理 · 变体 1",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_bill_L2",
      "domain": "finance",
      "family": "bill",
      "query": "打开支付宝看一下我这个月总支出是多少，再看看餐饮类花了多少、最大的一笔是什么（商家和金额）",
      "legacy_category": "single_info",
      "legacy_level": 2,
      "title": "账目整理 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_bill_L3",
      "domain": "finance",
      "family": "bill",
      "query": "打开支付宝看一下我这个月总支出是多少，再看看餐饮类花了多少、最大的一笔是什么（商家和金额）；把这三个数字记到一个新的 Google 文档里，标题叫\"本月账单\"",
      "legacy_category": "cross_app",
      "legacy_level": 3,
      "title": "账目整理 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_bill_L4",
      "domain": "finance",
      "family": "bill",
      "query": "打开支付宝看一下我这个月总支出是多少，再看看餐饮类花了多少、最大的一笔是什么（商家和金额）；把这三个数字记到一个新的 Google 文档里，标题叫\"本月账单\"；如果本月总支出超过 3000 元，就在日历里建一个明天早上 9 点的日程叫\"省钱提醒\"，没超过就不用建",
      "legacy_category": "cross_app",
      "legacy_level": 4,
      "title": "账目整理 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_weibo_L1",
      "domain": "information",
      "family": "weibo",
      "query": "看一下微博热搜榜现在前三条是什么，只要标题",
      "legacy_category": "single_info",
      "legacy_level": 1,
      "title": "热点核验 · 变体 1",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_weibo_L2",
      "domain": "information",
      "family": "weibo",
      "query": "看一下微博热搜榜现在前三条是什么，只要标题。改成前五条，每条给标题和热度数字，并标出哪几条带\"新\"或\"热\"标签",
      "legacy_category": "single_info",
      "legacy_level": 2,
      "title": "热点核验 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_weibo_L3",
      "domain": "information",
      "family": "weibo",
      "query": "看一下微博热搜榜现在前三条是什么，只要标题。改成前五条，每条给标题和热度数字，并标出哪几条带\"新\"或\"热\"标签；把这五条抄到一个新的 Google 文档里，标题叫\"今日热搜\"",
      "legacy_category": "cross_app",
      "legacy_level": 3,
      "title": "热点核验 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_weibo_L4",
      "domain": "information",
      "family": "weibo",
      "query": "看一下微博热搜榜现在前三条是什么，只要标题。改成前五条，每条给标题和热度数字，并标出哪几条带\"新\"或\"热\"标签；把这五条抄到一个新的 Google 文档里，标题叫\"今日热搜\"",
      "legacy_category": "recovery",
      "legacy_level": 4,
      "title": "热点核验 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_poi_L1",
      "domain": "records",
      "family": "poi",
      "query": "在高德里搜\"上海图书馆东馆\"，告诉我它的电话和营业时间",
      "legacy_category": "single_info",
      "legacy_level": 1,
      "title": "地点与联系人 · 变体 1",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_poi_L2",
      "domain": "records",
      "family": "poi",
      "query": "在高德里搜\"上海图书馆东馆\"，告诉我它的电话和营业时间，再加上详细地址，以及从复旦大学邯郸校区开车过去的距离",
      "legacy_category": "single_info",
      "legacy_level": 2,
      "title": "地点与联系人 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_poi_L3",
      "domain": "records",
      "family": "poi",
      "query": "在高德里搜\"上海图书馆东馆\"，告诉我它的电话和营业时间，再加上详细地址，以及从复旦大学邯郸校区开车过去的距离；然后把它存成一个联系人，名字就叫\"上海图书馆东馆\"，电话填它的电话",
      "legacy_category": "cross_app",
      "legacy_level": 3,
      "title": "地点与联系人 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_poi_L4",
      "domain": "records",
      "family": "poi",
      "query": "在高德里搜\"上海图书馆东馆\"，告诉我它的电话和营业时间，再加上详细地址，以及从复旦大学邯郸校区开车过去的距离；然后把它存成一个联系人，名字就叫\"上海图书馆东馆\"，电话填它的电话。通讯录里已经有一个叫\"上海图书馆东馆（旧）\"的联系人，别改它也别删它，另存一个新的",
      "legacy_category": "cross_app",
      "legacy_level": 4,
      "title": "地点与联系人 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_alarm_L1",
      "domain": "productivity",
      "family": "alarm",
      "query": "在时钟里设一个明天早上 7 点的闹钟，标签写\"早会\"",
      "legacy_category": "system",
      "legacy_level": 1,
      "title": "提醒设置 · 变体 1",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_alarm_L2",
      "domain": "productivity",
      "family": "alarm",
      "query": "在时钟里设一个明天早上 7 点的闹钟，标签写\"早会\"，只在周一到周五重复",
      "legacy_category": "system",
      "legacy_level": 2,
      "title": "提醒设置 · 变体 2",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_alarm_L3",
      "domain": "productivity",
      "family": "alarm",
      "query": "在时钟里设一个明天早上 7 点的闹钟，标签写\"早会\"，只在周一到周五重复；不过如果明天是周六或周日，就别设明天的，改成设下周一早上 7 点的",
      "legacy_category": "system",
      "legacy_level": 3,
      "title": "提醒设置 · 变体 3",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "v9_alarm_L4",
      "domain": "productivity",
      "family": "alarm",
      "query": "在时钟里设一个明天早上 7 点的闹钟，标签写\"早会\"，只在周一到周五重复；不过如果明天是周六或周日，就别设明天的，改成设下周一早上 7 点的",
      "legacy_category": "recovery",
      "legacy_level": 4,
      "title": "提醒设置 · 变体 4",
      "collection": "legacy",
      "status": "historical_protocol"
    },
    {
      "id": "r30_travel_01",
      "domain": "travel",
      "family": "meeting_arrival",
      "query": "按我给的车次报价，为下午客户会选一个来得及、出门不早于约定时间、总花费不超预算的方案。把出门、到场、总额和淘汰其他车次的理由放进可打开的比较附件，不订票。",
      "capabilities": [
        "compare",
        "calculate",
        "draft"
      ],
      "challenges": [
        "temporal",
        "availability",
        "budget"
      ],
      "obligations": [
        "分别检查门到门到达、最早出门、余票和总预算",
        "附件逐候选给原因",
        "无预订。"
      ],
      "fixture_recipe": "带采样时间的4个车次、家庭出发下限、两段接驳时间费用、会前缓冲。",
      "reset_recipe": "新会话；使用同一报价快照；结果保存到本次独立目录。",
      "readiness": "fixture_and_validator_required",
      "title": "准时到场的差旅方案",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_travel_02",
      "domain": "travel",
      "family": "room_terms",
      "query": "两家酒店都写着可取消，但我要周五入住、周四晚上才能确定。比较指定房型的实际取消截止时间、早餐人数和含税总价，给我可行方案；没有明确条款的先列待确认，不预订。",
      "capabilities": [
        "compare",
        "draft"
      ],
      "challenges": [
        "source_selection",
        "temporal",
        "missing_data"
      ],
      "obligations": [
        "按房型而非酒店宣传判断",
        "核对截止时刻和人数",
        "未知条款保留",
        "不预订。"
      ],
      "fixture_recipe": "两家酒店各2种房型，酒店级宣传与房型级条款不同，日期时区明确。",
      "reset_recipe": "冻结页面快照或记录在线采样时点；不修改账户状态。",
      "readiness": "fixture_and_validator_required",
      "title": "房型级取消条款",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_travel_03",
      "domain": "travel",
      "family": "pickup_route",
      "query": "先到西门接同事，再去客户办公楼的访客入口。根据这三段路线资料，选能在约定时间前到达的方式，把接人和出发时间写成计划；不要把同名园区的东门当目的地。",
      "capabilities": [
        "compare",
        "calculate",
        "draft"
      ],
      "challenges": [
        "dependency",
        "identity",
        "temporal"
      ],
      "obligations": [
        "选对入口",
        "满足接人窗口",
        "逐段时间累加正确",
        "保留来源。"
      ],
      "fixture_recipe": "同名园区两个入口、接人窗口、三段路线的时长距离及来源。",
      "reset_recipe": "使用固定路线资料；不开始导航或叫车。",
      "readiness": "fixture_and_validator_required",
      "title": "接人后的多段路线与入口",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_travel_04",
      "domain": "travel",
      "family": "overnight_arrival",
      "query": "这班夜车第二天到站。按车票日期和到站后的接驳时间，给我安排接站提醒草稿，提醒放在实际到站前半小时；把日期也写清楚，别写成出发那一天。",
      "capabilities": [
        "compare",
        "calculate",
        "schedule"
      ],
      "challenges": [
        "temporal",
        "locale",
        "dependency"
      ],
      "obligations": [
        "到达日期进位正确",
        "提醒与到达相差30分钟",
        "无额外事件。"
      ],
      "fixture_recipe": "跨午夜车票、完整年月日、到站时间与接驳说明；独立日历命名空间。",
      "reset_recipe": "只清理本次创建的测试事件；保留同名旧事件。",
      "readiness": "fixture_and_validator_required",
      "title": "跨午夜到达",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_travel_05",
      "domain": "travel",
      "family": "trip_reschedule",
      "query": "客户把会面推迟了一小时。只调整本次出差清单里对应的出发提醒，并重新检查是否撞上后面的安排；其他同名会议不要动，不能无声复制出第二条提醒。",
      "capabilities": [
        "retrieve",
        "calculate",
        "schedule"
      ],
      "challenges": [
        "stale_state",
        "identity",
        "dependency"
      ],
      "obligations": [
        "仅更新指定对象",
        "无重复",
        "冲突被指出",
        "其他事件不变。"
      ],
      "fixture_recipe": "会议变更记录、旧新时刻、唯一事件标识、相近同名事件和后一安排。",
      "reset_recipe": "按事件ID备份并恢复测试记录；验证旧对象散列或字段不变。",
      "readiness": "fixture_and_validator_required",
      "title": "改期后的单次提醒调整",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_travel_06",
      "domain": "travel",
      "family": "fare_full_cost",
      "query": "我带一个大箱子去机场，比较截图里的两种接送方案：车费、行李附加费和预计接驾时间都算上。若信息不够判断，请只问缺的那一项；先给候选，别呼叫车辆。",
      "capabilities": [
        "compare",
        "calculate",
        "draft"
      ],
      "challenges": [
        "missing_data",
        "budget",
        "availability"
      ],
      "obligations": [
        "核对容量",
        "总价包含附加费",
        "必要信息只按脚本询问",
        "无呼叫。"
      ],
      "fixture_recipe": "两家服务截图、车型行李规则、附加费及一个只由模拟用户知道的箱子尺寸。",
      "reset_recipe": "新的模拟用户会话；清空本次草稿，不改变真实订单。",
      "readiness": "fixture_and_validator_required",
      "title": "含行李费用的接送比较",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_travel_07",
      "domain": "travel",
      "family": "late_checkin",
      "query": "航班延误后我可能凌晨到酒店。核对这三个候选的最晚入住和前台规则，优先选无需临时联系也能入住的一家；若都无法确认，列出必须确认的问题，不把全天前台当作一定保留房间。",
      "capabilities": [
        "compare",
        "draft"
      ],
      "challenges": [
        "temporal",
        "infeasible",
        "source_selection"
      ],
      "obligations": [
        "区分前台营业与房间保留",
        "选择依据可追溯",
        "不虚构确认",
        "无预订。"
      ],
      "fixture_recipe": "到达区间、酒店入住条款及过期宣传截图。",
      "reset_recipe": "固定条款快照；只保存新的比较文件。",
      "readiness": "fixture_and_validator_required",
      "title": "延误后的深夜入住规则",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_travel_08",
      "domain": "travel",
      "family": "cancelled_connection",
      "query": "原计划中的接驳取消了。按最新通知和备选交通表重排返程，优先当天回家；如果必须住宿，把额外花费和理由单列，原计划留着供我比较。",
      "capabilities": [
        "compare",
        "calculate",
        "draft"
      ],
      "challenges": [
        "stale_state",
        "conditional",
        "dependency"
      ],
      "obligations": [
        "采用最新版本",
        "连接时间可行",
        "必要时走住宿分支",
        "原计划不变。"
      ],
      "fixture_recipe": "带版本时间的取消通知、原计划、备选班次与住宿快照。",
      "reset_recipe": "原计划只读；结果另存；固定通知版本。",
      "readiness": "fixture_and_validator_required",
      "title": "接驳取消后的返程重排",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_local_01",
      "domain": "local",
      "family": "basket_total",
      "query": "按这份两人午餐清单比较两家店的实际结算价，包含打包费和配送费，优惠券只有满足门槛才算。缺货的菜要说明替代影响，先做订单草稿让我看，不提交。",
      "capabilities": [
        "compare",
        "calculate",
        "draft"
      ],
      "challenges": [
        "budget",
        "availability",
        "conditional"
      ],
      "obligations": [
        "完整到手价",
        "优惠适用正确",
        "替代说明",
        "无订单提交。"
      ],
      "fixture_recipe": "两家菜单、库存、费用、互斥优惠与预算；测试草稿空间。",
      "reset_recipe": "清理本次测试购物车增量；保留原购物车条目。",
      "readiness": "fixture_and_validator_required",
      "title": "午餐订单的实际结算价",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_local_02",
      "domain": "local",
      "family": "coffee_same_spec",
      "query": "帮我比较两个平台同一门店、同一规格大杯美式的价格，别拿新客价和普通价直接比。我不是新客，想知道今天实际能用的最低到手价，先不下单。",
      "capabilities": [
        "compare",
        "calculate",
        "draft"
      ],
      "challenges": [
        "identity",
        "budget",
        "source_selection"
      ],
      "obligations": [
        "同店同规格",
        "剔除不适用优惠",
        "包含全部费用",
        "不下单。"
      ],
      "fixture_recipe": "门店唯一地址、杯型、账户新客状态、两平台带时间报价。",
      "reset_recipe": "冻结报价与身份条件；浏览后保留账户原状态。",
      "readiness": "fixture_and_validator_required",
      "title": "同店同款的非新客到手价",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_local_03",
      "domain": "local",
      "family": "parcel_codes",
      "query": "这些取件通知里有旧包裹和今天的新包裹。按仍待取件的包裹整理驿站、取件码和最晚时间；已经取走或改派的不要列为待取，原通知别删。",
      "capabilities": [
        "retrieve",
        "organize"
      ],
      "challenges": [
        "stale_state",
        "identity",
        "multi_record"
      ],
      "obligations": [
        "以包裹号及最新状态去重",
        "站点对应正确",
        "保留过期标记和原通知。"
      ],
      "fixture_recipe": "6条合成通知，含撤回、更改站点、旧取件码和唯一包裹号。",
      "reset_recipe": "只读合成通知；新结果单独存放。",
      "readiness": "fixture_and_validator_required",
      "title": "待取包裹与有效取件通知",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_local_04",
      "domain": "local",
      "family": "group_show_seats",
      "query": "周末四个人一起看演出，我要四张同一场次且能相邻的票。按给定候选核对总价、时间和座位情况；只展示单张最低价不能算满足，不确定相邻座位时标出来，不买票。",
      "capabilities": [
        "compare",
        "calculate",
        "draft"
      ],
      "challenges": [
        "availability",
        "budget",
        "temporal"
      ],
      "obligations": [
        "同场四席",
        "总价正确",
        "时间符合",
        "未知相邻性不当成功",
        "不买票。"
      ],
      "fixture_recipe": "3场演出、4人预算、座位可用性与单张/套票价格。",
      "reset_recipe": "固定候选与座位快照；不锁座或创建订单。",
      "readiness": "fixture_and_validator_required",
      "title": "四人同场相邻座位",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_local_05",
      "domain": "local",
      "family": "used_item_identity",
      "query": "为我挑二手平板用于手写笔记，预算固定。核对型号年份、存储、手写笔支持和是否包含笔；标题与详情冲突时单列，不因名字相近就认作同款，也不要联系卖家。",
      "capabilities": [
        "retrieve",
        "compare",
        "draft"
      ],
      "challenges": [
        "identity",
        "conflict",
        "missing_data"
      ],
      "obligations": [
        "满足硬性兼容与预算",
        "冲突有来源",
        "不联系卖家",
        "报告仍待确认项。"
      ],
      "fixture_recipe": "5份匿名商品快照，含不同代际、配件缺失和标题详情矛盾。",
      "reset_recipe": "只读合成商品页；新建比较附件。",
      "readiness": "fixture_and_validator_required",
      "title": "二手平板型号与手写笔",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_local_06",
      "domain": "local",
      "family": "return_deadline",
      "query": "按这两份订单与售后规则帮我准备退货说明，算清各自的申请截止日期，列出缺的凭证。先生成草稿，别替我提交或取消已有申请。",
      "capabilities": [
        "retrieve",
        "calculate",
        "draft"
      ],
      "challenges": [
        "temporal",
        "scope",
        "missing_data"
      ],
      "obligations": [
        "各规则对应正确订单",
        "日期正确",
        "缺件列出",
        "无提交/取消。"
      ],
      "fixture_recipe": "匿名订单签收日期、按自然日/工作日区分的规则、附件清单。",
      "reset_recipe": "合成订单只读；仅删除本次生成草稿。",
      "readiness": "fixture_and_validator_required",
      "title": "退货期限与凭证草稿",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_local_07",
      "domain": "local",
      "family": "coupon_choice",
      "query": "这个采购清单必须买齐。比较三种优惠组合，不能叠加的别同时用；如果为了凑单反而花更多，就不要凑。给我最低可行总价及计算明细，不进入支付。",
      "capabilities": [
        "compare",
        "calculate",
        "draft"
      ],
      "challenges": [
        "conditional",
        "budget",
        "infeasible"
      ],
      "obligations": [
        "与独立穷举oracle的最低可行总价一致",
        "必需品齐全",
        "计算依据正确",
        "无支付。"
      ],
      "fixture_recipe": "固定购物清单、满减门槛、优惠互斥关系和可选凑单品。",
      "reset_recipe": "隔离测试购物车；还原本次新增项。",
      "readiness": "fixture_and_validator_required",
      "title": "互斥优惠的最低总价",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_local_08",
      "domain": "local",
      "family": "courier_options",
      "query": "我要寄这两件物品，按资料里的重量、尺寸和寄达时间要求比较快递方案；计费重量按各家规则算。能否寄送或附加费不明确的列为待确认，别替我下单叫件。",
      "capabilities": [
        "compare",
        "calculate",
        "draft"
      ],
      "challenges": [
        "conditional",
        "missing_data",
        "source_selection"
      ],
      "obligations": [
        "计算计费重量",
        "两件分别适用",
        "时效和未知项准确",
        "无叫件。"
      ],
      "fixture_recipe": "两包裹实际/体积参数、3家计费规则、截止时间及限制。",
      "reset_recipe": "固定合成资料；输出报价比较文件。",
      "readiness": "fixture_and_validator_required",
      "title": "寄件计费重量与时效",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_finance_01",
      "domain": "finance",
      "family": "refund_ledger",
      "query": "帮我整理这次出差报销：重复截图不要重复算，已确认的退款应抵扣，退款处理中要单列。按实际支付日期归属，给我费用明细、可报金额和待确认项目，原凭证都保留。",
      "capabilities": [
        "calculate",
        "organize",
        "draft"
      ],
      "challenges": [
        "duplicate",
        "temporal",
        "conditional"
      ],
      "obligations": [
        "按流水语义去重",
        "退款状态正确",
        "日期边界正确",
        "金额精确到分",
        "原件保留。"
      ],
      "fixture_recipe": "带唯一流水号的支出、退款完成/处理中、重复图片及跨月支付日期。",
      "reset_recipe": "原始凭证只读；输出独立目录；核对源文件散列。",
      "readiness": "fixture_and_validator_required",
      "title": "去重与退款状态",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_finance_02",
      "domain": "finance",
      "family": "currency_reimbursement",
      "query": "把这份含人民币和美元的费用表折成人民币报销，使用财务给定的当日汇率，别联网换成今天的汇率。每笔先四舍五入到分，再求和，并注明原币种和汇率来源。",
      "capabilities": [
        "calculate",
        "draft"
      ],
      "challenges": [
        "locale",
        "precision",
        "source_selection"
      ],
      "obligations": [
        "币种与日期匹配",
        "逐笔舍入",
        "总额与逐笔相加一致",
        "不替换汇率。"
      ],
      "fixture_recipe": "固定两币种记录、指定汇率日期、会影响逐笔/合计舍入的金额。",
      "reset_recipe": "输入表只读；新建报销表；固定Decimal舍入口径。",
      "readiness": "fixture_and_validator_required",
      "title": "按指定汇率报销",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_finance_03",
      "domain": "finance",
      "family": "invoice_conflict",
      "query": "这批收据中同编号可能有不同金额，请整理可确认的部分；遇到冲突先让我选择版本，不能自己取最大或最小。两个不同编号即使同金额也要分别保留。",
      "capabilities": [
        "retrieve",
        "calculate",
        "draft"
      ],
      "challenges": [
        "conflict",
        "duplicate",
        "clarification"
      ],
      "obligations": [
        "冲突候选与来源完整",
        "确认前无唯一总额",
        "确认后准确",
        "不同编号不合并。"
      ],
      "fixture_recipe": "含字节重复、同编号冲突、不同编号同额的收据；模拟用户预设版本选择。",
      "reset_recipe": "每产品新会话与相同素材；模拟答案只含候选选择；源文件散列不变。",
      "readiness": "fixture_and_validator_required",
      "title": "同编号收据冲突",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_finance_04",
      "domain": "finance",
      "family": "budget_threshold",
      "query": "按我给的本月账目判断是否超预算。只有净支出严格超过预算才新建一条本次复盘提醒；等于预算就不要建。已有的同名旧提醒保留，并告诉我你走了哪个分支。",
      "capabilities": [
        "calculate",
        "schedule"
      ],
      "challenges": [
        "conditional",
        "precision",
        "identity"
      ],
      "obligations": [
        "严格大于比较",
        "退款抵扣正确",
        "提醒存在性符合分支",
        "旧对象不变。"
      ],
      "fixture_recipe": "可控净支出等于/略低/略高预算3个seed、旧提醒与独立任务ID。",
      "reset_recipe": "按本次事件ID恢复；分别冻结三个边界seed。",
      "readiness": "fixture_and_validator_required",
      "title": "预算阈值与条件分支",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_finance_05",
      "domain": "finance",
      "family": "shared_expense",
      "query": "把这顿聚餐费用按名单分摊：未参加的人不算，单点饮品各自付，公共餐费均分，分币余数按名单顺序分配。给我每人金额和总额核对表，别发送收款消息。",
      "capabilities": [
        "calculate",
        "draft"
      ],
      "challenges": [
        "precision",
        "conditional",
        "missing_data"
      ],
      "obligations": [
        "出席集合正确",
        "个人项归属",
        "余数分配",
        "分摊总额守恒",
        "不发消息。"
      ],
      "fixture_recipe": "出席名单、逐人饮品、公共餐费、退款及产生余数的数据。",
      "reset_recipe": "只读合成名单与账单；新附件；不触达联系人。",
      "readiness": "fixture_and_validator_required",
      "title": "聚餐分摊到分",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_finance_06",
      "domain": "finance",
      "family": "payment_vs_issue_date",
      "query": "整理上个月实际付掉的费用，发票开票日和付款日不一致时按付款日算；只有开票日期但没付款证明的放待核实，不当作已付款。",
      "capabilities": [
        "retrieve",
        "calculate",
        "draft"
      ],
      "challenges": [
        "temporal",
        "source_selection",
        "multi_record"
      ],
      "obligations": [
        "付款日期范围正确",
        "匹配来源",
        "缺失不推断",
        "金额与证据逐行关联。"
      ],
      "fixture_recipe": "跨月发票和付款凭据、匹配ID及缺失凭据。",
      "reset_recipe": "全部源文件只读；独立汇总文件。",
      "readiness": "fixture_and_validator_required",
      "title": "付款日与开票日",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_finance_07",
      "domain": "finance",
      "family": "subscription_review",
      "query": "根据这些订阅截图列出未来30天会续费的项目，分清月付、年付和已取消自动续费。把金额不明或币种不明的单列，先给审查清单，不替我取消订阅。",
      "capabilities": [
        "retrieve",
        "compare",
        "draft"
      ],
      "challenges": [
        "temporal",
        "missing_data",
        "scope"
      ],
      "obligations": [
        "30天窗口含端点规则明确",
        "续费状态准确",
        "金额币种不猜",
        "不取消。"
      ],
      "fixture_recipe": "固定参考日、月/年周期、已关闭续费与缺金额截图。",
      "reset_recipe": "不进入真实账号变更路径；输出独立清单。",
      "readiness": "fixture_and_validator_required",
      "title": "订阅续费核查",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_finance_08",
      "domain": "finance",
      "family": "ledger_revision",
      "query": "财务发来一条更正：只把指定流水的类别和金额改掉，重新计算分类合计。保留一份更正前版本和变更说明，其他同额流水不能跟着改。",
      "capabilities": [
        "retrieve",
        "calculate",
        "organize"
      ],
      "challenges": [
        "stale_state",
        "identity",
        "precision"
      ],
      "obligations": [
        "只改指定记录",
        "所有派生合计更新",
        "旧版可读",
        "变更日志准确。"
      ],
      "fixture_recipe": "合成账表、唯一流水ID、同额干扰项、带版本的更正通知。",
      "reset_recipe": "原表备份；按版本恢复测试副本；核对不变行。",
      "readiness": "fixture_and_validator_required",
      "title": "单笔账目更正",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_productivity_01",
      "domain": "productivity",
      "family": "free_slot_buffers",
      "query": "在给定的工作时段里找一个30分钟电话时间，前后都留15分钟缓冲，午休不能占用。把可选时段列给我，选定前先别写入日历。",
      "capabilities": [
        "retrieve",
        "calculate",
        "schedule"
      ],
      "challenges": [
        "temporal",
        "dependency",
        "conflict"
      ],
      "obligations": [
        "计算补集并加入双侧缓冲",
        "不重叠",
        "不创建未确认事件。"
      ],
      "fixture_recipe": "6个固定日程、午休、工作窗口及相邻结束边界。",
      "reset_recipe": "独立日历fixture；读取前后事件ID列表一致。",
      "readiness": "fixture_and_validator_required",
      "title": "会议前后的缓冲",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_productivity_02",
      "domain": "productivity",
      "family": "timezone_meeting",
      "query": "按这两位同事提供的本地可用时间安排远程会议，使用资料写明的UTC偏移量换算。若有两个可行时段，请让我选一个；确认后只建立一条测试日程。",
      "capabilities": [
        "calculate",
        "schedule"
      ],
      "challenges": [
        "temporal",
        "locale",
        "clarification"
      ],
      "obligations": [
        "统一时基求交",
        "本地日期正确",
        "确认前不写",
        "仅一条对应事件。"
      ],
      "fixture_recipe": "固定日期与UTC偏移、两地窗口、跨日边界、模拟用户的时段选择。",
      "reset_recipe": "按生成事件ID恢复，不改变时区或其他日程。",
      "readiness": "fixture_and_validator_required",
      "title": "跨时区约会",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_productivity_03",
      "domain": "productivity",
      "family": "recurrence_exception",
      "query": "这周的周会提前半小时，只有这一次变化，下周恢复原时间。请修改指定测试系列中的本次实例，保留其他重复实例和同名的另一组会议。",
      "capabilities": [
        "retrieve",
        "schedule"
      ],
      "challenges": [
        "identity",
        "temporal",
        "scope"
      ],
      "obligations": [
        "只改单次实例",
        "后续重复不变",
        "对象身份正确",
        "不支持时明确说明。"
      ],
      "fixture_recipe": "可恢复重复系列、单次例外支持能力、另一同名系列。",
      "reset_recipe": "按原系列和例外记录完整恢复；后验查询未来两次。",
      "readiness": "fixture_and_validator_required",
      "title": "只改本周这一次",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_productivity_04",
      "domain": "productivity",
      "family": "meeting_prep_draft",
      "query": "按邀请里的会议号和我指定的昵称准备入会，麦克风和摄像头关闭，扬声器打开。把当前准备状态给我看，停在加入按钮前，不要进入会议。",
      "capabilities": [
        "configure",
        "draft"
      ],
      "challenges": [
        "scope",
        "identity",
        "negative_action"
      ],
      "obligations": [
        "准确替换而非追加昵称",
        "三开关符合",
        "未入会",
        "界面可核验。"
      ],
      "fixture_recipe": "测试邀请、旧昵称、入会选项初值；不实际呼叫的测试会议号。",
      "reset_recipe": "恢复本次昵称/选项；不访问真实会议。",
      "readiness": "fixture_and_validator_required",
      "title": "停在加入会议之前",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_productivity_05",
      "domain": "productivity",
      "family": "minutes_action_items",
      "query": "把这份会议纪要整理成负责人、事项和截止时间清单。区分已决定和讨论中的选项，没指定负责人的留空并标待确认，不要因为说话的人提到某事就默认由他负责。请整理成一个可打开的Markdown附件。",
      "capabilities": [
        "retrieve",
        "organize",
        "draft"
      ],
      "challenges": [
        "conflict",
        "missing_data",
        "source_selection"
      ],
      "obligations": [
        "只采纳最终决定",
        "负责人有依据",
        "待定项不变确定",
        "附件可打开。"
      ],
      "fixture_recipe": "带时间戳的匿名纪要、撤回决定、同名人物及未分配事项。",
      "reset_recipe": "输入纪要只读；输出单独文件；不发任务通知。",
      "readiness": "fixture_and_validator_required",
      "title": "纪要中的行动项",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_productivity_06",
      "domain": "productivity",
      "family": "alarm_idempotence",
      "query": "我可能已经设过明早的测试提醒。请核对日期、时间和标签；完全一致就保留一条，不一致只改这一条，别又添一条，也别动其他同名闹钟。",
      "capabilities": [
        "retrieve",
        "configure"
      ],
      "challenges": [
        "duplicate",
        "identity",
        "conditional"
      ],
      "obligations": [
        "识别目标",
        "幂等无重复",
        "不影响其他记录",
        "启用状态符合。"
      ],
      "fixture_recipe": "有稳定标识的测试闹钟、同名不同时刻、启停状态三个seed。",
      "reset_recipe": "只恢复任务拥有的闹钟记录；验收后停用测试闹钟以免响铃。",
      "readiness": "fixture_and_validator_required",
      "title": "闹钟幂等检查",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_productivity_07",
      "domain": "productivity",
      "family": "changed_priority_plan",
      "query": "我把今天的优先级改了：先完成有外部截止时间的事项，其余可以后移。用给定工作清单重排可行日程，指出被挤掉的项目，不能偷偷缩短它们的预计耗时。",
      "capabilities": [
        "compare",
        "schedule"
      ],
      "challenges": [
        "stale_state",
        "dependency",
        "clarification"
      ],
      "obligations": [
        "最新优先级生效",
        "依赖与工时守恒",
        "不满足项显式列出",
        "先给草稿。"
      ],
      "fixture_recipe": "带依赖和硬/软截止的6项任务、旧优先级、新指令、可用时间窗口。",
      "reset_recipe": "固定任务清单；原日程不写，另存方案。",
      "readiness": "fixture_and_validator_required",
      "title": "优先级变化后的排程",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_productivity_08",
      "domain": "productivity",
      "family": "interrupted_draft",
      "query": "把这份待办整理成可打开的会议准备清单，保留每项责任人和截止时间。我中途切到别的页面后，请从已有进度继续，不要重复生成已经完成的条目。",
      "capabilities": [
        "organize",
        "draft"
      ],
      "challenges": [
        "recovery",
        "stale_state",
        "duplicate"
      ],
      "obligations": [
        "恢复后重新观察",
        "无重复条目",
        "字段完整",
        "最终文件可读。"
      ],
      "fixture_recipe": "6项待办；在第一次产物写入后注入一次HOME；记录事件触发点。",
      "reset_recipe": "清单输出独立路径；打断由事件触发并记账，不按固定秒数假定同阶段。",
      "readiness": "fixture_and_validator_required",
      "title": "切走后的草稿恢复",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_information_01",
      "domain": "information",
      "family": "news_version_check",
      "query": "这件事有一篇早报和一篇后续更正，请按发布顺序核对哪些说法已经被撤回。给我一段能追溯到来源的摘要，不要把早报里的未确认数字写成现在的事实。",
      "capabilities": [
        "retrieve",
        "compare",
        "draft"
      ],
      "challenges": [
        "stale_state",
        "conflict",
        "source_selection"
      ],
      "obligations": [
        "更正覆盖旧说法",
        "事实与待确认分开",
        "每个关键点有来源",
        "不外发。"
      ],
      "fixture_recipe": "两篇合成报道及一条更正，明确发布时间与版本关联。",
      "reset_recipe": "只读固定资料，保留原文，另存摘要。",
      "readiness": "fixture_and_validator_required",
      "title": "早报与后续更正",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_information_02",
      "domain": "information",
      "family": "learning_schedule",
      "query": "用这份课程列表帮我安排一周入门学习，每天最多40分钟，先修课必须在后续课前完成。保留没排进去的课程及原因，不要只按播放量挑。",
      "capabilities": [
        "compare",
        "calculate",
        "draft"
      ],
      "challenges": [
        "dependency",
        "budget",
        "multi_record"
      ],
      "obligations": [
        "每日预算",
        "拓扑顺序",
        "不重复",
        "未排课原因",
        "总时长守恒。"
      ],
      "fixture_recipe": "课程时长、先修关系、可用天数、重复课程不同版本。",
      "reset_recipe": "固定课程列表；输出单独学习计划。",
      "readiness": "fixture_and_validator_required",
      "title": "有先修约束的课程表",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_information_03",
      "domain": "information",
      "family": "transcript_claims",
      "query": "按给定视频字幕找出作者对三个问题的回答，带上对应时间点。字幕没有回答的就说没找到，不能把视频标题或评论当作者的观点。",
      "capabilities": [
        "retrieve",
        "compare",
        "draft"
      ],
      "challenges": [
        "missing_data",
        "source_selection",
        "precision"
      ],
      "obligations": [
        "答案来自字幕",
        "时间点匹配",
        "无答案不编造",
        "区分作者和评论者。"
      ],
      "fixture_recipe": "带时间戳字幕、标题和评论干扰、一个无答案问题。",
      "reset_recipe": "只读字幕fixture；输出引用索引。",
      "readiness": "fixture_and_validator_required",
      "title": "字幕中的证据时间点",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_information_04",
      "domain": "information",
      "family": "multiple_source_disagreement",
      "query": "核对这三份活动通知的日期、地点和报名截止时间。若来源互相矛盾，列出冲突及各自发布时间，先不要替我决定哪个版本一定正确。",
      "capabilities": [
        "retrieve",
        "compare",
        "draft"
      ],
      "challenges": [
        "conflict",
        "missing_data",
        "multi_record"
      ],
      "obligations": [
        "逐字段比较",
        "一致和冲突分开",
        "不靠数量投票确认",
        "保留来源。"
      ],
      "fixture_recipe": "三份有署名和时间的通知；部分字段一致、部分冲突且无权威更正。",
      "reset_recipe": "固定通知副本；不报名；独立冲突表。",
      "readiness": "fixture_and_validator_required",
      "title": "相互矛盾的活动通知",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_information_05",
      "domain": "information",
      "family": "search_exact_constraints",
      "query": "在给定搜索结果里找最近一年发布、超过30分钟且不是直播回放的课程，排除广告结果。按发布日期列出符合项，缺少时长的不要直接当合格，保留待核验项。",
      "capabilities": [
        "retrieve",
        "compare",
        "draft"
      ],
      "challenges": [
        "scope",
        "temporal",
        "source_selection"
      ],
      "obligations": [
        "精确时间窗口",
        "严格大于30分钟",
        "排除回放与广告",
        "缺失单列。"
      ],
      "fixture_recipe": "固定参考日、结果页、详情页，包含置顶广告和缺失时长。",
      "reset_recipe": "冻结搜索/详情快照，结果另存。",
      "readiness": "fixture_and_validator_required",
      "title": "严格筛选课程候选",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_information_06",
      "domain": "information",
      "family": "research_sources",
      "query": "整理这些研究链接，合并同一论文的预印本和正式发表版本，优先保留正式出处。不要因为标题相近就合并不同论文，把无法确认的关联单列。",
      "capabilities": [
        "retrieve",
        "organize",
        "draft"
      ],
      "challenges": [
        "source_selection",
        "duplicate",
        "missing_data"
      ],
      "obligations": [
        "依据稳定标识去重",
        "版本链准确",
        "优先正式版本",
        "未知关联保留。"
      ],
      "fixture_recipe": "带作者、DOI、版本和发布日期的论文元数据、同名不同论文。",
      "reset_recipe": "本地元数据只读；不改用户文献库。",
      "readiness": "fixture_and_validator_required",
      "title": "预印本与正式论文",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_information_07",
      "domain": "information",
      "family": "user_refinement",
      "query": "先从候选课里找入门课程；我随后补充只看有练习文件且不需付费的版本时，请更新推荐和理由。以前推荐但不再合格的也说明为什么被移除。",
      "capabilities": [
        "retrieve",
        "compare",
        "draft"
      ],
      "challenges": [
        "stale_state",
        "conditional",
        "scope"
      ],
      "obligations": [
        "最新约束覆盖",
        "旧候选重新验证",
        "删除理由正确",
        "不购买。"
      ],
      "fixture_recipe": "固定候选、练习资源与付费状态；第二轮补充约束脚本。",
      "reset_recipe": "每产品新会话，按同一阶段发送补充条件。",
      "readiness": "fixture_and_validator_required",
      "title": "推荐条件中途变化",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_information_08",
      "domain": "information",
      "family": "unanswerable_scope",
      "query": "只用这三份材料回答会议是否最终改期。如果只能看到有人提议改期而没有确认，请给我需要补的那条证据，不要上网猜一个最终日期。",
      "capabilities": [
        "retrieve",
        "draft"
      ],
      "challenges": [
        "infeasible",
        "missing_data",
        "scope"
      ],
      "obligations": [
        "不把提议当决定",
        "限定检索范围",
        "精确说明缺少确认",
        "不写日历。"
      ],
      "fixture_recipe": "仅包含提议、回应和旧邀请的三份材料，无最终决定。",
      "reset_recipe": "材料固定只读；新会话，禁止外部检索。",
      "readiness": "fixture_and_validator_required",
      "title": "缺少最终确认的事实",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_media_01",
      "domain": "media",
      "family": "photo_time_location",
      "query": "按指定相册中的真实拍摄时间整理这次行程，地点只采用照片自带位置信息；截图里写的日期和城市不要混进去。没有拍摄时间或GPS的照片单独列出，原图保留。",
      "capabilities": [
        "retrieve",
        "organize",
        "draft"
      ],
      "challenges": [
        "temporal",
        "missing_data",
        "source_selection"
      ],
      "obligations": [
        "区分三类时间",
        "GPS缺失不猜",
        "排序正确",
        "源文件散列不变。"
      ],
      "fixture_recipe": "照片EXIF、无GPS图、截图文字与文件修改时间干扰。",
      "reset_recipe": "独立相册fixture；输出另存；核对索引可见后开始。",
      "readiness": "fixture_and_validator_required",
      "title": "真实拍摄时间与GPS",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_media_02",
      "domain": "media",
      "family": "clip_exact_range",
      "query": "从指定原片截取第3秒到第9秒，另存为新视频给我。我要实际能播放的文件，保留原片；告诉我导出后的真实时长，如果工具达不到要求精度就说明。",
      "capabilities": [
        "transform",
        "draft"
      ],
      "challenges": [
        "precision",
        "scope",
        "artifact"
      ],
      "obligations": [
        "真实区间与时长满足预注册容差",
        "可播放",
        "原片不变",
        "及时交付。"
      ],
      "fixture_recipe": "带逐帧时间标记的12秒原片；提前固定允许误差和文件输出目录。",
      "reset_recipe": "每次独立输出目录；不删除或覆盖原片。",
      "readiness": "fixture_and_validator_required",
      "title": "精确截取3至9秒",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_media_03",
      "domain": "media",
      "family": "story_order",
      "query": "把选定的三段素材按到达、活动、返程顺序做成一个短片，片头标日期。不要使用旁边同名旧素材，也不要自动加不属于这次行程的画面。",
      "capabilities": [
        "transform",
        "organize"
      ],
      "challenges": [
        "identity",
        "dependency",
        "artifact"
      ],
      "obligations": [
        "片段顺序正确",
        "素材范围准确",
        "片头日期正确",
        "产物可播放。"
      ],
      "fixture_recipe": "三段不同内容视频、同名旧片、明确拍摄日期与输出要求。",
      "reset_recipe": "素材只读、独立草稿与导出；记录编辑器初始许可状态。",
      "readiness": "fixture_and_validator_required",
      "title": "按行程排列素材",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_media_04",
      "domain": "media",
      "family": "audio_track_control",
      "query": "这段讲解视频请保留人声，把指定背景音乐压低，不要直接静音整段。若编辑器无法区分音轨，先说明限制并保留原片，不交付没有讲解声音的成片。",
      "capabilities": [
        "transform",
        "configure"
      ],
      "challenges": [
        "precision",
        "scope",
        "missing_data"
      ],
      "obligations": [
        "人声保留",
        "背景衰减按音频测量",
        "不可分离时不虚构",
        "原片不变。"
      ],
      "fixture_recipe": "已知人声/背景音轨的测试视频、音量目标和独立音轨参考。",
      "reset_recipe": "独立编辑副本；比对音轨与原片散列。",
      "readiness": "fixture_and_validator_required",
      "title": "人声与背景音乐",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_media_05",
      "domain": "media",
      "family": "photo_contact_sheet",
      "query": "把这组活动照片做成一页联系表，每张下面写原文件名。完全相同的副本只放一次，但连拍里不同表情的照片要保留；导出可打开的图片，不改原相册。",
      "capabilities": [
        "transform",
        "organize",
        "draft"
      ],
      "challenges": [
        "duplicate",
        "multi_record",
        "artifact"
      ],
      "obligations": [
        "字节副本去重",
        "相似图保留",
        "图片名一一对应",
        "输出可打开。"
      ],
      "fixture_recipe": "字节重复、相似不同照片、横竖方向与长文件名。",
      "reset_recipe": "输入只读；新输出；原文件散列核对。",
      "readiness": "fixture_and_validator_required",
      "title": "去重照片联系表",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_media_06",
      "domain": "media",
      "family": "video_export_recovery",
      "query": "给指定视频加一个片尾标题并导出。如果我在导出完成后切走页面，回来时先检查成片是否已经存在；不要因为没看到成功页又导出一堆副本。",
      "capabilities": [
        "transform",
        "draft"
      ],
      "challenges": [
        "recovery",
        "duplicate",
        "artifact"
      ],
      "obligations": [
        "片尾存在",
        "恢复后核对已有产物",
        "无多余副本",
        "最终可播放。"
      ],
      "fixture_recipe": "短视频、片尾文字；在导出完成事件后注入HOME；记录输出文件ID。",
      "reset_recipe": "独立草稿和输出目录；仅清理本次生成副本。",
      "readiness": "fixture_and_validator_required",
      "title": "导出后的中断恢复",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_media_07",
      "domain": "media",
      "family": "image_text_evidence",
      "query": "从这几张白板照片整理决定、待办和未读清的部分。模糊的数字请保留原图位置并标待确认，不要凭上下文补齐；给我可对照原图的整理稿。",
      "capabilities": [
        "retrieve",
        "organize",
        "draft"
      ],
      "challenges": [
        "missing_data",
        "precision",
        "source_selection"
      ],
      "obligations": [
        "可读信息准确",
        "划掉内容不当新决定",
        "模糊不猜",
        "来源位置可回查。"
      ],
      "fixture_recipe": "清晰与模糊文字、被划掉旧决定、图片局部参考标识。",
      "reset_recipe": "源图只读，输出独立文档与引用索引。",
      "readiness": "fixture_and_validator_required",
      "title": "模糊白板证据",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_media_08",
      "domain": "media",
      "family": "media_selection_change",
      "query": "先为相册里的这次活动挑选封面；我补充不使用含他人正脸的照片后，请重新筛选并说明变化。只给候选预览，不修改或上传原相册。",
      "capabilities": [
        "organize",
        "transform"
      ],
      "challenges": [
        "stale_state",
        "scope",
        "clarification"
      ],
      "obligations": [
        "新约束生效",
        "候选可追溯",
        "不修改源相册",
        "不上传。"
      ],
      "fixture_recipe": "合成授权素材、有人像/无人像标注；第二轮偏好变化脚本。",
      "reset_recipe": "同一合成素材集，第二轮按预定阶段送达；输出新预览。",
      "readiness": "fixture_and_validator_required",
      "title": "封面的隐私条件变化",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_records_01",
      "domain": "records",
      "family": "contact_identity",
      "query": "把这张更新过的名片存进测试通讯录，先核对公司和邮箱，别只凭同名就覆盖。若确实是同一人，只改新名片明确更新的字段，旧备注保留。",
      "capabilities": [
        "retrieve",
        "organize"
      ],
      "challenges": [
        "identity",
        "conflict",
        "scope"
      ],
      "obligations": [
        "身份匹配",
        "局部更新",
        "备注保留",
        "无误覆盖",
        "不拨号发信。"
      ],
      "fixture_recipe": "合成名片、同名不同人、唯一邮箱、旧备注与更新字段。",
      "reset_recipe": "限定测试联系人ID；保存完整前态并恢复。",
      "readiness": "fixture_and_validator_required",
      "title": "同名联系人消歧",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_records_02",
      "domain": "records",
      "family": "file_revision_order",
      "query": "帮我从这个项目文件夹找到真正的最终版，不能只看文件名里的final，要核对内容版本和审批记录。给我一份候选差异说明，先不删任何旧版本。",
      "capabilities": [
        "retrieve",
        "organize",
        "draft"
      ],
      "challenges": [
        "stale_state",
        "identity",
        "source_selection"
      ],
      "obligations": [
        "采用批准证据",
        "mtime不替代版本",
        "冲突/缺失说明",
        "原文件不变。"
      ],
      "fixture_recipe": "final/final2等误导命名、内容版本号、批准记录、复制导致的新mtime。",
      "reset_recipe": "固定独立文件夹；结果另存；核对输入散列。",
      "readiness": "fixture_and_validator_required",
      "title": "真正的最终版本",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_records_03",
      "domain": "records",
      "family": "safe_file_organization",
      "query": "把测试目录的文件按项目归档到新目录，保留原件；同名不同内容都要留下，完全重复的可以只复制一份。做一张原路径到新路径的清单，方便我核对。",
      "capabilities": [
        "organize",
        "draft"
      ],
      "challenges": [
        "duplicate",
        "identity",
        "scope"
      ],
      "obligations": [
        "不覆盖冲突",
        "字节重复规则明确",
        "路径映射完整",
        "原件不变。"
      ],
      "fixture_recipe": "两个项目、同名异内容、同内容异名、未知项目文件。",
      "reset_recipe": "输出必须为空的独立目录；输入散列复核后仅清理本次输出。",
      "readiness": "fixture_and_validator_required",
      "title": "保留原件的文件归档",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_records_04",
      "domain": "records",
      "family": "form_missing_fields",
      "query": "根据给定资料准备报名表草稿，能确定的字段先填，身份证明或联系方式缺失的留待确认。不要拿同名人的资料补上，也别点击提交。",
      "capabilities": [
        "retrieve",
        "draft"
      ],
      "challenges": [
        "missing_data",
        "identity",
        "negative_action"
      ],
      "obligations": [
        "字段来源准确",
        "缺项不猜",
        "同名区分",
        "只到草稿。"
      ],
      "fixture_recipe": "合成人员资料、同名干扰项、缺字段及表单测试页。",
      "reset_recipe": "重置本地测试表单；不接触真实报名服务。",
      "readiness": "fixture_and_validator_required",
      "title": "缺少字段的表单草稿",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_records_05",
      "domain": "records",
      "family": "attachment_completeness",
      "query": "按这份申请要求检查资料包是否齐全，区分必须材料和有条件才需要的材料。列出缺项、重复件和过期件，整理一份可打开的检查表，不替我提交申请。",
      "capabilities": [
        "retrieve",
        "organize",
        "draft"
      ],
      "challenges": [
        "dependency",
        "missing_data",
        "multi_record"
      ],
      "obligations": [
        "条件适用正确",
        "完整性和有效期准确",
        "重复不充当另一必需项",
        "无提交。"
      ],
      "fixture_recipe": "申请规则、材料清单、有效期、条件身份及重复附件。",
      "reset_recipe": "源资料只读；新检查表；固定参考日期。",
      "readiness": "fixture_and_validator_required",
      "title": "资料包完整性",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_records_06",
      "domain": "records",
      "family": "note_update_scope",
      "query": "把最新物流地址补到指定测试便签的地址段，其他清单和备注保持原样。还有一篇标题很像的旧便签不要动；完成后给我看改了哪一段。",
      "capabilities": [
        "retrieve",
        "organize"
      ],
      "challenges": [
        "identity",
        "stale_state",
        "scope"
      ],
      "obligations": [
        "只更新目标段",
        "旧便签不变",
        "其余段落不变",
        "变更可见。"
      ],
      "fixture_recipe": "两个相似标题便签、明确目标ID、结构化段落和新地址通知。",
      "reset_recipe": "按便签ID保存完整前态并还原；不读取无关便签。",
      "readiness": "fixture_and_validator_required",
      "title": "只改指定便签段落",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_records_07",
      "domain": "records",
      "family": "export_import_check",
      "query": "把这份带中文姓名、逗号和换行备注的测试联系人表导出成CSV，再读回核对每行。告诉我哪些字段无法保留，别只给我一个看起来像表格的文本。",
      "capabilities": [
        "transform",
        "organize"
      ],
      "challenges": [
        "precision",
        "locale",
        "artifact"
      ],
      "obligations": [
        "RFC式转义可读",
        "前导零不丢",
        "行数与字段一致",
        "真实CSV文件。"
      ],
      "fixture_recipe": "含逗号、引号、换行、前导零电话号码的合成记录。",
      "reset_recipe": "只写独立输出，不导入机主通讯录；按解析后内容验收。",
      "readiness": "fixture_and_validator_required",
      "title": "中文CSV导出读回",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_records_08",
      "domain": "records",
      "family": "duplicate_merge_plan",
      "query": "检查这批测试联系人中的重复候选，按手机号和邮箱列合并建议。字段冲突时让我选，确认前不要真的合并；同名不同号码的不能默认是一个人。",
      "capabilities": [
        "compare",
        "organize",
        "draft"
      ],
      "challenges": [
        "duplicate",
        "conflict",
        "clarification"
      ],
      "obligations": [
        "规范化仅格式",
        "身份冲突保留",
        "确认前无合并",
        "建议有证据。"
      ],
      "fixture_recipe": "字节重复、同名异人、号码格式差异、邮箱冲突和模拟选择。",
      "reset_recipe": "只读测试联系人，生成计划；确认阶段另开执行用例。",
      "readiness": "fixture_and_validator_required",
      "title": "有冲突的联系人合并",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_device_01",
      "domain": "device",
      "family": "focus_settings",
      "query": "我要对着纸质资料用手机做检查，请把自动锁屏改成2分钟并关闭自动亮度，字体大小和声音保持原样。完成后告诉我实际状态。",
      "capabilities": [
        "configure"
      ],
      "challenges": [
        "state_verification",
        "scope"
      ],
      "obligations": [
        "锁屏120000ms",
        "自动亮度关",
        "字体/声音/勿扰不变",
        "真实终态读数。"
      ],
      "fixture_recipe": "独立读取锁屏30分钟/自动亮度开，以及字体、音量和勿扰初值。",
      "reset_recipe": "恢复本次开始时锁屏、自动模式和亮度；独立读取确认。",
      "readiness": "fixture_and_validator_required",
      "title": "锁屏与自动亮度",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_device_02",
      "domain": "device",
      "family": "per_app_notifications",
      "query": "只关闭指定测试App的营销通知，订单状态通知继续保留，其他App不要动。如果系统没有分渠道开关，先说明能做到哪一步，不要直接关掉所有通知。",
      "capabilities": [
        "configure"
      ],
      "challenges": [
        "identity",
        "scope",
        "missing_data"
      ],
      "obligations": [
        "选对包和渠道",
        "其他渠道不变",
        "不支持时准确说明",
        "不全局静音。"
      ],
      "fixture_recipe": "自建测试App两个通知渠道、另一个同图标App和初始授权状态。",
      "reset_recipe": "还原测试App渠道状态；不改变机主真实消息服务。",
      "readiness": "fixture_and_validator_required",
      "title": "按渠道关闭通知",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_device_03",
      "domain": "device",
      "family": "one_time_permission",
      "query": "让测试录音App在这次使用时能用麦克风，定位权限不用开。结束后检查权限状态，别把一次使用需求变成所有权限长期允许。",
      "capabilities": [
        "configure"
      ],
      "challenges": [
        "conditional",
        "scope",
        "state_verification"
      ],
      "obligations": [
        "只授予需要的权限",
        "定位不变",
        "权限有效期符合OS能力",
        "无额外录音内容保存。"
      ],
      "fixture_recipe": "测试App，麦克风未授权/定位未授权，当前OS一次性权限能力。",
      "reset_recipe": "恢复测试App权限初态；保留系统支持边界证据。",
      "readiness": "fixture_and_validator_required",
      "title": "一次性麦克风权限",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_device_04",
      "domain": "device",
      "family": "restore_reading_setup",
      "query": "先记下当前屏幕设置，临时按指定测试档位调好让我核对，随后恢复开始时的值。恢复后再告诉我实际状态，不要只说已经恢复。",
      "capabilities": [
        "configure"
      ],
      "challenges": [
        "stale_state",
        "scope",
        "dependency"
      ],
      "obligations": [
        "保存初值",
        "临时态正确",
        "确认后逐字段恢复",
        "无其他设置变化。"
      ],
      "fixture_recipe": "可独立读取的锁屏、自动亮度与字号；模拟用户一次继续指令。",
      "reset_recipe": "测试结束后独立复核初值；有差异则精确恢复指定字段。",
      "readiness": "fixture_and_validator_required",
      "title": "临时设置与原样恢复",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_device_05",
      "domain": "device",
      "family": "storage_diagnosis",
      "query": "帮我检查测试目录占用空间最多的三项，区分文件大小和系统报告的App缓存。给出清理建议就好，不删除文件、不清空App数据，也别把看不到的目录当零。",
      "capabilities": [
        "retrieve",
        "compare",
        "draft"
      ],
      "challenges": [
        "missing_data",
        "scope",
        "source_selection"
      ],
      "obligations": [
        "可读范围准确",
        "排序正确",
        "不可读为未知",
        "不删除不清数据。"
      ],
      "fixture_recipe": "独立测试目录含3种大小与不可读子目录；系统存储读数。",
      "reset_recipe": "只读检查；验证输入文件和应用状态不变。",
      "readiness": "fixture_and_validator_required",
      "title": "空间占用诊断",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_device_06",
      "domain": "device",
      "family": "network_state_diagnosis",
      "query": "这个测试页面打不开，请检查手机当前网络状态和可见错误，区分没连网、权限问题和网站不可达。先给诊断依据，不关闭我的网络，也不擅自更换DNS或VPN。",
      "capabilities": [
        "retrieve",
        "draft"
      ],
      "challenges": [
        "missing_data",
        "source_selection",
        "scope"
      ],
      "obligations": [
        "结论只在证据范围",
        "不同失败原因不混淆",
        "网络设置不变。"
      ],
      "fixture_recipe": "可控测试URL状态、系统连接状态与错误页；不涉及真实代理凭证。",
      "reset_recipe": "只读状态与本地测试服务；记录请求结果，不改网络。",
      "readiness": "fixture_and_validator_required",
      "title": "网络故障分层诊断",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_device_07",
      "domain": "device",
      "family": "setting_interruption",
      "query": "把指定测试设置改成目标值。中途如果跳到了别的页面，先确认现在在哪，再继续未完成的部分；最后回到设置页核对，不要把打开页面当作已经改好。",
      "capabilities": [
        "configure"
      ],
      "challenges": [
        "recovery",
        "stale_state",
        "state_verification"
      ],
      "obligations": [
        "打断后新观察",
        "目标状态真实达到",
        "不重复切回反值",
        "无旁路研究者代改。"
      ],
      "fixture_recipe": "同device_01设置；在目标菜单出现后注入一次HOME，事先记录目标值。",
      "reset_recipe": "同配对条件，按目标页面事件触发打断；恢复原设置。",
      "readiness": "fixture_and_validator_required",
      "title": "设置中的页面打断",
      "collection": "new",
      "status": "specification_only"
    },
    {
      "id": "r30_device_08",
      "domain": "device",
      "family": "unsupported_setting",
      "query": "我想让这个测试App使用系统没有提供的独立字号选项。请先检查是否支持；如果不支持，说明实际可用的替代办法，别为满足我而把全系统字号改掉。",
      "capabilities": [
        "configure",
        "draft"
      ],
      "challenges": [
        "infeasible",
        "missing_data",
        "scope"
      ],
      "obligations": [
        "区分不支持和未找到",
        "不全局修改",
        "替代方案有实际依据",
        "无虚假完成。"
      ],
      "fixture_recipe": "无独立字号能力的测试App、系统字号初值、可选App内缩放说明。",
      "reset_recipe": "读前读后字号一致；只读测试App设置。",
      "readiness": "fixture_and_validator_required",
      "title": "系统不支持的选项",
      "collection": "new",
      "status": "specification_only"
    }
  ]
}