---
title: VEIL Investigation #2 — Pre-Registration (Class B ceiling)
investigation_id: 002
venue: Nathanael Greene Homestead ("Spell Hall"), 50 Taft Street, Coventry, Rhode Island, USA
date_of_investigation: 2026-05-01 (Friday), T-0 = 20:30 EDT
pre_registration_written: 2026-04-20
pre_registration_deadline: 2026-04-29 23:59 UTC
publication_ceiling: Class B (per POST-INVESTIGATION-REVIEW.md Step 2)
publication_target: Journal of Scientific Exploration (JSE), submission ~2026-08-01
sign_with: `phase0.common.signer.load_signer()` at commit-time (OPTIGA if present, Ed25519 software fallback)
status: DRAFT — requires OPTIGA-sign by 2026-04-29 23:59 UTC to become binding
principal_investigator: Mato (Seth Schultz), VEIL Founder + Evidence Coordinator
team_size: 7 investigators + 1 site contact (docent)
---

# 0. Purpose + honesty contract

This is the pre-registration for VEIL Investigation #2 at the Nathanael Greene Homestead on 2026-05-01. Pre-registration means: hypotheses + anomaly criteria + statistical corrections + success/null definitions are committed **before** the 5/1 capture, so no post-hoc "we redefined the anomaly after seeing the data" is possible.

Scope is deliberately **Class B**, not Class A. Per the 2026-04-20 Wave 2 independent audit + Mato decision: the tooling required for Class A (hardware-rooted OPTIGA-sign binary, multi-reviewer blinded audio, full classification DB schema, redaction tool, encrypted off-site, JSE submission script) cannot be delivered in 11 days without triggering either a hernia flare or a rushed-work publishability defect. Class A is the Investigation #3 target (summer 2026) after a June tooling sprint.

**This document IS the methodology pilot.** Class B at JSE is honest, defensible, and publishable regardless of what the data shows. A null result is a publishable null.

---

# 1. Hypotheses (falsifiable, pre-committed)

## H1 — Convergence hypothesis (pre-registered measurable)

During the 5/1 active investigation window (T+0 to T+180 minutes), **at least one convergence cluster** will be detected by the `detect_convergence()` rule (`vigil/backend/convergence/__init__.py`, commit `1c8c3fa` 2026-04-20) configured with:

- window_seconds = 5.0
- min_distinct_types = 3
- min_devices = 2

in a **priority zone** (Priority 1/2 per POD-WIRING + LOGISTICS zoning), with score ≥ 2.0.

**Null prediction for H1:** we may detect zero qualifying clusters. If so, report as null.

## H2 — Zone-rate comparison (exploratory in Class B; would be pre-registered Class A in Inv #3)

Cluster rate per minute in priority zones vs non-priority zones (or a designated control zone if Pod 2 is relocated per architecture decision) — reported as descriptive statistic with 95% bootstrap CI. **Not** pre-registered as a hypothesis test at Class B; pre-registered as *descriptive* only.

## H3 — Witness-report temporal alignment (descriptive)

Team-reported subjective experiences (logged via Mumble text timestamp) will be cross-referenced against objective sensor events within ±30 seconds. Alignment rate reported as raw count; Class B does not pre-register a chance-corrected test.

## H4 — Reproducibility (deferred)

H4 from earlier drafts ("reproducible at Inv #2.5 return visit") is **not** committed in this pre-registration. Inv #2.5 is contingent on Inv #2 outcome + Homestead Association availability. If Inv #2.5 is scheduled, it will have its own pre-registration.

## H5 — Null commitment

**We commit to publishing whatever the data shows.** If H1 fires zero qualifying convergence clusters, we publish that. If H3 shows no alignment beyond chance, we publish that. Null is a result.

---

# 2. Anomaly criteria per channel (numeric thresholds, pre-registered)

