AI News HubLIVE
In-site rewrite3 min read

An AI board that pre-registers its bets – bet #1 just graded wrong

asktheboard is a Python tool that creates a board of AI expert personas whose every decision is a pre-registered, time-anchored, reality-graded bet. It uses git history for timestamp attestation, supports BYOK, and provides preset decision types and role templates.

SourceHacker News AIAuthor: dilushin

Notifications You must be signed in to change notification settings

Fork 0

Star 1

BranchesTags

Open more actions menu

Folders and files

NameName

Last commit message

Last commit date

Latest commit

History

9 Commits

9 Commits

.github

.github

asktheboard

asktheboard

docs

docs

examples

examples

tests

tests

.gitignore

.gitignore

CHANGELOG.md

CHANGELOG.md

CODE_OF_CONDUCT.md

CODE_OF_CONDUCT.md

CONTRIBUTING.md

CONTRIBUTING.md

LICENSE

LICENSE

README.md

README.md

SECURITY.md

SECURITY.md

conftest.py

conftest.py

pyproject.toml

pyproject.toml

Repository files navigation

A board of expert personas whose every decision is a pre-registered, time-anchored, reality-graded bet. Not a chatbot that agrees with you -- a board that keeps score, before the fact.

Landing page & docs: https://danilushin.github.io/asktheboard/

Mechanism on sample data — the 60-second, no-key walkthrough below reproduces it exactly.

pip install asktheboard

Why this exists

Anyone can clone a "panel of AI personas" in a weekend, and a dozen have. The debate mechanic is a commodity. What it leaves out is the thing that makes advice worth trusting: a record of having been right before the outcome was knowable. That record is hard to fake -- you can buy model outputs, but you can't back-date a timestamp. It only accrues the slow way: by calling decisions in advance and letting reality grade them, one resolution date at a time.

So ask-the-board records, for every decision:

your stated prior (what you believed going in),

the per-seat dissent vector -- each seat's stance + its own probability,

a dated, falsifiable prediction, anchored before the outcome is knowable,

on the resolution date, reality's realized outcome, auto-reconciled into a Brier/calibration score per seat.

The board-minute is a git-committable ADR. Your git history is the external attestation of the anchor timestamp. The accumulating, reality-graded record is the durable asset.

See it keep score (60s, no API key)

create -> resolve -> score is pure data -- no LLM, no key, no network. This is a worked example on sample data: you supply the outcome with resolve, and the engine computes each seat's Brier score (lower is better). It shows the mechanism, not a track record -- the integrity comes from the anchor timestamp your git history attests, which no demo can fabricate. The committed artifacts live in examples/.

pip-installed (no repo)? paste the sample spec below. Cloned the repo?

skip the heredoc and use --spec tests/sample_minute.json instead.

cat > sample_minute.json .json (the record) and .md (the committable ADR) into board-minutes/.

Convene a board (BYOK)

create pre-registers a minute you wrote by hand. convene runs the live LLM fan-out: every seat answers through your key, and the board's consensus probability is the mean of the seats' calls. It ships no provider -- bring an OpenAI-compatible endpoint (HTTPLLMClient is stdlib-only, zero dependencies).

from asktheboard import convene, Seat, HTTPLLMClient

minute = convene( id="pgvector-scale", question="Will pgvector hold our scale, or do we need a dedicated vector DB?", prior="leaning postgres to avoid a new service", decision="stay on postgres + pgvector", statement="pgvector serves p95 90-day resolution horizon )

Or from the CLI (key in OPENAI_API_KEY):

asktheboard convene --spec convene.json --model gpt-4o-mini

Any OpenAI-compatible API works -- point --base-url (or HTTPLLMClient(base_url=...)) at OpenRouter, Together, or a local server. The engine still makes no calls of its own; it only ever speaks through the client you pass.

Bundled roster -- seat a board by name

You can always hand-write Seat(name, persona). But a sensible default board ships in the box: a curated set of role archetypes (the architect, the skeptic, the operator -- functions, not impersonations of real people) and a few named panels, so seating one is a single lookup.

from asktheboard import convene, panel, seats, HTTPLLMClient

minute = convene( id="pgvector-scale", question="Will pgvector hold our scale, or do we need a dedicated vector DB?", prior="leaning postgres", decision="stay on postgres + pgvector", statement="pgvector serves p95 default horizons

A minute is only foresight if it has a date by which reality can grade it. decision_type picks a sensible default horizon so the common case is one lookup (and a 5-year horizon on a library swap stands out as dishonest):

type horizon when

library 90d adopt/swap/drop a dependency

migration 180d move a datastore, platform, or pipeline

architecture 365d a structural design bet you live with

Short-latency first on purpose: a fresh board earns a track record on fast library calls before anyone trusts its slow architecture bets. Pass an explicit resolution_date= to override.

A contrarian win

When a seat dissents from the board and turns out more right than the consensus, that is a contrarian win -- the gold the public scoreboard is built from. The board changed (or should have changed) its mind, and reality later stamped the dissenter vindicated.

Stability

What's shipped: the foresight engine (data model + grading + committable ADR) and the BYOK LLM fan-out that produces a board-minute (asktheboard.convene, behind the asktheboard.llm Protocol). No provider is bundled -- you plug in your own key.

The public API is 0.x / unstable. The LLMClient / HTTPLLMClient surface and the board-minute JSON schema may change before 1.0 -- pin a version if you depend on them.

Built with

Built by Dan Ilushin with Claude (Anthropic) in the loop. Contributions welcome -- see CONTRIBUTING.md (DCO sign-off) and SECURITY.md.

License

MIT. (c) 2026 Dan Ilushin.

About

A board of expert personas whose every decision is a pre-registered, time-anchored, reality-graded bet. BYOK; the board that keeps score, before the fact.

Topics

decision-making

calibration

forecasting

adr

decision-support

ai-agents

llm

byok

brier-score

Resources

Readme

License

MIT license

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy

Uh oh!

There was an error while loading. Please reload this page.

Activity

Stars

1 star

Watchers

1 watching

Forks

0 forks

Report repository

Releases 6

v0.2.5

Latest

Jul 2, 2026

+ 5 releases

Packages 0

Uh oh!

There was an error while loading. Please reload this page.

Contributors

Uh oh!

There was an error while loading. Please reload this page.

Languages

Python 100.0%