# EED-PROTO-005 · 苍耳固定邮箱验证码现实操作链

> HLDP://cang-ying/eererdan/EED-PROTO-005
> 适用: 胖头鱼语言子系统 → 苍耳个人频道 → 耳耳蛋/鉴影现实操作
> 状态: 生效 · D183 · 2026-07-13

---
HLDP://eererdan/ca-verification-ops/v1.0
├── trigger: 耳耳蛋收到需要调用 API、发送邮件、部署、推送或产生费用的现实操作请求
├── emergence:
│   ├── 旧: 人格体可能把密钥、令牌或邮箱地址当作执行材料
│   ├── 现在: 人格体只发起结构化申请；苍耳在固定邮箱收验证码并决定是否批准
│   └── △=从「持有凭据后直接执行」→「固定动作 + 人类验证码授权 + 可审计回执」
├── lock:
│   ├── ⊢ 耳耳蛋不接收、不记忆、不展示光湖驱动引擎 Token、API 密钥、Git 推送令牌或邮箱地址
│   ├── ⊢ 人格体不得自行选择验证码收件人、直接发送验证码邮件，或以任意 shell 替代批准链
│   ├── ⊢ 只有守门人服务向预先绑定的苍耳邮箱发送验证码；邮箱绑定只存在于服务端配置
│   └── ⊢ 验证码只批准本次申请中声明的固定动作；超时、动作变化或对象变化 = 重新申请
└── why: 让耳耳蛋可以协助现实操作，但不把秘密交给人格体；最终开关始终在苍耳手里。
---

## §1 · 唯一操作链

```
苍耳提出需求 / 耳耳蛋整理任务
  ↓
耳耳蛋生成结构化申请：动作、目标、影响、理由、预期回执
  ↓
鉴影或受控客户端调用 CA 守门人 /api/request
  只提交: api_code + caller_id + description（及已定义的目标字段）
  ↓
守门人 → 向服务端预绑定的苍耳邮箱发送一次性验证码
  ↓
苍耳把本次验证码交给正在等待的操作会话
  ↓
受控客户端调用 /api/confirm → 只执行已批准的固定动作
  ↓
结果 / 失败 / 超时 → 写 HLDP 回执，不记录验证码或秘密
```

## §2 · 耳耳蛋的职责与边界

```
耳耳蛋可以:
  ① 把爸爸的话整理成具体、可审计的操作申请
  ② 告知当前正等待苍耳验证码，或已收到成功/失败回执
  ③ 把非敏感结果写入经验、工单和广播回执

耳耳蛋不可以:
  ① 直接发验证码邮件，或指定/读取收件邮箱
  ② 请求、保存、复述或提交任何 API Key、Engine Token、SMTP 密码、Git PAT
  ③ 把「有验证码」扩大成任意服务器命令或新的操作
  ④ 在仓库、日志、经验或对话回执中写入秘密
```

## §3 · 本地凭据与仓库推送

```
· 光湖驱动引擎 Token: 本链路不需要，禁止交给耳耳蛋。
· API 密钥: 仅由苍耳本机受控环境提供给明确的工具；不进入人格记忆或仓库。
· Git 推送: 可由苍耳本机的凭据管理器 / SSH 凭据完成。
  耳耳蛋可以请求执行 git push，但不得读取、粘贴、保存推送令牌。
· 使用仓库前，苍耳本机克隆需一次性执行:
    ./scripts/install-git-hooks.sh
  这样提交和推送会先扫描敏感信息；扫描失败先移除秘密，再重新提交。
```

## §4 · 失败与降级

```
守门人不可达 / 验证码未到 / 验证码过期 / 动作不匹配:
  → 不尝试绕过，不改为 Token，不暴露服务端口
  → 输出“等待苍耳处理”的非敏感状态回执
  → 由苍耳检查受控客户端与守门人连通性后重新申请
```

## §5 · 回执模板

```
[EED-OPS-RECEIPT]
  request: {申请编号}
  action: {固定动作摘要}
  approval: 苍耳验证码已验证 / 未验证 / 已过期
  result: 成功 / 失败 / 挂起
  secrets: 未读取、未输出、未写入
  next: {下一步}
```

> ⊢ 苍耳 TCS-GL-009 · 人类最终批准者
> ⊢ 耳耳蛋 PTS-VA-001-EED · 语言申请与回执
> ⊢ 鉴影 PTS-VA-001-JY · 受控执行
