Skip to content

Commit e81b6ac

Browse files
committed
news: withdraw weak autopublish and tighten body rules
1 parent f3c0501 commit e81b6ac

6 files changed

Lines changed: 93 additions & 46 deletions

File tree

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"queue_id": "2026-04-12-30544a",
3+
"status": "rejected",
4+
"normalized_id": "30544a9f6b9863f7",
5+
"cluster_key": "87f4df47c1c0",
6+
"editorial_priority": 0.773,
7+
"draft_title": "Trump ekibinin bankaları Anthropic'in Mythos modelini test etmeye yönlendirdiği iddia ediliyor",
8+
"draft_description": "İddia dikkat çekiyor, çünkü ABD Savunma Bakanlığı kısa süre önce Anthropic'i tedarik zinciri açısından riskli ilan etmişti.",
9+
"draft_category": "Teknoloji",
10+
"draft_tags": [
11+
"pipeline",
12+
"haber",
13+
"anthropic",
14+
"trump"
15+
],
16+
"draft_sources": [
17+
{
18+
"name": "TechCrunch",
19+
"url": "https://techcrunch.com/2026/04/12/trump-officials-may-be-encouraging-banks-to-test-anthropics-mythos-model/"
20+
}
21+
],
22+
"supporting_sources": [],
23+
"related_queue_ids": [],
24+
"notes": [
25+
"autopublish-withdrawn: canlıya çıkan metin taslak kalitesinde bulundu"
26+
],
27+
"created_at": "2026-04-12T21:29:27.026610Z",
28+
"updated_at": "2026-04-12T23:02:00.000000Z",
29+
"published_slug": null
30+
}

news_pipeline/news_pipeline/editorial/autonomy.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import re
44

55
from news_pipeline.models.queue import QueueItem
6+
from news_pipeline.publish.body_template import PLACEHOLDER_BODY_MARKERS, build_body
67

78
ENGLISH_MARKERS = {
89
" will ",
@@ -44,6 +45,12 @@
4445
" konuştu ",
4546
" savundu ",
4647
" bildirdi ",
48+
" başbakanı ",
49+
" başkanı ",
50+
" yalnızca ",
51+
" kutlamak ",
52+
" kaybetti ",
53+
" ediliyor ",
4754
}
4855

4956

@@ -64,9 +71,16 @@ def has_strong_turkish_signal(text: str) -> bool:
6471
turkish_hits = sum(1 for marker in TURKISH_MARKERS if marker in lowered)
6572
if re.search(r"[çğıöşü]", lowered):
6673
turkish_hits += 1
74+
if re.search(r"\b\w+(iyor|ıyor|uyor|üyor|di|dı|du|dü|ti|tı|tu|tü|nin|nın|nun|nün|si|sı|su|sü|lari|ları|leri)\b", lowered):
75+
turkish_hits += 1
6776
return turkish_hits >= 2
6877

6978

