# site.fact.ngo

The fact.ngo nonprofit fact-checking website, with xray as its AI-perspective archive. A coherence.ngo project.

The xray pages are built from the corpus in `../xray`
and the per-model dataset repos (`~/Documents/fact.ngo/<model-slug>`). Static output in `dist/`
is fully self-contained: one page per model, each with its own design language, plus dataset
zips for download.

## Build

```bash
node scripts/build.js
```

Zero dependencies. The build:
- loads each active model's records, highlights, manifest, plan, and session transcripts
- computes stats and the integrity profile (protocol observations, not evals)
- machine-matches every quote against its transcript (abridgment-legal segment match) —
  unmatched records are listed in the mechanism repo's `docs/corpus/verbatim-audit.json`
- emits `dist/index.html` + `dist/xray/index.html` + `dist/xray/cases.html` + `dist/xray/<slug>.html` + `dist/xray/downloads/<slug>.zip` (git archive of
  each dataset repo)

## Configure

Constants at the top of `scripts/build.js`:
- `DONATE_URL` — the Ko-fi donation page

Distribution is self-hosted only (decision 2026-09-19): datasets download from fact.ngo;
transcripts are served from `dist/xray/transcripts/`. No third-party code hosts.

## Deploy

`dist/` is the deployable artifact — any static host. Natural home: Cloudflare Pages
project bound to the fact.ngo domain (direct upload of dist/, or connect this repo with
build command `node scripts/build.js`, output dir `dist`).

## Data contract

This repo contains no data of its own; it renders the dataset repos. Never edit records here.
Curated presentation layer lives in each dataset's `highlights.json`; corrections to quotes
happen in the datasets, never in the site.

## Visual system

Dark by default, with an optional warm paper mode saved in the visitor's browser. The
xray landing page and cohort use four portrait cards; each case file shares the same archive
structure but has its own material and typography: jade precision (GLM), a brass ledger
(gpt-oss), terracotta structure (Gemma), and lavender tension (Qwen).

- `assets/site.css`: shared responsive styles and the four case-file themes.
- `assets/site.js`: optional theme toggle, search, combined filters, result paging, and
  direct-position links. Without JavaScript, all archive records remain readable.
- `assets/*.jpg`: optimized local portraits; generation prompts and provenance are in
  `assets/README.md`. These are artistic interpretations, not empirical model attributes.
- `scripts/build.js`: page content, dataset rendering, transcript links, and build.

All assets are served locally. No third-party fonts, trackers, runtime dependencies,
new model calls, or dataset edits are required. The build copies assets into `dist/assets`.

Preview with `python3 -m http.server 4173 --bind 127.0.0.1 --directory dist`.
Code and curation remain AGPL-3.0; model outputs retain their existing license terms.

The approximate transcript check currently reports 35 unmatched records (3 GLM, 9 GPT,
21 Gemma, 2 Qwen). This design update preserves those records and reports match counts
without presenting the check as certification. Source-data corrections belong upstream.

## Product and routes

The parent fact.ngo site is a nonprofit fact-checking journal in development.
Its planned human-and-AI system will publish evidence-supported findings, with
free reading, free personal/small submissions, and a $5 fee for larger claims
supporting reviewers and the nonprofit. The homepage describes the planned system;
submission, review, and payment services are not implemented by this static site.

- `/`: the fact.ngo mission, planned process, and access/funding model; features xray.
- `/xray/`: the existing AI-perspective showcase, relocated from the root.
- `/xray/cases.html`: the detailed cohort page, relocated from `/xray/index.html`.
- `/xray/<slug>.html`: model pages; URLs, data, downloads and transcripts remain stable.

The fact.ngo wordmark returns to the parent homepage. The `/ xray` link returns to
the xray showcase; Case Files and Method lead to the detailed archive. Xray model
perspectives are not represented as verified fact-checking results.

The product contract is in `docs/site-spec.md`. Build from committed sources before
publishing so `dist/BUILD_MANIFEST.json` identifies the source revision used.
