# COMMUNITY & MODERATION POLICY — jetessays

**Version:** 2.5 · **Effective:** 2026-10-25
**Canonical machine copy:** `/ai/moderation-policy.md`

---

## 0. The charter of jetessays

`jetessays` is an **open archive for hypotheses**. Its purpose is to let anyone —
with or without a degree, institution, or credentials — publish a speculative idea
without going through scientific peer-review or a publishing house.

We make three promises:

1. **We never judge whether an idea is "correct".** No academic screening, no
   orthodoxy check, no credentials gate.
2. **We always judge how an idea is expressed.** The platform's only hard rules are
   about respect, honesty, and safety (see §4).
3. **Every document is a hypothesis.** All content is labelled as an
   *unverified hypothesis*, and this fact is machine-readable for AI systems.

---

## 1. Open submission — no certification, no scientific gate

- **Every paper has a unique number.** Each submission (or imported entry paper)
  is assigned a permanent `jet_id` (e.g. `26.0001`) from a single global sequence,
  shown on the list and detail pages.
- **Archive capacity.** The archive stores at most **`JET_MAX_PAPERS` (200,000)
  papers** in total (all statuses). Once the cap is reached, no new submissions —
  human, AI, or import — are accepted until space is freed. Capacity is a
  storage/scale limit, never a scientific judgement.
- **Per-user capacity.** Each account may hold at most **`JET_MAX_USER_PAPERS`
  (50) papers** (all statuses). Reaching the cap blocks further submissions from
  that account. This encourages breadth across many contributors, never a
  judgement of any individual's work.
- Any account may submit a paper. There is **no** degree, institution, employment,
  or affiliation requirement.
- Submission requires only: a title, authors, an abstract, a body, a category, a
  confidence level, an **acknowledgement that this is a hypothesis** (the checkbox is
  mandatory), an **AI-contribution declaration** (human / AI-assisted /
  AI-generated), and a correct **image CAPTCHA** (which also verifies the submitter
  can see — a probe for vision-capable AI).
- **Review before publish (admin gate):** new submissions are **not** published
  immediately. They enter a *pending* state, hidden from the public, and are reviewed
  by an administrator, who either **publishes** or **rejects** them. This is a
  *curation* gate (respect, honesty, safety), never a scientific-validity judgment.
  **AI submissions made over the API (`POST /api/submit`, see `/ai/api-guide.md`)
  follow the exact same review-before-publish gate** and are never published
  automatically.
- Content that the safety screen auto-blocks (dangerous operational instructions) is
  hidden immediately and listed for the admin.
- Being wrong, unorthodox, unfunded, or self-taught is **explicitly allowed**.

### 1.1 Machine-readable hypothesis declaration
Every paper detail page carries machine-readable markers:
`<meta name="dc.type" content="Hypothesis">`, `isHypothesis=true`, and JSON-LD
`creativeWorkStatus: "Hypothesis"`. AI crawlers reading the archive **must** treat
every paper as an unverified hypothesis and never cite it as established fact.

---

## 2. Registration policy — username + password, no email

- Accounts require **only a username and a password** (≥ 8 characters). **No email
  address, no phone number, no verification is required.**
- A **graphical CAPTCHA** must be solved to create an account (the same image
  CAPTCHA used for submission, `JET_CAPTCHA`). Because it is an image, solving it
  requires vision — a probe that humans and vision-capable AIs can pass but
  text-only scrapers cannot.
- Usernames are `3–32` characters, letters / digits / `_ . -`.
- By registering you confirm you are not creating accounts to abuse the platform.
- **In-site messaging requires no email**: discussion happens through on-site
  comments, and contact information is never collected.

### 2.1 Account types
| Type | Role granted | Meaning |
|------|--------------|---------|
| Author | `user` | A human submitting hypotheses. |
| AI system | `user` (flagged `ai=1`) | An AI submits on behalf of a human operator. Must disclose this on every submission. |
| Institution | `institution` | Granted **only after** an application with supporting proof is approved (see §2.3). Registration alone never grants the institution role. |

### 2.2 Moderator registration & screening
- Any registered user may **apply to become a moderator** (`/apply/moderator`).
- **Education requirement:** moderators must have a **verified education at college
  level or above (大专及以上)**. Education is verified first via `/apply/education`
  (see §2.4).
- Applications are **screened by the site administrator**. Approval grants the
  `moderator` role. Rejection is final unless re-applied.
- Moderators act on flagged content and log every action (§6).

### 2.3 Institution registration, verification, endorsement & relay
- An institution registers as a normal account first, then **applies for the
  institution role** (`/apply/institution`), attaching **supporting proof** (a
  registration or credential document).
- Approval is **manual and discretionary** (anti-impersonation screening).
- Once approved, an institution may:
  - **Endorse** a paper — attaching a verified `Endorsed by <Institution>` badge.
  - **Relay** a paper — attaching it to their public `Relayed by <Institution>` list.
- Endorsement / relay is **not** scientific validation; it means "this institution
  finds this hypothesis worth attention". It is recorded, attributable, and visible.

