Freeze current submission/demo baseline: - casan-next-plans/: full task-level plan set (Plan 00 index + 02/04/06/07/08/09/12, QA, slide deck) - optimize-docs/video-steps/: per-vector scene breakdown (commands/screen-text/script) + start-tmux - run-all.sh / scorecard.sh / map-live.sh: REAL=1 live-battery wiring - regenerated evidence + audit/telemetry logs from live REAL=1 run - submission README + video recording guide updates - dry-run pipeline logs for 001-okr-web-app Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7.7 KiB
Bố trí màn hình khi quay
Vì
run-all.shtự 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:
# 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:
cd <thư mục gốc dự án có .specify/> # 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, pane phải chạy run-all.sh — mặc định tự chạy, dừng 5s/bước. Tuỳ chỉnh:
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.shghi 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 <step_file>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):
- 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 (kittyicat, iTerm2imgcat, hoặcchafa). Mỗi bước phải sinh lại ảnh → nặng, và không nhấp nháy. - 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.shlà 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.shtự 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)
- Mở màn hình intro (banner + 3 dòng nguyên tắc) → đọc/để 5s → Enter.
- Mỗi vector: để title card + 🎯/🛡️ hiện ~2s → Enter chạy lệnh → giữ exit code ~2s → Enter.
- 4 cảnh 🔥 (A5 · B1 · D1 · CHAIN): giữ lâu hơn (~4s), zoom dòng kết quả khi dựng.
- 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.