# 当前功能完成情况（历史反馈条目）

项目已通过报名初审。此页保留功能核对条目，最终验收请阅读 [验收材料](验收材料.md)。


针对“功能范围仍不够完整、非地理号码、号码匹配、实时格式化、上下文处理与端到端兼容性验证”的意见，逐项补充如下。

| 初审要求 | 实现与可核验证据 |
| --- | --- |
| 非地理 E.164 国际号码 | 九个网络 +800/+808/+870/+878/+881/+882/+883/+888/+979；独立调用码表；possible/valid/type/region；独立正反例测试 |
| 号码匹配 | is_number_match 的 exact/nsn/short-nsn/none；不同显式国家码不匹配；缺失与冲突分机分别处理；match_test.mbt |
| AsYouType | 逐键分组、国内长途前缀、初始 + 国际号码、clear/current_output；超长输入保留全部数字；六组独立参考输出逐键断言 |
| RFC 3966 上下文 | 解析与求解分离；不盲拼任意上下文；德国前缀与 NANP 区号规则；域名/PBX 通过显式 authority 回调；context_plan_test.mbt |
| 端到端验证 | 固定 libphonenumber-js 1.11.20/max 元数据与 SHA-256；2,299 条输入，parse→E.164→possible/valid→region/type，并比较八组完整格式化场景 |
| 可复现差异 | 15 条案例涉及 30 个字段差异，全部保留、解释并断言，不删不一致样例；docs/compatibility.md |

数字来源以提交的 corpus 与测试为准。原先只有口头统计的兼容性报告已经替换为数据集、生成脚本、测试和 CI 检查，其他人无需联网即可验证已记录期望；也可用固定 npm 包重新生成独立期望。

边界如实说明：广覆盖语料使用 libphonenumber-js；另有直接执行 Google 原版 Java 库的独立记录；元数据年代不同、七位本地号范围和分隔符约定造成的已知差异详列报告。实时格式化不承诺完全覆盖参考项目的所有交互编辑行为。全国号码转换规则中的少数 capture/transform 场景仍列为限制。

632 个测试块，包含既有 346 项、修复回归及独立兼容性测试。复现命令和结果见 [reproducible-demo.md](reproducible-demo.md)。

补充直接参考验证：另行实际运行 Google 原版 Java libphonenumber 9.0.17，固定官方 JAR 的 SHA-256，记录 17 个完整号码流程（含全部九个非地理网络）、6 个号码比较和6 个逐键序列。号码流程、比较和完整输出一致；13 个中间按键的空格/括号布局差异保留原值并逐项记录。详见 docs/google-compatibility.md 和 scripts/ReferenceOracle.java。
