# 已验证卡片

> 经 NeuroSquad 团队审核的社区卡片列表——在哪里找到它、Verified 徽章代表什么又不代表什么、已验证更新如何工作，以及作者如何提交卡片审核。

Source: https://docs.neurosquad.ai/zh/card-sdk/verified-cards

任何人都可以在 GitHub 上发布[社区卡片](https://docs.neurosquad.ai/zh/card-sdk/community-cards)，安装之前没有人检查过它。
**已验证卡片**（verified）是例外：它们是 NeuroSquad 团队阅读并试用过的社区卡片，每次审核的都是一个确切的版本。
这些卡片收录在一个公开目录中，应用可以直接从目录安装。

这个目录就是公开仓库 [glmn-ai/neurosquad-cards](https://github.com/glmn-ai/neurosquad-cards) 中的
`verified.json` 文件。每个条目都记录了审核的内容：

- 卡片的名称和描述（英文、俄文和中文）、作者和许可证；
- 它所在的位置——GitHub 仓库 `owner/repo`，以及可选的仓库内文件夹；
- 审核的**版本**、审核的确切**提交**，以及该提交下卡片文件夹的**树哈希**（tree hash）；
- 卡片使用的权限和网络地址；
- 标签和分类——智能体、效率、开发工具、数据、集成、娱乐或其他；
- 审核人、审核日期，以及审核备注。

应用会在启动时、每 6 小时一次以及你点击 **Refresh** 时下载这个列表。离线时，它显示上一次下载的副本；
全新安装时，则显示应用自带的副本。

## 查找并安装已验证卡片

列表出现在两个地方：添加菜单（画布或侧边栏上的 **+**）中 **Custom card…** 选择器的 **Verified** 标签页，
以及 **Settings → Custom cards** 中的 **Verified cards** 部分。

搜索直接在你的电脑上进行，会匹配三种语言的名称、描述和标签。你也可以按分类筛选。
每一行显示卡片的图标、名称、描述、作者、分类和权限摘要，并带有一个按钮：**Install**、**Installed** 或 **Verified update**。

**1. 找到卡片**

打开 **Verified** 标签页或 **Verified cards** 部分，搜索或选择一个分类。

**2. 点击 Install**

NeuroSquad 会下载**正好是审核过的那个提交**——而不是仓库里最新的代码——并把文件的树哈希与审核时的哈希比对。
如果不一致，安装会被拒绝：“文件与审核时的内容不同”。

**3. 阅读权限对话框并确认**

你会看到与其他卡片相同的[安装对话框](https://docs.neurosquad.ai/zh/card-sdk/community-cards#reading-the-install-dialog)。
已验证并不会跳过你的同意：卡片能否获得它要求的权限，仍然由你决定。

你仍然可以像以前一样，通过 GitHub 地址安装任何卡片。目录只是额外提供了一份有人看过的卡片列表。

## Verified 徽章

已验证卡片带有 **Verified** 徽章——一个带对勾的盾牌：出现在目录行、安装对话框、**Settings → Custom cards**
中已安装的卡片上，以及卡片的 **About** 面板里。

它和 **Official** 徽章不同。Official 表示卡片由 NeuroSquad 团队从其 GitHub 上的 `glmn-ai` 组织发布；
Verified 表示团队审核过这个版本。一张卡片可以同时拥有两个徽章。

只有以下三项都与列表中的当前条目一致时，才会显示徽章：

- 卡片的来源——同一个仓库和文件夹；
- 安装时所用的提交；
- 文件的树哈希，与审核时的一致。

因此，从本地文件夹链接的卡片、从其他提交安装的卡片（例如某个分支的最新提交），或文件有差异的卡片，都不会显示徽章——
即使它的另一个版本已经通过验证。

> **Verified** 的含义是：NeuroSquad 团队在某日审核过它的 X 版本。它不保证卡片没有缺陷或永远安全，
> 也不代表其他任何版本。请像对待其他卡片一样认真阅读权限对话框。

## 已验证更新

当列表把某张卡片指向一个更新的已审核版本时，**Settings → Custom cards** 会为它显示 **Verified update available**。
点击后，会通过常规的[更新对话框](https://docs.neurosquad.ai/zh/card-sdk/community-cards#updates)安装正好是那个已审核的提交，对话框会显示卡片权限有哪些变化。
任何更新都不会自动进行。

如果某张卡片从列表中移除，它的徽章会消失，并显示一条中性的提示，说明它已不在已验证列表中。
卡片仍然保持安装并继续工作；是否保留由你决定。

## 在手机上

通过[远程访问](https://docs.neurosquad.ai/zh/remote)，你可以在手机上浏览已验证列表，但不能从中安装：只能在电脑上安装。

## 面向卡片作者：让你的卡片通过验证

验证方式是向 [glmn-ai/neurosquad-cards](https://github.com/glmn-ai/neurosquad-cards) 提交一个 pull request，
在 `verified.json` 中添加你的卡片条目。确切的规则和条目格式见该仓库的
[CONTRIBUTING.md](https://github.com/glmn-ai/neurosquad-cards/blob/HEAD/CONTRIBUTING.md)——提交 pull request 之前请先阅读。

**4. 发布卡片**

卡片必须位于**公开**的 GitHub 仓库中，并在**默认分支**上。参见[发布与更新](https://docs.neurosquad.ai/zh/card-sdk/publishing)。

**5. 获取提交和树哈希**

选定你希望审核的确切提交。要获取树哈希，在该提交下对卡片文件夹运行
[`neurosquad-card pack`](https://docs.neurosquad.ai/zh/card-sdk/cli#pack)——它会打印出应用在安装时记录的树哈希。

**6. 提交 pull request**

按 CONTRIBUTING.md 的说明，把你的条目加入 `verified.json`——名称和描述、仓库和文件夹、版本、提交、树哈希、
权限、网络地址、标签、分类、许可证。

**更新已验证卡片**需要再提交一个 pull request，更新版本、提交和树哈希。每个版本都会重新审核；
在新版本被接受之前，用户的徽章仍停留在已审核的版本上，这期间你推送的代码不会作为已验证更新提供给用户。

### 审核时检查什么

- 该提交下的全部源代码。不允许混淆代码，也不允许只有压缩代码而没有源代码。
- 权限和网络地址是卡片所需的最小集合，并且与条目一致。
- 工具和端口的描述真实可信。
- 清单文件与条目一致——名称和版本。
- 树哈希可以复现。
- 卡片带有许可证。
- 它能在当前版本的应用上安装并正常工作。
- 它不冒充 NeuroSquad 或任何其他品牌。
- 除已声明的内容外，它不做任何追踪。

[安全检查清单](https://docs.neurosquad.ai/zh/card-sdk/security)涵盖了其中大部分内容——提交之前请逐项检查。
