MODiX
                                
                                 MODiX copied to clipboard
                                
                                    MODiX copied to clipboard
                            
                            
                            
                        Automatically create campaigns for regular
Currently, all promotions are full-manual, which leaves some genuinely active and eligible members waiting for an assoc+ to launch the campaign for them. MODiX could reasonably check a user's eligibility and current level of activity and determine whether or not to launch a campaign, open to voting as normal.
I actually brainstormed this a bit in #100. We'll want an implementation based loosely on that.
Extracting, for brevity...
Campaign Auto-Create Behaviors 3.1 Fully configurable, per role 3.2 Rules 3.2.1 Evaluated on a schedule (once per day)? 3.2.2 MessageActivityRule 3.2.2.1 Minimum number of messages? 3.2.2.2 Minimum time since first message? 3.2.2.3 Minimum time since last message? 3.2.2.4 Minimum frequency of messages? 3.2.3 InfractionHistoryRule 3.2.3.1 Minimum number of infractions? 3.2.3.2 Ignore infractions older than X? 3.2.3.3 Ignore rescinded infractions?
What would happen if somebody gets rejected? would they get re-promoted after a certain time or wait for manual promotion?
You could already have set generic rejection statements e.g:
- Rejected due to infraction history
- Rejected due to spamming
- Rejected due to offensive behavior
- Rejected due to abusing MODiX recognition algorithm in order to seem legitimate for promotion
Each of them could hold time duration that will signalize MODiX to not consider them for promotion, until expired.
Doesn't the fact that an Associate hasn't suggested them for promotion imply that they're not being noticeably active?
It's only regular which is strictly based on activity, it's something that bot would keep better track of.
So, here's my two cents on this.
First off, I agree with @Sutarodo in that if an associate hasn't nominated them, they are generally not a good fit for regular.
Secondly, regulars are not just based on activity - to an extent, infraction history is also considered. I tend to go for quality, not quantity. I understand that some people might disagree with me on this, but this is honestly how I feel regular should be handled as a role.
Third, I feel the automated campaign ruleset suggested earlier could lead to a rabbit hole of edge cases that would become a pain to maintain. For example:
3.2.3 InfractionHistoryRule 3.2.3.1 Minimum number of infractions? 3.2.3.2 Ignore infractions older than X? 3.2.3.3 Ignore rescinded infractions?
In this situation, if we wanted this ruleset to work as intended, we would have to consider the weight of infractions. It has been suggested we do it based on category, but, that would not take into account things which we, as end users, handle ourselves. Specifically I am referring to cases where user A has a warning for some minor offense such as mildly breaking the TOS of some website, but user B has a warning for a much more egregious offense, such as racism. Without giving each of those infractions a weight, MODiX has no way of distinguishing between the two, and then the assigned weights by the people who hand out the infractions in the first place then becomes a problem. This is subjective based on the person giving it out, and others may not agree. Sure, this can be justified by saying that its up to the operator or staff that hands it out, but I don't think this should really be a thing. Generally, this sounds like its going to open a can of worms we won't know how to maintain, just to chase a good UX for it.
This leads me onto my last point - as it currently stands, the UX of promotions is...hidden. I understand that #658 intends to alleviate some of this, but I am writing this on the assumption that this is yet to be implemented. This could create a lot of noise in the promotions channel, and may lead to voting fatigue. This would reduce the participation of people voting even more, and people who vote are generally few and far between for the average campaign.
I really like the the fact that human interaction is required for starting campaigns. It, by itself, resolves most if not all of the things I mentioned. I also feel that by trying to replace that human interaction of hand picking new regulars, it's going to create a lot of work that may not bear fruit in the long run.
I like the idea, I just think that there's a lot of factors to consider before attempting an implementation, possibly too many to make it worth it.
but I am writing this on the assumption that this is yet to be implemented.
Im actively working on implementing #658 as a trial run. Im not going to put an eta down because life is busy and stuff, but im hopeful to have a preliminary PR up for discussion soon tm
I like the idea. I just think that there's a lot of factors to consider before attempting an implementation, possibly too many to make it worth it.
I also like the idea, so if you want to go ahead, feel free, but with the understanding that it needs to be configurable, such that it might just be disabled for the csharp server.
Also, if you're just wanting to do stuff, there's plenty of other higher-priority issues.
What about command for listing all users eligible for promotion (joined >= 20 days, DNM* (of last 20 days) <= 10 (?), percentile (20d) > 85).
!promo eligible (or !promo fitting or whatever)
Output:
#  Name            Messages(20d)  Messages per day(20d)  DNM(20d)  Infractions
1. {UserName#674}   801 (top 90)       7.9               4           2 (click here for details)
2. {UserName#421}   350 (top 81)       5.1               7           0
* days when no messages was sent, I think it can be good measure for deciding activity
As part of a new effort to refocus on priorities, I will close this. If you feel this is imperative to the bot, a new issue can be opened to supersede this.