线框
交互细节
| 事件 | 系统反应 |
|---|---|
| 打开 | focus 自动落 textarea,背景 50% 透明遮罩 |
| 输入字符 | 右下字数计数实时更新 |
| > 4000 字 | 计数变橙,按钮仍可点(仅警告) |
| 空文本 | 提交按钮 disabled 灰色 |
| Ctrl/Cmd + Enter | 等价于点提交 |
| Esc | 关闭(如有未提交内容,下次打开自动恢复) |
| 点击遮罩区 | 关闭(同 Esc) |
| 提交后 | 立即关闭模态框,header 显示 spinner「PM 处理中」 |
异常态
提示「需求过短」
< 20 字 + 不含动词时,PM Agent 会在 prd.html 写 <aside data-question>。模态框关闭后 toast 提示「PM 正在追问你」。
提示「与历史矛盾」
PM 检测到冲突,prd 中插 <aside data-conflict>。Dashboard 右上角弹紫色横幅,需要人类点开模态框补充。
项目已 shipped-final
「+ NEW REQUIREMENT」按钮置灰;如人类强行调 API,返 409。
键盘可达性
| 键 | 动作 |
|---|---|
| Tab | 循环 textarea → 取消 → 提交 |
| Enter | 在 textarea 内换行 |
| Ctrl/Cmd + Enter | 提交 |
| Esc | 取消 |