Claim & narrative alerts to Yoriki and responses back, by the hour (Israel time) · this card has its own range
Last
Loading…
๐ก๏ธ
Active Claims
0 manual
0
Claims available to match โ current total, not affected by the period
๐ฅ
Total Tweets Ingested
0
Scraped from followed X feeds
๐
Social Posts Ingested
0
Facebook & Instagram posts
โ๏ธ
Replies Taken Up
0
Volunteers who copied a suggested reply
๐ฏ
Matches by Claim Source
0
All recorded matches, by the source of the matched claim
๐ง
LLM Matching Pipeline (since restart)
Matching Run: Never
0
posts evaluated since restart
Filtered
0(+0 new)
Sent to LLM
0(+0 new)
Delivered + queued
0(+0 new)
Off-stance
—filter off
โณ
Human Review Queue
0
0 items awaiting review โ current queue, not affected by the period
๐Pipeline Lock Active:An admin operation is currently in progress.
LOCKED
Syncing Twitter feeds...0%
Syncing social media feeds...0%
Re-running matching engine...0%
โ ๏ธGCP Connection Error: Your local Google Cloud credentials are expired or need re-authentication. Running manual syncs from BigQuery will fail.
gcloud auth application-default login
๐
Refresh & Sync
๐งช
Testing & Matching
๐ค
Autopilot
โช IDLE / STOPPED
Last Run: --Next Run: --
Interval:min๐ฅ๏ธ PER-INSTANCE
Matching in progressโฆ0%
Current Phase:โช IDLE
No active cycle executing. Autopilot will trigger on configured schedule.
No Autopilot progress logs recorded yet. Logs will stream here during automated cycles.
FakeReporter Feed
Live API
Consumes live claim cards from FakeReporter X Feed. Rebuilds LLM cache automatically on incoming events.
Live Feed Contents (Active Claims Metadata)
Loading live feed contents...
Bodkim Feed
0 claims
Consumes debunked claim cards from the @bodkim2022 fact-checker X feed. Gated by the "Enable @bodkim2022 Claims Feed" flag in Config.
Live Feed Contents (Active Claims Metadata)
Loading @bodkim2022 claims...
True.org.il EWR Feed
EWR API (Status 77)
Consumes reviewed fact-checks from the True.org.il Election War Room (EWR) API and pushes back verified (claim, post) matches.
True.org.il Claims
Loading True.org.il claims...
Mako / N12 ("ืืืกื ื ืช") Feed
0 claims
Consumes debunked claim cards from mako / N12's "ืืืกื ื ืช" election fact-check sheet. Polled hourly and gated by the "mako/n12" claim feed toggle in Config.
Live Feed Contents (Active Claims Metadata)
Loading Mako / N12 claims...
Manual Claim Feed
0 claims
Claim cards entered by an analyst through โAdd Manual Claimโ. Submitting is the vouch, recorded against the analyst's email; the submit-time check is advisory.
Live Feed Contents (Active Claims Metadata)
Loading manual claims...
De Novo Feed
0 claims
Claims discovered de novo from unmatched posts by our native dual-search grounding detector (denovo_*), alongside historical Yoriki de novo cards (ydn_*). Evaluated by our evidence grader with verdict shown on each card.
Live Feed Contents (Active Claims Metadata)
Loading de novo claims...
Ad-Hoc URL Analyst
Live LLM Matcher
Submit a social media post URL to run a live semantic-based evaluation against the active claims in our registry.
Supports Facebook, Twitter/X, Instagram, TikTok, Telegram, and YouTube URLs. If the post exists in the system's local caches, its text will be retrieved automatically.
Provide text here if the URL is new/un-scraped or if you want to test how a specific variation of a rumor behaves.
๐ [GLOBAL] Shared across all team members and production deployments via PostgreSQL.๐ฅ๏ธ [PER-INSTANCE] Saved independently for your specific local handle or production environment.
๐กEach card saves on its own โ the ๐พ Save button lights up when that card has unsaved changes. Feature flags save the moment you toggle them.
Control claim matching and incremental polling per claim feed specifically for this running server instance. Use the Master toggle to turn all claim feeds ON or OFF together, or toggle individual feeds below.
📧 Alert sender (Gmail)checking…
Assign team permissions by Google account email:
โข Admin: Full pipeline control, configuration editing, model switching, and pipeline reset.
โข Analyst: View metrics, execute feed syncs, analyze URLs, export CSVs, and review human queue items.
EmailLast sign-inRole
One topic per line, in your own words — Hebrew or English. These are embedded, not matched as keywords, so a phrase describing the subject works better than a list of names.
Also one per line. These are load-bearing, not decorative. A post is scored by how much closer it sits to the nearest in-scope line than to the nearest out-of-scope line — raw similarity on this model runs 0.7–1.0 for almost everything, so without counter-examples there is nothing to compare against and the filter does nothing at all. Describe the material you actually see and do not want.
Editing either list invalidates the calibrated threshold, because the score is only meaningful against a fixed set of anchors. Nothing is filtered until a threshold has been measured against these exact lines.
Enter a list of Twitter handles (one per line, e.g. @FakeReporter or FakeReporter). The ingestion poller will scrape posts from all specified accounts.
Format: one bare handle per line โ e.g. AmitSegal. Twitter handles have never been URL-wrapped. Profile URLs are accepted: they are converted to handles when you next save this list, so pasted URLs will be replaced by handles here. Matching works either way โ the pipeline converts them as it builds its query.
Twitter HandleStanceAction
Enter a list of Facebook profile URLs or handles (one per line, e.g. AmitSegalNews).
Format: one bare handle per line โ e.g. netanyahu, or the numeric id 100004245481687 from a profile.php?id= link. Group, reel and share links are not profiles and are dropped. Profile URLs are accepted: they are converted to handles when you next save this list, so pasted URLs will be replaced by handles here. Matching works either way โ the pipeline converts them as it builds its query.
Facebook HandleStanceAction
Enter a list of Instagram profile URLs or handles (one per line, e.g. amit_segal).
Format: one bare handle per line โ e.g. adkanorg. Profile URLs are accepted: they are converted to handles when you next save this list, so pasted URLs will be replaced by handles here. Matching works either way โ the pipeline converts them as it builds its query.
Instagram HandleStanceAction
Enter a list of TikTok handles or profile URLs (one per line, e.g. amit_segal). Pulled from the Intel BigQuery tiktok_posts table โ requires the Enable TikTok Ingestion feature flag.
Format: one bare handle per line โ e.g. bnetanyahu (no @). Profile URLs are accepted: they are converted to handles when you next save this list, so pasted URLs will be replaced by handles here. Matching works either way โ the pipeline converts them as it builds its query.
TikTok HandleStanceAction
מסרים ליום הבחירות – ערוץ החדשות וסמית. Its channel table is read hourly and its colours are reconciled against the feed stances below: אדום → right, כחול is satisfied by neutral or left. Its filter column reaches the news filter through Yoriki's own syncer, and its message columns are Smith's — we read neither.
Enter the Google Doc URL containing the dynamic matching instructions.
โ ๏ธThe doc must be shared "Anyone with the link" (Viewer). The server reads it without signing in, so a restricted doc fails to load and both matching and Test Model will not use its prompt.
Google Doc with instructions to distill a FakeReporter investigative report into its core fabricated factual claims (a JSON array of core_factual_premise). Applied once per downloaded report to derive the matching claims.
โ ๏ธThe doc must be shared "Anyone with the link" (Viewer) โ the server reads it unauthenticated. Leave blank to disable factualization.
Google Doc with the criteria used by the junk-claim classifier to decide whether a claim is actionable (a real fabricated-claim debunk) vs promo/meta noise. Applied at ingestion and by the prune backfill.
โ ๏ธThe doc must be shared "Anyone with the link" (Viewer) โ the server reads it unauthenticated. Leave blank to use the built-in default criteria.
Google Doc with the prompt used to generate the post-specific debunk delivered to BOTH the Yoriki alert and the True.org.il EWR endpoints. Placeholders: {{CLAIM_CANONICAL}}, {{DEBUNK_FACTS}}, {{SOURCE_LINK}}, {{POST_TEXT}}.
โ ๏ธThe doc must be shared "Anyone with the link" (Viewer) โ the server reads it unauthenticated. Leave blank to use the built-in default prompt.
Google Doc with the prompt used to generate the web-grounded, per-recipient (male/female) debunk wordings fanned out via Yoriki (requires the "Generate Debunk Variants" flag). Placeholders: {{COUNT}}, {{CLAIM_CANONICAL}}, {{DEBUNK_FACTS}}, {{SOURCE_LINK}}, {{POST_TEXT}}, {{LENGTH_RULE}}.
โ ๏ธThe doc must be shared "Anyone with the link" (Viewer) โ the server reads it unauthenticated. Leave blank to use the built-in default prompt.
Google Doc with the P0.2 adversarial grounding-verifier prompt โ the second pass that rejects weak auto-delivery-lane matches (confidence โฅ 0.70; requires the "Adversarial Grounding Verifier" flag). Edit it to tune how strict P0.2 is (e.g. accept narrative-level matches vs demand specific named details). Placeholders: {{claim_canonical}}, {{key_entities}}, {{platform}}, {{post_text}} (written as ${โฆ} in the doc). Return contract fixed: { "grounded": boolean, "reason": "โฆ" }.
โ ๏ธThe doc must be shared "Anyone with the link" (Viewer) โ the server reads it unauthenticated. Leave blank to use the built-in default prompt.
Google Sheet driving mako's election fact-check desk. Polled hourly; rows marked fake become claims with source feed mako. Only rows never seen before are added โ a row deliberately left out on a previous poll is not re-added.
โ ๏ธThe sheet must stay shared "Anyone with the link" (Viewer) โ the server reads its CSV export unauthenticated. Leave blank to turn the source off.
Google Doc with the P2 debunk-quality verifier prompt โ evaluates whether the rebuttal refutes the post's claim with concrete contradicting evidence (confidence โฅ 0.70; requires the "Debunk Quality Check" flag). Placeholders: {{post_text}}, {{claim_canonical}}, {{debunk}} (written as ${โฆ} in the doc). Return contract fixed: { "ok": boolean, "reason": "โฆ" }.
โ ๏ธThe doc must be shared "Anyone with the link" (Viewer) โ the server reads it unauthenticated. Leave blank to use the built-in default prompt.
Negative narratives
— a frame to counter, not a claim to debunk. No fact-check behind it, so nothing above applies.
Decides whether a post promotes one of the narratives in the library. Placeholders: {catalogue} (the library, with each narrativeโs markers and exclusions โ never its replies) and {text}. Returns {"narrative_id", "pushes", "evidence", "why"}.
โ ๏ธThe doc must be shared "Anyone with the link" (Viewer) โ the server reads it unauthenticated. There is no built-in fallback: blank or unreadable and the narrative path throws rather than guessing. Copied verbatim from Reply-assistant-pwa โ the 37-case gold set was measured on these exact words, so an edit is a decision.
Drafts one counter-argument aimed at this post, choosing an angle from the narrativeโs approved material. Placeholders: {narrative}, {material}, {facts}, {post}, {max}. Returns {"reply", "angle"}.
โ ๏ธThe doc must be shared "Anyone with the link" (Viewer) โ the server reads it unauthenticated. There is no built-in fallback: blank or unreadable and the narrative path throws rather than guessing. Copied verbatim from Reply-assistant-pwa โ the 37-case gold set was measured on these exact words, so an edit is a decision.
Reads the draft back independently: does it answer this post, read its stance correctly, and stay inside the approved material? Placeholders: {post}, {reply}, {material}. Returns three booleans plus fit. The gate the whole path leans on โ a drafter given a narrative always produces something.
โ ๏ธThe doc must be shared "Anyone with the link" (Viewer) โ the server reads it unauthenticated. There is no built-in fallback: blank or unreadable and the narrative path throws rather than guessing. Copied verbatim from Reply-assistant-pwa โ the 37-case gold set was measured on these exact words, so an edit is a decision.
The second gate, run only after the fit check passes: is the post's message — what it came to say — the narrative, or is the narrative merely touched in passing? Placeholders: {narrative}, {post}, {reply}. Returns post_message plus pass. A failure records under the same fit_rejected lane as the fit check, because both answer "do not send this one".
It exists because the matcher's false positives are posts that mention a narrative without promoting it. Calibrated by Yoriki on 201 reviewer verdicts: it keeps 113 of 135 approved replies and removes 35 of 66 rejected or off-narrative ones.
โ ๏ธThe doc must be shared "Anyone with the link" (Viewer) โ the server reads it unauthenticated. There is no built-in fallback: blank or unreadable and the narrative path throws rather than guessing. Copied verbatim from Reply-assistant-pwa.
Select the active LLM engine for post matching and classification.
Select the upstream provider for followed Facebook, Instagram, TikTok, and X/Twitter feeds on this instance.
Select how post ingestion boundaries are enforced across all Twitter and non-Twitter social media feeds.
Specify the start date for data matching & synchronization (e.g., 20-07-2026).
Specify the end date for data matching & synchronization (e.g., 25-07-2026).
Set the maximum number of recent posts to retrieve per manual sync. Enter 0 to use date cutoff filters only.
โ๏ธ Live Dispatch
Pause outbound volunteer alerts to Yoriki during overnight hours so volunteers are not disturbed late at night. Matching, scraping, and claim verification continue running 24/7 โ any matches found during the moratorium window are queued and automatically delivered to Yoriki when quiet hours end (07:00 AM IDT).
Default: 23:00 (11:00 PM IDT)
Default: 07:00 (07:00 AM IDT)
๐ฆ Queued Alerts: 0 matches waiting for morning delivery
โธ๏ธ Not Set
Hold outbound Yoriki alerts for a dated stretch โ Yom Kippur, a chag, election day. Matching, scraping and claim verification keep running; matches found during the pause are queued and delivered together once it lifts. The window is Israel local time and lapses on its own once it has passed, so there is nothing to switch back off.
Everything queued is released the minute the pause lifts, so set Resume At to when volunteers are actually back โ pick the next morning rather than the moment the fast ends if you would rather not hand them a day's backlog at nightfall.
A view setting: review-queue items whose post is older than this are hidden from the list, not closed โ nothing is removed and a "Show them" link brings them back. Cluster buttons still act on the hidden items of their claim. Volunteers take up about 60% of alerts on posts under a day old and 17% at 2โ4 days. 0 shows everything.
Twitter Feeds Ingestion
Ingestion statistics and scraped tweet counts for secondary followed X feeds.
0 feeds
Loading feeds stats...
Showing 0 of 0 feeds
Page 1 / 1
TikTok Feeds
Followed TikTok accounts and their ingested posts (Intel BigQuery tiktok_posts). Requires the Enable TikTok Ingestion feature flag + a Refresh Social Media Feeds.
๐ต 0 accounts
Loading TikTok accounts...
Audit & Pipeline System Logs
Real-time interleaved log stream of media extractions, Yoriki webhook dispatches, and raw terminal activity.
How many new posts each feed contributed on each sync, most recent first. Recorded per incremental / autopilot cycle for this instance.
Feed
Platform
Total posts
Runs
Last ingested
Loadingโฆ
Time
Feed
Platform
New posts
Loadingโฆ
Upstream Source Health
Whether each claims source is still being polled, and whether our pushes to true.org.il still land.
A source that stops is otherwise invisible โ nothing arrives, so nothing looks wrong.
Loadingโฆ
Social & X Posts Ingestion (Xpoz & Bright Data)
The posts side: whether the Xpoz (X / Twitter) and Bright Data (Facebook, Instagram & TikTok) syncs are running,
and whether posts are actually landing. Broken out per platform, because one can stop while the others keep arriving โ
and the volume from the rest hides it.
Loadingโฆ
๐ Search posts & matches
Describe what you are looking for in English or Hebrew โ you do not need the id, and
you do not need to remember it exactly. Or paste an id, a handle or a post link for an exact lookup.
Retired and withdrawn claims are included and are labelled as such.
Range
Report
A description costs one translation call and one embedding call, so it runs when you press
Enter โ never as you type. An id runs neither.
Add a Manual Claim Card
Register a misinformation claim into the active registry by hand, for claims no feed has picked up. It starts matching on the next cycle.
โน๏ธ A manual claim is filed not evidence-based unless you tick the vouch box, so every confident match waits in the Human Review Queue rather than auto-delivering. Ticking it is you taking that call.
Debunk images
A small library of graphics that ride along with an alert, so a volunteer publishing a rebuttal has something to attach. Upload once, then pick the same card for as many claims as it answers.
ℹ️ Most alerts carry no image, and that is normal. A curated set of around a hundred covers roughly four alerts in five; nothing treats an absent image as a failure. Images are never captured from the posts we match — that media is the fake itself. PNG, JPEG, GIF or WebP, up to 2 MB; the limit is about memory while serving, not storage. Delete on a card removes the image itself, for good — it is not the same as Remove on a claim, which only unlinks it. An image still attached to something has to be unlinked there first, and one that has already gone out asks again before it is withdrawn.
Claim feed
Every claim currently matching, whether or not anything is queued against it. Check where its source link points, fix it on a manual claim, and attach a graphic from the Debunk Images library.
ℹ️ An image attached here goes out with every future alert for this claim, on all of its matches. Alerts already sent are untouched — the link is resolved when an alert is sent, not stored on it. To give one alert a different graphic, use the per-match strip on its review card instead.
Negative narratives
A recurring frame worth answering, with the counter-arguments to answer it. Unlike a claim card there is no fact-check behind it — it may be true in its parts and still be worth countering.
ℹ️ Nothing grades a narrative card. A manual claim gets an automatic second opinion on its debunk; this does not, because there is no fact-check to check. What stops a bad match is the Does not count list below, and what stops a bad reply is an independent fit check when one is drafted.
Historical Matches Registry (0)
Complete audit log of all matched posts (โฅ50% confidence) including auto-deliveries, pending HRQ, approved, and rejected items.
Custom
Loading historical match records...
Showing 0 of 0 sends
Page 1 / 1
Non-Twitter Social Media (Facebook & Instagram)
Discovered Facebook pages, groups, and Instagram accounts encountered via Intel data stream.
โน๏ธ Group Name Resolution: Public Facebook groups display their resolved Hebrew group names. Private/Closed Facebook groups restrict public metadata crawlers, so their Group IDs (e.g. Facebook Group (ID: 830348950701828)) are displayed.
Facebook Accounts
0
Instagram Accounts
0
Total Posts Ingested
0
Loading Facebook & Instagram accounts...
๐ท๏ธ Review Keyword & Entity Pre-Filter Index
Dynamically extracted entities, proper names, organizations, and key terms used by Option B to prune 80%+ unrelated LLM calls.
๐
Active Claims
0
Registered active claims
๐ท๏ธ
Explicit Entities
0
People, organizations, places
โก
Key Patterns
0
Combined regex matcher rules
๐ก๏ธ
Pre-Filtered Saved
0
LLM calls saved at $0 cost
#
Entity / Key Term
Type
Associated Claim ID
Canonical Statement
Loading entity & keyword index...
Showing 0 of 0 terms
Page 1 / 1
Outcomes โ TP / FP Review
First-party true/false-positive signals from human review (HRQ), Yoriki volunteer feedback, historical spreadsheets, and PWA engagement โ resolved to one verdict per match. Keyed by match_uid. Yoriki fans one alert out to several volunteers, so a definitive tp AND a definitive fp can both land on the same match โ that's Contested (disagreement), kept separate from a confirmed FP (nobody found it acceptable).
๐ฐ LLM Token Usage & Cost Accounting
Real-time token metrics across input, thinking/reasoning, and output tokens per LLM model engine.
๐ก Model Pricing Schedule (per 1,000,000 tokens):
How long from detecting a post to dispatching its alert. It counts alerts we SENT, not alerts that reached a volunteer (SOC-188): the filter is yoriki_pushes.success, which is true for a push Yoriki accepted and then deliberately withheld, and for one that drew no recipients and reported no status. Restricted to confirmed notifications the population falls from 936 to 197 and the median from 9.2h to 2.0h — so read this as how fast we got it out of the door, never as time-to-a-volunteer.
๐ Metric:
๐ฏ Target:
๐ Time Range:
๐ Platform:
โฐ Window:
๐ค Review:
Median Delivery Latency
โ
50th percentile (resilient to overnight outliers)
Mean Delivery Latency
โ
Avg time from published_post_time to yoriki_delivery_time
Tracked Deliveries
โ
Total Yoriki deliveries matching active filters
Platform
Post URL
Published Post Time (IDT)
Yoriki Delivery Time (IDT)
Latency Duration
Loading delivery latency analytics...
Page 1 of 1
Loading…
Loading…
๐ณ๏ธ Post-Election Claim Review
The election is over. Review claims in the selected time range, generate LLM election-relevancy recommendations, and withdraw/retire obsolete election-day or pre-election claims.
Time Range
Loading claimsโฆ
๐งญ Post-Election Narrative Review
The election is over. Review negative narratives in the selected time range, generate LLM election-relevancy recommendations, and retire obsolete election-specific narratives.
Enter the details of a new misinformation claim card. The pipeline will immediately update vector & entity indexes so all posts can be evaluated against this new claim.
🖼️ Choose a debunk image
For . The link is resolved when the alert is sent, so changing or removing it takes effect on the very next alert — including a re-delivery from the archive. Upload a new one from the Add Claim tab.