{
  "schema_version": "2.0",
  "id": "C-15-matching",
  "name": "搜词听写 · 匹配中",
  "module": "听写-搜词听写",
  "ui_family": "dictation",
  "viewport": {
    "width": 390,
    "height": 844
  },
  "purpose": "确认录词后匹配读音释义，请求中禁重复添加。",
  "entry": {
    "from": [
      "C听写首页",
      "本来源词表、共用设置或同页支线状态"
    ],
    "preconditions": [
      "已登录；不要求先选课本",
      "图片／词条为本地示例，演示状态不是生产识别结果"
    ],
    "rule_status": "confirmed"
  },
  "ui_elements": [
    {
      "id": "C-15-matching.ui.0",
      "label": "输入保持",
      "description": "输入保持",
      "rule_status": "proposed"
    },
    {
      "id": "C-15-matching.ui.1",
      "label": "匹配进度",
      "description": "匹配进度",
      "rule_status": "proposed"
    },
    {
      "id": "C-15-matching.ui.2",
      "label": "确认与选词听写禁用",
      "description": "确认与选词听写禁用",
      "rule_status": "proposed"
    }
  ],
  "interactions": [
    {
      "id": "INPUT",
      "trigger": "输入或粘贴纯英文",
      "condition": "当前页面满足条件",
      "effect": "按换行、逗号、分号拆条，保留短语空格，统一首尾及连续空格；不把中文当英文词自动加入",
      "destination": "C-15",
      "payload": [
        "entry:photo/search",
        "来源及返回页",
        "稳定词条ID、拼写、音标、释义、读音状态",
        "选择集合及顺序",
        "照片页码及来源引用",
        "待匹配输入、请求ID"
      ],
      "rule_status": "confirmed",
      "source": "原UE C-13/C-14/C-15；当前用户规则；proposed项为详细补全建议",
      "prototype_behavior": "可操作本地样例；相机/OCR/词库/TTS/标准音/服务器均未接入"
    },
    {
      "id": "ADD",
      "trigger": "点确认／回车",
      "condition": "至少1项有效纯英文单词或短语且未请求中",
      "effect": "匹配音标、释义和读音后加入已录入；批量含非法项不部分吞入，提示修改并保留原文；回车确认、Shift+回车换行",
      "destination": "C-15",
      "payload": [
        "entry:photo/search",
        "来源及返回页",
        "稳定词条ID、拼写、音标、释义、读音状态",
        "选择集合及顺序",
        "照片页码及来源引用",
        "待匹配输入、请求ID"
      ],
      "rule_status": "confirmed",
      "source": "原UE C-13/C-14/C-15；当前用户规则；proposed项为详细补全建议",
      "prototype_behavior": "可操作本地样例；相机/OCR/词库/TTS/标准音/服务器均未接入"
    },
    {
      "id": "REMOVE",
      "trigger": "点单个×",
      "condition": "当前页面满足条件",
      "effect": "删除所点条目，更新数量，不自动删除重复英文词",
      "destination": "C-15",
      "payload": [
        "entry:photo/search",
        "来源及返回页",
        "稳定词条ID、拼写、音标、释义、读音状态",
        "选择集合及顺序",
        "照片页码及来源引用",
        "待匹配输入、请求ID"
      ],
      "rule_status": "confirmed",
      "source": "原UE C-13/C-14/C-15；当前用户规则；proposed项为详细补全建议",
      "prototype_behavior": "可操作本地样例；相机/OCR/词库/TTS/标准音/服务器均未接入"
    },
    {
      "id": "REORDER",
      "trigger": "长按拖动词条／展开调整顺序后上移或下移",
      "condition": "至少2个已录入词",
      "effect": "只调整本搜词词表的录入顺序；保留词条ID、读音状态和选择；后续按录入顺序出题使用此序列",
      "destination": "C-15",
      "payload": [
        "有序词条ID集合"
      ],
      "rule_status": "confirmed",
      "source": "原UE C-15长按排序；上移／下移为可访问性补全建议",
      "prototype_behavior": "桌面拖动和上移下移可操作，原生App须提供移动端长按拖动"
    },
    {
      "id": "RETRY",
      "trigger": "匹配失败重试",
      "condition": "当前页面满足条件",
      "effect": "保留未确认原文和已录入；重试成功只追加一次，忽略取消／旧请求的迟到响应",
      "destination": "C-15",
      "payload": [
        "entry:photo/search",
        "来源及返回页",
        "稳定词条ID、拼写、音标、释义、读音状态",
        "选择集合及顺序",
        "照片页码及来源引用",
        "待匹配输入、请求ID"
      ],
      "rule_status": "proposed",
      "source": "原UE C-13/C-14/C-15；当前用户规则；proposed项为详细补全建议",
      "prototype_behavior": "可操作本地样例；相机/OCR/词库/TTS/标准音/服务器均未接入"
    },
    {
      "id": "CHECK",
      "trigger": "点击选词听写",
      "condition": "至少1个已录入词且未请求中",
      "effect": "进入共用C-2的搜词来源状态，带已录入词、选择、顺序；输入框未确认内容不自动加入",
      "destination": "C-2-search",
      "payload": [
        "entry:photo/search",
        "来源及返回页",
        "稳定词条ID、拼写、音标、释义、读音状态",
        "选择集合及顺序",
        "照片页码及来源引用",
        "待匹配输入、请求ID"
      ],
      "rule_status": "confirmed",
      "source": "原UE C-13/C-14/C-15；当前用户规则；proposed项为详细补全建议",
      "prototype_behavior": "可操作本地样例；相机/OCR/词库/TTS/标准音/服务器均未接入"
    },
    {
      "id": "BACK",
      "trigger": "返回",
      "condition": "当前页面满足条件",
      "effect": "回C首页，本次搜词草稿保留；不覆盖教材或拍照草稿",
      "destination": "C",
      "payload": [
        "entry:photo/search",
        "来源及返回页",
        "稳定词条ID、拼写、音标、释义、读音状态",
        "选择集合及顺序",
        "照片页码及来源引用",
        "待匹配输入、请求ID"
      ],
      "rule_status": "proposed",
      "source": "原UE C-13/C-14/C-15；当前用户规则；proposed项为详细补全建议",
      "prototype_behavior": "可操作本地样例；相机/OCR/词库/TTS/标准音/服务器均未接入"
    }
  ],
  "back_behavior": {
    "destination": "实际来源页",
    "preserve": [
      "未确认输入",
      "本来源词条及选择",
      "词条改动、读音状态、排序",
      "重拍／补拍模式、旧词表、页码",
      "共用播报偏好、滚动位置"
    ],
    "rule_status": "proposed"
  },
  "data_source": [
    {
      "name": "相机／系统相册、OCR、词库、音源、TTS、共用听写服务",
      "data": [
        "图片与识别请求ID",
        "英文原文及修订记录",
        "稳定词条ID、词义ID",
        "标准音／合成音状态",
        "服务失败与重试"
      ],
      "contract_status": "pending"
    }
  ],
  "data_model": [
    {
      "id": "entryDraft",
      "type": "object",
      "description": "entry来源隔离photo/search/textbook；items及selected稳定ID；输入、照片模式、页码、receipt；不与教材选词混写",
      "rule_status": "proposed"
    },
    {
      "id": "word",
      "type": "object",
      "description": "id/en/cn/ipa/pageNo/pageRefs/audioStatus:standard/unconfirmed/confirmed/error；修订拼写需重置旧audio确认",
      "rule_status": "proposed"
    },
    {
      "id": "imageRequest",
      "type": "object",
      "description": "requestId、图片引用、方向、有效识别区域、action:replace/append；取消／离开后丢弃迟到结果",
      "rule_status": "proposed"
    }
  ],
  "states": [
    {
      "id": "matching",
      "description": "搜词听写 · 匹配中",
      "rule_status": "proposed"
    }
  ],
  "prototype_states": [
    {
      "id": "matching",
      "label": "搜词听写 · 匹配中",
      "scope": "prototype_only"
    }
  ],
  "default_preview_state": "matching",
  "acceptance_criteria": [
    {
      "given": "当前页面满足条件",
      "when": "输入或粘贴纯英文",
      "then": "按换行、逗号、分号拆条，保留短语空格，统一首尾及连续空格；不把中文当英文词自动加入；目标 C-15",
      "rule_status": "confirmed"
    },
    {
      "given": "至少1项有效纯英文单词或短语且未请求中",
      "when": "点确认／回车",
      "then": "匹配音标、释义和读音后加入已录入；批量含非法项不部分吞入，提示修改并保留原文；回车确认、Shift+回车换行；目标 C-15",
      "rule_status": "confirmed"
    },
    {
      "given": "当前页面满足条件",
      "when": "点单个×",
      "then": "删除所点条目，更新数量，不自动删除重复英文词；目标 C-15",
      "rule_status": "confirmed"
    },
    {
      "given": "至少2个已录入词",
      "when": "长按拖动词条／展开调整顺序后上移或下移",
      "then": "只调整本搜词词表的录入顺序；保留词条ID、读音状态和选择；后续按录入顺序出题使用此序列；目标 C-15",
      "rule_status": "confirmed"
    },
    {
      "given": "当前页面满足条件",
      "when": "匹配失败重试",
      "then": "保留未确认原文和已录入；重试成功只追加一次，忽略取消／旧请求的迟到响应；目标 C-15",
      "rule_status": "proposed"
    },
    {
      "given": "至少1个已录入词且未请求中",
      "when": "点击选词听写",
      "then": "进入共用C-2的搜词来源状态，带已录入词、选择、顺序；输入框未确认内容不自动加入；目标 C-2-search",
      "rule_status": "confirmed"
    },
    {
      "given": "当前页面满足条件",
      "when": "返回",
      "then": "回C首页，本次搜词草稿保留；不覆盖教材或拍照草稿；目标 C",
      "rule_status": "proposed"
    }
  ],
  "pending_from_source": [
    "词库、合成音源和真实读音失败码待接入；原型没有真实发声"
  ],
  "additional_unspecified": [
    "合成读音不可用时禁选该词，保留词条让用户重试；音源供应商与英文口音待正式音频配置"
  ],
  "implementation_constraints": [
    "屏幕内产品UI不显示页编号、实现字段或Mock开关",
    "图片采集与答题纸拍照不可混淆；前者准备题目，后者批改答案",
    "实际音频播放完成才可确认，不以按钮点击替代试听成功",
    "photo/search分别保留草稿；C-3开始时快照所选词、音源及固定题序",
    "相同词合并以已匹配词条及词义身份为准；仅拼写相同但词义不同不自动合并；保留用户修订",
    "不重画C-3～C-12下游，保留实际来源返回和复听上下文",
    "搜词词表不自动写入自建默写单F-2历史；保留独立搜词草稿，完成听写后进入听写记录。仅共用录词能力，不混合两类历史。"
  ],
  "prototype_limitations": [
    "相机和相册使用示例单词表，旋转仅演示方向；不请求实际摄像头或读用户照片",
    "OCR、词典、标准音、合成音均为本地样例；固定匹配结果不构成API契约",
    "共用后续听写同v0.9模拟定时和识别；服务器保存及跨设备恢复尚未实现"
  ],
  "sources": [
    "https://xzx.huajian.io/",
    "英语默写代码/xzx-pages/pages/C-13.html",
    "英语默写代码/xzx-pages/pages/C-14.html",
    "英语默写代码/xzx-pages/pages/C-15.html",
    "当前首页UI及用户确认"
  ],
  "user_confirmed_rules": [
    {
      "id": "ENTRY-SHARED",
      "description": "拍照与搜词只准备词表，后续复用C-3～C-12设置、三种作答、批改、报告和分享；全部浅色，慢15秒／正常8秒／快5秒自动推进。",
      "rule_status": "confirmed",
      "source": "用户此前听写确认及本轮要求"
    },
    {
      "id": "ENTRY-AUDIO",
      "description": "未匹配标准读音时先核对拼写，再试听并确认合成读音；无法提供读音的词不能选入听写。",
      "rule_status": "confirmed",
      "source": "用户2026-10-12确认"
    },
    {
      "id": "PHOTO-MERGE",
      "description": "重拍识别成功后替换；补拍追加并自动合并相同单词，取消或失败保留原词表。",
      "rule_status": "confirmed",
      "source": "用户2026-10-12选择自动合并"
    },
    {
      "id": "SEARCH-ENGLISH",
      "description": "搜词仅支持纯英文单词或短语，并支持批量粘贴；中文搜索不在本轮范围。",
      "rule_status": "confirmed",
      "source": "用户2026-10-12确认"
    },
    {
      "id": "SEARCH-HISTORY-SEPARATE",
      "description": "搜词词表不自动写入自建默写单F-2历史；保留独立搜词草稿，完成听写后进入听写记录。仅共用录词能力，不混合两类历史。",
      "rule_status": "confirmed",
      "source": "用户2026-10-12确认：不混入自建历史"
    },
    {
      "id": "SEARCH-CTA",
      "description": "搜词录入页底部按钮由核对改为选词听写，仍进入C-2搜词来源挑词页，之后共用听写设置。",
      "rule_status": "confirmed",
      "source": "用户2026-10-12选择选词听写"
    },
    {
      "id": "GROWTH-WORD",
      "description": "积累单词统计成功导出的练习卷、已提交听写／客观练习、有效朗读涉及的词库单词，跨课本去重；答案卷不计，短语句子不拆词；表示接触，不表示掌握。",
      "rule_status": "confirmed",
      "source": "用户2026-10-13回复"
    },
    {
      "id": "GROWTH-CORRECT",
      "description": "同一稳定错题首次改对计一次；同轮末尾再练答对也计入；首答正确率保持原成绩。反复错后再对不重复累计。",
      "rule_status": "confirmed",
      "source": "用户2026-10-13回复"
    },
    {
      "id": "KEEP",
      "description": "三类记录与错题长期保留，不按会员截断，支持主动删除；自建词表历史独立保留。",
      "rule_status": "confirmed",
      "source": "用户2026-10-13回复"
    },
    {
      "id": "PRICE",
      "description": "年卡68元、终身98元；手动续费，无自动续费。价格由正式商品配置校验。",
      "rule_status": "confirmed",
      "source": "用户2026-10-13回复"
    },
    {
      "id": "PLATFORM",
      "description": "中国区iOS使用系统内购，国内安卓使用微信或支付宝；恢复权益、延迟到账与取消／失败都有独立状态。",
      "rule_status": "confirmed",
      "source": "用户2026-10-13回复"
    },
    {
      "id": "QUOTA",
      "description": "每账号免费累计3个成功导出文件、累计5轮听写／读单词／课文跟读批改评测，共用总额度，不按天恢复。失败不扣，同轮重试重读不重复扣。",
      "rule_status": "confirmed",
      "source": "用户2026-10-13回复"
    },
    {
      "id": "BENEFIT",
      "description": "客观练习不限次；免费开放6个专题、答案卷带水印；会员不限次数，手写／纸笔批改需会员。到期不重置已用免费总额度。",
      "rule_status": "confirmed",
      "source": "用户2026-10-13回复"
    },
    {
      "id": "WRONG",
      "description": "错题本仅做管理、来源／类型筛选、详情、移除及按原来源再练。听写与五种客观题收录，朗读低分独立。AI排期留25。",
      "rule_status": "confirmed",
      "source": "用户2026-10-13回复"
    },
    {
      "id": "INVITE",
      "description": "新用户经邀请完成注册即奖励邀请人7天会员，每月最多3次；年卡／赠送时长顺延，终身只记邀请不叠加时长；老用户重复邀请不奖励。",
      "rule_status": "confirmed",
      "source": "用户2026-10-13回复"
    },
    {
      "id": "CANCEL",
      "description": "验证身份并二次确认后立即注销；退出登录保留账号资产；退款按真实渠道与正式条款处理。",
      "rule_status": "confirmed",
      "source": "用户2026-10-13回复"
    },
    {
      "id": "HELP",
      "description": "先做帮助文章与邮箱联系版式；客服邮箱尚未确定；不编造可用邮箱。",
      "rule_status": "confirmed",
      "source": "用户2026-10-13回复"
    }
  ],
  "source_entry": "search",
  "parent_page_id": "C-15",
  "module_base": "搜词听写",
  "tabs": [
    "听写"
  ],
  "product": "英语默写AI版",
  "handoff_version": "0.12.3",
  "page_id": "C-15-matching",
  "date": "2026-10-13",
  "references": {
    "interface": "C-15-matching.interface.md",
    "prototype": "C-15-matching.prototype.html",
    "design": "UI-DESIGN.md"
  },
  "source_of_truth": {
    "visual": "C-15-matching.prototype.html 屏幕内产品 UI",
    "behavior": "原 UE 明确要求及当前用户已确认规则；proposed 与 pending 不构成已确认业务契约",
    "viewer_chrome": "手机外壳、项目导航、演示选择器、说明与页面编号属于预览宿主"
  }
}
