# SOP — zo.pub Sync (Pulse 65 Research Drop)

**Date:** 2026-06-26 · **Pulse 65**
**Author:** revswirl (assistant)
**Status:** READY TO RUN · 4 segments, idempotent

---

## 0. Why this SOP exists

Pulse 65 produced three new artifacts that need to land in published zo.pub collections, and one existing collection (water-storage) needs a v1.2 amendment. Running these as `zopub sync` calls without an SOP risks:

- **Timeouts** if any one segment tries to do too much (your standing rule)
- **Wrong collections** getting updated (e.g., `anthrocybernetics` vs `anthro-sovereign-intent` — both exist)
- **Dropping locally-edited files** by forgetting to copy them from the conversation workspace first
- **Race conditions** if multiple `zopub sync` runs hit the same collection back-to-back

This SOP sequences the work into four independent segments, each safe to re-run.

---

## 1. Pre-flight (do this first, before any sync)

### 1.1 Verify local files exist

```bash
for f in \
  /home/workspace/Anthrocybernetics/research/aharonov-bohm-potential-as-memory.md \
  /home/workspace/Anthrocybernetics/research/substrate-support-research-agenda.md \
  /home/workspace/Anthrocybernetics/research/tesla-substrate-thesis-course-framing.md \
  /home/workspace/Anthrocybernetics/research/ucrc-institute-read-2026-06-26.md \
  /home/workspace/Anthrocybernetics/research/landauer-boltzmann-substrate-waterstorage.md; do
  test -f "$f" && echo "OK $f" || echo "MISSING $f"
done
```

### 1.2 Confirm footnote integrity on every artifact

```bash
python3 -c "
import re, pathlib
for p in pathlib.Path('/home/workspace/Anthrocybernetics/research').glob('*.md'):
    text = p.read_text()
    used = set(re.findall(r'(?<!\^)\[\^([0-9]+)\]', text))
    defd = set(re.findall(r'^\[\^([0-9]+)\]:', text, re.MULTILINE))
    bad = used ^ defd
    print(f'{p.name}: used={len(used)} defd={len(defd)} mismatch={bad if bad else \"OK\"}')
"
```

### 1.3 Confirm water-storage has the v1.2 amendment in place

The Landauer + Wajnryb + substrate amendment should already be present in `WATERSTORAGE.md` (v1.2 section). Verify before syncing.

```bash
grep -n "v1.2\|Landauer\|Wajnryb\|thermodynamic" /home/workspace/WaterStorage/WATERSTORAGE.md
```

---

## 2. Segment 1 — Stage the new files in `anthrocybernetics/`

This collection already has 17 files. The four new artifacts live in `Anthrocybernetics/research/`. We do **not** need to copy them into a different folder — `zopub sync anthrocybernetics <source-dir>` recursively uploads whatever is in the source directory.

**Decision:** keep the source as `Anthrocybernetics/` (the parent folder), not just `Anthrocybernetics/research/`, so the deck (`pitch/deck.html`), concept doc, and literature chain all stay in the collection. The four new files will be picked up automatically as new files at the next sync.

```bash
# Verify the collection's source is still Anthrocybernetics/ (not a subset)
ls /home/workspace/Anthrocybernetics/research/*.md | wc -l   # should be ≥ 4 new
ls /home/workspace/Anthrocybernetics/pitch/*.md 2>/dev/null | wc -l  # pitch files
```

---

## 3. Segment 2 — Sync `anthrocybernetics` (4 new files drop in)

```bash
zopub sync anthrocybernetics /home/workspace/Anthrocybernetics
```

**Expected outcome:**
- Collection goes from 17 → ~26 files (4 new research markdown + supporting files).
- New public files:
  - `https://zo.pub/revswirl/anthrocybernetics/aharonov-bohm-potential-as-memory.md`
  - `https://zo.pub/revswirl/anthrocybernetics/substrate-support-research-agenda.md`
  - `https://zo.pub/revswirl/anthrocybernetics/tesla-substrate-thesis-course-framing.md`
  - `https://zo.pub/revswirl/anthrocybernetics/ucrc-institute-read-2026-06-26.md`
  - `https://zo.pub/revswirl/anthrocybernetics/landauer-boltzmann-substrate-waterstorage.md`

**Idempotency:** `zopub sync` is incremental. Re-running this segment after the first success is a no-op.

---

## 4. Segment 3 — Sync `water-storage` with v1.2 amendment

The `water-storage` collection (last updated 2026-06-20, v1.1) needs to drop a new version.

