장단콩 보드게임 & 미니어처 게임 클럽

게임 전체 1위 트로피 수여 복구 Implementation Plan

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: 2048와 콩드랍의 현재·향후 전체 1위가 영구 트로피를 받고, 현재 누락된 1위도 관리자 백필로 수여할 수 있게 한다.

Architecture: Cloud Functions의 점수 변경 트리거는 공통 최고점 판정 함수와 게임별 점수 정규화를 사용해 변경한 회원이 전체 최고점인지 확인한 뒤 기존 awardTrophies로 멱등 수여한다. 관리자 백필은 동일한 최고점 판정 규칙으로 현재 두 게임의 누락 수상자를 추가한다. 내 정보 페이지는 기존 users/{uid}.trophies 렌더링을 그대로 사용한다.

Tech Stack: Firebase Cloud Functions v2, Cloud Firestore, vanilla JavaScript ES modules, Node.js node:test/node:assert.

Global Constraints


File Structure

Task 1: 서버 점수 1위 판정 통일

Files:

Interfaces:

Task 2: 백필의 게임 1위 후보를 순수 모듈로 고정

Files:

Interfaces:

Task 3: 배포 및 현재 1위 소급 수여

Files:

Interfaces: