You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: ground tweets in verifiable history so the quality filter passes
The quality filter was blocking 100% of tweets because the generator was
forced to cite breaking news, which is past Gemini's training cutoff and
therefore unverifiable (factual score ~0.2 -> below 0.65 threshold). The
filter was working correctly; the prompt steered into its blind spot.
- signals.py: add BBC World, BBC Middle East, Al Jazeera, Guardian World,
NPR World feeds so geopolitics/macro markets get real context (40->110 headlines)
- prove_the_loop.py: single-word signal matching with >=4 char tokens so
4-letter entities like "iran" match; drop digit tokens, expand stopwords
- prove_the_loop.py: reframe news context as background awareness and steer
line 2 to cite a VERIFIABLE HISTORICAL fact instead of breaking news
- prove_the_loop.py: 3-attempt quality-filter retry loop with shared groq_client
- prove_the_loop.py: expand SPORTS_KEYWORDS, add category-rotation logging
Verify 3 now passes on attempt 1 (score 0.73-0.88).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
f"\n\nBreaking news context (CITE THIS in your take):\n{news_context}"
251
-
"\n\nYour take MUST reference one specific detail from the breaking news above."
252
-
)
262
+
news_block=f"""
263
+
264
+
CURRENT SITUATION (background only — do NOT cite this directly):
265
+
{news_context[:400]}
266
+
267
+
Use this to understand the present moment. Your line-2 fact must be a
268
+
VERIFIABLE HISTORICAL event, established pattern, or institutional record
269
+
that a fact-checker can confirm from public record — NOT this breaking
270
+
news, which is too recent to verify."""
253
271
254
-
prompt=f"""You are Arke, an autonomous prediction market intelligence agent. You write sharp, analytical tweets that crypto-native traders respect and engage with.
272
+
prompt=f"""You are Arke, an autonomous prediction market intelligence agent.
273
+
Write a sharp analytical tweet that crypto-native traders respect.
255
274
256
275
Market: {question}
257
-
Current probability: {pct}% YES
258
-
24hr volume: ${vol24:,.0f} USDC
276
+
Probability: {pct}% YES
277
+
Volume: ${vol24:,.0f} USDC/24h
259
278
Resolves: {end_date}
260
279
Context: {context}{news_block}
261
280
262
-
TWEET STRUCTURE (follow exactly):
263
-
Line 1: State the event and the market's implied probability as a fact. One sentence. End with a period.
264
-
Line 2: Your take — agree or disagree — with exactly one specific, data-grounded reason. Start with "I think" or "I disagree —". End with a period.
281
+
TWEET STRUCTURE (3 lines, follow exactly):
282
+
Line 1: State the market and probability as fact. One sentence. End with period.
283
+
Line 2: Your take starting with "I think" or "I disagree —". MUST cite ONE
284
+
specific verifiable fact: a named event, year, organization, or number.
285
+
NOT vague phrases like "historical patterns" or "market dynamics".
265
286
Line 3: "Bet: {market_url}"
266
287
267
-
RULES:
268
-
- Total length under 240 characters including the URL
269
-
- The probability must appear as a specific percentage number
270
-
- Your reason must be specific — cite a mechanism, a historical pattern, or a named data point. Never vague generalities
271
-
- Slightly contrarian is better than agreeing with consensus
272
-
- No hashtags, no exclamation marks, no emojis, no ellipses
273
-
- No comma splices — each clause is its own sentence
274
-
- Do not start with "Market says" — vary the opening
275
-
- Return only the tweet text, nothing else
276
-
277
-
GOOD EXAMPLES:
278
-
"MicroStrategy holds $40B in Bitcoin with zero liquidation pressure. Market prices 55% chance they sell by May 31 — that contradicts every public commitment Saylor has made since 2020.
"Strait of Hormuz at 30% normal traffic by June. Iran has closed it twice before and reopened within weeks under economic pressure. The market is underpricing normalization.
0 commit comments