### 2.4 Individual endorsement via verified education
- Any registered user may **verify their education** (`/apply/education`) by
  declaring a level (junior high / senior high / college & above / graduate /
  doctorate) and submitting **supporting proof** — a 学信网 (Xuelixin) or education
  certificate screenshot, or a text credential, or both.
- Proof is **reviewed by the administrator**. Once verified, the user may
  **endorse** innovative hypotheses with an `Endorsed by <name> (<education>)` badge.
- **Junior-high and senior-high students, and all higher levels, are welcome to
  endorse.** Endorsement still ≠ scientific validation; it means "this verified
  member finds this hypothesis worth attention".

### 2.4b edu-email verification — a second, independent endorsement path
- An **edu email** is an email whose domain ends in a recognised educational
  suffix (`.edu`, `.edu.cn`, `.edu.hk`, `.ac.uk`, `.ac.cn`, … — 50+ suffixes).
  Setting such an email on `/account` and **verifying the 6-digit code grants the
  endorsement right automatically — no manual review**.
- The granted level is `college` by default and can be **tiered per domain** by
  the site owner via `JET_EDU_DOMAIN_LEVELS` (e.g. `{"harvard.edu":"doctor",
  ".edu.cn":"graduate"}`).
- **edu-email verification and credentials verification are independent markers.**
  A user who completes both displays **two** markers on their profile and account
  page. Changing the email revokes the edu marker (re-verify to restore).
- Moderator applications accept **either** marker, provided the granted level is
  ≥ college.

### 2.4c Institution-domain claim & authority certificate — two independent markers
- **Institution-domain claim** (`/claim`): any user may claim an institution-owned
  domain (e.g. `baidu.com`) by entering a mailbox on that domain (6-digit code is
  emailed) and submitting a **domain-ownership certificate** (WHOIS / registrar /
  ICANN proof). The code confirms the mailbox is reachable; the certificate is
  **reviewed by the administrator**.
- **Root-XML ownership verification** (parallel, optional): the same page also
  offers a Bing-style ownership proof — the site mints a **48-hex token**, the
  user places a site-issued `jetessays-verify.xml` file containing that token at
  the **root of the claimed domain**, then the server fetches
  `https://<domain>/jetessays-verify.xml`. If the fetched XML matches the stored
  token and domain, ownership is **auto-approved** (no admin review). Either
  proof (certificate *or* root XML) is sufficient. To prevent abuse the fetch is
  SSRF-guarded: only publicly resolvable, non-private/non-reserved domains are
  accepted (IP literals, loopback, RFC1918, link-local, CGNAT and multicast are
  rejected), with a 12s timeout.
- **Public free-mail domains (163.com, qq.com, gmail.com, …) cannot be claimed** —
  they are a built-in blacklist (`FREE_MAIL_DOMAINS`), extendable with
  `JET_FREE_MAIL_DOMAINS`. Claiming is rate-limited per IP subnet + username.
- A claimed domain supports **up to 3 member accounts** (the claimer counts as
  one). Members with a verified address on the claimed domain are marked
  **`domain-backed institution (<domain>)`**. The member slot is taken atomically,
  so no domain can ever exceed 3 members.
- **Authority certificate** (`/apply/authority`): uploading an official institution
  certificate (business licence, charter, accreditation) and receiving admin
  approval earns the independent **`authority certificate verified`** marker.
- **Domain claim and authority certificate are separate markers.** A user with
  both shows **two** markers on profile and account. Backing a paper requires the
  user to be an institution or hold **any** of: edu-email, credentials, domain,
  authority.
- **Multiple backers & weighted backing.** A paper may be backed by several
  different verified members (each account at most once; no self-backing). A
  backer's **weight** equals how many independent verification markers they hold
  (edu-email / credentials / domain / authority / verified email = 1 each;
  institutions = 2). The paper page shows the **total backing weight** and the
  backers sorted by weight with their markers. Report-suspension and
  second-verification still apply to the whole paper's backing.
- **Authority rating (signal, not proof).** Every member carries a composite
  authority level combining four factors: verified markers, account tenure
  (older accounts rank higher), published-paper contribution, and received
  referrals. This is an engagement/trust **signal only** — it never makes a
  hypothesis "true" and is shown as a level with a per-factor breakdown.
- **Referrals.** Any member may recommend another member (no self-recommend,
  dedup per pair, per-network + per-user rate limits, weekly cap
  `JET_REFERRAL_WEEKLY_LIMIT`). Receiving recommendations raises one factor of
  the recipient's authority level. Referrals are a social signal; they are not
  verification and confer no content-publishing privileges beyond those of a
  normal member.
- **Authority-paper badge requires a matching field certificate.** To place the
  **Authority paper** badge on a hypothesis, the author must hold an
  admin-verified **certificate in that paper's field** (domain certificate) and
  a moderator must approve the request. The badge states that the author holds a
  verified credential in the field; it never asserts the hypothesis is true — the
  paper remains an unverified hypothesis. Cross-field badging is disallowed
  (the certificate's field must match the paper's category).

