/Rodgort

Mirror of https://gitlab.com/rjrudman/Rodgort

Primary LanguageC#

Rodgort

What is this?

A project created by the team in SOBotics (Chat, GitHub) designed to make managing burnination, synonym and merge requests easier on Stack Overflow. You can find the dashboard here, and the source code here.

In short, it:

  • Shows tags which at one point had zero questions and later re-appeared. All 'zombies' detected since the start of Rodgort.
  • Shows requests for which the tracked tags have zero questions, but have not been marked status-completed. Example.
  • Removes the manual process of tracking burnination requests. A filterable view of all requests found.
  • Shows requests which were completed, but there are still questions found in the burnt tags. Example.
  • Tracks the progress of burns and allows users to review past burns.
  • Manages Burnaki (currently running under the account Gemmy).
    When a request is tagged featured, Rodgort will create an observation room (an example) and instruct Burnaki to track the tag being discussed.
    Rodgort also has a command (@Rodgort untrack [tag]) to which will automatically clean up any tracking Rodgort has asked Burnaki to do for that tag.

How?

  • Rodgort watches the live websocket of https://meta.stackoverflow.com for active questions, and queries all questions with the tags burninate-request, synonym-request, retag-request and tag-disambiguation daily.
    When a post is processed, Rodgort will save a snapshot of the current score and view count of the request.
    From the body of the request, Rodgort will extract all tags mentioned in the format of [tag:tag-name] and associate the tag with the request. If Rodgort deems a tag to be 'obviously' related (one heuristic is that there's only one tag found in the body, and it matches a tag found in the title exactly), it'll automatically start tracking the question count of the tag.
    For those tags which it can't automatically guess, the tags will be marked in the system as 'requires tracking approval'. Privileged users of Rodgort will then be asked to manually mark whether or not the tag found is relevant to the request.

  • Hourly, Rodgort will grab the question count of all tags which are being tracked. Part of this process is also identifying tag synonyms. Unfortunately, the API for tags which are synonyms is not consistent and thus may cause Rodgort to not recognize the tag being synonymised for a few hours.

  • When a request is tagged featured, Rodgort will orchestrate Burnaki to setup an observation room, and instruct Burnaki to start tracking the tag. The burn will also now appear on Rodgort's progress page.

  • When Burnaki reports a post, Rodgort will use the API to detect the changes made to the question: closures, re-opens, tag removal, tag additions, deletions and undeletions. In addition, Rodgort will also query the tag every day to identify changes Burnaki failed to post in the room.

What's left to do?

  • We're currently tracking a heap of information regarding tags. However, not everything is easily accessible. I plan to create dashboards to:
    • Suggest requests which might be worth declining, based on question count, request score, request views and answers to the request
    • Suggest candidates for the next burnination from the pool of requests
  • Due to the enormous amount of burnination requests (currently at 2466 - of which 1,131 have been marked status-completed or status-declined), there's still a large amount of triage to do. Currently, 630 requests need triaging. Triaging requests will instruct Rodgort to begin tracking the question counts of tags - without which, we're unable to gain proper insight into the status of burns and tags.