An official website of the Disclosure Foundation

Introduction

Quick StartWhat is DisclosureOS?Installation

Concepts

Tour of the APIThe Companion PatternType Safety & Validation

API

API Reference

Guides

Data MigrationField Mapping ReferenceSupabase IntegrationBuilding on the StandardContributing

What is DisclosureOS?

The open-source standard for UAP evidence — five parts, one observation

The problem

UAP data is scattered across government releases, archives, FOIA productions, civilian reporting networks, and research institutions — each with its own formats, vocabulary, and standards of rigor. Tools built on this data cannot interoperate, analyses cannot be compared, and the public questions that actually matter go unanswered:

  1. Is it technologically anomalous?
  2. Is there anomalous biology?
  3. What is its origin?

Answering those questions credibly requires a shared structure: a common language for what was observed, explicit criteria for what counts as anomalous, a taxonomy of explanations that can compete on evidence, and measures of case quality that don't reduce everything to one number.

DisclosureOS is that structure — an open-source standard, free to build on, with every schema and scoring rule public and auditable.

The five parts

The standard has five parts. Four are their own npm package. Claims live inside @disclosureos/records because attribution is shared by both Observables and Origins:

PartPackage surfaceQuestion
Records@disclosureos/recordsWhat was observed?
Observables@disclosureos/observablesWhat anomalous characteristics did it show?
Origins@disclosureos/originsWhat might explain it?
Claims@disclosureos/records/sharedWho assessed it, why, and on what evidence?
Scoring@disclosureos/scoringHow complete and compelling is the case?

Claims are the attribution layer. They are not a separate package; they are the shared structure that lets Observables and Origins record who assessed a case and on what evidence. More on that below.

Records is the shared vocabulary

Observation is the core type of the entire standard — a structured record of time, place, object characteristics, movement, witnesses, sensor evidence, investigation status, media, and relations to other observations. Records also provides the shared primitives every other layer builds on: Confidence, Attribution, Claim, evidence references, and validation helpers.

Observables and Origins augment the record

Importing @disclosureos/observables or @disclosureos/origins adds typed slots to Observation — observableAssessments and origin — through TypeScript module augmentation. The record stays one object; the layers enrich it without forking it.

Schema is the contract, not another part

@disclosureos/schema mirrors the compile-time augmentation at runtime. It composes the package-owned JSON Schemas into one enriched-observation contract and provides parseEnrichedObservation — validation of the whole record, slots intact. Because the contract is JSON Schema (draft 2020-12), the standard is portable to Python, Rust, or any other ecosystem.

Scoring consumes, never augments

Scoring reads the enriched record and produces two orthogonal measures: completeness (how thoroughly the record is documented) and compellingness (how strong the anomaly signal is, given the claims and their evidence). There is deliberately no single headline score — flattening contested evidence into one number is how rigor dies.

Claims: contested assessments are first-class

Evaluative statements — "this showed instantaneous acceleration," "this is best explained by an unknown advanced craft" — are recorded as claims: attributed assertions with confidence, rationale, and references to specific evidence in the record.

{
  level: 'confirmed',
  confidence: 0.85,
  rationale: 'Radar tracked descent from ~80,000 ft to sea level in seconds.',
  evidenceRefs: ['sensor:princeton-spy1-radar'],
  evaluatedBy: 'Scientific Coalition for UAP Studies',
  evaluatedAt: '2026-03-01T00:00:00Z',
}

Every slot holds a list of claims. Two institutions can assess the same case differently, and both assessments live in the record with their evidence. Scoring detects when claims disagree in direction and flags the case as contested — disagreement is surfaced, not averaged away.

Who it's for

  • Research institutions structure their case analyses once and publish them in a format every other tool can read — with attribution preserved.
  • Tool builders skip years of schema design and inherit validation, scoring, and a taxonomy that improves over time.
  • Data engineers ingest government releases, archives, and FOIA productions into a common record shape that downstream analysis can rely on.
  • Anyone auditing a claim can trace a score back through claims to the specific sensor readings and testimony that support it.

What exists today

  • The foundation packages — records, observables, origins, scoring, schema, and cli — are at v1 and ready to publish: ESM-only, Node 20+, MIT-licensed.
  • A runnable golden path takes the USS Nimitz encounter through every layer.
  • The Disclosure Index — shareable case pages with observables, origins, and scores in one view — is the flagship application, being rebuilt on these packages.

Next steps

Start with the Quick Start, then take the Tour of the API to build the full mental model.

Quick Start

Getting started with DisclosureOS — the open standard for UAP evidence

Installation

Install the DisclosureOS packages and configure TypeScript

On this page

The problem
The five parts
Records is the shared vocabulary
Observables and Origins augment the record
Schema is the contract, not another part
Scoring consumes, never augments
Claims: contested assessments are first-class
Who it's for
What exists today
Next steps