# Knowledge-graph contract — American Alchemy corpus

**Version 1.0 · 2026-08-04 · binding on every lane.** If your output does not validate against
this file, it cannot be merged and the work is wasted. Read it completely before extracting anything.

## 0. What the corpus is, measured

| Fact | Value | How it was measured |
|---|---|---|
| Upload IDs with text | **172** | `05_graph/corpus_index.json` → `videos` |
| Total words | **3,765,750** | sum of `words` over all items |
| Total runtime | **362.1 h** | sum of `duration_s` / 3600 |
| Date range | 2021-08-30 → 2026-07-26 | `date` field, from transcript filenames |
| Missing / unrecoverable | **0** | `missing_ids: []` |

**172 upload IDs is NOT 172 unique episodes.** The channel publishes a members/early cut and a
public cut of the same interview, usually 1–2 days apart, with near-identical transcripts
(`EzPmG_7WhXc` ≈ `_QpQ9tYUGpY`; `Feo3OIdCL5o` ≈ `uYyXpx7ADJQ`). Canonical episode groups live in
`05_graph/episodes.json`. **Every count you report must be at episode level, and you must say which
level it is.** Reporting 172 as "episodes" is the exact overclaim that loses this application.

Text lives at `05_graph/text/<video_id>.txt`. Each file starts with a header (`# video_id`, `# date`,
`# url`) and then blocks prefixed `[h:mm:ss]`. **That marker is your citation unit** — never cite a
claim without one.

## 1. Non-negotiable rules

1. **Never invent.** No document number, no quote, no name, no timestamp that you did not read in the
   file. A fabricated citation in UAP research is career-ending, and this corpus is the evidence for
   a job application about exactly this discipline.
2. **A quote is verbatim, ≤300 chars, and copied — not paraphrased into quote marks.** Auto-captions
   contain transcription errors; keep them and mark `"caption_artifact": true` if the wording is
   visibly garbled rather than silently fixing it.
3. **Speaker attribution matters more than content.** A guest's assertion is not Jesse's, and neither
   is a fact. Every claim carries `speaker` and `speaker_role` (`host|guest|archival|narration`). If
   the transcript makes the speaker genuinely ambiguous, set `speaker: "unclear"` — do not guess.
4. **Class every claim** as `FACT` / `INFERENCE` / `SPECULATION` (§3). This is the single feature the
   employer screens for; a lane that classes everything `FACT` has produced nothing.
5. **Report absence as a finding.** "Searched 172 transcripts for X, found 0" is valuable and must
   include the exact command you ran. Guessed absence is worthless.
6. **Never state a number you did not count.** Show the command or the file.
7. Read-only outside your own output paths. Never open `.env`, keys, `~/.ssh`, `mcp.json`.
8. **One writer per file.** Write only the paths your brief assigns. Never edit another lane's file,
   never edit `CONTRACT.md`, `corpus_index.json`, `themes.json`, `episodes.json`.

## 2. Node schema — `05_graph/nodes/<LANE>.json` (JSON array)

```json
{"id":"N-<LANE>-0001",
 "type":"person|org|program|place|craft|species|object|document|event|phenomenon|concept",
 "name":"canonical name as most commonly said in the corpus",
 "aka":["other spellings, caption mangles, nicknames"],
 "summary":"2-3 sentences, neutral, no adjectives you cannot source",
 "external_ids":{"wikipedia":"","wikidata":"","website":"","doc_no":""},
 "real_world_status":"verified_public_figure|verified_entity|contested|unverified|fictional_or_mythic",
 "first_seen":{"video":"<id>","ts":"h:mm:ss","date":"YYYY-MM-DD"},
 "mentions":{"episodes":0,"uploads":0,"total":0},
 "image_hint":"what a legitimate, non-copyright-trap illustration would be (logo, official portrait, public-domain photo, diagram) — or none",
 "notes":"anything a fact-checker must know before this node is shown publicly"}
```

`real_world_status` is a hard gate for publication: a person who provably exists and held the post
they are said to have held is a different object from a name that appears only in one anecdote.

## 3. Claim schema — `05_graph/claims/<LANE>.jsonl` (one JSON object per line)

