Skip to content

What's New: PRD ​

Domain Communications · function whats-new · mã story COMM-WN · SDD · Tests · trang cũ platform/whats-new

Mục tiêu ​

Mỗi tuần, người học và khách thấy được những thay đổi họ cảm nhận được trên Conan School, viết bằng giọng người học, song ngữ, không lẫn tin nội bộ (dọn mã, CI, tài liệu kỹ thuật).

Ngoài phạm vi ​

  • Changelog kỹ thuật cho kỹ sư (đó là lịch sử PR).
  • Gửi What's New qua email: việc đó thuộc Newsletter, chưa xây.

User story ​

COMM-WN-01: khách xem tin công khai trên www ​

Là khách chưa đăng nhập, tôi muốn xem những gì mới trên Conan School theo từng tuần, để biết nền tảng còn sống và đang cải thiện trước khi quyết định tham gia.

  • Given một tuần có cả mục audience: public và audience: memberWhen khách mở www.conan.school/whats-newThen chỉ các mục public hiện ra, gom theo tuần ISO, mới nhất ở trên.
  • Given khách mở /en/whats-newWhen mục có bản tiếng Anh Then tiêu đề và mô tả hiện bằng tiếng Anh; thiếu bản dịch thì rơi về tiếng Việt, không để trống.

COMM-WN-02: thành viên xem cả tin dành cho thành viên ở tokyo ​

Là thành viên đã đăng nhập, tôi muốn thấy cả các thay đổi trong khu học, để dùng ngay tính năng mới.

  • Given thành viên đã đăng nhập ở tokyo When mở /whats-newThen thấy mục public lẫn member.
  • Given phản hồi đổi theo người đọc When API trả cho thành viên Then phản hồi không được cache công khai (private, no-store), để tin member không lọt vào cache chung.

COMM-WN-03: chấm "chưa đọc" ​

Là thành viên, tôi muốn thấy một chấm ở thanh bên khi có tuần mới tôi chưa xem, để không phải tự nhớ vào kiểm.

  • Given tuần mới nhất tôi được thấy khác tuần tôi xem lần cuối When tôi mở bất kỳ trang nào ở tokyo Then thanh bên hiện chấm.
  • Given tôi mở /whats-newWhen trang tải xong Then chấm tắt ngay, không cần tải lại trang.
  • Given lỗi mạng khi hỏi tuần mới nhất When thanh bên dựng Then không hiện chấm (không báo "có tin mới" khi không biết).

COMM-WN-04: người soạn viết một tuần từ PR đã merge ​

Là người soạn, tôi muốn có bản nháp từ các PR đã merge trong tuần, để không bỏ sót thay đổi và không phải gõ lại từ đầu.

  • Given tuần 2026-W42 có PR đã merge vào mainWhen chạy node scripts/whats-new-draft.mjs 2026-W42Then nhận JSON nháp, mọi chỗ cần người viết mang chữ TODO.
  • Given file còn TODOWhen biên dịch với --checkThen bộ biên dịch từ chối; tiêu đề PR không có đường lọt thẳng lên trang.

COMM-WN-05: audience bắt buộc khai ​

Là người vận hành, tôi muốn mọi mục phải khai rõ audience, để không có mục nội bộ nào lộ ra cho khách vì một giá trị mặc định.

  • Given một mục thiếu audienceWhen chạy --check hoặc npm run check:whats-newThen đỏ.

COMM-WN-06: repo trước, D1 sau ​

Là người vận hành, tôi muốn nội dung trên trang luôn khớp JSON trong git, để sửa chữ ở JSON mà quên biên dịch thì CI đỏ chứ không âm thầm hiện bản cũ.

  • Given JSON một tuần đã sửa When không có migration nào chứa câu SQL biên dịch lại từ JSON đó Then check:whats-new đỏ.
  • Given muốn bỏ một mục đã đăng When khai key của nó vào retiredThen bộ biên dịch sinh DELETE; đổi key không được dùng làm cách xoá.

COMM-WN-07: liên kết đúng site ​

Là người đọc, tôi muốn bấm vào một mục là tới đúng trang, dù tôi đang ở www hay tokyo.

  • Given mục có urlWhen biên dịch Then url phải là https tuyệt đối; tokyo đổi URL https://tokyo.conan.school/... thành liên kết nội bộ.

COMM-WN-08: không gạch dài ​

  • Given một mục chứa ký tự U+2014 When chạy --checkThen đỏ (LUẬT CHỮ).

Tài liệu nội bộ nền tảng Conan School.