Mechanically
The largest single domain. XP and 'banana' currency ledgers, quest assignment with re-roll mechanics, a shop, ranks, and daily/shift quest slots for the chatter team.
The largest single domain. XP and 'banana' currency ledgers, quest assignment with re-roll mechanics, a shop, ranks, and daily/shift quest slots for the chatter team.
Consumes team identity. A motivation layer sitting on top of a measurement layer that does not exist — there is no per-chatter revenue attribution to gamify.
The only backend role helper trusts a client-supplied actorId across 15 call sites.
src/pages/TasksRewards.tsxsrc/components/gamification/gamification.tsgamificationSeed.ts14 gamification* tablesconvex/gamification.ts:185
KEEP+FIX — works; quest completion trusts client-supplied chatterId/xpEarned — can’t be reward authority until auth. Reward quality not gross. Donors STUDY; measurement layer is the BUILD.
Kills the 166 .collect() full-scans; real counts/leaderboards.
SkillTree progression/achievement event model — his engine’s fine, study the shape.
QA calibration/annotation for the missing measurement layer.
Blinded transcript review for chatter QA.
LIFT = copy the code into the fork · WRAP = run underneath as a service · STUDY = architecture only. Verdicts from the OFM sourcing campaign.
Research priority for this domain is high. Agent findings splice in below this line and survive regeneration.