# 线索研判与核查 · AI014

独立的静态公开信息核验工具，部署在 `/detective/`。复用 ai014.cn 已发布的研判台，独立部署到 ai014.com；原趋势观察及数据更新流程保持不变。站点导航新增“线索研判”入口。

## 证据优先的研判台

首页默认进入“线索研判”，搜索降为辅助工具。真实功能包括：

1. 明确要核实的问题。每条记录分别保存原话/观察、出处名称及原始链接、事件日期、来源发布日期、本条录入时间，以及独立的个人解释。
2. 区分直接观察、他人陈述和个人推测。看到一张截图，只证明记录者看到了这张截图，不证明截图内容属实。“已交叉核验”是用户标注，不是网站认证。
3. 按已知事件日期排时间线，未知日期单列；不把发布日期或录入时间当作事件发生时间，不自动推断时间。
4. 同时保留竞争假设，将具体记录关联为支持或反对。没有投票式结论、真实性分数、身份匹配或伪概率。
5. 根据记录缺口生成具体核验事项：缺出处、缺日期、争议、待核验、仅推测支持、没有反证、同一网址被多次引用等。同页判定忽略片段和 `utm_` 参数，但不同网址也可能来自同一出处，工具不把域名数量视为独立证据数量。
6. 修改记录保留编号及其假设关联；移除记录同时清理关联。编号不复用。修改不是不可篡改日志，不符合司法取证或证据保全证明。
7. 可主动保存到这台设备、读取保存、导出完整 JSON 备份或人可读 Markdown 报告；JSON 导入先验证，替换当前资料前确认，失败不会清空原记录。最多100条记录、20个假设、1MiB备份。

“虚构演示”使用 example.com 及虚构书店公告，演示旧转发与较新原公告的时间差、竞争解释与尚无证据的推测。不得当作真实商家信息。

不抓取网页、不自动保存原始图片/文件、不读取聊天、不查非公开个人资料。原件需要用户自行保留。支持/反证关系由用户判断，工具只整理关系与提醒缺口，不替代对原始材料的判断。

## 大陆手机版适配（2026-11）

研判台之外保留中文分享文案、二维码、主体核验、照片文件和进阶搜索，不要求用户先学命令或安装 Python。页签在小屏分行；输入字号 16px、常用按钮最小 44px；没有外部字体、CDN 或远程解析服务。

- 分享文案：本地提取最多 20 个 HTTP(S) / www 网址，显示真实主机名，提示常见短链、跳转参数、伪装域名、HTTP、IP、国际化编码等有限特征。相关凭证参数值和片段仅在展示时遮盖。不是安全网址库；不会展开短链、访问目标或认定身份。
- 二维码：实际自托管 jsQR 1.4.0。选择 JPG / PNG / WebP 图片（最多 10 MiB、40 百万原始像素），本地缩至最长边 1600 像素后读出一个普通二维码。不会打开内容，不申请相机权限。小程序码、条形码、艺术码及模糊图片不保证支持。页面自带无个人信息的示例二维码，供实际浏览器解码验收。
- 主体核验：归一全角、空格与大小写后按 GB 32100-2015 字符集和校验位规则检查 18 位统一社会信用代码。算法匹配不证明企业存在、资质、信用或登记状态。官方登记与ICP备案需由用户前往对应官网人工查询，可能遇到验证码、登录或访问失败。
- 中文公开线索：构造百度、必应及国内平台的搜索引擎收录页入口，用户点击后才会传送关键词。不是后台检索、平台完整站内搜索或账号存在性检测。
- 原 Sherlock 和逐项 URL 工具保留在进阶区，文件指纹与 EXIF 保留在照片文件区。

适配没有迁移托管服务：仍使用现有 GitHub Pages / ai014.com。无法由前端保证大陆不同地区、运营商或微信内置浏览器的连通性、速度。没有宣称已在大陆实体手机或所有浏览器实测。

## 实际功能与边界

