An official website of the Disclosure Foundation

Introduction

Overview

Modules

TaxonomyClassificationReference Systems

Guides

Claiming Origins

Claiming Origins

The working guide: classify honestly, weight alternatives, and let disagreement stand

This guide is the workflow for classifying an observation's origin. Origin claims are where credibility is won or lost, so the discipline matters more than the mechanics.

1. Survey the taxonomy first

Before classifying, know what the candidate space looks like — especially the prosaic branch:

import { getChildren, searchNodes, getPath } from '@disclosureos/origins';

getChildren('1.1.1');       // the prosaic family: natural, human
searchNodes('balloon');     // find nodes by label/description/alias
getPath('1.1.1.2.4');       // 'Physical > Intradimensional > Prosaic > Human > Private / Commercial'

The strongest exotic claim is one made by an evaluator who demonstrably worked the prosaic branch first.

2. Claim at the depth the evidence supports

import { createOriginClaim } from '@disclosureos/origins';

// Evidence excludes known craft but says nothing about locale:
createOriginClaim('1.1.3', 0.4, { /* ... */ });   // honest

// The same evidence does NOT support:
createOriginClaim('1.1.3.2', 0.4, { /* ... */ }); // interstellar? based on what?

See choosing the right depth.

3. Weight your alternatives inside the claim

A serious analysis almost always entertains more than one hypothesis. Put them in the claim, weighted:

const claim = createOriginClaim('1.1.3', 0.4, {
  rationale:
    'Kinematics exceed known aerospace capability per radar data; ' +
    'classified domestic program cannot be excluded; sensor artifact unlikely given multi-platform correlation.',
  alternativeHypotheses: [
    { nodeId: '1.1.1.2.1', confidence: 0.25, label: 'Classified U.S. program' },
    { nodeId: '2.2.1', confidence: 0.1, label: 'Misinterpretation' },
  ],
  evidenceRefs: ['sensor:princeton-spy1-radar'],
  evaluatedBy: 'example-institution',
});

The confidences here sum to 0.75 — the remaining 0.25 is unassigned uncertainty, and that's the honest state. Don't inflate the primary to make the numbers look decisive.

4. Append to the slot — never overwrite

(observation.origin ??= []).push(claim);

The origin slot is the inter-evaluator axis. If a prior claim from another institution says 2.1.5 (hoax) and you conclude 1.1.3, both belong in the list. Removing a competing claim doesn't strengthen yours — it just makes the record untrustworthy.

If you're revising your own earlier claim, add the new one and relate the records or note the supersession in rationale; the timestamps establish the sequence.

5. Cite evidence, especially for exotic nodes

The further from prosaic, the more the claim needs evidenceRefs. A 1.1.3 claim with no cited evidence will — correctly — be discounted by compellingness scoring and by every serious reader.

6. Validate

import { parseEnrichedObservation } from '@disclosureos/schema';
const result = parseEnrichedObservation(observation);
Terminal
npx @disclosureos/cli validate observation.json
# warns if a claim cites evidence the record doesn't contain

Anti-patterns

Anti-patternInstead
Claiming a leaf node on witness testimony aloneClaim the shallowest honest node
Confidence 0.95 on anything exoticIf it were that certain, it would be world news
Deleting a hoax claim you disagree withAdd your claim; let scoring surface the contest
Using eventType or tags for origin languageOrigin lives in the origin slot, attributed
One "consensus" claim merged from several analystsOne claim per evaluator — attribution is the point

Reference Systems

Hynek, Vallée, AARO, and GEIPAN — institutional classification systems for historical interop

On this page

1. Survey the taxonomy first
2. Claim at the depth the evidence supports
3. Weight your alternatives inside the claim
4. Append to the slot — never overwrite
5. Cite evidence, especially for exotic nodes
6. Validate
Anti-patterns