# meeting：E10 会议管理（标准版）

## 模块来源

由 `weaver-e10-skill-maker` 按 standalone 会议 Skill（weaver-e10-meeting v2.4.2）的接口契约生成，v1 覆盖**标准版（Java REST）**能力；EB 版（eBuilder formdata）链路列入禁用边界，待后续版本。

## 命令结构

```text
weaver-work-cli meeting schema                       # 输出 operation manifest
weaver-work-cli meeting run <operation> --input-json '<json>'
weaver-work-cli meeting today                        # 今天会议（meeting.list 薄包装）
```

## operation 表

| operation | 风险 | 说明 |
| --- | --- | --- |
| `meeting.env.detect` | read | EB/标准模式探测（EB 冒烟优先，失败回退标准） |
| `meeting.calendar.base` | read | 建会前置判断（onlyFlowCreate/工作流配置） |
| `meeting.list` | read | 会议列表（空 body 拉全量 + `filterDate` 客户端过滤） |
| `meeting.detail.field` | read | 会议详情表单结构与 options |
| `meeting.room.list` | read | 会议室列表（带时间范围返回 `disabled` 占用判断） |
| `meeting.room.usage` | read | 会议室占用视图（bywhat 2=月 3=周 4=日） |
| `meeting.type.list` | read | 会议类型列表（可选 count） |
| `meeting.conflict.room` | read | 会议室冲突（cansub 语义） |
| `meeting.conflict.member` | read | 参会人员冲突 |
| `meeting.conflict.roomAttribute` | read | 会议室属性冲突 |
| `meeting.create.prepare` | read-before-write | 归一化 + 建会路径检查 + 强制冲突检测 + continuation |
| `meeting.create.apply` | high-risk-write | `operateMeetingByType SUBMIT`（需 confirm + continuation） |
| `meeting.receipt.list` | read | 回执列表（isMobile 托管默认 false） |
| `meeting.receipt.update.prepare` | read-before-write | 回查回执记录 id + 预览 |
| `meeting.receipt.update.apply` | high-risk-write | 回执更新（需 confirm + continuation） |
| `meeting.sign.list` | read | 签到记录 + 已签/未签统计 |

## 关键契约（源资料实测坑位）

- 新建会议 `operateType=SUBMIT` + `id:""` → 正常状态；`ADD` 只生成草稿，勿用。
- 冲突处理看接口返回 `cansub`：false=禁止提交（直接拒绝，怎么都不允许）；true=仅提醒（如实告知并建议换时间/地点，**用户坚持时仍可继续提交**）；检测失败视为冲突（保守拒绝）。
- 周期会议 `finishAt` 必填（仅 1=次数 / 2=日期，禁止 0）；`repeatDesc` 由 CLI 自动拼接。
- 回执更新必须传回执记录 `id`（prepare 自动按 `memberId` 回查）；`attendStatus` 0/1/2。
- 超 2^53 的 id 一律字符串传递。

## 已知限制（withheld）

- EB 版业务链路（create_meeting/三件套/议题/纪要/报表）未实现。
- `onlyFlowCreate=1`、周期会议工作流需要 workflow 集成，`create.prepare` 会主动拒绝。
- 签到二维码（getQrCode 入参未确认）、签到写、会议室/类型管理、会议变更/取消/结束未实现。
