Method
Rules that freeze before they run
Every rule set and every cohort in this project was hashed and committed before the outcome it governs existed. That ordering is what makes a failure a result instead of an embarrassment — and this page is the story of one real failure and what it changed.
A caution before any numbers: the tallies below measure whether frozen sourcing rules would have surfaced known Array portfolio companies from public evidence available before their announcement dates. Every case is a company with a known outcome, so hindsight bias is structural. None of these figures is investment performance, precision, recall, or a win rate — and the three runs below are not comparable to each other as performance, because each answers a different question.
The record
Three runs, three different questions
Phase 2 · v1 · FROZEN, THEN RUN
The system failed
Phase 3 · v2 · POST-HOC EXPLORATORY
The rules changed
Phase 4A · v2 · UNSEEN COHORT
The real test
The repair
What v2 actually changed
The failure was not that v1 was too strict. It was that v1 measured independence on the wrong axis — and the repair had to get stricter, not looser, to be defensible.
v1 · independence = hostnames
Two pieces of evidence were independent if they came from different hostnames. GitHub org creation in 2024, a shipped system in 2025, and outside collaborators in 2026 all counted as one channel — while a repo plus a tweet about the repo counted as two.
v1 ad0b7ae00630f7948e7c4444440af7c20fed61169370e46e076cd8f575a3566c
v2 · independence = modalities + events
Independence became evidence modalities (construction, formation, identity, collaboration) counted over distinct dated events — while tightening four other axes at once: a minimum modality count, a minimum event count, mandatory construction evidence, and mandatory temporal spread.
v2 435dfb8a568d8f07124125b08566cc9ced48f4d17ef76064978905968287f434
The check that keeps the repair honest: negative controls. All 6 v1-rejected control repositories — curated lists, hype repos, thin wrappers — were re-run under v2. 0 were incorrectly promoted. Loosening that let junk through would have been a worse failure than the one being fixed.
Phase 4A
The unseen test
Nine eligible portfolio companies v2 had never seen, ordered by a deterministic rule — SHA-256 of the v2 rule hash joined with the case ID, sorted ascending — frozen in a commit, and only then researched. Binding the ordering to the v2 hash means it could not be chosen after the fact without visibly changing v2 itself. Case-by-case:
| Case | Company | Cutoff | Verdict | Why |
|---|---|---|---|---|
| U01 | Perspective AI | 2025-01-29 | ● PASS | all convergence checks satisfied |
| U02 | CandorIQ | 2025-07-21 | ○ UNKNOWN | no verifiable pre-cutoff evidence: no GitHub organisation could be linked to the company under v2 identity rules (name-only matches may not merge) |
| U03 | Wabi | 2025-11-04 | ○ UNKNOWN | no verifiable pre-cutoff evidence: no GitHub organisation could be linked to the company under v2 identity rules (name-only matches may not merge) |
| U04 | MokSa.ai | 2024-04-21 | ✕ MISS | failed: distinct_modalities, distinct_events, includes_construction, temporal_spread |
| U05 | Capsule | 2021-01-13 | ○ UNKNOWN | no verifiable pre-cutoff evidence: no GitHub organisation could be linked to the company under v2 identity rules (name-only matches may not merge) |
| U06 | ORO | 2022-11-02 | ○ UNKNOWN | no verifiable pre-cutoff evidence: no GitHub organisation could be linked to the company under v2 identity rules (name-only matches may not merge) |
| U07 | Tumble | 2022-10-04 | ○ UNKNOWN | no verifiable pre-cutoff evidence: no GitHub organisation could be linked to the company under v2 identity rules (name-only matches may not merge) |
| U08 | Blumira | 2021-08-17 | ● PASS | all convergence checks satisfied |
| U09 | Zingly.ai | 2025-07-20 | ○ UNKNOWN | no verifiable pre-cutoff evidence: no GitHub organisation could be linked to the company under v2 identity rules (name-only matches may not merge) |
What broke next
The unseen test found a new weakness
Perspective AI · U01 · PASS — and that is the problem
Perspective AI passed the v2 convergence gate on a marketing/content repository — SCSS, no licence, no meaningful engineering surface. Every convergence check was legitimately satisfied: the evidence was independent, multi-modal, temporally spread, and included construction events. The pass is valid under the frozen rules, and the rules are wrong.
The diagnosis: v2 repaired evidence independence, but it does not require the evidence to be technically deep at the convergence stage. Depth signals exist elsewhere in the system — they are simply not wired into this gate.
The rule was not changed after seeing the result. A technical-depth eligibility requirement at the convergence gate is the leading candidate for a future v3 — and no v3 has been designed, frozen or validated, so none is claimed. The weakness stands in the record exactly as the v1 failure does.
Proof
The commit history is the argument
Freeze-before-measure only means something if the ordering is verifiable. Every step below is a real commit in the repository, in this order.
🔒 lockedPhase 1 — ontology and evidence philosophy
c4f958c3b90ff803de343ff61981c45b87be70c7
🔒 lockedv1 rules frozen — before any validation ran
498dabe71a13eea12450ae24a2b8a2094632b338
✕ failurev1 holdout run against the frozen rules
425c46b031b94f14a6f682110709afd06f2021a7
🔒 lockedHeadroom reproduction protocol pre-registered
636f4992ddd72a9b8dcaef9107765befc3e0b750
🔒 lockedv2 rules designed from the v1 diagnosis and frozen
f35afa1a5f09bb9014306038b8a2efd4de3f52cd
● resultReproduction + deep diligence executed
f78a41c0dd2d69e75906ab058ee24612ad17ea60
🔒 lockedUnseen validation cohort frozen — before evidence retrieval
662392ab2e9e2eeec6549e08b2819d65aa03d4d8
● resultUnseen validation + identity audit run
302e5f76aef90952f26aec95c8aa4d431db0ef1f
✕ failureWhat broke next — Perspective AI
302e5f76aef90952f26aec95c8aa4d431db0ef1f
The three hashes that matter
ad0b7ae00630f7948e7c4444440af7c20fed61169370e46e076cd8f575a3566cv2 rules (frozen before v2 rerun and Phase 4)435dfb8a568d8f07124125b08566cc9ced48f4d17ef76064978905968287f434unseen cohort freeze commit662392ab2e9e2eeec6549e08b2819d65aa03d4d8Why these commit IDs are not the original ones
Before first publication, the repository’s history was privacy-scrubbed to remove raw third-party profile caches that had been committed during collection. Git object IDs therefore changed, and the hashes shown here are the post-scrub equivalents.
Accounting
What was and wasn't measured
Human analyst active time
NOT_MEASURED
What a defensible v2 means