{
  "schemaVersion": 1,
  "datasetId": "growth-batch8-task-suite-v1",
  "reviewedAt": "2026-10-09",
  "evidenceStatus": "synthetic_offline_fixtures_not_model_results",
  "description": "虚构中文任务与人工编写参考答案。本批未调用模型，expected 只用于本地验收。",
  "document": {
    "id": "fictional-bookfair-v1",
    "sourceFile": "long-document.txt",
    "paragraphCount": 120,
    "characterCount": 13608,
    "lengthUnit": "Unicode code points; not a token budget",
    "paragraphs": [
      {
        "id": "L001",
        "text": "第1条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L002",
        "text": "第2条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L003",
        "text": "第3条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L004",
        "text": "映月书展最初计划于2026年6月3日开场，但要等待场地审批。最初计划不能视为实际开场日。"
      },
      {
        "id": "L005",
        "text": "第5条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L006",
        "text": "第6条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L007",
        "text": "第7条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L008",
        "text": "第8条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L009",
        "text": "第9条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L010",
        "text": "第10条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L011",
        "text": "第11条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L012",
        "text": "第12条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L013",
        "text": "第13条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L014",
        "text": "第14条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L015",
        "text": "第15条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L016",
        "text": "第16条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L017",
        "text": "第17条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L018",
        "text": "第18条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L019",
        "text": "第19条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L020",
        "text": "第20条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L021",
        "text": "第21条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L022",
        "text": "第22条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L023",
        "text": "第23条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L024",
        "text": "第24条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L025",
        "text": "第25条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L026",
        "text": "第26条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L027",
        "text": "第27条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L028",
        "text": "第28条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L029",
        "text": "第29条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L030",
        "text": "草案甲记载：投稿截止日为2026年6月15日。该段没有说明草案甲是否为最终版本。"
      },
      {
        "id": "L031",
        "text": "第31条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L032",
        "text": "第32条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L033",
        "text": "第33条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L034",
        "text": "第34条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L035",
        "text": "第35条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L036",
        "text": "第36条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L037",
        "text": "第37条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L038",
        "text": "第38条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L039",
        "text": "第39条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L040",
        "text": "第40条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L041",
        "text": "第41条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L042",
        "text": "第42条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L043",
        "text": "第43条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L044",
        "text": "第44条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L045",
        "text": "第45条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L046",
        "text": "第46条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L047",
        "text": "第47条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L048",
        "text": "第48条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L049",
        "text": "第49条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L050",
        "text": "第50条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L051",
        "text": "第51条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L052",
        "text": "第52条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L053",
        "text": "第53条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L054",
        "text": "第54条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L055",
        "text": "第55条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L056",
        "text": "第56条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L057",
        "text": "第57条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L058",
        "text": "第58条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L059",
        "text": "第59条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L060",
        "text": "第60条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L061",
        "text": "第61条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L062",
        "text": "第62条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L063",
        "text": "场地审批记录由张瑞负责归档，最终场地支出为9,600.00元。这里的归档负责人不是开场主持人。"
      },
      {
        "id": "L064",
        "text": "第64条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L065",
        "text": "第65条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L066",
        "text": "第66条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L067",
        "text": "第67条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L068",
        "text": "第68条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L069",
        "text": "第69条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L070",
        "text": "第70条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L071",
        "text": "第71条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L072",
        "text": "第72条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L073",
        "text": "第73条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L074",
        "text": "第74条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L075",
        "text": "第75条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L076",
        "text": "第76条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L077",
        "text": "第77条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L078",
        "text": "第78条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L079",
        "text": "第79条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L080",
        "text": "第80条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L081",
        "text": "第81条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L082",
        "text": "第82条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L083",
        "text": "第83条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L084",
        "text": "第84条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L085",
        "text": "第85条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L086",
        "text": "第86条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L087",
        "text": "第87条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L088",
        "text": "第88条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L089",
        "text": "第89条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L090",
        "text": "草案乙记载：投稿截止日为2026年6月20日。材料未说明草案甲与草案乙的版本先后。"
      },
      {
        "id": "L091",
        "text": "第91条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L092",
        "text": "第92条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L093",
        "text": "第93条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L094",
        "text": "第94条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L095",
        "text": "第95条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L096",
        "text": "第96条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L097",
        "text": "第97条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L098",
        "text": "第98条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L099",
        "text": "第99条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L100",
        "text": "第100条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L101",
        "text": "第101条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L102",
        "text": "第102条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L103",
        "text": "第103条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L104",
        "text": "第104条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L105",
        "text": "第105条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L106",
        "text": "第106条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L107",
        "text": "第107条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L108",
        "text": "第108条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L109",
        "text": "第109条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L110",
        "text": "第110条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L111",
        "text": "第111条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L112",
        "text": "第112条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L113",
        "text": "第113条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L114",
        "text": "第114条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L115",
        "text": "第115条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L116",
        "text": "第116条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L117",
        "text": "第117条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L118",
        "text": "场地最终获批后，映月书展实际于2026年6月18日开场。张瑞的归档职责未发生变更。"
      },
      {
        "id": "L119",
        "text": "第119条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      },
      {
        "id": "L120",
        "text": "第120条整理说明：本段描述虚构书展的资料归档工作。记录只用于片段定位，未提供任何未决事项的答案；不要从段落编号推断日期、价格、责任人或结果。归档员将目录、书架标签和访客意见分开保存，并要求所有引用保留原有片段编号。"
      }
    ]
  },
  "cases": [
    {
      "id": "summary-negation-01",
      "paragraphs": [
        {
          "id": "S01",
          "text": "李昕在2026年4月12日提交了映月书架试点申请，预算为12,800元。"
        },
        {
          "id": "S02",
          "text": "审议记录明确：申请未获批准。材料没有写明上线日期。"
        }
      ],
      "expected": {
        "person": "李昕",
        "eventDate": "2026-04-12",
        "budgetYuan": "12800.00",
        "approved": false,
        "launchDate": null,
        "evidence": {
          "person": [
            "S01"
          ],
          "eventDate": [
            "S01"
          ],
          "budgetYuan": [
            "S01"
          ],
          "approved": [
            "S02"
          ],
          "launchDate": []
        }
      },
      "prompt": "只根据下面带 ID 的材料抽取事实。仅输出 JSON，字段为 person、eventDate、budgetYuan、approved、launchDate、evidence。person 是首次提交人的姓名；eventDate 是首次提交日期，不是更正通知日期；budgetYuan 使用有明确更正依据的当前预算。金额为两位小数字符串；日期为 YYYY-MM-DD；明确否定为 false，材料未给出的值为 null。evidence 每个字段对应材料 ID 数组；未知字段为空数组。不得把计划写成已发生。",
      "taskType": "summary-facts",
      "sourceText": "[S01] 李昕在2026年4月12日提交了映月书架试点申请，预算为12,800元。\n[S02] 审议记录明确：申请未获批准。材料没有写明上线日期。"
    },
    {
      "id": "summary-zero-02",
      "paragraphs": [
        {
          "id": "S11",
          "text": "2026年5月6日，周楠递交了橙湾阅读角方案。本轮预算为0元，不申请新增经费。"
        },
        {
          "id": "S12",
          "text": "会议已批准该方案；上线日期尚未确定。"
        }
      ],
      "expected": {
        "person": "周楠",
        "eventDate": "2026-05-06",
        "budgetYuan": "0.00",
        "approved": true,
        "launchDate": null,
        "evidence": {
          "person": [
            "S11"
          ],
          "eventDate": [
            "S11"
          ],
          "budgetYuan": [
            "S11"
          ],
          "approved": [
            "S12"
          ],
          "launchDate": []
        }
      },
      "prompt": "只根据下面带 ID 的材料抽取事实。仅输出 JSON，字段为 person、eventDate、budgetYuan、approved、launchDate、evidence。person 是首次提交人的姓名；eventDate 是首次提交日期，不是更正通知日期；budgetYuan 使用有明确更正依据的当前预算。金额为两位小数字符串；日期为 YYYY-MM-DD；明确否定为 false，材料未给出的值为 null。evidence 每个字段对应材料 ID 数组；未知字段为空数组。不得把计划写成已发生。",
      "taskType": "summary-facts",
      "sourceText": "[S11] 2026年5月6日，周楠递交了橙湾阅读角方案。本轮预算为0元，不申请新增经费。\n[S12] 会议已批准该方案；上线日期尚未确定。"
    },
    {
      "id": "summary-revision-03",
      "paragraphs": [
        {
          "id": "S21",
          "text": "王清于2026年5月20日提交雾桥展架申请，原预算为9,600元。"
        },
        {
          "id": "S22",
          "text": "2026年5月22日的更正通知将预算改为8,750.50元，其余申请字段不变。"
        },
        {
          "id": "S23",
          "text": "最终结论为批准；实际上线日期是2026年6月1日。"
        }
      ],
      "expected": {
        "person": "王清",
        "eventDate": "2026-05-20",
        "budgetYuan": "8750.50",
        "approved": true,
        "launchDate": "2026-06-01",
        "evidence": {
          "person": [
            "S21"
          ],
          "eventDate": [
            "S21"
          ],
          "budgetYuan": [
            "S22"
          ],
          "approved": [
            "S23"
          ],
          "launchDate": [
            "S23"
          ]
        }
      },
      "prompt": "只根据下面带 ID 的材料抽取事实。仅输出 JSON，字段为 person、eventDate、budgetYuan、approved、launchDate、evidence。person 是首次提交人的姓名；eventDate 是首次提交日期，不是更正通知日期；budgetYuan 使用有明确更正依据的当前预算。金额为两位小数字符串；日期为 YYYY-MM-DD；明确否定为 false，材料未给出的值为 null。evidence 每个字段对应材料 ID 数组；未知字段为空数组。不得把计划写成已发生。",
      "taskType": "summary-facts",
      "sourceText": "[S21] 王清于2026年5月20日提交雾桥展架申请，原预算为9,600元。\n[S22] 2026年5月22日的更正通知将预算改为8,750.50元，其余申请字段不变。\n[S23] 最终结论为批准；实际上线日期是2026年6月1日。"
    },
    {
      "id": "summary-unknown-04",
      "paragraphs": [
        {
          "id": "S31",
          "text": "2026年7月2日，陆禾提交了星屿导览草案。草案没有列出预算金额。"
        },
        {
          "id": "S32",
          "text": "评审尚未开始，不能认定方案获批或被否决。预计上线时间也未给出。"
        }
      ],
      "expected": {
        "person": "陆禾",
        "eventDate": "2026-07-02",
        "budgetYuan": null,
        "approved": null,
        "launchDate": null,
        "evidence": {
          "person": [
            "S31"
          ],
          "eventDate": [
            "S31"
          ],
          "budgetYuan": [],
          "approved": [],
          "launchDate": []
        }
      },
      "prompt": "只根据下面带 ID 的材料抽取事实。仅输出 JSON，字段为 person、eventDate、budgetYuan、approved、launchDate、evidence。person 是首次提交人的姓名；eventDate 是首次提交日期，不是更正通知日期；budgetYuan 使用有明确更正依据的当前预算。金额为两位小数字符串；日期为 YYYY-MM-DD；明确否定为 false，材料未给出的值为 null。evidence 每个字段对应材料 ID 数组；未知字段为空数组。不得把计划写成已发生。",
      "taskType": "summary-facts",
      "sourceText": "[S31] 2026年7月2日，陆禾提交了星屿导览草案。草案没有列出预算金额。\n[S32] 评审尚未开始，不能认定方案获批或被否决。预计上线时间也未给出。"
    },
    {
      "id": "citation-final-date-01",
      "question": "映月书展的实际开场日期是哪一天？",
      "expected": {
        "status": "answered",
        "answer": "2026-06-18",
        "citations": [
          "L118"
        ]
      },
      "taskType": "document-citation",
      "documentId": "fictional-bookfair-v1",
      "sourceFile": "long-document.txt",
      "prompt": "只依据带片段 ID 的全文回答。输出 JSON：status 为 answered、unknown 或 conflicting；answer 为简洁字符串或 null；citations 为支持结论的片段 ID 数组。没有答案时 answer=null、citations=[]；未能解决的材料矛盾用 conflicting 并列出相互矛盾的片段。只能引用实际支持答案的段落，不能用相邻填充段凑数。"
    },
    {
      "id": "citation-no-answer-02",
      "question": "映月书展开场主持人是谁？",
      "expected": {
        "status": "unknown",
        "answer": null,
        "citations": []
      },
      "taskType": "document-citation",
      "documentId": "fictional-bookfair-v1",
      "sourceFile": "long-document.txt",
      "prompt": "只依据带片段 ID 的全文回答。输出 JSON：status 为 answered、unknown 或 conflicting；answer 为简洁字符串或 null；citations 为支持结论的片段 ID 数组。没有答案时 answer=null、citations=[]；未能解决的材料矛盾用 conflicting 并列出相互矛盾的片段。只能引用实际支持答案的段落，不能用相邻填充段凑数。"
    },
    {
      "id": "citation-conflict-03",
      "question": "材料能否确定投稿截止日？",
      "expected": {
        "status": "conflicting",
        "answer": null,
        "citations": [
          "L030",
          "L090"
        ]
      },
      "taskType": "document-citation",
      "documentId": "fictional-bookfair-v1",
      "sourceFile": "long-document.txt",
      "prompt": "只依据带片段 ID 的全文回答。输出 JSON：status 为 answered、unknown 或 conflicting；answer 为简洁字符串或 null；citations 为支持结论的片段 ID 数组。没有答案时 answer=null、citations=[]；未能解决的材料矛盾用 conflicting 并列出相互矛盾的片段。只能引用实际支持答案的段落，不能用相邻填充段凑数。"
    },
    {
      "id": "citation-cross-span-04",
      "question": "请用“负责人；日期”格式给出场地审批记录归档负责人和实际开场日期。",
      "expected": {
        "status": "answered",
        "answer": "张瑞；2026-06-18",
        "citations": [
          "L063",
          "L118"
        ]
      },
      "taskType": "document-citation",
      "documentId": "fictional-bookfair-v1",
      "sourceFile": "long-document.txt",
      "prompt": "只依据带片段 ID 的全文回答。输出 JSON：status 为 answered、unknown 或 conflicting；answer 为简洁字符串或 null；citations 为支持结论的片段 ID 数组。没有答案时 answer=null、citations=[]；未能解决的材料矛盾用 conflicting 并列出相互矛盾的片段。只能引用实际支持答案的段落，不能用相邻填充段凑数。"
    },
    {
      "id": "table-leading-zero-01",
      "sourceText": "| 编号 | 金额（元） | 数量 | 单位 |\n|---|---:|---:|---|\n| 0017 | 1,280.50 | 3 | 套 |\n| 0002 | 0 | 0 | 份 |",
      "expected": [
        {
          "recordId": "0017",
          "amountYuan": "1280.50",
          "quantity": 3,
          "unit": "套"
        },
        {
          "recordId": "0002",
          "amountYuan": "0.00",
          "quantity": 0,
          "unit": "份"
        }
      ],
      "prompt": "将下面的虚构展览费用行转换为 JSON 数组。每行字段仅含 recordId、amountYuan、quantity、unit。recordId 保留前导零并为字符串；amountYuan 为元单位两位小数字符串或 null；数量为整数或 null。- 表示缺失，负号表示调整款。万元乘以10000后再保留两位；不推断缺失值，不增加总计行。",
      "taskType": "table-extraction"
    },
    {
      "id": "table-missing-02",
      "sourceText": "| 编号 | 金额（元） | 数量 | 单位 |\n|---|---:|---:|---|\n| 0021 | - | 2 | 本 |\n| 0022 | 360.00 | - | 件 |",
      "expected": [
        {
          "recordId": "0021",
          "amountYuan": null,
          "quantity": 2,
          "unit": "本"
        },
        {
          "recordId": "0022",
          "amountYuan": "360.00",
          "quantity": null,
          "unit": "件"
        }
      ],
      "prompt": "将下面的虚构展览费用行转换为 JSON 数组。每行字段仅含 recordId、amountYuan、quantity、unit。recordId 保留前导零并为字符串；amountYuan 为元单位两位小数字符串或 null；数量为整数或 null。- 表示缺失，负号表示调整款。万元乘以10000后再保留两位；不推断缺失值，不增加总计行。",
      "taskType": "table-extraction"
    },
    {
      "id": "table-negative-03",
      "sourceText": "| 编号 | 金额（元） | 数量 | 单位 |\n|---|---:|---:|---|\n| 0031 | -50.25 | 1 | 笔 |",
      "expected": [
        {
          "recordId": "0031",
          "amountYuan": "-50.25",
          "quantity": 1,
          "unit": "笔"
        }
      ],
      "prompt": "将下面的虚构展览费用行转换为 JSON 数组。每行字段仅含 recordId、amountYuan、quantity、unit。recordId 保留前导零并为字符串；amountYuan 为元单位两位小数字符串或 null；数量为整数或 null。- 表示缺失，负号表示调整款。万元乘以10000后再保留两位；不推断缺失值，不增加总计行。",
      "taskType": "table-extraction"
    },
    {
      "id": "table-wan-unit-04",
      "sourceText": "| 编号 | 金额（万元） | 数量 | 单位 |\n|---|---:|---:|---|\n| 0041 | 1.25 | 5 | 套 |\n| 0042 | -0.003 | 1 | 笔 |",
      "expected": [
        {
          "recordId": "0041",
          "amountYuan": "12500.00",
          "quantity": 5,
          "unit": "套"
        },
        {
          "recordId": "0042",
          "amountYuan": "-30.00",
          "quantity": 1,
          "unit": "笔"
        }
      ],
      "prompt": "将下面的虚构展览费用行转换为 JSON 数组。每行字段仅含 recordId、amountYuan、quantity、unit。recordId 保留前导零并为字符串；amountYuan 为元单位两位小数字符串或 null；数量为整数或 null。- 表示缺失，负号表示调整款。万元乘以10000后再保留两位；不推断缺失值，不增加总计行。",
      "taskType": "table-extraction"
    },
    {
      "id": "table-parentheses-05",
      "sourceText": "说明：括号表示负数调整款。\n| 编号 | 金额（元） | 数量 | 单位 |\n|---|---:|---:|---|\n| 0051 | (125.00) | 1 | 笔 |",
      "expected": [
        {
          "recordId": "0051",
          "amountYuan": "-125.00",
          "quantity": 1,
          "unit": "笔"
        }
      ],
      "prompt": "将下面的虚构展览费用行转换为 JSON 数组。每行字段仅含 recordId、amountYuan、quantity、unit。recordId 保留前导零并为字符串；amountYuan 为元单位两位小数字符串或 null；数量为整数或 null。- 表示缺失，负号表示调整款。万元乘以10000后再保留两位；不推断缺失值，不增加总计行。",
      "taskType": "table-extraction"
    },
    {
      "id": "tool-read-01",
      "userMessage": "查询展览 EX-017 在2026年10月15日的开放时段。",
      "expected": {
        "decision": "call",
        "tool": "lookup_exhibit_hours",
        "arguments": {
          "exhibitId": "EX-017",
          "date": "2026-10-15"
        },
        "missingFields": []
      },
      "taskType": "tool-selection",
      "prompt": "判断用户意图，只输出 JSON 提案，字段为 decision（call、answer、clarify）、tool、arguments、missingFields。call 时填写工具名和参数；answer 或 clarify 时 tool=null、arguments=null。clarify 列出缺失必填字段；answer 的 missingFields=[]。禁止补造日期、人数或展览 ID；禁止实际执行工具。",
      "tools": [
        {
          "name": "lookup_exhibit_hours",
          "description": "查询虚构展览某一天的开放时段；只读，不产生预约。",
          "parameters": {
            "type": "object",
            "properties": {
              "exhibitId": {
                "type": "string"
              },
              "date": {
                "type": "string"
              }
            },
            "required": [
              "exhibitId",
              "date"
            ],
            "additionalProperties": false
          }
        },
        {
          "name": "reserve_exhibit_visit",
          "description": "创建预约；需要明确预约意图及展览ID、日期、人数。测试材料中只提交提案，不执行。",
          "parameters": {
            "type": "object",
            "properties": {
              "exhibitId": {
                "type": "string"
              },
              "date": {
                "type": "string"
              },
              "visitors": {
                "type": "integer",
                "minimum": 1
              }
            },
            "required": [
              "exhibitId",
              "date",
              "visitors"
            ],
            "additionalProperties": false
          }
        }
      ]
    },
    {
      "id": "tool-no-call-02",
      "userMessage": "不用查询，也不要预约。请解释“开放时段”和“预约”的区别。",
      "expected": {
        "decision": "answer",
        "tool": null,
        "arguments": null,
        "missingFields": []
      },
      "taskType": "tool-selection",
      "prompt": "判断用户意图，只输出 JSON 提案，字段为 decision（call、answer、clarify）、tool、arguments、missingFields。call 时填写工具名和参数；answer 或 clarify 时 tool=null、arguments=null。clarify 列出缺失必填字段；answer 的 missingFields=[]。禁止补造日期、人数或展览 ID；禁止实际执行工具。",
      "tools": [
        {
          "name": "lookup_exhibit_hours",
          "description": "查询虚构展览某一天的开放时段；只读，不产生预约。",
          "parameters": {
            "type": "object",
            "properties": {
              "exhibitId": {
                "type": "string"
              },
              "date": {
                "type": "string"
              }
            },
            "required": [
              "exhibitId",
              "date"
            ],
            "additionalProperties": false
          }
        },
        {
          "name": "reserve_exhibit_visit",
          "description": "创建预约；需要明确预约意图及展览ID、日期、人数。测试材料中只提交提案，不执行。",
          "parameters": {
            "type": "object",
            "properties": {
              "exhibitId": {
                "type": "string"
              },
              "date": {
                "type": "string"
              },
              "visitors": {
                "type": "integer",
                "minimum": 1
              }
            },
            "required": [
              "exhibitId",
              "date",
              "visitors"
            ],
            "additionalProperties": false
          }
        }
      ]
    },
    {
      "id": "tool-clarify-03",
      "userMessage": "帮我预约展览 EX-017，两个人去。日期我还没定。",
      "expected": {
        "decision": "clarify",
        "tool": null,
        "arguments": null,
        "missingFields": [
          "date"
        ]
      },
      "taskType": "tool-selection",
      "prompt": "判断用户意图，只输出 JSON 提案，字段为 decision（call、answer、clarify）、tool、arguments、missingFields。call 时填写工具名和参数；answer 或 clarify 时 tool=null、arguments=null。clarify 列出缺失必填字段；answer 的 missingFields=[]。禁止补造日期、人数或展览 ID；禁止实际执行工具。",
      "tools": [
        {
          "name": "lookup_exhibit_hours",
          "description": "查询虚构展览某一天的开放时段；只读，不产生预约。",
          "parameters": {
            "type": "object",
            "properties": {
              "exhibitId": {
                "type": "string"
              },
              "date": {
                "type": "string"
              }
            },
            "required": [
              "exhibitId",
              "date"
            ],
            "additionalProperties": false
          }
        },
        {
          "name": "reserve_exhibit_visit",
          "description": "创建预约；需要明确预约意图及展览ID、日期、人数。测试材料中只提交提案，不执行。",
          "parameters": {
            "type": "object",
            "properties": {
              "exhibitId": {
                "type": "string"
              },
              "date": {
                "type": "string"
              },
              "visitors": {
                "type": "integer",
                "minimum": 1
              }
            },
            "required": [
              "exhibitId",
              "date",
              "visitors"
            ],
            "additionalProperties": false
          }
        }
      ]
    },
    {
      "id": "tool-propose-04",
      "userMessage": "请提议预约展览 EX-017，2026年10月16日，3人；本次只生成提案，不真正预约。",
      "expected": {
        "decision": "call",
        "tool": "reserve_exhibit_visit",
        "arguments": {
          "exhibitId": "EX-017",
          "date": "2026-10-16",
          "visitors": 3
        },
        "missingFields": []
      },
      "taskType": "tool-selection",
      "prompt": "判断用户意图，只输出 JSON 提案，字段为 decision（call、answer、clarify）、tool、arguments、missingFields。call 时填写工具名和参数；answer 或 clarify 时 tool=null、arguments=null。clarify 列出缺失必填字段；answer 的 missingFields=[]。禁止补造日期、人数或展览 ID；禁止实际执行工具。",
      "tools": [
        {
          "name": "lookup_exhibit_hours",
          "description": "查询虚构展览某一天的开放时段；只读，不产生预约。",
          "parameters": {
            "type": "object",
            "properties": {
              "exhibitId": {
                "type": "string"
              },
              "date": {
                "type": "string"
              }
            },
            "required": [
              "exhibitId",
              "date"
            ],
            "additionalProperties": false
          }
        },
        {
          "name": "reserve_exhibit_visit",
          "description": "创建预约；需要明确预约意图及展览ID、日期、人数。测试材料中只提交提案，不执行。",
          "parameters": {
            "type": "object",
            "properties": {
              "exhibitId": {
                "type": "string"
              },
              "date": {
                "type": "string"
              },
              "visitors": {
                "type": "integer",
                "minimum": 1
              }
            },
            "required": [
              "exhibitId",
              "date",
              "visitors"
            ],
            "additionalProperties": false
          }
        }
      ]
    },
    {
      "id": "tool-negated-write-05",
      "userMessage": "我不想预约，请只查展览 EX-017 在2026年10月16日的开放时段。",
      "expected": {
        "decision": "call",
        "tool": "lookup_exhibit_hours",
        "arguments": {
          "exhibitId": "EX-017",
          "date": "2026-10-16"
        },
        "missingFields": []
      },
      "taskType": "tool-selection",
      "prompt": "判断用户意图，只输出 JSON 提案，字段为 decision（call、answer、clarify）、tool、arguments、missingFields。call 时填写工具名和参数；answer 或 clarify 时 tool=null、arguments=null。clarify 列出缺失必填字段；answer 的 missingFields=[]。禁止补造日期、人数或展览 ID；禁止实际执行工具。",
      "tools": [
        {
          "name": "lookup_exhibit_hours",
          "description": "查询虚构展览某一天的开放时段；只读，不产生预约。",
          "parameters": {
            "type": "object",
            "properties": {
              "exhibitId": {
                "type": "string"
              },
              "date": {
                "type": "string"
              }
            },
            "required": [
              "exhibitId",
              "date"
            ],
            "additionalProperties": false
          }
        },
        {
          "name": "reserve_exhibit_visit",
          "description": "创建预约；需要明确预约意图及展览ID、日期、人数。测试材料中只提交提案，不执行。",
          "parameters": {
            "type": "object",
            "properties": {
              "exhibitId": {
                "type": "string"
              },
              "date": {
                "type": "string"
              },
              "visitors": {
                "type": "integer",
                "minimum": 1
              }
            },
            "required": [
              "exhibitId",
              "date",
              "visitors"
            ],
            "additionalProperties": false
          }
        }
      ]
    },
    {
      "id": "coding-quantity-01",
      "taskType": "code-repair",
      "sourceFile": "code/baseline/quantity.py",
      "allowedOutputFile": "quantity.py",
      "trustedTestsFile": "code/test_contracts.py",
      "testSelector": "QuantityContractTests",
      "prompt": "仅修复 quantity.py 的 parse_quantity(text)，输出该文件完整内容，不修改测试。输入必须是 str；去除两端空白，数字使用 ASCII 0-9，支持可选正负号、整数或小数；小数点前后必须有数字，单位仅 g、kg、个。数字与单位之间可以有空白。返回 (Decimal, str) 元组，保留 Decimal 精度与输入小数位（例如 1.250）；不得单位换算。非法类型抛 TypeError，非法文本抛 ValueError。拒绝布尔值、科学计数、NaN、千位逗号及末尾说明。使用 Python 标准库，不访问网络、不写其他文件。",
      "acceptance": {
        "valid": [
          {
            "input": "1.250 kg",
            "value": "1.250",
            "unit": "kg"
          },
          {
            "input": "-0.05g",
            "value": "-0.05",
            "unit": "g"
          },
          {
            "input": " +12 个 ",
            "value": "12",
            "unit": "个"
          }
        ],
        "invalidText": [
          "NaNkg",
          "1e3g",
          "1,000g",
          "2 kg approx",
          "kg",
          ""
        ],
        "invalidType": [
          true,
          3,
          null
        ],
        "requiredValueType": "decimal.Decimal"
      }
    },
    {
      "id": "coding-retry-02",
      "taskType": "code-repair",
      "sourceFile": "code/baseline/retry.py",
      "allowedOutputFile": "retry.py",
      "trustedTestsFile": "code/test_contracts.py",
      "testSelector": "RetryContractTests",
      "prompt": "仅修复 retry.py 的 retry_delays(attempts, base_ms, cap_ms)，输出该文件完整内容，不修改测试。全部参数必须是精确 int，bool 和 float 不接受，非法类型抛 TypeError。0<=attempts<=6；1<=base_ms<=cap_ms<=60000，否则 ValueError。返回长度为 attempts 的整数列表，第 i 项从 i=0 开始为 min(base_ms * 2**i, cap_ms)。纯计算，不发送请求、不 sleep、不执行重试、不访问网络。",
      "acceptance": {
        "valid": [
          {
            "input": [
              0,
              100,
              1000
            ],
            "expected": []
          },
          {
            "input": [
              4,
              100,
              250
            ],
            "expected": [
              100,
              200,
              250,
              250
            ]
          },
          {
            "input": [
              3,
              500,
              500
            ],
            "expected": [
              500,
              500,
              500
            ]
          }
        ],
        "invalidValue": [
          [
            -1,
            100,
            1000
          ],
          [
            7,
            100,
            1000
          ],
          [
            2,
            0,
            100
          ],
          [
            2,
            100,
            50
          ],
          [
            2,
            100,
            60001
          ]
        ],
        "invalidType": [
          [
            true,
            100,
            1000
          ],
          [
            2,
            100.0,
            1000
          ],
          [
            2,
            100,
            false
          ]
        ]
      }
    }
  ]
}
