Community · E2 · artifact verified

Cover YouTube spoilers with one Noul judgment per comment

A Chrome extension covers every YouTube comment the moment it appears, asks Jev one Noul question per comment, and keeps it covered whenever the probability says it discloses a concrete plot event.

01 · Role in the system

What Jev does here

Each comment in a batch of up to 20 is sent as state with one Noul question: does this comment reveal a concrete plot event, character fate, ending, twist, or match result of the video being watched, or of any title the user chose to protect? The question lives in the extension, carries explicit true/false criteria, and instructs the model to treat state as evidence, never instructions. A Cloudflare Worker proxies the request to the TypeSafe systemOne endpoint with the key held as a secret and no product wording, and returns one probability per comment. The extension compares each probability against a user-chosen threshold - 0.85 easygoing, 0.7 standard, 0.5 cautious - and every comment is covered before the verdict arrives; a network error, quota rejection, or malformed answer leaves it covered, and revealing is always an explicit, reversible user action.

Judged for what it discloses, not what it says

The rule is not a keyword blocklist in disguise. Its question names the outcomes that spoil - a concrete plot event, a character fate, an ending, a twist, a result - and its false criteria explicitly exempt opinions, reactions, praise, jokes, and questions, so a comment is hidden because it gives the story away, not because it contains the word dies. The question even carries its own injection defense: state text is evidence, never instructions, which matters when the text being judged is an arbitrary YouTube comment.

The wording of the rule is treated as a versioned asset. Changing it bumps RULE_VERSION, which invalidates cached verdicts, and the committed evaluation compares rule v1 against v2 on ten hand-written samples across English, Chinese, Japanese, and prompt injection - both versions 10/10, input tokens down about 9 percent. The README is careful to call this a regression check on a small set, not a production accuracy claim.

Covered first, judged second, failed closed

The ordering is the product: a comment is covered the moment it appears, the judgment arrives afterward, and a null probability is never safe. The runner treats an unanswered comment as checking and a failed one as failed, both still covered, so a quota rejection or a malformed payload degrades into a quieter YouTube, not a spoiler leak. Revealing is a user action with a Veil Keeper button left on the revealed comment so it can be covered again.

A proxy that never learns the question

The Worker between extension and API exists to hold the key, and it is deliberately wordless: the rule text is data sent by the client on each request, so the server never contains the word spoiler or any product copy. What leaves the machine is documented plainly - an anonymous install ID for quota accounting that is not forwarded to Jev, the comment text, the video title and channel, and any protected titles - with no cookies, account, or browsing history.

02 · Control boundary

Where Jev sits

Comments arrive covered and are batched 20 per request as state behind one Noul rule owned by the extension; probabilities return through a key-holding Worker, and deterministic client code owns thresholds, fail-closed rendering, and every reveal.

Code owns the loop, permissions, thresholds, validation, and side effects. Jev owns only the bounded judgments described above.

03 · Known limits

What this evidence does not prove

  • Jev sees comment text, video title, channel, and protected titles only; thumbnails, video content, and link destinations are never inferred, so those spoiler paths stay open.
  • The thresholds are user-tuned sensitivity, not accuracy guarantees: a cautious 0.5 covers more comments and more false positives.
  • The committed evaluation is 10 hand-written synthetic samples in three languages plus injection attempts - a regression check the author is careful not to overclaim, not a measured production accuracy number.
  • The proxy Worker is on the path by design; removing it means putting the API key inside the extension, which is not a real option.

04 · Attribution

Public sources

This is a Community record: the project was published by a third-party community author.

  • DearestCommunity · github · public · checked 2026-09-22
  • DearestCommunity · demo · public · checked 2026-09-22