{
  "schema_version": "2.0",
  "product": "英语默写AI版",
  "handoff_version": "0.12.3",
  "date": "2026-10-13",
  "id": "A-1",
  "page_id": "A-1",
  "name": "本机号一键登录",
  "module": "认证及登录",
  "purpose": "通过本机号码认证完成登录；提供其他手机号登录切换入口。",
  "entry": {
    "from": [
      "A：未登录分支",
      "E-4：退出登录"
    ],
    "preconditions": [
      "未完成当前登录；本机完整手机号来自真实取号能力，演示18500643030为用户提供的格式样例。"
    ],
    "rule_status": "confirmed",
    "source": {
      "kind": "user_confirmation",
      "date": "2026-10-11",
      "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
    }
  },
  "ui_elements": [
    {
      "id": "A-1.heading",
      "type": "text",
      "label": "手机号登录",
      "description": "沿用主标题。",
      "rule_status": "confirmed"
    },
    {
      "id": "A-1.description",
      "type": "text",
      "label": "用本机号码，不用等验证码",
      "description": "说明本机号码登录方式。",
      "rule_status": "confirmed"
    },
    {
      "id": "A-1.phone",
      "type": "text",
      "label": "完整本机手机号",
      "description": "显示完整号码并采用3-4-4空格，例如185 0064 3030；真实号码来自取号服务。",
      "rule_status": "confirmed",
      "source": {
        "kind": "user_confirmation",
        "date": "2026-10-11",
        "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
      }
    },
    {
      "id": "A-1.carrier",
      "type": "text",
      "label": "号码认证服务说明",
      "description": "源示例“中国移动提供认证服务”，供应商待确认，不固定生产文案。",
      "rule_status": "pending"
    },
    {
      "id": "A-1.login",
      "type": "button",
      "label": "本机号码一键登录",
      "description": "协议未选时真正 disabled，选中才启用。",
      "rule_status": "confirmed"
    },
    {
      "id": "A-1.agreement",
      "type": "checkbox",
      "label": "我已阅读并同意",
      "description": "源默认未勾选；勾选影响一键登录可用性。",
      "rule_status": "confirmed"
    },
    {
      "id": "A-1.user-agreement",
      "type": "link",
      "label": "《用户协议》",
      "description": "与另一协议同一行显示，各链接保持完整，不折行；正文地址待提供。",
      "rule_status": "pending"
    },
    {
      "id": "A-1.privacy",
      "type": "link",
      "label": "《隐私政策》",
      "description": "与另一协议同一行显示，各链接保持完整，不折行；正文地址待提供。",
      "rule_status": "pending"
    },
    {
      "id": "A-1.other-phone",
      "type": "button",
      "label": "用其他手机号登录",
      "description": "次级文字入口，无描边、底色或箭头，14px普通字重，44px可点击高度；仍进入A-2。",
      "rule_status": "confirmed",
      "source": {
        "kind": "user_confirmation",
        "date": "2026-10-12",
        "detail": "用其他手机号登录太明显，改为次级文字入口，覆盖此前描边大按钮的要求。"
      }
    },
    {
      "id": "A-1.feedback",
      "type": "status",
      "label": "认证反馈",
      "description": "源预留报错位；请求中和失败呈现为详细状态建议。",
      "rule_status": "proposed"
    }
  ],
  "data_source": [
    {
      "name": "运营商号码认证能力",
      "data": [
        "完整本机手机号",
        "认证结果",
        "账号新/老分类"
      ],
      "contract_status": "pending",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原UE认证与课本设置参考；原登录先选书/课本分流规则已被本次用户修改覆盖。当前登录成功和已登录启动统一B，课本由首页引导选择。",
        "superseded_routing_source": {
          "kind": "user_confirmation",
          "date": "2026-10-11",
          "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
        }
      }
    },
    {
      "name": "登录会话来源",
      "data": [
        "成功后的登录态"
      ],
      "contract_status": "pending",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原UE认证与课本设置参考；原登录先选书/课本分流规则已被本次用户修改覆盖。当前登录成功和已登录启动统一B，课本由首页引导选择。",
        "superseded_routing_source": {
          "kind": "user_confirmation",
          "date": "2026-10-11",
          "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
        }
      }
    },
    {
      "name": "协议正文来源",
      "data": [
        "用户协议/隐私政策正文与版本"
      ],
      "contract_status": "pending",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "源只提供协议名称。"
      }
    }
  ],
  "data_model": [
    {
      "id": "phoneNumber",
      "type": "string",
      "description": "真实取号返回完整手机号，业务值11位数字；显示格式化为3-4-4。接口字段为建议。",
      "rule_status": "proposed",
      "contract_status": "pending",
      "prototype_example": "18500643030",
      "source": {
        "kind": "user_confirmation",
        "date": "2026-10-11",
        "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
      }
    },
    {
      "id": "agreementAccepted",
      "type": "boolean",
      "description": "源确认一键登录需勾协议。",
      "rule_status": "proposed",
      "prototype_example": false
    },
    {
      "id": "authStatus",
      "type": "enum",
      "description": "建议 idle/loading/error/success。",
      "rule_status": "proposed",
      "contract_status": "pending"
    },
    {
      "id": "accountClass",
      "type": "enum",
      "description": "源有新/老账号概念，识别契约未定义。",
      "rule_status": "proposed",
      "contract_status": "pending"
    },
    {
      "id": "textbookSetup",
      "type": "enum:unstarted|skipped|selected",
      "description": "课本selected/unstarted/skipped及引导状态供首页展示使用；不再阻断已登录启动或成功登录进入B。变量名和持久化契约待实现。",
      "rule_status": "proposed",
      "contract_status": "pending"
    }
  ],
  "interactions": [
    {
      "id": "A-1-I-01",
      "trigger": "切换协议勾选",
      "condition": "用户主动选择",
      "effect": "更新勾选；未选禁用/已选启用一键登录",
      "destination": "A-1",
      "payload": [
        "协议勾选状态"
      ],
      "rule_status": "confirmed",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原UE认证与课本设置参考；原登录先选书/课本分流规则已被本次用户修改覆盖。当前登录成功和已登录启动统一B，课本由首页引导选择。",
        "superseded_routing_source": {
          "kind": "user_confirmation",
          "date": "2026-10-11",
          "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
        }
      },
      "prototype_behavior": "使用真实 checkbox 或可访问等效控件，按钮 disabled；未勾选不能触发模拟登录。"
    },
    {
      "id": "A-1-I-02",
      "trigger": "点击本机号码一键登录",
      "condition": "协议已选，真实认证成功且为新账号",
      "effect": "真实认证成功后建立会话，统一进入B首页；无课本在首页引导选择。",
      "destination": "B",
      "payload": [
        "认证结果概念",
        "课本状态及首页引导上下文"
      ],
      "rule_status": "confirmed",
      "source": {
        "kind": "user_confirmation",
        "date": "2026-10-11",
        "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
      },
      "prototype_behavior": "仅模拟认证请求与结果；成功进入B首页，未选书显示首页引导；错误留当前页，无真实token。",
      "routing_branches": [
        {
          "condition": "真实认证成功，无论新老账号及有无课本",
          "destination": "B"
        }
      ]
    },
    {
      "id": "A-1-I-03",
      "trigger": "点击本机号码一键登录",
      "condition": "协议已选，真实认证成功且为老账号",
      "effect": "真实认证成功后建立会话，统一进入B首页；无课本在首页引导选择。",
      "destination": "B",
      "payload": [
        "认证结果概念"
      ],
      "rule_status": "confirmed",
      "source": {
        "kind": "user_confirmation",
        "date": "2026-10-11",
        "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
      },
      "prototype_behavior": "仅模拟认证请求与结果；成功进入B首页，未选书显示首页引导；错误留当前页，无真实token。",
      "routing_branches": [
        {
          "condition": "真实认证成功，无论新老账号及有无课本",
          "destination": "B"
        }
      ]
    },
    {
      "id": "A-1-I-04",
      "trigger": "点击一键登录",
      "condition": "请求中或认证失败",
      "effect": "请求中阻止重复提交，失败留本页并显示可恢复反馈",
      "destination": "A-1",
      "payload": [],
      "rule_status": "proposed",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "源未定义请求中和失败细节。"
      },
      "prototype_behavior": "宿主切换失败场景显示示例错误并恢复按钮，不伪造服务错误码。"
    },
    {
      "id": "A-1-I-05",
      "trigger": "点击用其他手机号登录",
      "condition": "源未声明额外条件",
      "effect": "进入短信验证码登录",
      "destination": "A-2",
      "payload": [],
      "rule_status": "confirmed",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原UE认证与课本设置参考；原登录先选书/课本分流规则已被本次用户修改覆盖。当前登录成功和已登录启动统一B，课本由首页引导选择。",
        "superseded_routing_source": {
          "kind": "user_confirmation",
          "date": "2026-10-11",
          "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
        }
      },
      "prototype_behavior": "协议未选或模拟失败后均可主动切换。"
    },
    {
      "id": "A-1-I-06",
      "trigger": "点击协议链接",
      "condition": "正文待提供",
      "effect": "阅读对应正文，阅读返回保留策略未定",
      "destination": "user-agreement / privacy-policy",
      "payload": [
        "协议类型"
      ],
      "rule_status": "pending",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "源展示协议名称，正文与返回行为未定义。"
      },
      "prototype_behavior": "进入明确协议服务边界说明，可返回 A-1，不显示虚构法律条款。"
    },
    {
      "id": "A-1-I-07",
      "trigger": "取号失败/双卡/无 SIM",
      "condition": "自动降级规则待确认",
      "effect": "候选策略为转 A-2，当前不可视为已确认",
      "destination": "A-2（待确认）",
      "payload": [],
      "rule_status": "pending",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原待确认：取号失败 / 双卡 / 无 SIM 时直接落到 A-2。"
      },
      "prototype_behavior": "仅说明候选降级，不把失败转换成成功。"
    }
  ],
  "back_behavior": {
    "destination": "pending",
    "rule_status": "pending",
    "preserve": "源未定义系统返回与取消认证。建议往返 A-2 或协议边界保留本次勾选；生产规则需确认。",
    "preserve_rule_status": "proposed",
    "source": {
      "files": [
        "英语默写代码/app说明示例/login-source-specs.json#/A-1",
        "英语默写代码/xzx-pages/pages/A-1.html"
      ],
      "detail": "additional_unspecified：返回键与取消认证。"
    },
    "prototype_behavior": "往返 A-2/协议边界在当前预览会话保留勾选；不恢复 E-4 已退出的真实登录态。"
  },
  "states": [
    {
      "id": "agreement-unchecked",
      "description": "默认未勾选，一键登录禁用。",
      "rule_status": "confirmed",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原UE认证与课本设置参考；原登录先选书/课本分流规则已被本次用户修改覆盖。当前登录成功和已登录启动统一B，课本由首页引导选择。",
        "superseded_routing_source": {
          "kind": "user_confirmation",
          "date": "2026-10-11",
          "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
        }
      }
    },
    {
      "id": "ready",
      "description": "协议已选，可触发一键登录。",
      "rule_status": "confirmed",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原UE认证与课本设置参考；原登录先选书/课本分流规则已被本次用户修改覆盖。当前登录成功和已登录启动统一B，课本由首页引导选择。",
        "superseded_routing_source": {
          "kind": "user_confirmation",
          "date": "2026-10-11",
          "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
        }
      }
    },
    {
      "id": "authenticating",
      "description": "请求中避免重复提交。",
      "rule_status": "proposed",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "本次状态设计。"
      }
    },
    {
      "id": "authentication-error",
      "description": "失败反馈并允许重试/切换号码。",
      "rule_status": "proposed",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "失败细节原未定义。"
      }
    },
    {
      "id": "number-unavailable",
      "description": "自动降级策略未确认。",
      "rule_status": "pending",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原待确认。"
      }
    },
    {
      "id": "success-new",
      "description": "真实认证成功统一进入B；账号无课本时在首页引导。",
      "rule_status": "confirmed",
      "source": {
        "kind": "user_confirmation",
        "date": "2026-10-11",
        "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
      }
    },
    {
      "id": "success-existing",
      "description": "真实认证成功统一进入B；账号无课本时在首页引导。",
      "rule_status": "confirmed",
      "source": {
        "kind": "user_confirmation",
        "date": "2026-10-11",
        "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
      }
    }
  ],
  "acceptance_criteria": [
    {
      "id": "A-1-AC-01",
      "given": "协议未选",
      "when": "点击/键盘激活一键登录",
      "then": "不执行认证或演示成功跳转。",
      "rule_status": "confirmed",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原UE认证与课本设置参考；原登录先选书/课本分流规则已被本次用户修改覆盖。当前登录成功和已登录启动统一B，课本由首页引导选择。",
        "superseded_routing_source": {
          "kind": "user_confirmation",
          "date": "2026-10-11",
          "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
        }
      },
      "verification_scope": "product"
    },
    {
      "id": "A-1-AC-02",
      "given": "协议已选，真实成功新账号",
      "when": "登录完成",
      "then": "认证成功后进入B首页；没有教材则在首页出现可关闭引导卡。",
      "rule_status": "confirmed",
      "source": {
        "kind": "user_confirmation",
        "date": "2026-10-11",
        "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
      },
      "verification_scope": "product"
    },
    {
      "id": "A-1-AC-03",
      "given": "协议已选，真实成功老账号",
      "when": "登录完成",
      "then": "认证成功后进入B首页；没有教材则在首页出现可关闭引导卡。",
      "rule_status": "confirmed",
      "source": {
        "kind": "user_confirmation",
        "date": "2026-10-11",
        "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
      },
      "verification_scope": "product"
    },
    {
      "id": "A-1-AC-04",
      "given": "当前在本页",
      "when": "点击用其他手机号登录",
      "then": "进入 A-2。",
      "rule_status": "confirmed",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原UE认证与课本设置参考；原登录先选书/课本分流规则已被本次用户修改覆盖。当前登录成功和已登录启动统一B，课本由首页引导选择。",
        "superseded_routing_source": {
          "kind": "user_confirmation",
          "date": "2026-10-11",
          "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
        }
      },
      "verification_scope": "product"
    },
    {
      "id": "A-1-AC-05",
      "given": "预览失败场景",
      "when": "模拟登录",
      "then": "留本页、恢复按钮并可切换号码，无真实认证宣称。",
      "rule_status": "proposed",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "本次补齐失败状态。"
      },
      "verification_scope": "prototype"
    },
    {
      "id": "A-1-AC-09",
      "given": "本机号取号就绪",
      "when": "查看登录画面",
      "then": "完整显示185 0064 3030演示号，无星号；真实产品使用真实完整号码。",
      "rule_status": "confirmed",
      "source": {
        "kind": "user_confirmation",
        "date": "2026-10-11",
        "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
      },
      "verification_scope": "product"
    },
    {
      "id": "A-1-AC-10",
      "given": "390宽产品画面",
      "when": "查看协议和替代登录入口",
      "then": "协议文案整行不折行；其他手机号为无边框次级文字入口，可正常进入A-2。",
      "rule_status": "confirmed",
      "source": {
        "kind": "user_confirmation",
        "date": "2026-10-12",
        "detail": "用其他手机号登录太明显，改为次级文字入口，覆盖此前描边大按钮的要求。"
      },
      "verification_scope": "product"
    }
  ],
  "pending_from_source": [
    {
      "id": "A-1-P-01",
      "question": "选哪家号码认证服务，费用/到达率/平台覆盖如何？",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原待确认。"
      },
      "rule_status": "pending"
    },
    {
      "id": "A-1-P-02",
      "question": "取号失败、双卡、无 SIM 是否一律自动落 A-2？",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原待确认。"
      },
      "rule_status": "pending"
    },
    {
      "id": "A-1-P-03",
      "question": "iOS 是否补 Apple 登录，账号合并规则如何？",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原待确认：iOS 上架多半要补 Apple 登录。"
      },
      "rule_status": "pending"
    },
    {
      "id": "A-1-P-04",
      "question": "是否增加运营商认证服务条款，勾选范围如何定义？",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原协议行只有两条，源已列待确认。"
      },
      "rule_status": "pending"
    }
  ],
  "additional_unspecified": [
    {
      "id": "A-1-U-01",
      "question": "认证超时/取消/失败反馈及重试条件是什么？",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原 additional_unspecified。"
      },
      "rule_status": "pending",
      "recommendation": {
        "rule_status": "proposed",
        "text": "请求中阻止重复提交，失败后保留换号入口。"
      }
    },
    {
      "id": "A-1-U-02",
      "question": "系统返回/取消认证，尤其从 E-4 进入时如何处理？",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "原 additional_unspecified。"
      },
      "rule_status": "pending"
    },
    {
      "id": "A-1-U-03",
      "question": "协议存证/版本、阅读后勾选是否保留？",
      "source": {
        "files": [
          "英语默写代码/app说明示例/login-source-specs.json#/A-1",
          "英语默写代码/xzx-pages/pages/A-1.html"
        ],
        "detail": "源未给出。"
      },
      "rule_status": "pending"
    }
  ],
  "references": {
    "interface": "A-1.interface.md",
    "prototype": "A-1.prototype.html",
    "design": "UI-DESIGN.md"
  },
  "sources": [
    "英语默写代码/app说明示例/login-source-specs.json#/A-1",
    "英语默写代码/xzx-pages/pages/A-1.html"
  ],
  "source_of_truth": {
    "visual": "A-1.prototype.html 屏幕内产品 UI",
    "behavior": "原 UE 明确要求及当前用户已确认规则；proposed 与 pending 不构成已确认业务契约",
    "viewer_chrome": "手机外壳、项目导航、演示选择器、说明与页面编号属于预览宿主"
  },
  "limitations": {
    "scope": "本轮认证与四个首页Tab；验证码的五个额外画面为A-2同页状态预览。",
    "prototype": [
      "无真实认证、取号、短信、网络请求、远程档案存储。",
      "演示手机号、验证码、封面、版次、成功失败不是认证结果或正式教研目录。",
      "本地跨页保留仅展示返回体验，不定义生产持久化。",
      "完整模拟器、状态栏、手势条保留，演示控件属于宿主。"
    ],
    "implementation": [
      "真实服务字段、鉴权、错误码、重试、持久化契约未提供。",
      "data_model 的具体字段名/类型为建议，不作为已确认 API 契约。"
    ]
  },
  "prototype_limitations": [
    "无真实认证、取号、短信、网络请求、远程档案存储。",
    "演示手机号、验证码、封面、版次、成功失败不是认证结果或正式教研目录。",
    "本地跨页保留仅展示返回体验，不定义生产持久化。",
    "完整模拟器、状态栏、手势条保留，演示控件属于宿主。"
  ],
  "implementation_constraints": [
    "真实服务字段、鉴权、错误码、重试、持久化契约未提供。",
    "data_model 的具体字段名/类型为建议，不作为已确认 API 契约。"
  ],
  "confirmations": [
    {
      "kind": "user_confirmation",
      "date": "2026-10-11",
      "detail": "当前修改：产品名英语默写AI版，沿用“按课本出默写单，打印就能用”；本机号码完整显示、协议不折行、其他手机号入口加强；短信号码显示3-4-4空格并提供多个状态画面；登录成功统一进入B首页，选课本改为进入首页后通过可关闭引导卡发起。发码前同意协议规则继续生效。"
    }
  ],
  "user_confirmed_rules": [
    {
      "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回复"
    }
  ],
  "module_base": "认证及登录",
  "tabs": [],
  "prototype_states": [
    {
      "id": "initial",
      "label": "登录默认",
      "scope": "prototype_only"
    },
    {
      "id": "new_account",
      "label": "新账号",
      "scope": "prototype_only"
    },
    {
      "id": "existing_account",
      "label": "老账号 · 已有课本",
      "scope": "prototype_only"
    },
    {
      "id": "existing_no_book",
      "label": "老账号 · 无课本未引导",
      "scope": "prototype_only"
    },
    {
      "id": "existing_skipped",
      "label": "老账号 · 已跳过课本",
      "scope": "prototype_only"
    },
    {
      "id": "loading",
      "label": "认证中",
      "scope": "prototype_only"
    },
    {
      "id": "error",
      "label": "认证失败",
      "scope": "prototype_only"
    },
    {
      "id": "unavailable",
      "label": "取号失败",
      "scope": "prototype_only"
    }
  ]
}