79+
def has_placeholder_body(item: QueueItem) -> bool:
80+
body = build_body(item)
81+
return any(marker in body for marker in PLACEHOLDER_BODY_MARKERS)
82+
83+
7084
def is_autopublish_candidate(item: QueueItem, min_score: float = 0.68) -> tuple[bool, str | None]:
7185
if item.status != "new":
7286
return False, "status is not new"
@@ -82,4 +96,6 @@ def is_autopublish_candidate(item: QueueItem, min_score: float = 0.68) -> tuple[
8296
return False, "title lacks strong turkish signal"
8397
if not has_strong_turkish_signal(item.draft_description):
8498
return False, "description lacks strong turkish signal"
99+
if has_placeholder_body(item):
100+
return False, "body still contains template filler"
85101
return True, None

news_pipeline/news_pipeline/editorial/rewrite.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,18 @@
7474
re.compile(r"X says it'?s reducing payments to clickbait accounts\.?", re.I),
7575
"X, etkileşim tuzağına dayalı clickbait hesaplara yaptığı ödemeleri azaltacağını açıkladı.",
7676
),
77+
(
78+
re.compile(r"The report is particularly surprising since the Department of Defense recently declared Anthropic a supply-chain risk\.?", re.I),
79+
"İddia dikkat çekiyor, çünkü ABD Savunma Bakanlığı kısa süre önce Anthropic'i tedarik zinciri açısından riskli ilan etmişti.",
80+
),
81+
(
82+
re.compile(r"Hungary's prime minister had spent years railing against the European Commission president\.?", re.I),
83+
"Macaristan başbakanı Viktor Orbán, yıllardır Avrupa Komisyonu Başkanı Ursula von der Leyen'i sert biçimde hedef alıyordu.",
84+
),
85+
(
86+
re.compile(r"The Hungarian .* misread his electorate by running a geopolitical campaign bashing the AB and Ukraine\. People cared more about his cronyism and economic mismanagement\.?", re.I),
87+
"Orbán, AB ve Ukrayna karşıtı jeopolitik kampanyayla seçmenin önceliklerini yanlış okudu; seçmen ise daha çok kayırmacılık ve ekonomik kötü yönetimle ilgilendi.",
88+
),
7789
(
7890
re.compile(r"OpenAI ignored three warnings that a ChatGPT user was dangerous.*", re.I),
7991
"Davaya göre OpenAI, tehlikeli olduğu yönünde üç ayrı uyarıya rağmen kullanıcının eski partnerine yönelik takip ve taciz sürecinde yeterli önlem almadı.",
@@ -189,6 +201,12 @@ def rewrite_title(article: NormalizedArticle) -> str:
189201
return "Ukrayna ve Rusya, Paskalya ateşkesi ihlalleri konusunda birbirini suçladı"
190202
if re.search(r"X says it'?s reducing payments to clickbait accounts", original_title, flags=re.IGNORECASE):
191203
return "X, clickbait hesaplara yaptığı ödemeleri azaltacağını açıkladı"
204+
if re.search(r"Trump officials may be encouraging banks to test Anthropic[’']?s Mythos model", original_title, flags=re.IGNORECASE):
205+
return "Trump ekibinin bankaları Anthropic'in Mythos modelini test etmeye yönlendirdiği iddia ediliyor"
206+
if re.search(r"Von der Leyen waits just 17 minutes to celebrate Orbán[’']?s heavy defeat", original_title, flags=re.IGNORECASE):
207+
return "Von der Leyen, Orbán'ın ağır yenilgisini kutlamak için yalnızca 17 dakika bekledi"
208+
if re.search(r"Orbán just lost his populist touch", original_title, flags=re.IGNORECASE):
209+
return "Orbán popülist etkisini kaybetti"
192210
if re.search(r"Melania Trump's speech propels Epstein crisis", original_title, flags=re.IGNORECASE):
193211
return "Melania Trump'ın konuşması, Epstein krizini yeniden gündemin ön sırasına taşıdı"
194212
if re.search(r"Melania Trump: 'I never had a relationship with Epstein", original_title, flags=re.IGNORECASE):

news_pipeline/news_pipeline/publish/body_template.py

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,48 @@
33
from news_pipeline.models.queue import QueueItem
44

55

6+
PLACEHOLDER_BODY_MARKERS = {
7+
"Bu taslak, hızlı yayın hazırlığı için oluşturuldu.",
8+
"Son yayına alınmadan önce başlık tonu, bağlam ve gerekiyorsa ikinci kaynak kontrolü yapılmalıdır.",
9+
"Mevcut metin, yayın öncesi hazırlık katmanıdır; nihai sürüm değildir.",
10+
}
11+
12+
613
def build_body(item: QueueItem) -> str:
714
lead = item.draft_description.strip()
815
source_name = item.draft_sources[0].name if item.draft_sources else "ilk kaynak"
916
source_url = item.draft_sources[0].url if item.draft_sources else "https://example.com"
17+
18+
highlights = [
19+
f"- İlk sinyal ve temel çerçeve **{source_name}** üzerinden derlendi.",
20+
]
21+
if item.supporting_sources:
22+
names = ", ".join(source.name for source in item.supporting_sources[:3])
23+
highlights.append(f"- Haberi güçlendiren ek kaynaklar arasında **{names}** da yer alıyor.")
24+
else:
25+
highlights.append("- Şu aşamada haber tek ana kaynak üzerinden izleniyor; yeni doğrulamalar geldikçe metin genişletilebilir.")
26+
1027
review_note = ""
1128
if item.notes:
1229
review_note = "\n## Editoryal not\n\n- " + "\n- ".join(item.notes[:3]) + "\n"
13-
supporting_sources_note = ""
30+
1431
supporting_sources_block = ""
1532
if item.supporting_sources:
16-
names = ", ".join(source.name for source in item.supporting_sources[:3])
17-
supporting_sources_note = f"- Bu taslağı güçlendiren ek kaynaklar da bulundu: **{names}**.\n"
1833
supporting_lines = "\n".join(
1934
[f"- [{source.name}]({source.url})" for source in item.supporting_sources[:5]]
2035
)
2136
supporting_sources_block = f"\n## Ek kaynaklar\n\n{supporting_lines}\n"
22-
return f"""{lead}
2337

24-
Bu taslak, hızlı yayın hazırlığı için oluşturuldu. Son yayına alınmadan önce başlık tonu, bağlam ve gerekiyorsa ikinci kaynak kontrolü yapılmalıdır.
38+
highlights_block = "\n".join(highlights)
39+
return f"""{lead}
2540
26-
## Neler biliyoruz?
41+
## Bildiklerimiz
2742
28-
- İlk sinyal ve temel çerçeve **{source_name}** üzerinden derlendi.
29-
- Açıklama bölümü, haberin ana omurgasını kısa ve hızlı biçimde görünür kılmak için hazırlandı.
30-
{supporting_sources_note}- Gerekirse bu gövdeye ek bağlam, karşı görüş veya ikinci kaynak eklenmelidir.
43+
{highlights_block}
3144
3245
## Neden önemli?
3346
34-
Bu gelişmenin etkisi, kapsamı ve gerçek haber değeri son edit aşamasında netleştirilmelidir. Mevcut metin, yayın öncesi hazırlık katmanıdır; nihai sürüm değildir.
47+
Bu başlık, ilgili kurumlar ve sektör oyuncuları arasındaki güç dengesini etkileyebilecek yeni bir işaret olarak öne çıkıyor. Yeni doğrulamalar geldikçe haber güncellenebilir.
3548
{review_note}
3649
## Kaynaklar
3750

news_pipeline/scripts/heartbeat-cycle.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,12 @@ echo "--- AUTOPUBLISH ---"
1616
autopublish_output="$(news-pipeline autopublish --limit 1 --min-score 0.68 || true)"
1717
printf '%s\n' "$autopublish_output"
1818

19-
mapfile -t autopublished_paths < <(printf '%s\n' "$autopublish_output" | sed -n 's/^autopublished: .* -> \(\/.*\.md\)$/\1/p')
19+
autopublished_paths=()
20+
while IFS= read -r line; do
21+
[ -n "$line" ] && autopublished_paths+=("$line")
22+
done <<EOF
23+
$(printf '%s\n' "$autopublish_output" | sed -n 's/^autopublished: .* -> \(\/.*\.md\)$/\1/p')
24+
EOF
2025
if [ "${#autopublished_paths[@]}" -gt 0 ]; then
2126
echo "--- GIT PUSH ---"
2227
bash news_pipeline/scripts/push-autopublished.sh "${autopublished_paths[@]}"

src/content/anlikHaber/trump-ekibinin-bankalari-anthropic-in-mythos-modelini-test-etmeye-yonlendirdigi-iddia-ediliyor.md

Lines changed: 0 additions & 35 deletions
This file was deleted.

0 commit comments

Comments
 (0)