```json
{"id":"C-<LANE>-0001",
 "text":"one checkable sentence, in neutral voice, no rhetoric",
 "class":"FACT|INFERENCE|SPECULATION",
 "speaker":"name","speaker_role":"host|guest|archival|narration|unclear",
 "video":"<id>","ts":"h:mm:ss","episode":"<episode_key>",
 "quote":"verbatim <=300 chars","caption_artifact":false,
 "subjects":["N-...","N-..."],
 "topics":["mars","skinwalker",...],
 "scores":{"proximity":0,"corroboration":0,"verifiability":0,"falsifiability":0,
           "track_record":0,"physical_evidence":0,"corpus_consistency":0,"penalties":0},
 "ccs":0,
 "band":"documented|well-supported|contested|thin|unsupported",
 "corroborating_sources":[{"kind":"corpus|external","ref":"video+ts or URL","independent":true}],
 "contradicted_by":[{"ref":"...","what":"..."}],
 "what_would_settle_it":"the specific finding that would confirm or kill this claim",
 "publishable":true,
 "risk":"how this could be attacked, or why it must not be published"}
```

### 3.1 Classing rule, applied strictly

- **FACT** — checkable against a record that exists independently of the speaker's testimony: a
  document, a published paper, a court filing, a confirmed job title, a dated event. *"The AATIP
  program was funded through a DIA line item"* is a candidate FACT.
- **INFERENCE** — a conclusion someone draws from facts, including a good one. *"The funding pattern
  implies a successor program still exists"* is INFERENCE even when the reasoning is sound.
- **SPECULATION** — asserted without a checkable basis, or unfalsifiable as stated. *"They are
  interdimensional and have been guiding us for millennia"* is SPECULATION regardless of sincerity.

Testimony is its own case: **a witness's account of their own experience is a FACT about the
testimony and a SPECULATION about the world.** Encode the former (`"X testified that…"`, class FACT,
proximity = firsthand) — never the latter dressed as fact. This distinction is the job.

### 3.2 Claim Confidence Score (CCS) — auditable, 0–100

Fill every component; `ccs` is their sum. A total without its components is rejected, because the
point of the score is that a reader can disagree with one line rather than with a vibe.

| Component | Range | Scale |
|---|---|---|
| `proximity` | 0–30 | primary document in hand 30 · firsthand witness 22 · named secondhand 12 · hearsay 5 · anonymous 3 |
| `corroboration` | 0–20 | independent sources: 1→0, 2→8, 3→13, 4→17, 5+→20. **Same person repeating it in another episode is not corroboration** |
| `verifiability` | 0–15 | identifier exists and was retrieved 15 · named but not retrieved 8 · describable but unnamed 3 · unverifiable 0 |
| `falsifiability` | 0–10 | specific and testable 10 · testable in principle 6 · vague 2 · unfalsifiable 0 |
| `track_record` | −10–10 | position/credential independently confirmed 10 · plausible and undisputed 5 · claimed only 2 · previously found unreliable −10 |
| `physical_evidence` | 0–15 | instrumented/measured data 15 · photo or video with provenance 9 · photo or video without 4 · none 0 |
| `corpus_consistency` | −15–10 | independently repeated by another guest +10 · consistent +4 · unmentioned 0 · contradicted elsewhere in corpus −10 · **−15 when `contradicted_by[]` names an independent source** |
| `penalties` | −30–0 | known hoax link −10 · direct financial incentive −5 · retracted or walked back −10 · chain of custody broken −10 · **single low-fidelity source −5, stackable to −10** (cumulative, floor −30) |

**v1.1, 2026-08-04 — the three negative arms were widened**, on evidence from the principal's own
prior scoring system rather than on taste. Lane METHOD-AGI recovered the AGI House rubric, in which a
single low-fidelity source halved a component's weight and hard-zeros superseded deductions outright:
that system priced independent falsification and demonstrated unreliability well above independent
repetition, while the symmetric ±10 used here priced them the same. Widening is backwards compatible
— every score already assigned sits inside the new bounds, so no claim needs rescoring, and the
merger recomputes totals from components on every run anyway.

**Bands:** `documented` 75–100 · `well-supported` 60–74 · `contested` 40–59 · `thin` 20–39 ·
`unsupported` 0–19. A high-CCS claim is not "true"; it is *defensible in writing to an editor*.

**Calibration anchors — score against these, not against your own feeling:**

| Example claim | Expected band | Why |
|---|---|---|
| "The 1995 Harvard press release on John Mack exists and says X" (PDF in `03_dossier/`) | documented | primary doc retrieved, verbatim |
| "Nimitz-class radar operators recorded an object with no visible propulsion" | well-supported | multiple firsthand + instrumented data |
| "A craft is buried under Skinwalker Ranch" | thin | firsthand assertion, no retrievable instrument record, financial interest present |
| "Nuclear war destroyed a Martian civilisation" | thin→unsupported | published by a credentialed physicist but rejected by the field; falsifiable and largely falsified |

