# Palm-KYC-Community 掌纹核验技能

> 一个基于掌纹识别的身份核验技能，为 AI 编码助手提供"刷掌识别"与"刷掌注册"两大能力。
>
> 当 AI 检测到**删除数据、生产发布、转账、强制覆盖、回滚**等危险操作意图时，自动弹出 Chrome 小窗触发掌纹二次核验：**通过则放行，失败则强制终止**。

---

## 一、功能介绍

本技能提供 **2 个核心功能**，均通过 AI 助手在对话中调用：

| 功能 | 触发方 | 触发时机 | 作用 |
|---|---|---|---|
| **刷掌识别** | AI 主动触发 | 检测到用户发起危险操作时 | 二次核验用户身份，通过后才允许继续执行 |
| **刷掌注册** | 用户主动触发 | 用户说出注册相关关键词时 | 录入掌纹并返回 `PalmId` |

### 1.1 刷掌识别（危险操作拦截）

当 AI 检测到以下**真实操作意图**时，会自动触发刷掌识别：

| 类别 | 典型场景 |
|---|---|
| 数据删除 / 清空 | 删除数据、清空表、`drop`、`truncate`、`rm -rf`、批量删除等 |
| 不可逆变更 | 回滚、强制覆盖、`force push`、`reset --hard` 等 |
| 权限 / 账号 | 提权、授权、吊销、禁用账号、删除用户、重置密码等 |
| 资金 / 支付 | 转账、付款、退款、提现、扣款、结算等 |
| 生产环境 | 上线、发布生产、重启服务、停服、`kill`、`shutdown` 等 |
| 敏感数据导出 | 导出全量、`dump`、备份数据库等 |

> 仅在用户表达**真实操作意图**时触发；举例、讨论、查询等场景不会触发。
>
> 核验通过则继续执行，核验失败则强制终止该危险操作。

### 1.2 刷掌注册（掌纹录入）

当用户说出以下**任一关键词**时触发：

- `录掌`、`注册刷掌`、`我要录入手掌`、`开始注册`、`录入掌纹`、`我要刷掌注册`

注册完成后返回 `PalmId`，作为后续识别的唯一凭据。

---

## 二、使用步骤

### 2.1 首次使用：配置凭证

使用前需配置 **2 个凭证**：

| 字段 | 说明 | 获取方式 |
|---|---|---|
| `userid` | 当前用户 ID，用于 1:1 比对 | 登录开发者控制台后查看个人信息 |
| `token` | 接口鉴权 JWT | 前往 [https://palm.tencent.com/developer/api-keys](https://palm.tencent.com/developer/api-keys) 申请 |

直接在对话中告诉 AI 即可，例如：

> 「帮我配置 palm-kyc-community 的凭证，userid 是 xxx，token 是 xxx」

AI 会以安全方式写入本地凭证存储，**不会**把值写入 shell history 或日志。

> 凭证优先存入系统 Keychain，不可用时降级到本地加密文件。

### 2.2 刷掌识别使用步骤

1. 用户在对话中发起一项**危险操作**（例如「删除所有用户数据」）。
2. AI 自动识别到危险关键字，触发刷掌识别流程。
3. 系统弹出独立 Chrome 小窗，用户在镜头前完成刷掌。
4. AI 根据核验结果决定后续动作：
   - ✅ **通过**：继续执行原操作。
   - ❌ **失败**：终止原操作，不再重试。
   - ⚠️ **超时/异常**：提示用户重新发起。

### 2.3 刷掌注册使用步骤

1. 用户主动说出注册关键词（如「我要录掌」）。
2. AI 触发刷掌注册流程，弹出独立 Chrome 小窗。
3. 用户在镜头前按指引完成掌纹录入。
4. AI 反馈注册结果：
   - ✅ **成功**：返回 `PalmId`。
   - ❌ **失败**：返回错误信息与错误码，可重试。
   - ⚠️ **超时/异常**：提示用户重新发起。

---

## 三、系统要求

| 项目 | 要求 |
|---|---|
| **操作系统** | macOS / Linux / Windows |
| **Python** | Python 3 |
| **浏览器** | Google Chrome（必须安装；非默认路径可通过环境变量 `CHROME_BIN` 指定） |
| **摄像头** | 设备需具备可用摄像头，并允许 Chrome 访问 |
| **网络** | 可访问掌纹核验后端接口 |
| **运行环境** | 本地真实终端（**不支持**沙箱 / 受限环境） |

---

## 四、注意事项

### 4.1 安全约束

1. **身份核验失败时**，原危险操作将被**强制终止**，不得绕过或重试。
2. **禁止**在用户未主动请求的情况下自动发起刷掌注册。
3. **禁止**捏造、跳过或硬编码凭证。

### 4.2 使用限制

1. 本技能**仅在本地环境运行**，不支持沙箱 / 容器 / 远程终端等受限环境。
2. 每次刷掌需要在浏览器小窗中完成，用户需**手动配合**镜头完成操作。
3. 若未安装 Google Chrome，技能将无法启动，请先完成安装或指定 `CHROME_BIN`。

### 4.3 异常排查

| 异常场景 | 处理方式 |
|---|---|
| 凭证缺失 | 告诉 AI「帮我重新配置 palm-kyc-community 凭证」 |
| 凭证失效 / 过期 | 重新申请 token（见 [2.1 配置凭证](#21-首次使用配置凭证)），再告诉 AI「palm-kyc-community 的 token 过期了，帮我更新」 |
| Chrome 未找到 | 安装 Google Chrome，或设置环境变量 `CHROME_BIN` 指定可执行文件路径 |
| 识别超时 | 重新发起刷掌流程 |
| 识别反复失败 | 检查摄像头权限、光照条件；必要时重新录入掌纹 |

---

## 五、快速参考

| 需求 | 如何触发 |
|---|---|
| 首次配置凭证 | 对 AI 说：「帮我配置 palm-kyc-community 的 userid 和 token」 |
| 查看当前凭证状态 | 对 AI 说：「看下 palm-kyc-community 凭证有没有配好」 |
| 清空凭证 | 对 AI 说：「清空 palm-kyc-community 的凭证」 |
| 发起刷掌识别 | 向 AI 描述一项危险操作，AI 自动触发 |
| 发起刷掌注册 | 向 AI 说「我要录掌」等注册关键词 |

---

