{
  "markdown": "# Blindspot\n\n![Blindspot](header.jpeg)\n\n**See what you're missing.**\n\nAn automated daily news publication that surfaces what's hidden in plain sight: the assumptions everyone makes, the trade-offs nobody names, and the connections that link unrelated stories.\n\nLive at [blindspot.news](https://blindspot.news).\n\n---\n\n## What It Does\n\nMost news tells you what happened. Blindspot tells you what's underneath: the hidden bet, the real disagreement, the thing no one is saying, and who concretely pays.\n\nEvery brief is structured the same way:\n\n| Section | What it shows |\n|---------|--------------|\n| **What happened** | Plain factual context, no analysis |\n| **Bottom line** | One sharp judgment sentence — not a summary |\n| **The hidden bet** | 2-3 assumptions the dominant narrative treats as settled but aren't |\n| **The real disagreement** | The actual fork in the road, not the surface argument |\n| **What no one is saying** | The obvious thing no major actor can afford to say out loud |\n| **Who pays** | Specific groups, concrete mechanisms of harm, timeline |\n| **Scenarios** | 3 plausible next states with the signal to watch for each |\n| **What would change this** | The specific evidence that would make the bottom line wrong |\n| **Prediction markets** | Live odds from Polymarket on questions the brief is about |\n\nThe analysis is informed by philosophical thinking (Kantian principle tests, Foucauldian power analysis, Nietzschean motive archaeology) but the output never names a philosopher or labels a framework. The frameworks are the engine, not the UI.\n\n---\n\n## Threads\n\nAfter all stories for the day are written, the agent looks back across them and finds non-obvious connections:\n\n- **Cause-effect chains** — \"the SCOTUS tariff ruling weakened Trump's leverage, which shifted the Iran ceasefire terms, which gave Spain cover to dissent\"\n- **Hidden dependency webs** — actors connected through dependencies invisible in any single brief\n- **Tension clusters** — multiple stories secretly about the same underlying question\n\nThreads sit below the day's stories with directional links between briefs.\n\n---\n\n## Pipeline\n\n```\nDiscover  →  Curate  →  Source  →  Markets  →  Analyze  →  Threads  →  Publish\n```\n\nRuns 4x daily via GitHub Actions:\n\n1. **Discover** — Exa search across 5 topics (tech, politics, geopolitics, economy, society) + Twitter trends\n2. **Curate** — Rank and select 5+ stories by genuine disagreement and stakes, ensure topic breadth\n3. **Source** — Pull 3-5 diverse articles per story via Exa\n4. **Markets** — Find related Polymarket odds before analysis (used as input, not just decoration)\n5. **Analyze** — Apply the analysis skill, write the brief with all 8 sections, pick a cover image from the source articles\n6. **Threads** — Read all briefs back and find cause-effect chains, dependency webs, and tension clusters\n7. **Publish** — Write JSON files, validate, commit to repo, Vercel auto-deploys\n\nThe whole pipeline runs through OpenCode + the analysis skill + OpenRouter (Sonnet 4.6) + the Frames Registry for paid APIs.\n\n---\n\n## Monorepo Structure\n\n```\nblindspot/\n├── skills/analysis/            # The analysis skill (SKILL.md + references)\n├── site/                       # Astro static site (blindspot.news)\n├── content/reports/            # Generated brief JSON, by date\n├── .philos/prompt.md           # Agent prompt for the daily pipeline\n├── .github/workflows/          # GitHub Actions cron (4x daily)\n└── opencode.json               # OpenCode config (OpenRouter provider)\n```\n\n### The analysis skill\n\nLocated at `skills/analysis/`. Installable in any agent harness:\n\n```bash\nnpx skills add https://github.com/microchipgnu/philos --skill analysis\n```\n\nThe skill defines:\n- **The workflow**: find the crux, pressure-test through 8 thinking angles, build the brief\n- **The output format**: the 8 sections above with strict length constraints\n- **Internal angles**: who controls the frame, what motive is disguised, what rule is bent, who bears invisible costs, what attachment distorts judgment, what good character would do, who is hiding behind \"no choice,\" what incentive structure makes this predictable\n\nThe angles are the philosophical engine. They never appear in the output.\n\n### The site\n\nAstro static site, deployed to Vercel. Reads JSON from `content/reports/` at build time. Pages:\n\n- `/` — today's briefs with hero story + grid\n- `/day/[date]` — any day's briefs with prev/next navigation\n- `/report/[date]/[slug]` — full brief page with all sections, cover image, related briefs, sources, prediction markets\n- `/topic/[slug]` — all briefs sharing a tag\n- `/actor/[slug]` — all briefs where a specific entity appears\n- `/og/[date]/[slug].png` — dynamic OG images (satori + resvg)\n- `/feed.xml` — RSS feed\n\nEach day page has a connection graph (modal) showing how stories connect through shared actors and explicit thread links.\n\n---\n\n## Development\n\n```bash\ncd site && npm install && npx astro dev\n```\n\nTo run the pipeline locally:\n\n```bash\nopencode run \"$(cat .philos/prompt.md)\"\n```\n\nRequires `OPENROUTER_API_KEY` and `AGENTWALLET_*` credentials in environment.\n\n---\n\n## Design Principles\n\n> See what you're missing.\n\n> The bottom line is a judgment, not a summary.\n\n> Cut anything that isn't surprising.\n\n> Every section must earn its place. If you have nothing genuinely insightful to say, delete it.\n\n> Philosophy is the engine, not the UI. If the analysis is good, it doesn't need a brand.\n\n> Take a position. \"It depends\" is not a judgment.\n\n---\n\n## Further Reading\n\n- [PRODUCT.md](PRODUCT.md) — full product spec, roadmap, positioning, comparable products\n- [skills/analysis/SKILL.md](skills/analysis/SKILL.md) — the analysis workflow\n- [.philos/prompt.md](.philos/prompt.md) — the agent prompt that drives the daily pipeline\n",
  "bytes": 5798,
  "sha": "d0432f2028de789e445e3f97cbef012fec7e458e1d01610bfe5ca3ba1fb3458c",
  "repo_slug": "microchipgnu/blindspot.news",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/skl_microchipgnu_blindspot_news_analysis_66d8573e/readme"
}