№ 002 · NOTEBOOK · DENSE VIEW
Code, writing, reading, calibration. The dense view of what I'm doing now. The scoreboard updates when reality resolves.
| # | Project | Description | State |
|---|---|---|---|
| 01 | priorodds-brain | Personal-knowledge MCP server. Ingests my saved content across Substack, X bookmarks, Xiaohongshu collections, and Zhihu saves into a single corpus, then exposes it over MCP so Claude and ChatGPT answer grounded in my own history. Hybrid retrieval (BM25 + dense + reranker), Gemini Embedding 2 as a single 1536-d vector space for both text and image-posts so XHS notes surface alongside Substack longforms in one query. Deployed alongside aistack on the Hetzner box, gated by Cloudflare Access at brain.priorodds.com. FastMCP 3.0pgvectorGemini Embedding 2Cohere Rerank 3.5Cloudflare Access | v0.1 · pg + schema live · awaiting first ingest |
| 02 | priorodds-agent | Claude Code's agent loop, recompiled for the browser. Drop in an arxiv URL or research question; a sandboxed agent reads the PDF, searches OpenAlex, drafts a critical review, ships Markdown + PDF. Per-task Docker container, 2 GB cap, 30-min default timeout. Next.js 15Anthropic Agent SDKDocker sandboxPostgres | private · prep for OSS |
| 03 | priorodds-site | Single-page editorial layout. GitHub data fetched at build time, real calibration math drawn in SVG, terminal aesthetic. Builds to one ~60 KB HTML file. Astro 5TailwindCloudflare Pages | live · this site |
| 04 | openclaw | Multi-agent radar framework. First agent watches featured Polymarket markets, cross-references arxiv and news, surfaces what the consensus seems to be missing. MCTS hypothesis search; outputs flow into the decision journal as priors. PythonMCTSPolymarket APIscheduled cron | private experiment |
| 05 | elvis-ledger | Discord → Beancount personal ledger bot. Send a line in chat; LLM parses to beancount, bean-check validates, bot commits to a private GitHub repo, Fava renders the books in real time. PythonBeancountDiscordFavaFly.io | live · personal |
| 06 | decision-journal | The Bayesian decision journal proper. Every claim, prior, evidence pull, posterior, outcome. Brier score updates as reality resolves; per-tag calibration curves accumulate. Next.jsPostgrescalibration math | private notebook |
| Label | Service | Purpose | Status |
|---|---|---|---|
| chat | chat.priorodds.com ↗ | Self-hosted Open WebUI with custom tools, skills, and prompt templates. Multi-user, lives on a small Hetzner box. | PROD |
| agent | agent.priorodds.com ↗ | PriorOdds Agent — Claude Code-style web agent. Per-task Docker sandbox, real-time progress UI. | DEV |
| code | code.priorodds.com ↗ | Cloud code-server behind Cloudflare Access + Google SSO. The driver seat for everything above. | SSO |
| relay | relay.priorodds.com | Anthropic-compatible relay. One subscription, every internal service — keeps native message format, caching, thinking blocks intact. | INT |
Brier score · cumulative
awaiting resolution
The board is empty right now. Each claim is logged with a prior, evidence, and a posterior; the score updates when reality resolves. Honesty before scoreboard.
Recovering internal auditor, now mostly thinking about risk control, calibration, and what it means to forecast under genuine uncertainty.
I run a small stack of self-hosted AI tools — a chat assistant, a code workspace, a relay, and lately a Claude-Code-style agent that runs research for me while I'm asleep.
The site name is a Bayesian joke and an honest brief. If I say the odds are 60-40, that's the prior — what I'd say before reading anything. The work is in figuring out where the posterior actually lands.