- 进阶账号查询：默认支持中文公开昵称（1–64 个 Unicode 字符，可含 emoji），为大陆常用平台准备候选搜索入口。入口不表示命中、存在或身份匹配；需用户点击后在平台手动核验。国际模式保留原有十个平台英文用户名主页拼接。两种模式可切换、去重、导出，卡片保留各自检索词和来源。
- Sherlock：仅国际用户名模式对严格 ASCII 用户名生成 `sherlock NAME --csv`。用户在自己的电脑安装、运行；本页不执行 Python。支持原始 CSV 与逐行 URL 的 TXT 本地导入、去重及 JSON 导出。CSV 支持 `Claimed` 状态，并兼容 `true` / `yes`，其余状态不导入。所有结果仍为待人工核验。中文昵称模式始终禁用 Sherlock 命令，防止混淆昵称搜索与账号标识。
- 文件：Web Crypto SHA-256；exifr 7.1.3 full 读取 JPEG / TIFF 相机、时间与可选 GPS 字段。GPS 默认隐藏；不打开地图。文件上限 25 MiB，报告上限 1 MiB / 1,000 行。
- 网址：使用浏览器标准 URL API 拆解协议、域名、路径、查询参数和片段，提示 HTTP、国际化域名、IP 及可能敏感的参数。不会访问目标，不提供恶意网址检测结论。
- CyberChef：只提供官方链接，不是内置模块。

## 隐私与安全

默认文件、输入和结果只在当前页面内存中。研判台仅在用户点击“保存到这台设备”后，将完整记录写入专用 localStorage 项 `ai014.detective.investigation.v1`，不加密、不云同步，共享设备慎用；只有点击“读取本机保存”才会恢复显示，删除按钮只删除此工具的保存副本。其他工具仍不持久化输入。页面无分析统计、广告、外部字体或远程解析服务。二维码图片使用本地 blob URL，结束后释放；jsQR 在第一次使用二维码工具时从本站按需加载。CSP 的 `connect-src 'none'` 禁止脚本发起连接请求。静态网站托管方仍会收到打开页面及其资源的普通访问请求。

只有点击外部链接、或用户自行在电脑运行 Sherlock，才会访问对应第三方网站。外链使用 `noopener noreferrer`。导入的标签、网址及元数据使用 `textContent` 渲染，不按 HTML 执行。报告下载由用户点击触发，不是上传。未主动保存的工作状态会在刷新后丢失，页面会尽可能提示未保存内容；浏览器不保证触发退出提示，尤其在手机强制关闭时。已保存的研判仍在该设备，下载文件由用户保管。

## 来源与许可证

- Sherlock：MIT，仅做命令与报告兼容，没有复制引擎或站点数据库。官方仓库：https://github.com/sherlock-project/sherlock 。CSV 契约核验来源：commit `c588d7c8b476df9f9c84912a05d1430fb8cdcdae`，`sherlock_project/sherlock.py` 与 `result.py`。当前源码 TXT 输出需显式 `--txt`，CSV 使用 `--csv`。
- exifr：MIT，版本 7.1.3 full UMD，自托管于 `vendor/exifr-7.1.3.js`。版权和完整许可保留于 `vendor/exifr-LICENSE.txt`。分发来源：https://cdn.jsdelivr.net/npm/exifr@7.1.3/dist/full.umd.js 。75,848 字节，SHA-256：`2bd05117781c12ddd965dee846de3b3f986b5ecb4c7f6a78f2d2ec1db7c65ae7`。源标签 `v7.1.3` 对应 commit `6cbf6e921688faf7723e1f2e0b9e672d1f0aa21c`。
- CyberChef：Apache-2.0，只链接官方 https://gchq.github.io/CyberChef/ ，未分发其代码。
- jsQR：Apache-2.0（不是 MIT），固定 1.4.0，官方 npm https://registry.npmjs.org/jsqr/-/jsqr-1.4.0.tgz ，gitHead `49a9633931fb8030ac2fc9cecc121d6e5a19f9a3`。自托管 `vendor/jsQR-1.4.0.js`，256885 字节，SHA-256 `bc40c8a15196236b2314db0856f72ca0b49980cd5413b8c852a7349f5fee0859`；完整许可证保留于 `vendor/jsQR-LICENSE.txt`。未修改发行代码，包中无 NOTICE。npm 压缩包已对照 registry 的 SHA-512 integrity 验证。
- 二维码示例：使用开发期 qrcode 1.5.4（MIT）生成无个人信息的 `https://example.com/ai014-demo?from=qr` 图像及测试矩阵；生成器没有内嵌网站，测试不会访问该网址。
- 统一社会信用代码标准官方入口：https://openstd.samr.gov.cn/bzgk/std/newGbInfo?hcno=24691C25985C1073D3A7C85629378AC0 。这里只检查字符与校验位，没有登记数据库，也不验证全部登记管理机关或行政区划代码。
- SHA-256 与 URL 拆解：浏览器内置 API。

