factcircuit
FactCircuit: an auditable claim-and-evidence verification loop with immutable provenance, staged checks, bounded retrieval, and reproducible evaluation.
The AI Siren Index is at level 4 of 5 (ROUTINE), 50.6 of 100. The machines are working late. Counted hourly from public data, as of 2026-10-08 02:22:49 UTC.
DataJavaScript · HTMLGitHub @messagegabrielhere-lgtmOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
SIREN (Superintelligence Real-time Early Notice, formerly DOOMCON): an hourly index of AI activity you can verify. Hash-chained receipts, open method, no ads or tracking.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Superintelligence Real-time Early Notice. Formerly DOOMCON; the repository and the web address keep the old name.
Live: https://messagegabrielhere-lgtm.github.io/doomcon/ · verify the readings in your browser · method
A real-time index of AI activity tempo, computed from public data by open code.
Five pillars, one 0–100 score, one level from DOOMCON 5 (DORMANT) to DOOMCON 1
(UNPRECEDENTED). Every number is recomputable by a stranger.
We don't know anything. We just count.Read the full README ↗Superintelligence Real-time Early Notice. Formerly DOOMCON; the repository and the web address keep the old name.
Live: https://siren.watch/ · verify the readings in your browser · method
A real-time index of AI activity tempo, computed from public data by open code.
Five pillars, one 0–100 score, one level from DOOMCON 5 (DORMANT) to DOOMCON 1 (UNPRECEDENTED). Every number is recomputable by a stranger.
We don't know anything. We just count.
Every other live AI-risk index — DoomBench, IMD's AI Safety Clock, skynetcountdown, takeofftracker, pdoom.ai — scores by human or model judgement. None of them can be independently recomputed.
This one can. Clone the repo, run two commands, compare your number to the published one. If they disagree, that's a bug.
It measures observable activity tempo relative to the field's own history — not probability of harm, not a forecast. The full formula, every constant, and an honest "how this index could mislead you" section are in docs/METHODOLOGY.md.
No Node installation required — everything runs in Docker:
docker run --rm --network host -v "$PWD":/app -w /app node:20-alpine node collector/collect.mjs
| Step | Command | Writes |
|---|---|---|
| Build the frozen reference | node collector/backfill.mjs | data/reference.json |
| Collect live readings | node collector/collect.mjs | data/raw/<iso>.json |
| Score it | node collector/engine.mjs | data/state.json, data/receipts/, data/history.ndjson |
| Render share cards | node collector/card.mjs | public/cards/ |
| Generate post text | node collector/posts.mjs | data/posts.json |
| Build the site | node site/build.mjs | public/ |
| Build the posting console | node site/post-sheet.mjs | public/post-sheet.html |
| Build the engage console (human likes/reposts) | npm run engage | public/engage-sheet.html + data/x-engage.json |
Prefix each with the Docker wrapper above. Backfill runs once — the reference distribution is frozen on purpose and must not be regenerated casually.
Next 90 days of site work (merge queue, retention, SEO, operator handoffs): docs/SITE-UPGRADES-90.md.
New here? Start with the novice map: docs/README.md — what every folder does, side projects vs the index, and which workflow to look at.
collector/fetch.mjs shared HTTP: timeout, retry, User-Agent, structured errors
collector/sources/*.mjs one adapter per source — drop a file in, it is discovered
collector/collect.mjs runs every adapter concurrently -> data/raw/
collector/engine.mjs normalise -> smooth -> compose -> level, with anti-flap
collector/receipts.mjs hash-chained, append-only audit trail
collector/card.mjs share cards as dependency-free SVG
collector/posts.mjs post text, with URL and future-tense guards
site/build.mjs static site generator -> public/
The index, the site, and the collector use Node 20 built-ins only. That path
does not install a package. Two optional tools do: the clipper and the arena
agents import @anthropic-ai/sdk. Their lockfiles are package-lock.json
and clipper/package-lock.json.
Drop a file in collector/sources/. It is discovered automatically.
export default {
id: 'my-source',
pillar: 'capability', // capability | compute | attention | governance | markets
label: 'Human-readable name',
async collect(fetchJson) {
const data = await fetchJson('https://…')
return { value: 42, unit: 'things/day', meta: { … } }
},
}
Three rules: value is a finite number, higher always means more activity
(negate inside the adapter if your source points the other way), and throw on
failure — never return a fallback. A dark source is a first-class state.
A new source does not enter the index until it is added to the frozen reference distribution, so adding one cannot retroactively move history.
/arena.html is a
separate side project: Claude, GPT, Grok, Gemini and DeepSeek each trade $1,000 of
paper money against live Coinbase order books, alongside two no-AI baselines. The models
only propose. A server prices each proposal into a ticket and checks it against fixed
rules before filling it, and stops run every 5 minutes whether or not a model is awake.
Every fill and every rejection is public. It shares nothing with the index pipeline. See
docs/ARENA.md.
| Path | What |
|---|---|
/api/state.json | Current score, level, pillars, per-source freshness |
/api/history.json | Scored observations over time |
/api/receipts/<id>.json | One hash-chained receipt |
/embed.html | Embeddable widget |
/feed.xml | RSS of index moves |
All CC-BY 4.0. Attribution appreciated, not enforced.
Prefer these over scraping HTML:
| Path | What |
|---|---|
/agents.md | Short fetch-first map |
/agents.txt | agents-txt.com skills announcement (JSON) |
/skill.md | How to phrase and cite |
/llms.txt | Full site map for language models |
/api/now.txt | Current reading in a few plain lines |
/.well-known/api-catalog | RFC 9727 API catalog |
/.well-known/mcp/server-card.json | Stdio MCP install card |
Runnable kit (zero dependencies) in agent-kit/:
node agent-kit/cli.mjs now # current reading
node agent-kit/cli.mjs cite # citation + spoken form
node agent-kit/mcp.mjs # MCP stdio server for Cursor / Claude / etc.
See AGENTS.md if you are an agent editing this repository.
Every scored observation carries every input exactly as fetched, plus the hash of
the previous receipt. verifyChain() in collector/receipts.mjs walks the chain
and re-derives every hash.
Note that arXiv counts are not immutable — papers get cross-listed after publication — so we snapshot the value and the query string at fetch time and never recompute history. A receipt records what we saw, not what the source says today.
Historical training-compute and notable-model data from Epoch AI, CC-BY 4.0.
Concept debt to pizzint.watch, whose Pentagon Pizza Index proved that a single named scalar plus a distribution channel beats a better dashboard with neither. The full teardown is in docs/TEARDOWN.md.
Before you share the URL widely, walk docs/LAUNCH.md
(the 20-point checklist) and keep docs/ROLLBACK.md
handy. Secrets never belong in site/ or in git — see SECURITY.md.
Privacy, terms and disclosures are live at /privacy.html, /terms.html and
/disclosures.html. npm run compliance is the local gate; it also runs on
every push, daily, and before every Pages publish. Operator checklists:
GO-LIVE.md (Step 5), docs/X-OPERATOR.md
and compliance/REMEDIATION.md.
Code MIT. Data and index values CC BY 4.0. See LICENSE.