| Channel | Sensor | Threshold (pre-registered) | Source |
|---|---|---|---|
| RM3100 magnetometer | Pod 1/2 | deviation > 3σ over 60 s rolling baseline (per-axis) | POD-WIRING + standard geophysics; pod-side daemon `vigil/pods/mag-pod/` |
| Temperature (BMP280) | Pod 1/2 | ΔT > 1.5 °C over 30 s (drop or rise), not matched to HVAC timer | env_pod.py TEMP_ALERT_DELTA (default 1.5); pod-side daemon `vigil/pods/env-pod/` |
| Pressure (BMP280) | Pod 1/2 | ΔP > 0.5 hPa over 30 s | env_pod.py PRESSURE_ALERT_DELTA; pod-side daemon `vigil/pods/env-pod/` |
| Audio EVP candidate | ICS-43434 (pod) | ≥ -50 dBFS RMS + YIN voiced-frame fraction > 5% in 0.8-10 s window | vigil-evidence-ingest.py detect_clapboard_audio; pod-side daemon `vigil/pods/audio-pod/` |
| Capacitive touch (CAP1188) | Pod 1 | any touch event at zone-trigger object | POD-WIRING §CAP1188 (per Greene Homestead physical-interaction phenomena — reinstated 2026-04-17); pod-side daemon `vigil/pods/touch-pod/` |
| UV (D3300 + ZWB2) | Mato-operated | bulb exposure captures fluorescence at pre-calibrated minerals | UV-EVIDENCE-WORKFLOW; manual operator-driven channel |

**Channels deferred to Investigation #3** (pre-registered scope reduction per §10 amendment 2026-04-28 #2): CO2 (SCD-30/SCD41), VOC (BME690), Video luminance burst (NoIR Pi cams). Hardware for these channels is in Mato's possession but pod-side reader code was not delivered before the pre-reg-sign deadline. Pre-reg integrity preserved by removing the channels rather than signing thresholds the code cannot produce. BME690 is also dropped from the Temperature row (BMP280 retained as sole temp source).

Each sensor's 60 s rolling baseline is computed from the baseline blackout period (T-30 to T-0). Thresholds are evaluated AFTER clapboard drift correction.

**Changes to these thresholds after 2026-04-29 23:59 UTC** (pre-registration commit deadline) constitute a pre-registration amendment, requiring OPTIGA-sign + git commit + public post.

---

# 3. Statistical correction (Class B scope)

## 3.1 Convergence clusters

The `detect_convergence()` rule emits deterministic clusters (no false-positive rate to correct at detection time). Per-cluster score is the pre-registered metric.

Review-time (Phase 2, post-5/1) will apply:

- **Benjamini-Hochberg FDR** at q = 0.05 across all cluster-hypothesis tests.
- Per-cluster significance is computed via a **permutation null**: 1000 random time-shuffles of per-channel event streams, re-running `detect_convergence()` each shuffle, computing the cluster-score distribution under null, and reporting the empirical p-value per observed cluster.

Implementation of the permutation null + FDR is **Phase 2 review code** (Jupyter notebook); not required for 5/1 capture. The core detector's determinism (tested) means re-running the permutation N times is reproducible.

## 3.2 Per-channel anomaly counts

For each channel, the expected baseline-rate false-positive count over a 180-minute investigation window is computed from the 20-minute baseline period. Anomalies are reported as **excess over baseline** with 95% bootstrap CI (1000 resamples). No hypothesis test at Class B — descriptive only.

## 3.3 Multi-comparison caveat

If H1 fires, that is **one** pre-registered test at Class B. Every other observation in the paper is descriptive or exploratory. There is no multi-comparisons inflation to correct for because there is only one pre-registered inferential test.

---

# 4. Control zone design (Class B minimum)

## 4.1 Option chosen: decoy pack at base + Pod 2 priority-zone retention