## 本地运行与测试

从仓库根目录执行 `npm ci`、`npm run dev`，打开终端地址的 `/detective/`。Web Crypto 需要 HTTPS 或可信的 localhost 环境。

`npm test` 运行原站与新工具的 Node 测试。`node --test tests/detective*.test.mjs` 单独运行新工具测试。发布时应另外进行浏览器操作、控制台、窄屏溢出与真实文件解析检查。没有运行的检查不得标为通过。

## 发布与恢复

沿用现有 GitHub Pages 和 CNAME，不改 DNS、不建立新后台、不新增凭据或账户。发布提交建立在已核对的远端 main SHA 上，保留所有既有文件。恢复可以通过回退本次提交完成；不要 force push 或覆盖并行提交。

## 中文昵称入口版本

中文昵称支持 NFC 归一、空白整理与百分号编码；控制字符、显示方向控制及不完整 UTF-16 拒绝。常见手机号、证件、邮箱及显式凭证输入被拒绝，检查不能替代用户对输入隐私的判断。页面不会在输入或生成入口时请求任何平台。点击后才向对应平台/搜索引擎发送公开检索词。

普通关键词不是账号唯一标识。平台的登录、验证码、地区或访问限制不会被绕过；无搜索结果不代表账号不存在。微信入口仅限公开文章，不搜索个人微信账号。导出保留 `platform-search` 来源和搜索类型，并始终保持 `unverified`。

### 平台入口及核验范围（2026-11-12）

- 哔哩哔哩用户：`https://search.bilibili.com/zh-Hans/upuser?keyword={q}`。从官方综合搜索点击“用户”观察到此路由，合成公开关键词可见结果。
- 微博用户：`https://s.weibo.com/user?q={q}`。合成公开关键词可见用户候选，查看更多结果要求登录。
- 抖音综合：`https://www.douyin.com/search/{q}`。官方页面确认中文搜索框及用户分类，但本次未登录要求登录后显示内容。不臆造筛选参数。
- 小红书综合：`https://www.xiaohongshu.com/search_result?keyword={q}`。官方页面确认中文输入及用户分类，随后明确提示登录后查看搜索结果；没有登录或抓取结果。
- 公开微信文章（搜狗）：`https://weixin.sogou.com/weixin?type=2&query={q}&ie=utf8`。从当前“搜文章”表单得到，合成词可见结果。不是个人微信或公众号身份查询。
- 知乎、快手、百度贴吧：百度 `https://www.baidu.com/s?wd={q + ' site:平台域名'}` 收录页入口。分别限 `zhihu.com`、`kuaishou.com`、`tieba.baidu.com`。卡片明确不是完整站内搜索。知乎直搜遇安全验证未绕过，快手/贴吧直搜没有足够实证，不使用猜测参数。

所有 `{q}` 都使用 `encodeURIComponent`，不会因昵称中的 `&`、`#` 或 `/` 注入额外参数或页面片段。没有自动打开外站、绕过限制或创建登录。平台可能随时间改路由；当前页面是入口而非搜索代理服务。

## ai014.com 部署说明

页面模板位于 `src/pages/detective/index.astro`，自托管脚本、样式、示例及许可证位于 `public/detective/`。与主站样式隔离，不替换首页。两个域名的 localStorage 相互隔离：已有 ai014.cn 记录不会自动出现在 ai014.com，可在原页面导出 JSON，再在新页面主动导入。没有云同步或跨站读取。迁移基于 ai014.cn 提交 `de8d7251e01fb2c1908d3639dd68f3d65d2c541a`，并保留许可证。
