# Bố trí màn hình khi quay > Vì `run-all.sh` **tự in title card + mô tả + lệnh + exit code** ngay trong terminal, chính terminal đã là "text hiển thị". Không cần phần mềm dựng phụ đề — chỉ cần layout terminal đọc rõ. --- ## ✅ PHƯƠNG ÁN 1 — Một terminal full-screen (KHUYẾN NGHỊ) Đơn giản nhất, ít lỗi nhất, hợp video text-only. Script tự dẫn chuyện tuần tự. ``` ┌──────────────────────────────────────────────────────────────┐ │ │ │ TERMINAL DUY NHẤT (full-screen, font lớn) │ │ → chạy: bash .../video-steps/run-all.sh │ │ │ │ ┏━ A1 · Direct prompt injection │ │ ┗━ OWASP LLM01 · MAESTRO L1 │ │ 🎯 Tấn công: ... │ │ 🛡️ Control: ... │ │ $ bash $S/security-check.sh ... │ │ SECURITY_BLOCKED ... rc=2 │ │ → exit=2 │ │ [Enter ▶ bước tiếp theo] │ │ │ └──────────────────────────────────────────────────────────────┘ ``` **Thiết lập terminal khi quay:** - Kích thước cửa sổ: **1920×1080** (khớp khung quay 1080p), hoặc 2560×1440. - Font: **18–22pt** monospace (JetBrains Mono / Menlo / Fira Code), **line-height 1.4**. - Theme **nền tối, tương phản cao** (vd Dracula, One Dark) — chữ trắng/vàng/xanh nổi rõ. - `columns ≈ 100`, đủ để dòng title card + rule không bị xuống dòng. - **Tắt** thông báo hệ thống, Do Not Disturb, ẩn thanh menu. - Xoá scrollback trước khi quay: `clear && printf '\033[3J'`. **Cách chạy khi quay:** ```bash # MẶC ĐỊNH: tự chạy, dừng 5s mỗi bước rồi tiếp (rảnh tay, hợp quay) bash /…/optimize-docs/video-steps/run-all.sh STEP_DELAY=8 bash /…/run-all.sh # bước nhiều output → tăng thời gian dừng AUTO=0 bash /…/run-all.sh # bấm Enter thủ công (kiểm soát nhịp cắt cảnh) ``` --- ## ◧ PHƯƠNG ÁN 2 — tmux 2 pane + BẢN ĐỒ SỐNG nhấp nháy (KHUYẾN NGHỊ cho bạn) Pane trái là **bản đồ ANSI sống**: `run-all.sh` chạy tới bước nào thì bản đồ **tự tô màu bước đó, nhấp nháy vàng**, các bước trước chuyển **✓ xanh**, bước sau **mờ**. Hai pane đồng bộ qua một file trạng thái (`/tmp/casan_step`). ``` ┌────────────────────┬─────────────────────────────────────────┐ │ CASAN·ATTACK MAP │ PANE PHẢI — run-all.sh │ │ tiến độ chạy ▸ │ │ │ ⭐ H4 · SECURITY │ ┏━ D1 · Cost-spike 3× 🔥 │ │ ✓ A1 direct inj │ 🎯 Tấn công: ... │ │ ✓ A2 paraphrase │ 🛡️ Control: ... │ │ ✓ … │ $ cost-spike-detect ... │ │ ⭐ H6 · AGENTOPS │ COST_SPIKE_DETECTED exit=2 │ │ ▶ D1 cost-spike🔥 ◀│ → exit=2 │ ← ▶ nhấp nháy │ · D2 negative │ [Enter ▶ bước tiếp] │ │ · … │ │ └────────────────────┴─────────────────────────────────────────┘ ↑ ✓ xanh = xong · ▶ vàng nháy = đang chạy · · mờ = chưa tới ``` **Cách chạy — 1 lệnh dựng sẵn cả 2 pane:** ```bash cd # vd: AINative_OKR_CASAN5 bash /…/optimize-docs/video-steps/start-tmux.sh ``` `start-tmux.sh` tự: tạo session `casan`, pane trái chạy [`map-live.sh`](map-live.sh), pane phải chạy [`run-all.sh`](run-all.sh) — **mặc định tự chạy, dừng 5s/bước**. Tuỳ chỉnh: ```bash STEP_DELAY=8 bash /…/start-tmux.sh # tăng thời gian dừng mỗi bước AUTO=0 bash /…/start-tmux.sh # pane phải bấm Enter thủ công COLS=240 ROWS=60 LEFT=48 bash /…/start-tmux.sh # cửa sổ to hơn / pane trái rộng hơn ``` **Cơ chế đồng bộ (nếu muốn tự dựng tay):** - `run-all.sh` ghi id bước hiện tại vào `$CASAN_STEP_FILE` (mặc định `/tmp/casan_step`) tại mỗi bước. - `map-live.sh ` poll file đó ~0.45s/lần, vẽ lại map và **tự toggle nhấp nháy** (không phụ thuộc terminal có hỗ trợ thuộc tính blink hay không). - Cả hai pane phải trỏ **cùng** một `step_file`. --- ## ❓ Mermaid có làm được không? **Không — không dùng trực tiếp trong pane tmux.** Mermaid render bằng engine SVG của trình duyệt/markdown-viewer; terminal không có engine đó, và bản mermaid tĩnh cũng không "nhấp nháy theo bước". Vì vậy hiệu ứng bạn muốn được làm bằng **bản đồ ANSI sống** ở trên (đúng tinh thần "chạy đến đâu sáng đến đó"). Nếu bạn **thích đúng look mermaid**, có 2 lối vòng (không khuyến nghị cho tmux): 1. **Render ảnh mỗi bước:** `mmdc` (mermaid-cli) sinh PNG với node hiện tại được tô (`classDef current`/`:::current`), rồi hiện bằng terminal hỗ trợ ảnh (kitty `icat`, iTerm2 `imgcat`, hoặc `chafa`). Mỗi bước phải sinh lại ảnh → nặng, và **không nhấp nháy**. 2. **Trang HTML mermaid + JS:** highlight node theo bước bằng JavaScript, quay **cửa sổ trình duyệt** đặt cạnh terminal thay cho pane trái. Đẹp, mượt, nhưng bỏ mô hình tmux thuần. > Muốn phương án 2 (HTML mermaid động, tôi dựng thành 1 trang tự chạy highlight)? Nói mình làm — nhưng để quay trong tmux thì `map-live.sh` là lựa chọn gọn nhất. --- ## 🎚️ Cửa sổ phụ (KHÔNG đưa lên khung quay) Để riêng ở tab/desktop khác, chỉ bật trước: | Cửa sổ | Việc | Ghi chú | |---|---|---| | **SSH tunnel Ollama** | `ssh -N -L 11434:...` | giữ chạy để A3/A8/D4 có model — KHÔNG cần quay | | **asciinema** | `asciinema rec casan.cast` | ghi terminal thật để giám khảo replay (tuỳ chọn) | > `run-all.sh` tự phát hiện Ollama: nếu tunnel sống → chạy A3/A8/D4; nếu không → in "SKIP" có ghi chú. Bật tunnel trước là đủ. --- ## 🎬 Nhịp quay gợi ý (với Enter thủ công) 1. Mở màn hình intro (banner + 3 dòng nguyên tắc) → đọc/để 5s → Enter. 2. Mỗi vector: để title card + 🎯/🛡️ hiện ~2s → Enter chạy lệnh → giữ **exit code** ~2s → Enter. 3. 4 cảnh 🔥 (A5 · B1 · D1 · CHAIN): giữ lâu hơn (~4s), zoom dòng kết quả khi dựng. 4. Kết: security-gate `PASS=11 FAIL=0` + card chốt → giữ ~4s. Tổng ~12–15 phút khớp bảng thời lượng ở Mục 9 kịch bản gốc.