TokenPad

Prompt · Support

Content moderation prompt

Screening user submissions at volume, where a wrong removal is a support ticket and a wrong approval is a much larger problem.

The prompt
Assess the content below against the policy.

<policy>
{{policy}}
</policy>

<content>
{{content}}
</content>

Return JSON:
{
  "action": "allow" | "review" | "remove",
  "rule": "<the specific policy clause applied, or null if allowed>",
  "evidence": "<the part of the content triggering it, or null>",
  "certainty": "clear" | "borderline"
}

Rules:
- Apply only the policy above. Do not apply your own standards or general safety training where the policy is silent.
- Cite the specific clause. A judgement without a clause is not enforceable and cannot be appealed.
- Return "review" for anything borderline. Do not resolve ambiguity yourself — a human decides those.
- Judge the content as written, not the author. Do not infer intent beyond what the words support.
- Satire, quotation and reporting of prohibited content are not the same as the content itself. Where the policy does not distinguish them, return "review".

What to fill in

{{policy}}
Your actual policy text, with numbered clauses. Vague policies produce vague enforcement, and the model cannot fix a policy that never decided where the line is.
{{content}}
The submission, unedited.

Why it is written this way

Every rule in the prompt is there because of a specific failure it prevents. Knowing which is which is what lets you adapt it instead of only pasting it.

The clause citation is the point

A moderation decision without a rule is unappealable and, in several jurisdictions, unlawful. Requiring the clause also constrains the model to the policy rather than its own training, which is where most surprising removals come from.

Borderline routes to a human

The automation is worth having because it clears the obvious cases. Forcing it to decide the hard ones is where the reputational damage comes from, and those are a small fraction of volume.

Own standards are excluded

Without this, safety training fills every gap in your policy — usually more conservatively than you intended, and inconsistently, because it depends on phrasing.

Satire and quotation are named

These are the classic false positives. Naming them does not solve them, but it converts a silent wrong removal into a flagged review.

The version most people write, and what it costs

Is this content appropriate? Answer yes or no.

{{content}}

Enforcement drifts to the model's training rather than your policy, so what gets removed changes when the model version changes and nobody can explain any individual decision. A quoted slur in a complaint about harassment gets removed; the harassment does not.

What it still gets wrong

  • It enforces your policy as written. Every gap and contradiction in the policy becomes a gap or contradiction in enforcement.
  • Context outside the content is invisible — reply chains, user history, images, links.
  • Coded language and evolving slang are handled poorly, because the training data lags the vocabulary.
  • Never route a removal to a user without an appeal path. This prompt supports one; the product has to provide it.

Check it before you ship it

To build one of these from scratch for a task not covered here, the prompt generator assembles the same structure — delimiters, output contract, edge cases — from an expert-authored blueprint, and the prompt review checklist is what to run over the result.