Objectives & prerequisites
Learning objectives
- Author a small provider-neutral Pico message envelope covering the seven kinds enumerated by Memo 10 §§ 9–10: observation, event, command, delegation, result, presence, discovery.
- Populate the envelope with one sample message per kind and show how stable Pico identity (
source.pico) is deliberately distinct from every transport identifier (source.transport.mqtt.client_id,source.transport.kubernetes.pod). - Wire correlation and causation across a delegation and its paired result, and cite an upstream observation from its downstream event via
causation_id. - Attach an authorization context to every command and delegation and explain why publishing to a topic is not itself authorization.
- Run a deterministic local verifier — no broker, no credentials, no external SaaS — that checks the envelope shape, the identity separation, the correlation/delegation/causation graph, the authorization context, and the MQTT/EMQX adapter shape.
- Map the same provider-neutral envelope onto MQTT topics and describe how an EMQX adapter would attach without claiming live broker execution.
Prerequisites
- Completion of the Hello Two Picos lab — the multi-Pico runtime story this lab layers a provider-neutral message envelope onto without introducing a second runtime.
- Familiarity with Memo 10 · EMQX as the Pico Nervous System sections 5–13 (Pico-to-Pico communication, discovery, event model, identity, security, rulesets) and 16–22 (Kubernetes fit, MCP vs MQTT, Composio comparison, reference architecture, proposed artifacts, academy exercise).
- Familiarity with the Pico course vocabulary (Pico, Identity, Ruleset, Capability, Hands, Evidence).
python3withpyyamlinstalled — the verifier uses standard-libraryjsonplus PyYAML. No Kubernetes cluster and no MQTT broker are required.
Environment
The verifier is intentionally environment-light:
Operating system: any (macOS, Linux, WSL) with
bashandpython3onPATH.Python packages:
pyyaml(pip install pyyaml). The verifier falls back with a clear error if PyYAML is missing.Reference Python pin:
python33.10+ was used to author this lab.Estimated time: 30–45 minutes.
Cleanup step (also repeated at the end of the walkthrough):
rm -rf build/hello-pico-nervous-system-mqtt work/hello-pico-nervous-system-mqtt
Live-broker path (optional, out of scope)
This lab does not stand up a live MQTT broker or EMQX cluster. The shipped downloads/emqx-adapter.yaml names no endpoint, ships no credentials, and is marked status: optional-not-executed. The verifier asserts this. If you later want to carry the same envelope over a real broker, that would be a follow-up lab.
Kubernetes substrate (unchanged)
The Wrangler-style topology fragment in downloads/topology.yaml reuses the same manifold-on-kubernetes RuntimeEnvironment used by the Hello Two Picos lab. This lab intentionally does not introduce a second runtime; the nervous-system envelope is authored and verified as data, and the same Manifold Channels used by the Hello Two Picos lab are the delivery path when a learner later wires the messages onto the cluster.