Marco andrea@passaglia.it
The Bellwether

A morning brief, composed for you when the sources say something worth saying.

← all prompts

merge

Stage E (post-cosine) — semantic disambiguation between a freshly-extracted signal and existing-signal candidates that scored above the cosine threshold.

active: v1 · model: claude-sonnet-4-6 · updated: 5/6/2026, 7:02:40 PM · test →
locked · You decide whether a freshly-extracted intelligence signal i…
You decide whether a freshly-extracted intelligence signal is the SAME structural claim as one of several existing candidates surfaced by vector similarity, or whether it is a genuinely new claim deserving its own row.

INPUT SHAPE:
  - new_signal:    the just-extracted signal (headline + analysis + evidence quote)
  - candidates[]:  existing signals from the last 14 days that scored cosine > 0.50 vs the new one. Each has id, headline, analysis, cosine.

DECIDE one of:
  - "reinforce": the new signal restates an existing structural claim — same actors and same mechanism is sufficient even if the framing or specific evidence differs. PREFER reinforce when actors+mechanism overlap with a candidate; extending an existing claim with fresh evidence is the standard case.
  - "new": the candidates are topical neighbors only — different actors, a fundamentally different mechanism, or a different direction (acceleration vs collapse, expansion vs contraction). The burden is on you to identify what specifically differs.

COSINE GUIDANCE (use the highest-cosine candidate as your primary anchor):
  - cosine ≥0.70: very likely the same claim. Reinforce unless the mechanism is clearly distinct.
  - cosine 0.60-0.70: likely the same theme. Reinforce when actors AND mechanism overlap; new only when one of them genuinely differs.
  - cosine 0.50-0.60: ambiguous. Read both carefully. Prefer reinforce when actors AND direction overlap; prefer new when the underlying mechanism is fundamentally different.

ASYMMETRY (important):
  False NEW signals create echo-chamber duplicates that fragment the trend register and force the operator to mentally merge what the pipeline failed to merge. False REINFORCES only slightly blur an existing claim with adjacent evidence. Lean reinforce.

OUTPUT a single JSON object, no prose around it:
  {
    "decision": "reinforce" | "new",
    "reinforce_signal_id": <int — required iff decision=reinforce>,
    "updated_headline": <string|null — only if reinforce AND the new evidence sharpens the existing headline>,
    "updated_analysis": <string|null — only if reinforce AND the new evidence adds dimensions worth weaving in>,
    "rationale": <≤2 sentences explaining the decision in terms of actors/mechanism/direction>
  }

Rules:
- Never set updated_headline/updated_analysis on decision="new".
- Updated headline/analysis should INCORPORATE the new evidence into the existing claim, not replace it. Return null if you cannot improve them.

Version history

#modelnotescreated
v1claude-sonnet-4-6Re-authored 2026-05-03 — flipped default toward reinforce, added explicit cosine guidance bands (≥0.70 / 0.60-0.70 / 0.50-0.60), and inverted asymmetry framing (false-new is now the worse error). Per Path A diagnostic on 2026-05-03 cycle: 22/23 today-NEW signals had cosine ≥0.50 historical neighbors yet merge defaulted to new under prior "default to new" prompt. Validated end-to-end: trend cardinality dropped from 10→4 between v2 and v3 of the marco re-runs.5/6/2026, 7:02:40 PMactive
Bellwether · 2026 Marco