Skip to content

Commit 52e38db

Browse files
authored
Create docs site with mdBook (#34)
* Roadmap: formatting improvements for mdbook * gitignore: prevent accidentally adding things * gitignore: ignore bin folder * mdbook: Add required files to make book * mdbook: Point to README as index * mdbook: initial ROOST theme * gitignore: correct formatting * mdbook: add platforms page to book * Workflows: deploy docs to GitHub Pages
1 parent ec52d5a commit 52e38db

8 files changed

Lines changed: 146 additions & 12 deletions

File tree

.github/workflows/deploy-docs.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Deploy Docs
2+
on:
3+
push:
4+
branches:
5+
- main
6+
7+
jobs:
8+
deploy:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
contents: write
12+
pages: write
13+
id-token: write # To update the deployment status
14+
steps:
15+
- uses: actions/checkout@v4
16+
with:
17+
fetch-depth: 0
18+
- name: Install latest mdbook
19+
run: |
20+
tag=$(curl 'https://api.github.com/repos/rust-lang/mdbook/releases/latest' | jq -r '.tag_name')
21+
url="https://github.com/rust-lang/mdbook/releases/download/${tag}/mdbook-${tag}-x86_64-unknown-linux-gnu.tar.gz"
22+
mkdir bin
23+
curl -sSL $url | tar -xz --directory=./bin
24+
echo `pwd`/bin >> $GITHUB_PATH
25+
- name: Build Book
26+
run: |
27+
mdbook build
28+
- name: Setup Pages
29+
uses: actions/configure-pages@v4
30+
- name: Upload artifact
31+
uses: actions/upload-pages-artifact@v3
32+
with:
33+
path: 'book'
34+
- name: Deploy to GitHub Pages
35+
id: deployment
36+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Prevent adding mdbook binary when running locally
2+
bin/
3+
4+
# Don't add the built docs; that's what CI is for
5+
book

README.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
1-
# Community
1+
# Welcome to the ROOST Community!
22

3-
Documentation and policies for the ROOST organization and open source community. File non-technical or ROOST-wide issues here.
3+
This site hosts documentation and policies for the ROOST organization and open source community. File non-technical or ROOST-wide issues in this [issue tracker][issues].
44

55
## Get Involved
66

7-
[ROOST](https://roost.tools) is a new and growing organization! We need **your** help to make the community even better:
7+
[ROOST](https://roost.tools) is a new and growing organization! We need **your** help to make the community even better. Here's how you can jump in:
8+
9+
- **Browse these docs** to better understand ROOST and the community
10+
11+
- [File an issue][issues] to suggest ideas or tasks
812

9-
- Browse the docs in this repo
10-
- [File an issue](https://github.com/roostorg/community/issues) to suggest ideas or tasks
1113
- [Join our Discord](https://discord.gg/5Csqnw2FSQ) to chat with the team, T&S professionals, open source builders, and other members of the community
14+
1215
- [Start or join a discussion](https://github.com/orgs/roostorg/discussions) on the ROOST org
1316

17+
1418
By participating in our community, you agree to follow the [code of conduct](https://github.com/roostorg/.github/blob/main/CODE_OF_CONDUCT.md) and [contribution guidelines](https://github.com/roostorg/.github/blob/main/CONTRIBUTING.md). Please give them a read to familiarize yourself with them if you haven't already (or if it's been a while).
19+
20+
[issues]: https://github.com/roostorg/community/issues

SUMMARY.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Summary
2+
3+
[Introduction](README.md)
4+
- [Roadmap](roadmap.md)
5+
- [Roles](roles.md)
6+
- [Platforms](platforms.md)

book.toml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[book]
2+
title = "ROOST Community"
3+
authors = ["Cassidy James Blaede"]
4+
language = "en"
5+
src = "."
6+
7+
[build]
8+
build-dir = "./book"
9+
10+
[output.html]
11+
additional-css = ["theme/css/roost.css"]

roadmap.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ ROOST believes safety infrastructure should be freely available to all regardles
1111

1212
[Read more about our approach](https://roost.tools/blog/open-by-design-roost-s-approach-to-safety-tool-development/) and [view our community documentation on GitHub](https://github.com/roostorg/community).
1313

14-
## [The DIRE Framework](https://ssrn.com/abstract=5369158)
14+
### The DIRE Framework
1515

16-
ROOST's projects map to how trust and safety teams actually operate. Our roadmap covers:
16+
ROOST's projects map to how trust and safety teams actually operate using the [DIRE Framework](https://ssrn.com/abstract=5369158). Our roadmap covers:
1717

1818
- **Detection**: Identifying potential risks in accounts, behaviors, and content through classifiers, hash matching, and behavioral signals
1919
- **Investigation**: Analyzing broad attack patterns by evaluating context beyond individual entities, or diving deep into a single incident
@@ -56,14 +56,14 @@ ROOST's two flagship projects are Coop and Osprey, announced in [July 2025](http
5656
| UI for analysts to identify abuse patterns and signals | Automated routing of tasks into queues |
5757
| Sync and async rule creation and execution | |
5858

59-
## [Osprey]: Investigation
59+
## Osprey: Investigation [(source code)][Osprey]
60+
61+
![Screenshot of Osprey](https://github.com/roostorg/osprey/raw/main/images/query-and-charts.png)
6062

6163
**Current status:** 🟢 v1.0 in production in organizations such as Bluesky that can handle O(1e8) events/day.
6264

6365
**Project goal:** Provide rules engine infrastructure that can be hosted within an organization so analysts and safety teams are empowered to conduct their own internal investigations and create rules independently. Scale metadata-based investigations beyond what content-focused solutions can achieve. With empowered analysts, engineering teams can focus on org-specific improvements to increase recall.
6466

65-
![Screenshot of Osprey](https://github.com/roostorg/osprey/raw/main/images/query-and-charts.png)
66-
6767
**Solution:** Osprey is a high-performance rules engine for real-time event processing and behavioral analysis. Safety teams use it to detect patterns across multiple events and conduct sophisticated investigations.
6868

6969
**Getting started**: [Development Guide](https://github.com/roostorg/osprey/blob/main/docs/DEVELOPMENT.md)
@@ -112,7 +112,7 @@ These features were prioritized after shadowing analysts at Discord and Bluesky
112112

113113
These features are exploratory pending v1.1 feedback and resourcing. More information is needed, like whether production deployments reveal specific investigation gaps worth targeting before general-purpose AI assistance.
114114

115-
## [Coop]: Review and Enforcement
115+
## Coop: Review and Enforcement [(source code)][Coop]
116116

117117
**Current status:** 🟢 v0 targeting January 2026
118118

@@ -163,7 +163,7 @@ Core features:
163163

164164
These features are subject to change based on adopter feedback of v1 and more information is needed. Evaluation datasets co-developed with subject matter expert organizations would allow organizations to test AI-assisted moderation features against real-world content and validated decisions, moving beyond synthetic benchmarks to measure performance on the nuanced cases that matter most.
165165

166-
## [ROOST Model Community]: Detection
166+
## ROOST Model Community: Detection [(link)][ROOST Model Community]
167167

168168
**Current status:** 🟢 Active community, [gpt-oss-safeguard model available](https://roost.tools/blog/a-new-milestone-for-open-source-safety-infrastructure-and-transparency/)
169169

@@ -269,3 +269,4 @@ Our work with NCMEC focuses on designing the CyberTip reporting function in ROOS
269269
[GitHub Discussions]: https://github.com/orgs/roostorg/discussions
270270

271271
[^1]: [CyberTipline Data](https://www.missingkids.org/gethelpnow/cybertipline/cybertiplinedata)
272+

theme/css/roost.css

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/* Surgical overrides here; be mindful of alternate themes */
2+
3+
:root {
4+
--roost-gray: rgb(187, 193, 190);
5+
--roost-dark: hsl(80, 22%, 13%);
6+
--roost-yellow: rgb(238, 238, 0);
7+
--roost-peach: rgb(247, 187, 128);
8+
--roost-muddy: rgb(229, 217, 136);
9+
10+
--sidebar-resize-indicator-space: 0;
11+
}
12+
13+
.light, html:not(.js), .navy {
14+
--bg: rgb(245, 245, 245);
15+
--fg: var(--roost-dark);
16+
17+
/* --sidebar-bg: var(--roost-dark); */
18+
--sidebar-bg: oklch(from var(--bg) calc(l * 0.97) c h);
19+
--sidebar-fg: var(--fg);
20+
--sidebar-non-existant: #5c6773;
21+
--sidebar-active: oklch(from var(--roost-muddy) calc(l * 0.5) c h);
22+
--sidebar-spacer: var(--roost-muddy);
23+
--sidebar-header-border-color: oklch(from var(--roost-yellow) calc(l * 0.95) c h);
24+
25+
--links: inherit;
26+
}
27+
28+
.navy {
29+
--bg: var(--roost-dark);
30+
--fg: rgba(255, 255, 255, 0.9);
31+
32+
--sidebar-active: var(--roost-muddy);
33+
34+
--icons: white;
35+
--icons-hover: var(--roost-yellow);
36+
}
37+
38+
#mdbook-theme-toggle {
39+
display: none;
40+
}
41+
42+
#mdbook-menu-bar {
43+
background-color: oklch(from var(--bg) calc(l * 1.2) c h);
44+
}
45+
46+
#mdbook-sidebar-resize-handle {
47+
background-color: var(--sidebar-bg);
48+
}
49+
50+
.content a {
51+
font-weight: bold;
52+
text-decoration: underline;
53+
}

theme/fonts/fonts.css

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
@import url('https://fonts.googleapis.com/css2?family=Funnel+Display:wght@300..800&family=Funnel+Sans:ital,wght@0,300..800;1,300..800&display=swap');
2+
3+
:root {
4+
font-family: "Funnel Sans", sans-serif;
5+
font-optical-sizing: auto;
6+
font-weight: 400;
7+
font-style: normal;
8+
}
9+
10+
11+
h1, h2, h3, h4, h5, h6 {
12+
font-family: "Funnel Display", sans-serif;
13+
font-optical-sizing: auto;
14+
font-weight: 700;
15+
font-style: normal;
16+
}

0 commit comments

Comments
 (0)