Files
CASAN/optimize-docs/video-steps/LAYOUT.md
T
thanhnvandClaude Opus 4.8 fbcef967e5 chore(freeze): snapshot demo state before Plan-07 hardening work
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>
2026-07-03 22:03:44 +09:00

7.7 KiB
Raw Blame History

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:

# 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.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 <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):

  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.