Social - Achievements (Integration Logic)
DomainsDOL AcademyUX274 words1 min read
Purpose
Phần tiêu đề “Purpose”- Định nghĩa vai trò của Social trong achievement loop:
- hiển thị,
- chia sẻ,
- privacy/moderation.
- Không định nghĩa lại rule unlock ở đây để tránh drift.
Canonical Source of Truth
Phần tiêu đề “Canonical Source of Truth”- Rule unlock, batch, idempotency:
- Vocabulary-specific achievements/badges:
- Event contract:
Social-owned Scope
Phần tiêu đề “Social-owned Scope”- Render badge board trên profile.
- Render
recent unlocktrên feed (theo visibility). - Cho phép pin badge để khoe thành tích.
- Không evaluate criteria tại client/UI layer.
Canonical Events Consumed
Phần tiêu đề “Canonical Events Consumed”achievement_unlocked_eventbadge_awarded_eventvocab_achievement_unlocked_eventvocab_badge_awarded_event
Display and UX Rules (Minimal)
Phần tiêu đề “Display and UX Rules (Minimal)”- Result/Home: tối đa 1 badge toast nổi bật mỗi phiên.
- Profile: archive đầy đủ theo
program | group | rarity. - Feed: chỉ hiển thị badge/event user đã cho phép chia sẻ.
Privacy and Moderation
Phần tiêu đề “Privacy and Moderation”- User
opt_outkhỏi public leaderboard vẫn giữ achievement nội bộ. - Achievement gắn nội dung private:
- chỉ hiển thị public khi user bật chia sẻ.
- Badge/reward bị moderation hold:
- không render public cho đến khi clearance.
Anti-drift Rules
Phần tiêu đề “Anti-drift Rules”- Mọi thay đổi criteria/tier/version phải sửa ở
ENG_12hoặcENG_14, không sửa trực tiếp ở file này. - Nếu Social cần custom display grouping mới:
- chỉ thêm mapping hiển thị, không tạo rule unlock mới.
Change log
Phần tiêu đề “Change log”- 2026-03-05: Refactor thành integration doc; loại bỏ định nghĩa rule trùng với Engagement Platform để giảm drift dài hạn.