Late 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 '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
- 1.
Log into your labeller, and visit the Configure page on the left-hand sidebar.
- 2.
Under the corresponding Configure tab, the first subheading is Service Record. Swap to the JSON editor3 using the button on the upper right-hand side.
- 3.
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. - 4.
Change the definitions out from the
com.atproto.moderation.defslexicons to your desiredtools.ozone.report.defssubcategories from the Lexicon Garden entry mentioned earlier. - 5.
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
- 1.
Log in to pdsls.dev using your labeller account, and select the button with your profile picture reading "View your repository".
- 2.
Select
app.bsky.labeler.service, and then clickself. This is your labeller's service record. - 3.
To edit your record, select the pencil icon on the upper right-hand side.
- 4.
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. - 5.
Change the definitions out from the
com.atproto.moderation.defslexicons to your desiredtools.ozone.report.defssubcategories from the Lexicon Garden entry mentioned earlier. - 6.
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
- 1.
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.
- 2.
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. - 3.
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 for saying they wanted this after I offered!
To for testing my additional notes in prod because I didn't want to on Laelaps in case I broke something!
To 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!