24 May 2026
Auto-promotion
Members who hit a target — 30 days + 10 threads, say — get promoted into a role automatically. Set the rule once, the nightly job handles the rest.
The third piece of the role system that was sketched in the original spec is live: a role can have a promotion rule attached. When a member hits the target, they get the role automatically the next morning.
Open any role in the editor and you'll see a new section: Auto-promotion. Click "Set up auto-promotion" and it gives you a starter rule (30+ days since joining). From there you compose criteria with three dropdowns each — what to measure, how to compare, and the threshold:
- Days since joining — for time-based gating ("regulars after a month")
- Threads posted — for content-output gating ("active poster")
- Comments posted — same, weighted for discussion rather than posting
- Reactions given — for engagement rather than output
Stack up to eight criteria with a top-level all (every criterion must match) or any (at least one). The summary at the top of the section reads back the rule in plain English: "30+ days since joining and 10+ threads posted." If that sentence reads weird, your rule is probably weird — adjust it until it reads naturally.
A daily job at 06:00 UTC sweeps every forum, evaluates every rule, and promotes everyone who matches. Members get an in-app notification ("You've been promoted to Trusted") that morning. The promotion writes to the same audit log as manual assignments, with the rule snapshot attached so you can reconstruct why a given member was promoted six months from now.
What auto-promotion doesn't do:
- Auto-revoke. Once promoted, a member keeps the role until you remove them manually. Demotion-by-inactivity is a different conversation — we want to avoid the "I posted less for a week and got silently downgraded" trap.
- Promote into staff roles. Owner, Admin, and Moderator can't have promotion rules. Promoting someone into a moderation role based on post count is the kind of thing that goes wrong in interesting ways. Use the per-category override + a custom role if you want activity-gated access without giving anyone mod powers.
- Run more than once a day. Sub-daily activity wouldn't materially change who hits the bar — and a single morning check is easier to reason about than a series of intra-day promotions.
Combine this with the per-category overrides that shipped last week and you get the loop you actually want: a "Trusted" role auto-applied to members who pass an activity bar, with per-category overrides letting them post in a beta channel that regular members can't. Set the rule once, walk away, and the forum grows its own structure.