What's New: PRD
Domain Communications · function
whats-new· mã storyCOMM-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: publicvàaudience: memberWhen khách mởwww.conan.school/whats-newThen chỉ các mụcpublichiệ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ụcpubliclẫnmember. - 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), để tinmemberkhô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-W42có PR đã merge vàomainWhen chạynode 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--checkhoặcnpm 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
keycủa nó vàoretiredThen bộ biên dịch sinhDELETE; đổikeykhô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 Thenurlphải là https tuyệt đối; tokyo đổi URLhttps://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Ữ).