How to change your labeller's service record for the new subcategory definitions
ate last year, the Ozone team put out new definitions for reporting categories, allowing labeller operators to further narrow the scope of the types of reports they accept and making the types of reports received more specific for moderators.
This changes the legacy set of 5 reporting options into 39 possible reporting options. However, depending on the specifics of your labeller, you may not want all those options.
This is a document that details how to modify a labeller's service record such that it uses the new tools.ozone.report.defs lexicon instead of the legacy com.atproto.moderation.defs lexicon, with an example taken directly from @laelaps.fyi's previous and current service records.*1
You can view the new definitions on Lexicon Garden here: https://lexicon.garden/lexicon/did:plc:6msi3pj7krzih5qxqtryxlzw/com.atproto.moderation.defs#reasonType.*2
Keep this open in a separate tab, you'll need it later.
I'll go over how to update your service record's definitions in Ozone and PDSls.
Ozone instructions
- Log into your labeller, and visit the Configure page on the left-hand sidebar.
- Under the corresponding Configure tab, the first subheading is Service Record. Swap to the JSON editor*3 using the button on the upper right-hand side.
- Scroll down until you see a section called "
reasonTypes."
You should see multiple entries starting with "com.atproto.moderation.defs".
Notice how these entries are indented with two spaces, start and end with quotation marks, and end in a comma barring the last line. This is vital for the JSON to parse correctly; otherwise, you'll get an error. - Change the definitions out from the
com.atproto.moderation.defslexicons to your desiredtools.ozone.report.defssubcategories from the Lexicon Garden entry mentioned earlier. - At the bottom, select Save to save your changes. If you don't get any errors, check your work in the client of your choice by attempting to report a post or account under categories your labeller should and shouldn't support. If your changes don't populate correctly, try force-clearing the tab's cache with a Ctrl-F5 on Windows, or a Cmd-R on Mac.
Laelaps's previous reasonTypes looked like this:
"reasonTypes": [
"com.atproto.moderation.defs#reasonViolation",
"com.atproto.moderation.defs#reasonOther",
"com.atproto.moderation.defs#reasonAppeal",
"com.atproto.moderation.defs#reasonSexual"
],With the aforementioned changes, they now look like this:
"reasonTypes": [
"tools.ozone.report.defs#reasonAppeal",
"tools.ozone.report.defs#reasonOther",
"tools.ozone.report.defs#reasonSexualNCII",
"tools.ozone.report.defs#reasonSexualAnimal",
"tools.ozone.report.defs#reasonSexualOther",
"tools.ozone.report.defs#reasonRuleProhibitedSales",
"tools.ozone.report.defs#reasonRuleBanEvasion",
"tools.ozone.report.defs#reasonRuleOther"
]PDSls instructions
- Log in to pdsls.dev using your labeller account, and select the button with your profile picture reading "View your repository".
- Select
app.bsky.labeler.service, and then clickself. This is your labeller's service record. - To edit your record, select the pencil icon on the upper right-hand side.
- Scroll down until you see a section called "
reasonTypes." You should see multiple entries starting with "com.atproto.moderation.defs".
Notice how these entries are indented with two spaces, start and end with quotation marks, and end in a comma barring the last line. This is vital for the JSON to parse correctly; otherwise, you'll get an error. - Change the definitions out from the
com.atproto.moderation.defslexicons to your desiredtools.ozone.report.defssubcategories from the Lexicon Garden entry mentioned earlier. - At the bottom, select Edit to save your changes. If you don't get any errors, check your work in the client of your choice by attempting to report a post or account under categories your labeller should and shouldn't support. If your changes don't populate correctly, try force-clearing the tab's cache with a Ctrl-F5, or a Cmd-R on Mac.
Laelaps's previous reasonTypes looked like this:
"reasonTypes": [
"com.atproto.moderation.defs#reasonViolation",
"com.atproto.moderation.defs#reasonOther",
"com.atproto.moderation.defs#reasonAppeal",
"com.atproto.moderation.defs#reasonSexual"
],With the aforementioned changes, they now look like this:
"reasonTypes": [
"tools.ozone.report.defs#reasonAppeal",
"tools.ozone.report.defs#reasonOther",
"tools.ozone.report.defs#reasonSexualNCII",
"tools.ozone.report.defs#reasonSexualAnimal",
"tools.ozone.report.defs#reasonSexualOther",
"tools.ozone.report.defs#reasonRuleProhibitedSales",
"tools.ozone.report.defs#reasonRuleBanEvasion",
"tools.ozone.report.defs#reasonRuleOther"
]Some additional notes
- I'd recommend for any subcategory you end up choosing, you also include the Other category for the corresponding subcategory, and the more general Other option for reports that may not neatly fit into those categories.
- If you leave
reasonTypesin your labeller's service record but empty, your labeller will be unable to receive reports and won't show up in the reporting menu. This is useful if you run a vanity labeller and don't have the infrastructure implemented to receive reports anyway. - If you remove
reasonTypesentirely from your labeller's service record, your labeller will default to receiving every new report subcategory from the next new report you receive.
Thank you's:
- To @jdot.blacksky.team for saying they wanted this after I offered!
- To @retrosunstar.bsky.social for testing my additional notes in prod because I didn't want to on Laelaps in case I broke something!
- To @rahaeli.bsky.social for giving this a once-over!
Feel free to send this around or steal my words from me—all I ask is that you credit me!
If you'd like technical writing for your own Atmospheric work, DM me on your favorite Bluesky client or email me via at@heika.dog!
- Despite the new name, the new definitions do not solely apply to Ozone. If you're not using Ozone, use the PDSls instructions later in this document. ↩
- You might notice that this says
reasonTypeand notreasonTypes, as the rest of this document says. Your labeller service record should use the pluralreasonTypes. ↩ - At the time of writing, you're unable to perform these steps solely in Ozone's UI editor. I've filed a GitHub issue in the Ozone repo about this. ↩
Did you enjoy this article?
Recommend it — Standard Reader surfaces well-loved writing to more readers across the network.