Reusable rules infrastructure between platform event streams and local response systems

Osprey

Osprey is a rules engine developed at Discord and reported donated to ROOST in July 2025. It processes event information through configurable rules and custom functions. Discord and Bluesky have described production use, with platform-specific systems converting engine outputs into operational effects.

Production origins and downstream adaptation

Discord's engineering account reports roughly 400 million daily actions, 204 action types, 2,288 rules and 99 custom functions for December 2025; actions are not necessarily violations or removals. A later Bluesky case study describes platform events entering Osprey, Kafka carrying outputs and a Bluesky-owned receiver invoking Ozone actions. Analysts write local rules. Those participant accounts establish reported adoption and architecture, not independent telemetry or use of the Christchurch Call policy pack. Community improvements and Discord reintegration are likewise reported by participants.

What the records show

OspreyDiscord

was reported in production with local rules and controls

Reported system metrics period; articles February/March 2026.

Discord engineering reports roughly 400m daily actions, 204 action types, 2,288 rules and 99 custom UDFs as of December 2025. Actions are not necessarily violations/removals. Local ETCD rules, sinks, access/audit and unreleased functions preclude treating the public engine as the entire deployed policy.

BlueskyOsprey

was later reported using Osprey with locally authored rules

2026-02-04 – 2026-02-04

February case study attributes over 45m events and 100,000 enforcement actions daily to Bluesky; neither is a unique-account count. Analysts own rules and custom functions. ROOST-published participant account, not independently tested telemetry or proof of CCF-template use.

OspreyBluesky-owned Osprey effects receiver

was reported to send results through Kafka to a local receiver

2026-02-04 – 2026-02-04

Case study describes atproto events into Osprey, custom functions, Kafka and a Bluesky-owned effects receiver calling Ozone. Engine outputs become actions through this separate operator implementation.

BlueskyOsprey

was named as planning adoption in July 2025

2025-07-21 – 2025-07-21

Launch account described planned/forthcoming availability and use. Later production account does not turn this announcement into contemporaneous deployment proof.

From the investigation

Bluesky: implementation reaches a platform-owned action receiver

The described path is atproto event stream → Osprey with Bluesky-specific functions → Kafka output sink → effects receiver on Bluesky servers → action in Ozone . The account says analysts migrated and developed rules; its named example labels suspected t-shirt spammers. This identifies the platform's rule-writing and action integration, not ROOST approval of each decision. Setup still involved engineering, despite reduced dependence on engineers for subsequent rule changes.

Read the research & sources ↗
What enters the map

No acquired adopter account establishes use of the CCF TVEC prompt pack, mandatory ROOST policy, a Canadian-funded deployment, Lantern signal access or a specific law-enforcement referral. Osprey adoption is not evidence of adopting every ROOST-supported model or sample policy. The most useful next record would pair a named deployment's exact configuration/policy revision with its approval process and a documented action or correction. That question remains for the next forest assessment; this lane has not pursued it.

Read the research & sources ↗
Who can change what

The MIT licence permits modification and redistribution subject to retaining its notices and disclaimer. It provides software freedom, not access to an Osprey installation, a platform's content or separately licensed models. The source files can consequently be changed by a downstream operator, while the actual chosen version/configuration remains an evidentiary question. Entire21-line LICENSE read. No named actor's production permission or exercise of a right is inferred.

Read the research & sources ↗

Further reading

Named adopters: Osprey at Discord and Bluesky

Read the original sources 4

What the connections say

6 relationships
1

Discordreported donating its production-origin rules engineOsprey

2025-07-21 – 2025-07-21

Reported by the cited source

July 2025 issuer announcement and Discord engineering account trace Osprey from Discord to open ROOST tooling. Donation is software/resource transfer as reported, not an copyright assignment or customer-data transfer.

Read the original sources 3
3

Ospreywas reported in production with local rules and controlsDiscord

Reported system metrics period; articles February/March 2026.

Reported by the cited source

Discord engineering reports roughly 400m daily actions, 204 action types, 2,288 rules and 99 custom UDFs as of December 2025. Actions are not necessarily violations/removals. Local ETCD rules, sinks, access/audit and unreleased functions preclude treating the public engine as the entire deployed policy.

Read the original sources 2
4

Blueskywas named as planning adoption in July 2025Osprey

2025-07-21 – 2025-07-21

Reported by the cited source

Launch account described planned/forthcoming availability and use. Later production account does not turn this announcement into contemporaneous deployment proof.

Read the original source 1
5

Blueskywas later reported using Osprey with locally authored rulesOsprey

2026-02-04 – 2026-02-04

Reported by the cited source

February case study attributes over 45m events and 100,000 enforcement actions daily to Bluesky; neither is a unique-account count. Analysts own rules and custom functions. ROOST-published participant account, not independently tested telemetry or proof of CCF-template use.

Read the original source 1
6

Ospreywas reported to send results through Kafka to a local receiverBluesky-owned Osprey effects receiver

2026-02-04 – 2026-02-04

Reported by the cited source

Case study describes atproto events into Osprey, custom functions, Kafka and a Bluesky-owned effects receiver calling Ozone. Engine outputs become actions through this separate operator implementation.

Read the original source 1