Skip to main content

Content Safety & Violation Handling

Our AI pipeline always tries to maximise creativity while respecting the Responsible‑AI policies of every model we run. This page explains how we determine when text is disallowed, what we do when it is, and what you (the author) will see in your final HTML or DOCX file.


1. Why a Passage Might Be Blocked

Trigger StageExamples of Disallowed ContentDecision Engine
Moderation API (pre)Graphic sex, glorified violence, hateful slursOpenAI Moderation model
Foundation ModelSame as above + provider‑specific rulesNova / Claude / Command etc

2. The Safety Pipeline

warning

Marking content as potentially unsafe during upload is the best way to prevent a flagged, but not rejected outcome.

2.1 User‑Supplied Risk Flag

If you expect erotic, violent, or otherwise edgy passages, toggle “May contain sensitive content”. We will exclude the usage of stricter models and try a more permissive one first.

2.2 Moderation Pre‑Check

Every section (chapter) is sent to a Moderation API endpoint.

Results:

  • Passflagged: false ⇒ the chunk moves on to the model inference stage.
  • Soft flagflagged: true, but every category score is below the custom threshold.
    ↳ We treat the chunk as safe and continue.
  • Hard flag – any of the following immediately blocks the chunk:
    • Category explicitly listed in our price‑book policy, e.g. hate, sexual/minors, extremist.
    • Category score exceeds its custom threshold.

When a hard flag occurs we skip the model stage and echo the original section verbatim, wrapped in a warning that the content policy was violated and recommending manual review/edit/translation.

Behind the scenes

2.3 Foundation Model

After moderation, the section (if small) goes to the model for AI processing as a single chunk, if large we split the section up into smaller chunks, each chunk is then sent to the model for AI Processing.

Models sometimes still refuse:

  • Input refusal – request never enters the model; we immediately wrap the original chunk with a warning and echo it back to the file, and move on.
  • Output refusal – model starts generating then aborts; we drop the partial response and wrap the original chunk and echo it back into the file, and move on.

NOTE: In both cases your document keeps streaming — only the offending chunk is replaced with the original source material.

Audience Rating (0–4)

Bookcicle assigns each work an audience/safety rating from 0 (all ages) to 4 (explicit adult). We rate to the highest level triggered by any dimension (violence, sexual content, language, substances, themes). When uncertain, we round up.

0 — Safe for All (Early Readers)

  • Violence: none; no peril or fear.
  • Romance/sex: none; family affection only.
  • Language: clean.
  • Substances: none.
  • Themes: gentle everyday topics; no upsetting content.

1 — Mild / Family (≈8+)

  • Violence: cartoonish or implied peril; no injuries.
  • Romance/sex: crushes, hand-holding; no sensual detail.
  • Language: very mild (“darn/heck”), infrequent.
  • Substances: none; neutral mentions OK.
  • Themes: brief, non-intense mentions of loss or bullying.

2 — Teen (≈13+)

  • Violence: non-graphic fights; injury without gore; on-page peril.
  • Romance/sex: kissing; suggestive moments; “fade-to-black” implications only.
  • Language: moderate profanity; no slurs as attack.
  • Substances: brief mentions or off-page use; no glamorization.
  • Themes: bullying, discrimination, mental health, grief handled sensitively; sexual assault may be referenced non-graphically (no depiction).

3 — Mature (≈16+)

  • Violence: stronger, occasional blood; non-torture cruelty.
  • Romance/sex: intimate situations; non-explicit descriptions (no anatomical detail).
  • Language: frequent strong profanity; slurs only in contextual/historical depiction.
  • Substances: on-page alcohol/drug use; consequences shown.
  • Themes: abuse, trauma, systemic hate; sexual assault referenced non-graphically; high-intensity horror without gore.

4 — Adult / Explicit (18+)

  • Violence: graphic/gory; torture depicted.
  • Sex: explicit sexual acts or fetish/kink detail.
  • Language: pervasive strong profanity; slurs in hostile context.
  • Substances: detailed hard-drug use/abuse.
  • Themes: sexual assault depicted; extreme psychological or body horror.

