48 lines
945 B
Markdown
48 lines
945 B
Markdown
|
|
# T013 — Wizard script steps (speakers include lead)
|
|||
|
|
|
|||
|
|
> Status: `todo`
|
|||
|
|
> Milestone: `M5`
|
|||
|
|
> Est. change: `~180 lines`
|
|||
|
|
|
|||
|
|
## Goal
|
|||
|
|
|
|||
|
|
步驟 3 劇本:root 固定 lead;reply 每步帳號下拉 = **lead ∪ cast**(**含 lead**)。
|
|||
|
|
|
|||
|
|
## Depends on
|
|||
|
|
|
|||
|
|
- T012
|
|||
|
|
|
|||
|
|
## Inputs
|
|||
|
|
|
|||
|
|
- Spec §2 Speakers、§4.3 步驟 3、驗收 root→cast→lead
|
|||
|
|
|
|||
|
|
## Outputs
|
|||
|
|
|
|||
|
|
### 程式變更
|
|||
|
|
|
|||
|
|
| 路徑 | 動作 | 說明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| `apps/web/src/pages/studio/steps/ScriptStep.tsx` | add | 步驟列表 |
|
|||
|
|
| `apps/web/src/domain/speakers.ts` | add/edit | speakersOf(play)、validate |
|
|||
|
|
|
|||
|
|
### 行為變更
|
|||
|
|
|
|||
|
|
- 新增/刪除 reply 步(root 不可刪)
|
|||
|
|
- 每步文案 textarea
|
|||
|
|
- reply 可選 lead
|
|||
|
|
- 校驗:reply.account_id ∈ Speakers
|
|||
|
|
|
|||
|
|
## Out of scope
|
|||
|
|
|
|||
|
|
- 預覽與提交(T014)
|
|||
|
|
|
|||
|
|
## Acceptance
|
|||
|
|
|
|||
|
|
- [ ] 可建 root(A) reply(B) reply(A)
|
|||
|
|
- [ ] 不在 Speakers 的選項不出現
|
|||
|
|
- [ ] `npm run build` 通過
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd apps/web && npm run build
|
|||
|
|
```
|