# MUHL_TRAIN_BRIDGE — a read-only backend swarm is not a land

Slack `1787647412.543649` (2026-08-25), JOJO
`TAKING_BACKEND_SWARM`
`jojo-clean-grok-modelwork-swarm-20260825-01`:

> H-006 Muhlnickel training bridge — source-indexed synthetic-only
> cross-process implementation spec; no host inference or live
> Titan/device/model/container mutation.

A Slack taking with **no write tools** is **CLAIMED**. The leftover
is this card plus `host/muhl_train_bridge.py`. It does not remint
the JOJO swarm id. It does not remint `MUHL_RECEIPT_LANE`,
`LDA_RECEIPT`, `SUBZERO_TECH`, `SUBZERO_EXPLORER`,
`SUBZERO_BUYERS`, or `SUBZERO_GTM`. It does not copy private
LocalDeviceAgent source. It does not write titan. It does not
smash `commons.mno`. It does not add a gate. Blank `from=` still
lands as `UNSEATED`.

## What this leftover is

H-006 only. A **source-indexed synthetic-only cross-process
training packet** that can be reviewed on current main.

It classifies one packet object. It does not run a host trainer.
It does not claim Titan runtime. It does not sell training or
customer demand.

The cited Commons pin
`6a934ed9d07c293296fead0f403fbbcb3afc15a9` is an **ANCESTOR**,
not current HEAD. Ancestor is not current head.

## Three cells stay apart

| Cell | Fact |
|---|---|
| H-005 Subzero proof adversary | Already-landed TECH / EXPLORER / BUYERS / GTM stay **NAMED**. No duplicate build. |
| H-006 Muhlnickel training bridge | **THIS leftover.** Synthetic packet only. |
| H-007 profitability crosscheck | Already-landed `LDA_RECEIPT` stays **NAMED**. |

`SYNTHETIC_OK` means the packet is well-formed. It is not a live
train. Slack / ntfy / `TAKING_BACKEND_SWARM` stays **CARRIER_ONLY**.

## Public packet fields

Required: `kind=MUHL_TRAIN_PACKET`, `source_index` (public
Commons path), `process` (`request` / `train` / `result`),
`bytes`, `host_inference=false`, `titan=NOT_WRITTEN`,
`live_device=false`, `live_model=false`, `live_container=false`.

Refused: host inference, copied LDA source, titan write, live
device / model / container mutation, auth, gate, missing fields.

A miss never prints 0.

## Fixtures

| File | Expected |
|---|---|
| `ground/muhl_train_bridge/jojo-swarm.json` | `CARRIER_ONLY` |
| `ground/muhl_train_bridge/valid-synthetic.json` | `SYNTHETIC_OK` |
| `ground/muhl_train_bridge/invalid-host-inference.json` | `NOT_LANDED` |
| `ground/muhl_train_bridge/invalid-live-titan.json` | `NOT_LANDED` |
| `ground/muhl_train_bridge/invalid-missing-fields.json` | `NOT_LANDED` |

The JOJO swarm taking stays **CARRIER_ONLY**. Do not remint it.
The schema-valid fixture cites the known-present Action Pad
directive as a Commons source index, not as a live train.

## Measure

```text
python3 host/muhl_train_bridge.py
python3 host/muhl_train_bridge.py --root .
python3 host/muhl_train_bridge.py --self-test
python3 host/muhl_train_bridge.py --packet ground/muhl_train_bridge/valid-synthetic.json
python3 -m unittest -v test_muhl_train_bridge.py
```

X = leftover files + fixtures + already-landed H-005/H-007 cards
in SEARCH_SPACE.
Y = cell states / pin ANCESTOR / fixture states / no remint.
Z = missing file / remint / host inference / live titan /
FINDER-FAILED. Calibration = known-present `ground/EXECUTE.md` +
`ground/HEAD.md` + Action Pad directive in the same run.

Door: [muhl-train.html](../muhl-train.html).
titan: **NOT_WRITTEN**. No auth. No gate. Open door.
Talk is not a land.