## 4. Edge schema — `05_graph/edges/<LANE>.json` (JSON array)

```json
{"id":"E-<LANE>-0001","from":"N-...","to":"N-...",
 "type":"worked_for|funded|investigated|witnessed|reported_by|located_at|same_signature_as|
         contradicts|corroborates|preceded|successor_of|family_of|classified_as|derived_from|
         appeared_together|introduced_by|cites",
 "directed":true,
 "weight":0.0,
 "basis":[{"video":"<id>","ts":"h:mm:ss","quote":"<=200 chars"}],
 "class":"FACT|INFERENCE|SPECULATION",
 "note":"one sentence"}
```

**A basis entry may instead cite a source outside the corpus** (v1.2, 2026-08-04). Lane CASES-EXP
needed this and had nowhere to put it: a witness's later interview in a local newspaper contradicting
his own hypnosis-phase account is exactly the kind of external record that establishes a relation,
and it has no corpus timestamp. It improvised `{"video": "external"}`, which the merger correctly
flagged as a citation pointing nowhere. The gap was in this schema, not in the lane. The external
form:

```json
{"external":"publication, archive or body","date":"YYYY-MM-DD or YYYY","url":"...",
 "quote":"verbatim <=200 chars"}
```

Rules: `external` and `date` are required, `url` is required whenever the source is online, and a
basis array may mix both forms. An external basis is worth *more* than a corpus basis for
establishing a fact about the world and *less* for establishing what was said on the show — which is
why both stay visible rather than being normalised into one shape.

`weight` 0–1: share of the edge's support that is documentary rather than testimonial. An edge with
`weight` ≥ 0.6 can carry a visual line in the public graph; below that it renders dashed.

## 5. Pattern signature schema — for the site/phenomenon pattern engine

The owner's live hypothesis: Jesse noticed that the Skinwalker Ranch account and the Baltic Sea
Anomaly account share a signature — *an anomalous structure at a fixed location, surrounded by
instrument and biological anomalies* — one submerged, one buried. The corpus contains at least a
third instance nobody named out loud (a Swedish lake, `ERiwHz_Gw3Q` / `Rjr3Yq-dMUE`). The job is to
turn that intuition into a scored, searchable feature vector and then find every other site in 362
hours that scores high on it.

`05_graph/patterns/<LANE>.json`:

```json
{"id":"P-<LANE>-001","site":"N-...","label":"Baltic Sea Anomaly",
 "features":{"fixed_localised_structure":1,"submerged":1,"buried":0,
   "instrumented_anomaly_em":1,"instrumented_anomaly_magnetic":1,"radiation":0,
   "equipment_failure_on_approach":1,"biological_effects":0,"animal_behaviour":0,
   "indigenous_or_historical_account":0,"state_or_military_interest":1,
   "private_land_acquisition":0,"access_restricted":1,"media_or_funding_suppression":1,
   "recurring_lights_or_orbs":0,"portal_or_time_claim":0,"casualty_or_injury":0},
 "evidence":{"<feature>":[{"video":"<id>","ts":"h:mm:ss","quote":"<=200 chars"}]},
 "signature_score":0.0,
 "nearest_neighbours":[{"site":"N-...","cosine":0.0,"shared":["..."],"divergent":["..."]}],
 "jesse_noticed":true,
 "jesse_noticed_evidence":{"video":"<id>","ts":"h:mm:ss","quote":"..."},
 "novelty":"named_by_jesse|implicit_in_corpus|absent_from_corpus"}
```

`signature_score` = mean of present features weighted: instrumented anomalies ×2, state interest
×1.5, everything else ×1. **`jesse_noticed` must be evidenced, not assumed** — search the transcript
for him drawing the parallel himself. `novelty: implicit_in_corpus` is the money finding: the
pattern is in his own material and he has not said it on camera.

## 6. Publication gate

Anything flowing to a public page must satisfy all of:

1. No private individual's personal data beyond what they said publicly on this channel.
2. Every visible claim carries its class and a citation to `video + ts`.
3. No image that is a third party's copyrighted still; `image_hint` describes what to source, and
   the site sources it legitimately or renders a diagram.
4. Contested and thin claims are visibly marked as such — the interface never flattens a band.
5. Nothing implies the principal endorses a claim; the artifact reports the state of evidence.

## 7. What every lane returns in its final message

1. Counts: nodes, claims, edges, patterns produced — and the episode-level denominator used.
2. The 5 highest-CCS claims with id, band and citation.
3. The 3 findings that surprised you, with the citation that produced each.
4. What you searched for and did **not** find, with the command.
5. The single weakest thing in your own output, named honestly.
