<!--
  slopbot.fyi landing copy. Edit freely and refresh the page; nothing is built.

  Rules of the file:
  - Each "## id" heading starts a section. Known ids get a layout (hero, problem, how,
    modes, consent, demo, honest, commands, roadmap, cta, footer). Any other id renders
    as plain prose, so add sections whenever you like.
  - Inside a section: the first paragraph is the lead; a bullet list becomes cards when a
    bullet reads "**Title** — body"; a table stays a table.
  - Key lines: "eyebrow: text" is the small label chip over a section (and its heading when the
    section has no paragraph); "cta: Label → target" and "secondary: Label → target" are
    buttons, where target "slides" opens the deck, a {{PLACEHOLDER}} stays highlighted, and
    anything else is an https:, mailto: or tg: link.
  - A ```chat fence draws a Telegram-style thread. Lines: "admin> …", "helper> …",
    "bot> …", "system> …", "buttons> A | B", "badge> live|example|simulated|gated|illustrative"
    (live = a real capture; example = a depiction; the rest are loud on purpose).
  - {{PLACEHOLDERS}} render highlighted until you replace them.
  - Wording: automated estimate, never proof; no accuracy numbers; off/safe topics are
    "not measured", never 0%. tests/test_site_copy.py checks this file.
-->

## hero

eyebrow: A Telegram bot for forum groups

# AI-writing flags and source checks for your group chat.

Different topics, different rules. AI welcome where your group wants it. Nothing happens to anyone who hasn't opted in themselves.

cta: Run a Telegram group? Ask for a setup → mailto:hello@slopbot.fyi
secondary: Watch the demo deck → slides

## problem

eyebrow: The problem

Group chats confuse two things all day long.

- **Fluent is not supported** — A paragraph can be polished, confident, and unsourced. The polish is what gets read.
- **A proposal is not an agreement** — Someone posts a plan, three people react with an emoji, and now it's "what we decided".
- **One rule can't fit every topic** — The build-log topic wants AI drafts. The decisions topic wants to know who actually wrote what. The memes topic wants to be left alone.

Slop Bot doesn't fix people. It gives each topic its own rules and keeps the signals separate, so the group can see the difference between "this reads as AI-written" and "this claim is supported" and "we actually agreed".

## how

eyebrow: How it works

Three steps, and every one of them is a person choosing.

- **1. An administrator sets each topic's mode** — `off`, `safe`, `silent` or `live`. Every topic starts `off`. Setting a topic to `live` turns on automatic checks only; public flags are a separate switch.
- **2. Members opt in, one by one, by direct message** — The topic notice carries a tap-to-opt-in link. In the private chat the bot names the provider, the group and the exact topics, and asks for one tap: checks only, or checks plus public flags. An administrator cannot consent for anyone else.
- **3. Estimates arrive, labelled** — Pangram assesses that member's own messages of 100 words or more. The result says who made it, what rule it met, and that it is an automated estimate. Silence is not a verdict either way.

## modes

eyebrow: Topic modes

Four topic modes. The bot posts a fixed notice whenever one changes, so nobody has to guess.

- **off** — Messages here are not checked, stored, or counted. The default for every topic, forever, until someone with the rights says otherwise.
- **safe** — An AI-safe zone. Slop Bot does not check or keep messages here. Paste the whole model output; nobody will be asked about it.
- **silent** — Consenting members get a private result by direct message. Nothing is ever posted in the group.
- **live** — The same automatic checks, plus the option of a restrained public flag, only for members who separately chose public flags, only when a message meets the strict all-AI rule.

## consent

eyebrow: Consent

The permission request is the product.

```chat
system> Direct message with @slopbotfyi_bot
helper> /slopconsent <chat_id> auto
bot> Requested permission: automatic Pangram assessment of your own messages of at least 100 words in group <chat_id>, topics: live.
bot> Choose one: Checks only (private results), or Checks + public flags. Quoted, forwarded, and linked material is excluded. Results are estimates, not proof of authorship. Revoke any time with /slopconsent revoke <chat_id>.
buttons> Checks only | Checks + public flags
helper> /slopconsent revoke <chat_id>
bot> New checks and delivery are blocked. Queued work is cancelled.
```

Revocation is one command and takes effect immediately for queued work and delivery. It does not pretend a provider has erased its copy, because we can't promise that and won't.

## demo

eyebrow: The demo

What a flag looks like, and what nothing looks like.

```chat
badge> example
system> Topic: live · automatic checks on · public flags on
helper> (a 120-word paragraph an LLM wrote for the demo)
bot> Possible AI-written text · Pangram classified all analyzed prose as AI-generated with high confidence. Automated estimate, not proof.
buttons> Dispute | Details
```

```chat
badge> example
system> Topic: safe · AI-safe zone
helper> (the same 120-word paragraph)
system> No post. No direct message. No provider call.
```

```chat
badge> example
system> Topic: live
helper> (a 40-word message)
system> Too short to assess. No call is made. This is not a verdict.
```

Dispute is one tap. The result leaves the group statistics while it is reviewed, and the author never has to hand over prompts or drafts.

## honest

eyebrow: Honest by design

Things Slop Bot will not do, on purpose.

- **No composite score** — Authorship, evidence support, and agreement are different questions. They are never blended into one number about a person.
- **No checks without opt-in** — An administrator can turn a topic on. Only you can turn yourself on.
- **No accuracy claims** — Every result is attributed to its provider and labelled an automated estimate. We don't quote a rate, because it hasn't been measured on your chat.
- **Fail closed** — An error, a timeout, a short message, an unsupported input, or a spent budget produces nothing, never a verdict.
- **Say it yourself** — Start a message with 🤖 and it is self-declared: never checked automatically, listed under "skipped" in the stats.
- **Denominators everywhere** — `/slopstats` shows counts with what they're out of. Off and safe topics read "not measured", never 0%.
- **Nothing sent that isn't needed** — Providers see prose, never Telegram IDs, usernames, or the group's name.

## commands

eyebrow: Commands

| Command | Where | Who | What it does |
| --- | --- | --- | --- |
| `/start <chat_id>` | Bot DM | Any group member | Binds your private chat to that group after a membership check. Nothing is scanned. |
| `/slopconsent <chat_id> auto` | Bot DM | Member | Lists the topics that would be checked and asks for one tap. |
| `/slopconsent revoke <chat_id>` | Bot DM | Member | Withdraws every grant for that group at once. |
| `/slopcheck <chat_id> <topic>` + text | Bot DM | Consenting member | A private Pangram assessment of your own prose. |
| `/slopstats [week\|all]` | Group or DM | Member | Per-topic counts with denominators, sent by DM. |
| `/slopmode off\|safe\|silent\|live` | In the topic | Administrator | Sets the topic mode and posts the notice. |
| `/slopflags on\|off` | In a `live` topic | Administrator | Public flags. Existing checks-only consent is never upgraded. |
| `/receipts <chat_id> <topic>` | Bot DM | Consenting member | Does the excerpt you supply support the claim? Gated for now. |

## roadmap

eyebrow: Roadmap

Not built yet. Listed so you know what's coming and what isn't being claimed.

- **Receipts, live** — `/receipts` asks TypeSafe's Jev model whether a supplied passage supports a claim. The adapter exists and runs against mocked HTTP; the live gate is closed while provider access is on a waitlist.
- **The Sloplord leaderboard** — A group-only, opt-in scoreboard with an off switch. The entertaining part, deliberately not the default identity.
- **Self-serve setup** — Add the bot, run one command, done. Today an operator verifies each group by hand.
- **Plans and billing** — Telegram Stars, transparent per-word costs, no plan that charges by "people flagged".

## cta

# Run a Telegram group?

Tell me and I'll set your group up. Every topic starts off, and nothing is checked until an administrator turns a topic on and a member opts in.

cta: Ask for a setup → mailto:hello@slopbot.fyi
secondary: Read the demo deck → slides

## footer

Slop Bot is a private pilot by Bountify. Authorship estimates by Pangram; evidence checks by TypeSafe (Jev). Results are automated estimates, not proof of authorship. No open-source licence has been granted. Source stays private.