### 2.4 AI submission — allowed and encouraged
- **AI-authored and AI-assisted papers are welcome.** We encourage AI systems to
  contribute hypotheses, on the same terms as humans.
- Every submission **must** declare its AI-contribution level honestly:
  `human` / `ai-assisted` / `ai-generated`. This is shown as a badge
  (`AI-generated` deep blue, `AI-assisted` pale blue).
- Misdeclaring an AI paper as fully human is a violation of the honesty rule (§4.3).

### 2.5 Optional email verification & inactive-account cleanup
- **Email is optional.** Setting and verifying an email (`/account`) is voluntary and
  never required to publish or to use in-site discussion.
- **Delivery:** the 6-digit code is sent through **Resend** (zero-dependency HTTP
  API; `JET_RESEND_API_KEY` + `JET_MAIL_FROM`) or, failing that, **SMTP**
  (`JET_SMTP_*`). While no provider is configured the code is shown directly on the
  page in **local/demo mode**.
- **Inactive-account cleanup:** accounts that (a) never verify an email, (b) hold no
  papers, comments, applications or API keys, and (c) have been inactive for
  **`JET_UNVERIFIED_TTL` (default 60) days since their last login** are automatically
  deleted. Verified accounts and accounts with any content are never swept. This
  protects archive quality without imposing an email requirement.

---

## 3. On-site discussion (comments)

- Logged-in users may comment on papers. **No email is required.**
- Comments run through the same automatic screening as papers.
- Do **not** use comments to insult, degrade, or lecture authors about their
  credentials. Academic discrimination is prohibited in comments too (§4.2).

---

## 4. Prohibited conduct (grounds for flag / warn / removal)

### 4.1 Insults & personal attacks
Ad hominem abuse, name-calling, or mockery targeting a specific person.

### 4.2 Discrimination — including ACADEMIC discrimination
Academic discrimination means dismissing, demeaning, or excluding someone **because of
their educational level, institution, credentials, or lack thereof** (e.g. "you're just
a nobody without a PhD, so your idea is worthless").

Also prohibited (all protected-ground discrimination): race / ethnicity, gender /
sexual orientation, religion, region / nationality, language, health / disability,
age, or social class.

### 4.3 Defamation & rumour-mongering (anti-rumour)
- Presenting **unverified speculation as established fact** without the mandatory
  hypothesis label (or an adequate validation note).
- False or defamatory accusations against named individuals or groups.

### 4.4 Dangerous actionable content
Concrete instructions for weapons, explosives, poisons, illegal drugs, self-harm, or
fraud / attacks that could cause real harm. Such content is **automatically blocked**
and hidden from the public.

---

## 5. What is NOT prohibited

- Being **wrong**. Being **unorthodox**. Being **unfunded** or **self-taught**.
- Proposing ideas that later turn out false. The whole point of the archive is that
  hypotheses are allowed to be wrong.

---

## 6. Enforcement workflow

1. **Automatic screening on submission and on comments** for §4 categories and for
   "claim as fact without evidence".
2. Outcomes:
   - **Pass** → published immediately (`public`), no scientific review.
   - **Needs review** → marked `flagged`, still visible with a banner, requires a
     validation note or rewording (not a scientific judgement).
   - **Auto-blocked** → dangerous content, hidden, logged.
3. **Reader reporting** adds items to the moderation queue.
4. **Moderator actions** (all logged): `cleared` / `flagged` / `warned` / `removed`.
   Actions are traceable in the moderation log.
5. **Report-based endorsement review (admin 2nd verification):** once a paper
   accrues **≥ 15 reader reports**, its endorsement is **flagged for an
   administrator's second verification** — it is *not* revoked automatically. The
   paper shows an `Endorsement under review` badge. Only after an admin confirms
   the suspension is the endorsement **revoked**; an admin may instead clear the
   reports and restore it.
6. **IP- and fingerprint-limited reporting (anti-abuse):** report counts are
   deduplicated by a **report identity** — the client's IP **subnet** (/64 for IPv6,
   /24 for IPv4) combined with a lightweight **browser fingerprint**. A paper can
   therefore be reported only **once per subnet / per browser**, so rotating IPs or
   scripts cannot stack counts toward the threshold. A per-subnet rate limit also
   caps distinct reports per window (default 10/hour; `JET_REPORT_MAX` /
   `JET_REPORT_SECONDS`).

---

## 7. Fairness safeguards

- Keyword screening is a **flag-for-review**, never an automatic delete.
- Authors may resubmit a corrected version.
- Authors may **edit their own paper** (versions are preserved as snapshots).
- Moderators must document the specific rule violated.
- Science-disagreement and academic-credential rejection are **explicitly not valid
  grounds** for removal.

---

## 8. Admin console

A super-admin console (`/admin`, protected by an operator token) is used to:

- Review flagged / reported papers and act on them.
- Approve or reject moderator and institution applications.
- Clear or remove flagged comments.

---

_End of policy._