Pod 1 + Pod 2 are both deployed in Priority 1/2 zones per the existing POD-WIRING layout. As a **Class B** case report this is defensible: we are not claiming pod-vs-control comparison. For Class A (Inv #3) Pod 2 will be relocated to a matched non-priority zone.

In lieu of zone control, a **decoy instrumentation pack** runs at the Pi 5 base station (hallway) capturing identical RM3100 + SCD41 + BME690 + ICS-43434 streams. This is the "background" channel for descriptive comparison only.

## 4.2 Matched-occupancy accounting

Team time-in-zone is logged per teammate (body-cam start/stop + Mumble position reports) so per-zone occupancy time can be reported with per-channel anomaly counts. Not a control variable; a descriptive variable.

---

# 5. Success + null criteria

## 5.1 Success (for this Class B pilot)

Any one of the following counts as successful completion:

- **S1 — H1 fires.** At least one convergence cluster with score ≥ 2.0 detected in a priority zone during the active window. Publishable.
- **S2 — H1 null.** Zero qualifying clusters detected across the full 180-min window. Publishable as null result.
- **S3 — Methodology completion.** Even if the investigation is aborted mid-way (kill-switch, weather, medical) — if 4/28 dry-run passes + 5/1 T-0 + T+20 min baseline captures cleanly + full pod assembly + clapboard-drift < 200 ms + OPTIGA-or-Ed25519 signing rate ≥ 95% → the methodology itself is the primary deliverable. Publishable as methodology paper.

## 5.2 Failure (explicit)

- **F1 — Methodology failure.** Clapboard drift > 1 s across ≥ 3 devices (Invariant #11 violation). Evidence unanchored.
- **F2 — Signing rate < 95%.** Too many sig_path=NULL rows to publish with a clean chain of custody.
- **F3 — Docent consent not obtained.** No publishable audio capturing docent voice → audio channel degraded.
- **F4 — Team count < 4.** Per LOGISTICS §16.2 — scale-down threshold triggers kill-switch.

Any F-level trigger → investigation post-report is published as a methodology failure case study, not a scientific paper. **Still publishable** — failure is learning.

---

# 6. Single-rater exploratory triage protocol (degraded from blinded adjudication per 2026-04-28 amendments)

## 6.1 Audio EVP candidate triage (Class B exploratory)

Flagged audio EVP candidates are extracted as short segments (3-10 s), anonymized (no file name, no timestamp, no room label), and presented to the single rater (Mato) in a randomized order alongside **matched-noise negatives** (same-day ambient from control zone, same-length, no flag) at a **1:1 ratio (one matched negative per anomaly candidate)** — pre-registered before the active window opens.

**Honest framing (per 2026-04-28 §10 amendment #2 + Codex peer-review feedback):** This is **exploratory triage with single-rater discrimination against planted controls**, NOT blinded reviewer adjudication. With N=1 rater, the rater is not blind to their own prior knowledge of which candidates were flagged by the detector — only to which specific blinded segment is which. Paper will frame Class B audio EVP results as exploratory triage results with disclosed single-rater limitations, NOT as adjudicated anomalies.

Class B 2-reviewer adjudicated target retained for post-Inv-#2 work; Class A target (Inv #3): 3 reviewers + Fleiss' κ ≥ 0.6.

## 6.2 Rater identity + scope

**Mato, single rater, exploratory triage only (per 2026-04-28 §10 amendment).** External adjudication-grade reviewer was not secured by the pre-reg-confirm deadline. Rather than claim adjudication that the protocol cannot deliver, Class B audio EVP at Inv #2 is pre-registered as exploratory triage. The paper will quote this section verbatim and not present audio EVP results as anomaly-adjudicated.

## 6.3 Decision rubric (pre-registered before active window)

**Triage marks per segment.** Mato marks each blinded segment as one of: `anomaly`, `ambient`, `uncertain`.

**Pre-registered counting rules:**

1. **Per-candidate decision.** A candidate segment counts as a triage-positive only if Mato marks it `anomaly`. `uncertain` is reported separately and excluded from the triage-positive count.

2. **Negative-pool false-positive rate (operating characteristic, pre-registered).** Each candidate is paired with exactly 1 matched-noise negative (1:1 ratio) drawn from the control-zone ambient. If Mato marks a negative as `anomaly`, that mark counts toward the **false-positive rate denominator**. The pre-registered acceptable false-positive rate is **≤ 20%** across all negatives presented during a session.

3. **Track-validity gate.** If false-positive rate **> 20%** across the session's negatives, the entire audio EVP track is reported as **inconclusive** (no triage-positive count published) — the rater could not discriminate signal from noise at the pre-registered operating characteristic. This is a hard pre-registered gate, not a post-hoc judgment.

4. **Track-valid reporting.** If false-positive rate **≤ 20%**, the triage-positive count is published with: (a) per-candidate confidence (`anomaly` vs `uncertain`), (b) the false-positive count + rate, (c) total candidates + total negatives presented, (d) one-rater discrimination accuracy (true positives correctly distinguished from negatives) — NOT as an "agreement statistic" (which requires a second rater).

5. **No multi-anomaly rule needed for Class B.** With N=1 rater, there is no inter-rater multi-anomaly resolution rule — single rater either marks `anomaly` or does not.

**What this rubric is NOT (honest disclosure):**

- It is **not** Cohen's κ — that requires N≥2 raters.
- It is **not** "blinded adjudication" — the rater knows the candidate pool was detector-flagged.
- It is **not** an "agreement rate" — that requires another observer.
- It **is** one-rater discrimination performance against planted controls at a pre-registered operating characteristic, framed as exploratory triage.

---

# 7. Commitment to publish

1. **Null results will be published.** Explicit commitment.
2. **Full methodology + code + data (Class B tier only, per POST-INV retention) published alongside paper.**
3. **Raw evidence archive with signatures available for reviewer verification** via request to Mato@VEIL email.
4. **Pre-registration doc (this file) OPTIGA-signed + public** by 2026-04-29 23:59 UTC.

---

# 8. Limits — what Inv #2 CANNOT claim

Explicit scope boundaries, pre-committed:

1. **VEIL cannot claim "consciousness persists after death."**
2. **VEIL cannot claim "Elizabeth Margaret" or any specific entity.**
3. **VEIL cannot claim "the Greene Homestead is haunted" as a fact.**
4. **VEIL cannot claim "paranormal phenomena exist" as a categorical truth.**

VEIL CAN claim:
- Multi-modal sensor events occurred at specific timestamps + locations.
- Sensor events matched / did not match pre-registered convergence criteria.
- Team members reported subjective experiences at specific timestamps.
- Historical reports of phenomena at this venue are documented.

The framing is **"documenting unusual environmental events + report-measurement correlations at a historic site with paranormal attribution, using cryptographically signed multi-modal capture."** (per W7c scientific-rigor recommendation.)

---

# 9. Pre-disclosed limitations (Class B honest)

Documented here so reviewers see them in the preamble, not in discovery:

1. **N = 1 investigation.** No statistical population; case report only.
2. **Single pre-registered inferential test** (H1 convergence). All other analysis is descriptive.
3. **Software-rooted signing (Ed25519) likely, not hardware-rooted (OPTIGA).** Class B ceiling per signer origin. Hardware-rooted OPTIGA attestation is the Inv #3 target.
4. **Classification is Mato-only** (sole Evidence Coordinator). Publication consent is 4-way (Mato + team + museum + Mato's peer reviewer).
5. **Dual-mode convergence detection (2026-04-20 amendment).**
   - *Real-time broadcast:* During the 5/1 active window (T+0 to T+180), the VIGIL backend runs `detect_convergence()` incrementally on a 20s rolling window as events arrive and broadcasts new clusters over the WebSocket (`MSG_CONVERGENCE_ALERT`) to the dashboard Alert Banner. Operators see live alerts and may react (go to the cluster's room, increase sensor density there).
   - *Post-hoc canonical compute:* On session `/end`, `detect_convergence()` runs once over all session events, persists clusters to the `convergence_events` table, and re-broadcasts. **The post-hoc canonical run is the reported H1 measurable.** Real-time broadcasts are not persisted and are not the reported result.
   - *Reactive-cluster sensitivity analysis (required):* Because operator reaction to live alerts can produce reactive cascades (more activity → more sensor events → more clusters), the Phase 2 notebook will flag any post-hoc cluster whose anchor timestamp is within 5 minutes of a prior cluster fire in the same room, and report two subsets — **primary H1 result (all clusters)** and **non-reactive subset**. The difference informs reviewers whether reactive cascade is a material confound for Inv #2.
6. **Control zone is a decoy pack at base, not a matched-occupancy control room.** True control = Inv #3.
7. **Blinded audio review is 1-reviewer self-blinded (per 2026-04-28 §10 amendment), not 2 or 3.** External reviewer was not secured by the pre-reg-confirm deadline (T-3 to investigation); the §6.2 single-rater fallback path defined in the original draft is now the chosen path, formalized via §10 amendment so the choice is on record before OPTIGA-sign rather than discovered post-investigation. Cohen's κ not computable with single rater; raw agreement rate vs matched negatives reported instead, with per-segment confidence (anomaly / uncertain) tracked. Class B publishability is preserved; the degraded blinding is a disclosed methodology limitation, not a defect.
8. **No academic ethics-review IRB.** VEIL is pre-institutional. All research is consent-based + non-invasive; future Inv-#N will include IRB if VEIL becomes institutional.
9. **Single-source channels — failure handling pre-registered (2026-04-27 amendment, scope reduced 2026-04-28 #2).** Removing body cams (per §10 amendment 2026-04-27) and dropping CO2 + VOC + Video luminance channels (per §10 amendment 2026-04-28 #2) makes the **Audio EVP** channel single-sourced per pod (one ICS-43434 per pod, no body-cam redundancy). Pre-registered failure handling:
   - **Per-channel uptime is logged.** VIGIL device_health daemon records every sensor's heartbeat; per-channel uptime windows are computed at session /end.
   - **Downtime windows are excluded from anomaly counts.** A channel that drops out for >30s contributes no events during the gap; its baseline rate denominator is reduced proportionally for the §3.2 per-channel anomaly count + bootstrap CI computation.
   - **Reactive-cluster sensitivity analysis (already pre-registered §9 item 5) extends to dropout sensitivity:** the Phase 2 notebook will report H1 cluster results both INCLUDING and EXCLUDING any cluster whose anchor falls within ±60s of a per-channel dropout boundary in the same room.
   - **Failure floor for §5 success criteria:** if total uptime <80% across either Audio EVP or Video luminance burst channels for the active 180-min window, the investigation degrades to S3 (methodology completion) per §5.1 — H1 cannot be reported with confidence below this floor.
   - **Restart resilience for VIGIL backend:** a Pi 5 backend restart mid-session (e.g. power-loss recovery) wipes the in-memory real-time convergence broadcast dedup state (`RealtimeBroadcastDedup`, vigil/backend/convergence/__init__.py). Operators may see duplicate convergence alerts post-restart for clusters whose 20s rolling window spans the restart. **This affects operator UX only — the post-hoc canonical detector at /end re-runs from DB events and is unaffected.** Persistence of dedup state across restart is on the June sprint roadmap (ROADMAP-2026-Q2-Q3.md Phase 2 Week 3).

These are **disclosed limitations**, not bugs. They define what Class B means at this stage.

---

# 10. Amendment log (append-only)

| Date | Section | Change | Signer | Sig-ID |
|---|---|---|---|---|
| 2026-04-20 | initial | Draft created | Mato Schultz | 62aecbc32213 |
| 2026-04-20 | §9 item 5 | Replaced "No real-time convergence detection" with dual-mode disclosure: real-time broadcast (operator UX) + post-hoc canonical (reported H1) + reactive-cluster sensitivity analysis. Rationale: VIGIL dashboard is AI-assisted LIVE per Mato 2026-04-20 decision; suppressing real-time alerts would disable the intended operator workflow. Pre-reg integrity preserved because the reported H1 measurable is explicitly scoped to the post-hoc batch, not the real-time stream. Reactive-cascade risk addressed via mandatory sensitivity analysis. | Mato Schultz | 62aecbc32213 |
| 2026-04-27 | §2 + header L5 | (a) Removed body cams from Audio EVP source list and Video luminance burst source list. Body-cam hardware not procured for Investigation #2; channel deferred to Investigation #3. ICS-43434 pod-mounted I²S mics + NoIR Pi camera modules cover the same physical phenomena (audio EVP candidates, video luminance bursts) at fixed pod locations, with reduced spatial coverage and no per-investigator witness-local context vs the body-cam architecture deferred to Inv #3; per-investigator mobile audio + video coverage is dropped for this investigation. Pre-reg integrity preserved because the H1 measurable (post-hoc convergence cluster from `detect_convergence()`) does not depend on body-cam events as a required input. Sibling Inv #2-scoped docs receive a banner header noting body-cam workflows are not in effect for 5/1 (companion commit `866cece` landed 2026-04-27). (b) Corrected header L5 day-of-week from "(Thursday)" to "(Friday)" — 2026-05-01 is Friday; prior text was a draft typo. | Mato Schultz | 62aecbc32213 |
| 2026-04-28 | §6.1 + §6.2 + §6.3 + §9 item 7 | Blinded audio review degraded from "2 independent reviewers (Mato + 1 external)" to "1 self-blinded reviewer (Mato)" with reviewer randomization + matched-noise negatives + tagged-noise-floor cross-check. Rationale: external reviewer was not secured by the pre-reg-confirm deadline (T-3 to investigation Fri 5/1); the §6.2 single-rater fallback path defined in the original 2026-04-20 draft is now the chosen path, formalized via this amendment so the choice is on record before OPTIGA-sign rather than discovered post-investigation. §6.3 rubric updated to handle single-rater (segment achieves anomaly status if Mato marks "anomaly" AND survives matched-negatives randomization). §9 item 7 updated from "2-reviewer, not 3" to "1-reviewer self-blinded." Class B publishability preserved; degraded blinding is a disclosed limitation, not a defect. Cohen's κ not computable with single rater; raw agreement rate vs matched negatives reported instead. | Mato Schultz | 62aecbc32213 |
| 2026-04-28 #2 | §2 + §6 (entire) + §9 item 9 | **(a) §2 anomaly criteria scope reduction.** Three channels removed because pod-side reader code was not delivered before the pre-reg-sign deadline despite hardware being in Mato's possession: (i) CO2 (SCD-30/SCD41), (ii) VOC (BME690), (iii) Video luminance burst (NoIR Pi cams). BME690 also dropped from the Temperature row (BMP280 retained as sole temp source). Pre-reg integrity preserved by removing channels rather than signing thresholds the code cannot produce. Channels deferred to Inv #3. Surviving §2 channels at Inv #2: RM3100 magnetometer (mag-pod), Temperature/BMP280 (env-pod), Pressure/BMP280 (env-pod), Audio EVP/ICS-43434 (audio-pod), Capacitive touch/CAP1188 (touch-pod), UV (D3300 + ZWB2, manual). **(b) §6 (entire) honest reframing per Codex peer-review feedback.** Codex (hostile peer reviewer, 2026-04-28) flagged the prior 2026-04-28 §6 amendment as REWORK on these specific grounds: "self-blinded" doesn't actually blind the rater from their own prior knowledge of which candidates were detector-flagged; §6.3 was under-specified (no negative count, no false-positive threshold, no decision rule); "raw agreement rate vs N=1 rater" is not a meaningful statistic; the document declared "publishability preserved" inside the same amendment that downgrades the bar (rewriting Class B downward to fit operational miss). This amendment addresses each: (i) §6 retitled "Single-rater exploratory triage protocol" — no claim of "blinded adjudication"; (ii) §6.3 specifies 1:1 negative ratio, ≤20% false-positive rate threshold, hard track-validity gate above threshold, explicit "uncertain" handling, no multi-anomaly rule needed at N=1; (iii) Paper will frame Class B audio EVP as exploratory triage results, NOT adjudicated anomalies; (iv) Removed "publishability preserved" claim from amendment self-text — publishability of degraded scope is for the JSE reviewer to determine, not for the amendment to assert. **(c) §9 item 9 scope update.** Single-source channel handling now applies to Audio EVP only (CO2 + VOC + Video luminance dropped per (a)). | Mato Schultz | 62aecbc32213 |
| 2026-04-30 | §10 sig backfill + ceremony execution | (a) **Backfill.** Sig-ID column for the 3 prior rows dated 2026-04-27, 2026-04-28, and 2026-04-28 #2 was previously the placeholder text `(sig at commit)`. Backfilled to the actual production signer_id `62aecbc32213` (canonical, published in `05_PRODUCTS/veil/PUBKEYS.md` line 16). (b) **Ceremony execution timing.** The original OPTIGA-sign deadline was 2026-04-29 23:59 UTC per §9 item 4. That window slipped. The ceremony was executed at T-1 instead — `2026-04-30 20:22 EDT` (`2026-05-01 00:22 UTC`), which is 24 hours BEFORE the Fri 2026-05-01 20:30 EDT investigation capture window opens. Methodology integrity (sign-before-capture) is preserved; the deadline-slip is documented for full transparency rather than buried. (c) **Re-sign rationale.** This amendment row (and the Sig-ID backfill above) requires re-signing per `scripts/RUNBOOK-OPTIGA-CEREMONY-INV02.md` §"Rollback / emergency" — adding any content to the artifact invalidates the prior sidecar's `content_sha256`. The original signed bytes from the first sign ceremony remain in git history at commit `03a166c` (sidecar archived at that tree); the new sidecar at the commit recording this amendment is the current canonical. Both sidecars are reproducibly verifiable by any third party with the artifact, the sidecar, the script, and the published `signer_id`. | Mato Schultz | 62aecbc32213 |
| 2026-05-02 | §2 + §9 item 9 + §10 (post-capture reconciliation) | **(a) Capture executed; deploy path was lateral, not the planned remote path.** Active session VIGIL-7f7397ee2140 was opened at the Spell Hall site (50 Taft Street, Coventry RI) at the pre-registered window (2026-05-01 20:30 EDT) [V via curl POST round-trip + GET /api/sessions list]. The pre-registered remote-deploy path required Tailscale-SSH from operator workstation VM213 to the Pi 5 base; the `--ssh=true` node-local pref combined with the tailnet ACL kept that path closed for the duration of the capture window [V per `01_IDENTITY/lessons-learned.md` L-145, committed `5e7b270`, the pref is not remotely flippable]. The deploy was completed via a lateral path: an operator-side Claude session on the WSL host `osdri96` reached the Pi 5 over the Internet Connection Sharing link `192.168.137.88` and ran the pod bring-up commands directly on the device [A — antigravity self-reported the bring-up; outcome V via /api/events round-trip, but the wire-level deploy session itself was not independently observed from VM213]. This path is NOT the doctrinal remote-deploy path documented in the bring-up runbook; it is disclosed here so the realized deploy provenance is on record. **(b) §2 anomaly criteria reduced at the active window, and the surviving channel produced null-by-construction data.** Three §2 channels did not deploy in window because the SSH gap in (a) blocked their bring-up: env-pod (BMP280 temperature + pressure), touch-pod (CAP1188 capacitive trigger objects), audio-pod (ICS-43434 EVP) [V — none POSTed to /api/events during the active window]. Surviving §2 channels at Inv #2: mag-pod RM3100 magnetometer (the only pod posting events) + UV (D3300 + ZWB2, manual). The RM3100 was not physically wired/present at the running mag-pod; readings posted to `/api/events` for the duration of the active session were X=Y=Z=0.000 µT [V via authenticated GET /api/events round-trip returning magnetometer events whose payloads were all-zero]. The pod did not perform a sensor-presence self-check at boot (REVID register read against the expected `0x22`) and silently posted zero-vectors instead of failing [V — confirmed by the structural follow-up landing as commit `66f5622` "veil(pods): boot-time sensor-presence self-check on all 4 pods" 2026-05-02]. The result is null-by-construction at the source-data layer (sensor absent), not at the methodology layer (rolling baselines + thresholds remain well-defined but have no informative signal to evaluate against). H1 (convergence cluster, 3+ types on 2+ devices) is structurally null because Inv #2 reduced to one channel on one device. H5 (commit-to-publishing-null) applies and is the operative disposition. The methodology-pilot value Inv #2 retains is the end-to-end cryptographic chain (pre-reg → OPTIGA-sign at T-1 → live capture → signed event POSTs → DB persistence) functioning under field stress; the sensor-data layer null is a Phase-2 hardware/self-check gap rather than a chain failure. Mumble investigator audio recording continues as descriptive context only, not as a pre-registered anomaly channel. **(c) Pod-to-backend schema deviation applied during lateral deploy; provenance gap to disclose.** During the lateral bring-up in (a), the operator-side session hot-patched `05_PRODUCTS/veil/vigil/backend/models.py` on the Pi 5 file system to add the magnetometer event enums that pod-side code was emitting but the backend was rejecting with HTTP 422 [A — antigravity reported the patch and HTTP-422 symptom verbatim; the actual diff was never read by me at the wire level]. The applied diff is NOT in the canonical olympus repository at the time of this amendment [V via `git status` of `05_PRODUCTS/veil/vigil/backend/models.py` returning clean]; the running Pi 5 backend at the active window deviates from the olympus repo HEAD that the pre-reg was signed against. Reconciliation owed [N]: (i) extract the antigravity-applied diff from the Pi 5 file system; (ii) commit it to the olympus repo with the diff body and the rationale tied to this amendment; (iii) attach the diff to the Inv #2 evidence chain so any third-party auditor can reproduce the running-backend behavior; (iv) add a CI schema-cross-check between pod-side event enums and backend `models.py` so the divergence cannot recur silently. Until (i)-(iii) land, any consumer of the Inv #2 evidence chain should treat the running magnetometer event schema as deviating from the canonical signed-against repo state. **(d) Re-sign rationale.** This amendment row requires re-signing per `scripts/RUNBOOK-OPTIGA-CEREMONY-INV02.md` §"Rollback / emergency" — adding any content to the artifact invalidates the prior sidecar's `content_sha256`. The original signed bytes from the 2026-04-30 ceremony remain in git history at commit `a93c6cc`; the new sidecar at the commit recording this amendment becomes the current canonical. Both sidecars are reproducibly verifiable by any third party with the artifact, the sidecar, the script, and the published `signer_id` `62aecbc32213` (`05_PRODUCTS/veil/PUBKEYS.md` line 16). Durable amendment file at `amendments/10-2026-05-02-capture-outcome.md`; one-command re-sign trigger at `amendments/10-2026-05-02-resign-trigger.md`. | Mato Schultz | 62aecbc32213 |

<!-- END PRE-REGISTRATION — OPTIGA-sign required by 2026-04-29 23:59 UTC; re-signed at T-1 (2026-04-30 20:22 EDT) per §10 amendment 2026-04-30; re-sign owed for §10 amendment 2026-05-02 (post-capture reconciliation) at next ceremony window per amendments/10-2026-05-02-resign-trigger.md -->