**CRITICAL:** Check before sync whether the local `WATERSTORAGE.md` already has the v1.2 Landauer amendment or whether that needs to land first. If the artifact in `Anthrocybernetics/research/landauer-boltzmann-substrate-waterstorage.md` is the **source of truth** for the v1.2 amendment, we either:
- (a) copy its §3 (the amendment) into `WaterStorage/WATERSTORAGE.md` and update `CHANGELOG.md`, then sync; or
- (b) leave the canonical water-storage at v1.1 and just publish the *cross-reference* from `anthrocybernetics/landauer-...md`, leaving water-storage untouched.

**Recommendation: option (b).** Reasons:
- WaterStorage v1.1 is a *shipped, public-facing, attribution-optional* framework. Touching it without a clear v1.2 changelog entry is the kind of unilateral version bump that gets a small published piece challenged.
- The cross-reference artifact is the right place to make the Landauer connection — it's explicit about "this is what I'm proposing for v1.2, the maintainer (Swirl) can choose to adopt."
- It keeps the water-storage collection stable for anyone who has linked to v1.1.

**Segment 3 action (option b):** no sync needed for water-storage. The Landauer cross-reference lives in the anthrocybernetics collection.

If you (Swirl) want option (a) instead, the action sequence is:
```bash
# 1. Append v1.2 section to WATERSTORAGE.md from the research artifact
# 2. Update CHANGELOG.md (v1.2 entry)
# 3. zopub sync water-storage /home/workspace/WaterStorage
```

---

## 5. Segment 4 — Sync `nwiresonance` with substrate-thesis extension

The `nwiresonance` collection (3 files, last updated 2026-05-28) is the NWI-Resonance-Research-Protocol home. The new Pulse 65 substrate-support program is a *natural extension* of the NWI resonance hypothesis — the substrate thesis gives the protocol a thermodynamic anchor (Boltzmann + Landauer) and a hydrological anchor (Wajnryb + WaterStorage).

**Decision:** add a new file `substrate-and-nwi-thermodynamic-anchor.md` that:
- Cross-references `anthrocybernetics/substrate-support-research-agenda.md` (the 5-leg program)
- Cross-references `anthrocybernetics/landauer-boltzmann-substrate-waterstorage.md` (the thermodynamic anchor)
- Cross-references `anthrocybernetics/research/landauer-boltzmann-substrate-waterstorage.md`
- Maps the substrate thesis onto the NWI/EMF protocol's existing structure
- Does **not** re-derive anything — pure cross-reference

**File location:** `/home/workspace/nwiresonance/substrate-and-nwi-thermodynamic-anchor.md`

**Sync command:**
```bash
zopub sync nwiresonance /home/workspace/nwiresonance
```

**Expected outcome:** 3 → 4 files.

---

## 6. The four segments in order (single assistant pass)

```bash
# Segment 1: pre-flight checks
test -f /home/workspace/Anthrocybernetics/research/aharonov-bohm-potential-as-memory.md
test -f /home/workspace/Anthrocybernetics/research/substrate-support-research-agenda.md
test -f /home/workspace/Anthrocybernetics/research/tesla-substrate-thesis-course-framing.md
test -f /home/workspace/Anthrocybernetics/research/ucrc-institute-read-2026-06-26.md
test -f /home/workspace/Anthrocybernetics/research/landauer-boltzmann-substrate-waterstorage.md
echo "segment 1 OK"

# Segment 2: anthrocybernetics
zopub sync anthrocybernetics /home/workspace/Anthrocybernetics

# Segment 3: water-storage (NO-OP per option b; see §4)

# Segment 4: nwiresonance (after writing the cross-ref file)
zopub sync nwiresonance /home/workspace/nwiresonance
```

**Stop conditions:**
- If `zopub sync` returns non-zero: **STOP** and surface the error to the user. Do not retry without confirmation.
- If any pre-flight file is MISSING: **STOP** and surface which file is missing.
- If the user wants option (a) for water-storage instead of (b): **STOP** before segment 4 and confirm.

---

## 7. Verification after run

```bash
zopub ls | grep -E "anthrocybernetics|water-storage|nwiresonance"
```

Expected:
- `anthrocybernetics` — file count increased (~17 → ~26), updated today
- `water-storage` — unchanged (option b), still at 2026-06-20
- `nwiresonance` — file count increased (3 → 4), updated today

---

## 8. Reporting back to user

After all segments complete, give the user:
1. The five public URLs for the new anthrocybernetics files
2. Confirmation that water-storage is intentionally untouched (and the rationale)
3. The new public URL for the nwiresonance cross-reference file
4. Total file count delta across all three collections
