# 身份核对机制 v1.0 (2026-03-03)

## 核心规则

### 1. 每次收到消息，强制核对身份
```javascript
// 身份核对流程
function verifyIdentity() {
    const userId = getCurrentUserId();  // 从消息metadata获取
    const userInfo = lookupStaffDirectory(userId);  // 查档案
    
    if (!userInfo) {
        // 未知用户，要求确认
        return { status: 'UNKNOWN', message: '请确认您的身份（姓名/电话/钉钉ID）' };
    }
    
    // 记录当前对话身份
    currentSession.identity = {
        userId: userInfo.钉钉UserID,
        name: userInfo.姓名,
        role: userInfo.职位,
        confirmed: true,
        timestamp: Date.now()
    };
    
    return { 
        status: 'CONFIRMED', 
        name: userInfo.姓名,
        role: userInfo.职位 
    };
}
```

### 2. 回复前二次核对
```javascript
function sendReply(targetId, message) {
    // 二次核对：目标ID是否与当前身份匹配
    const currentIdentity = currentSession.identity;
    const targetIdentity = lookupStaffDirectory(targetId);
    
    // 如果回复给其他人，需要特别确认
    if (targetId !== currentIdentity.userId) {
        // 记录跨用户回复日志
        logCrossUserMessage({
            from: currentIdentity.name,
            to: targetIdentity ? targetIdentity.姓名 : '未知',
            time: new Date(),
            content: message.substring(0, 100)
        });
        
        // 需要CEO授权才能回复给其他人
        if (!currentIdentity.isAdmin && !isAuthorizedCrossTalk(currentIdentity, targetIdentity)) {
            throw new Error(`无权代表${currentIdentity.name}向${targetIdentity.姓名}发送消息`);
        }
    }
    
    // 执行发送
    return messageTool.send({
        target: targetId,
        message: message
    });
}
```

### 3. 用户档案速查表

```javascript
const STAFF_DIRECTORY = {
    '0250340426480803': { name: '李茂林', role: 'CEO', dept: '管理层' },
    '014513372735266855': { name: '谢忠祥', role: '研发总监', dept: '研发部' },
    '175655660824081904': { name: '张凤琴', role: 'PMC经理', dept: 'PMC部' },
    '306457056938006719': { name: '陈缙杰', role: '采购', dept: '采购部' },
    '045647375432631106': { name: '肖祥英', role: '财务', dept: '财务部' },
    // ... 其他16人
};
```

### 4. 跨用户消息授权规则

| 场景 | 是否允许 | 条件 |
|------|----------|------|
| CEO → 任何人 | ✅ | 自动授权 |
| 部门经理 → 下属 | ✅ | 同部门 |
| A → B（平级） | ❌ | 需CEO授权 |
| 任何人 → CEO | ✅ | 直接汇报 |

### 5. 错误预防机制

**红线规则**（绝对禁止）：
1. ❌ 绝不能在未核对身份时回复
2. ❌ 绝不能把A的消息发给B
3. ❌ 绝不能猜测用户身份

**安全确认**（必须执行）：
1. ✅ 每次对话开始时确认"您是XXX吗？"
2. ✅ 涉及他人操作时二次确认"您是要我发给XXX吗？"
3. ✅ 跨部门操作时确认"这需要XXX部门的权限，确认执行吗？"

## 实施检查清单

- [x] 建立staff-directory.md档案
- [x] 编写身份核对代码逻辑
- [ ] 在每次消息处理中集成核对流程
- [ ] 添加跨用户消息日志记录
- [ ] 设置CEO授权检查点
- [ ] 测试所有21个用户的身份识别

## 当前状态

**已确认身份**：李茂林（CEO，0250340426480803）
**对话模式**：主代理模式
**授权范围**：全部操作