Never Allowed (any rating)

  • Sexual content involving minors or sexualization of minors.
  • Step-by-step instructions for self-harm/suicide or hard-drug manufacture.
  • Direct incitement to violence or hate against protected groups.

Reason Codes (attach to ratings) violence: none | mild | moderate | graphic sexual_content: none | alluded | non_explicit | explicit language: clean | mild | strong | severe substances: none | mention | use | abuse themes: [bullying, grief, mental_health, discrimination, assault, horror]

Example (JSON)

{
"audienceRating": {
"level": 2,
"label": "Teen",
"reasons": {
"violence": "moderate",
"sexual_content": "alluded",
"language": "moderate",
"substances": "mention",
"themes": [
"grief",
"bullying"
]
}
}
}

3.1 HTML Export


<div class="content-policy-violation">
<!-- original chunk preserved exactly -->
<p>She reached up and …</p>
</div>

3.2 Bookcicle Viewer

Which, in Bookcicle section viewer render similar to if a small chunk is rejected:

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce dui elit, fermentum eget pulvinar eget, aliquam id diam. Integer viverra sapien id turpis mattis, id vehicula est laoreet. Vestibulum ultricies et tellus nec pretium. Ut nec magna gravida, sagittis ligula eu, varius risus. Pellentesque tempus non erat a malesuada. Duis in eros a tellus mollis malesuada ac in dui. In hac habitasse platea dictumst. Duis urna magna, convallis quis laoreet vel, molestie nec erat.

Vivamus dignissim sodales lectus sed commodo. Quisque facilisis ultricies lacus id imperdiet. Phasellus lacinia sem in ante lobortis, vel aliquam diam aliquam. Sed lacinia posuere ligula eu efficitur. Sed aliquam dignissim dolor at feugiat. Etiam lobortis sem diam, in convallis nisi efficitur sit amet. Maecenas luctus placerat tellus ut mollis. Sed cursus nulla id ante dictum venenatis. Quisque eget imperdiet nunc, at ullamcorper leo. Quisque lacinia ornare sagittis.

The block is colour‑tinted with a orange border so you can quickly spot it. It also has a label text of Content Policy Violation to the top left of the border.

3.3 DOCX / Word / LibreWriter

[Policy Violation] Review this paragraph – model refused to process

If the section was skipped at moderation time (before the model), the comment reads:

[Policy Violation — pre‑check] Blocked by OpenAI Moderation

The underlying text is intact so you can edit/resubmit.


4. What To Do Next

If you see…Recommended Action
One or two violation blocksEdit or re‑phrase those passages in the section viewer Original tab, check the box to add this section to the rerun list (up to 5 sections) and run.
Many violation blocksConsider using the “flexible model” toggle when uploading or removing / summarising explicit sections first.
A block you believe is a false positiveOpen a support ticket. Include the passage and any context; we can appeal or fine‑tune thresholds.

5. FAQs

Q • Will Bookcicle ever delete my text? A: No. We never remove your words—blocked passages are echoed back so you remain in full control of edits.

Q • Why do some passages say “pre‑check” and others just ‘violation’?
A: “pre‑check” means the chunk was blocked by our moderation layer before hitting any language model. A plain “violation” label means the model itself refused or Bedrock’s baseline filter intercepted it.

Q • Do I pay for tokens that the model refused? A: Generally, no. But some models (notably Amazon) will charge for the input tokens used, and any output tokens up to the violation.

Q • Can I disable all filters? A: The baseline Bedrock filter cannot be disabled. Our own moderation layer can be set to "Light" inside Project Settings → Safety if you need more head‑room for edge‑case research, but the provider’s policy still applies.


✈️ Creating bold stories sometimes means flying close to the sun—our safety pipeline makes sure you don’t get burned.