The HOP Optimisation Protocol

05-dwell-as-master-index

05 — Dwell as Master Index

An operational walk-through of how the discovery layer (§15), the matching layer (§5.7), and the brokering layer compose into one loop for a worker finding work and a poster pollinating discoverability.

The setup

A worker — anything from a kid in a regional town with a car and a phone to a fleet of warehouse robots to an inference rig serving language models — has a capability vector. Sparse, in ~3,800-dim emoji space. Most dimensions zero; the lit ones describe what the worker can do, where, when, and at what price.

A poster — anyone with work to offload — has a task vector. Same shape, same coordinate space. Lit dimensions describe what is needed.

Both want to find each other.

Phase 1 — Discovery (the worker’s side)

The worker’s Skill-Agent (§5.1) starts every browse cycle with a coordinate projection:

capability:    {🚗: 1.0, 📍: melbourne_cbd, ⏰: weekdays_morning,
                💰: prefer_paid, 🤖: 0.0}
top-3:         📍 🚗 ⏰
top-2:         📍 🚗
top-1:         📍

The Skill-Agent issues a GET dwell.help/📍🚗⏰. Dwell returns three deposits, one per slot:

best:     "🪙 melbourne-transit-coop://requests/r-4f2a    vector: {📍:0.95, 🚗:0.9, ⏰:0.7, 💰:0.5}    price: -22 AUD    window: until 09:30"
top_ten:  "🪙 outer-suburbs-rideshare://requests/r-12c     vector: {📍:0.6, 🚗:0.85, ⏰:0.6, 💰:0.4}    price: -18 AUD    window: until 10:00"
random:   "🪙 community-board://requests/r-993            vector: {📍:0.7, 🚗:0.5, 🏥:0.8, 🆘:0.9}    price: 0       window: open-ended    note: 'driver needed to take elderly neighbour to appointment'"

Three pointers, three different shapes. The random slot is the discovery layer’s explore-exploit perturbation — a low-priced, high-need community ask the worker would never have queried for but might value.

The Skill-Agent also issues a parallel browse at 📍🚗 (broader net) and at 📍 (city-wide). The cross-depth pattern gives both specificity and coverage. Most of the deposits at 📍 are noise; the value is in the corner cases the top-3 browse missed.

Phase 2 — Matching (the §5.7 layer takes over)

Each pointer’s body carries the full sparse vector. The Skill-Agent now does fine matching: cosine similarity between capability and task, plus the JSON-subset hard-filter for must-haves (requirements <@ capabilities).

For pointer r-4f2a:

  • Hard filter: {requires_vehicle: car, in_zone: melbourne_cbd, license: au} — all in capability set. Pass.
  • Cosine similarity: 0.91 (high — vectors align well in lit dimensions).
  • Price: -22 AUD means the poster pays. Acceptable.

For pointer r-993 (the random-slot community ask):

  • Hard filter: passes (driver, in zone, has time).
  • Cosine: 0.62 — lower, because the 🏥 (medical) and 🆘 (urgent-help) dimensions are not in the worker’s capability advertisement.
  • Price: 0 — no payment.
  • Worker’s Skill-Agent has a growth declaration in this neighbourhood. Decides to bid anyway.

The fine-matching layer ranks r-4f2a first by combined fit, but the Skill-Agent surfaces both to the worker for the discretionary call. The worker accepts r-4f2a for the paid run and notes r-993 for the afternoon.

Phase 3 — Bidding and execution

The Skill-Agent submits bids via the brokering layer (the workchain). For r-4f2a in mutex mode, bid acceptance creates a cryptographic mutex; the task is locked to this worker. For r-993 in mutex mode at price 0, same handshake but no payment flow.

The Hunter (§5.3) — the worker’s dumb-executor daemon — picks up the locked tasks and runs them. The worker drives, picks up the passenger, completes the ride. The Hunter signs the completion event; the workchain validates; the character block is dual-signed and lands on both the worker’s Skillchain and the workchain’s posted-completions ledger.

Settlement runs per the chain’s Anchor Block. -22 AUD flows from poster to worker minus the chain’s tax. The character block accrues to the worker’s recent-stamps history.

Phase 4 — Pollinating discovery (the poster’s side)

After the ride completes, the worker’s Skill-Agent updates the worker’s skillchain pointer at the relevant dwell address:

POST dwell.help/📍🚗⏰
body: "🤖🧠 <worker's-skillchain-endpoint>
       capabilities: {🚗:1.0, 📍:melbourne_cbd, ⏰:weekdays_morning, 💰:prefer_paid}
       recent stamps: 143 in last 30 days, primary categories: 📍 🚗 ⏰
       attestation: <link to most recent character block>"

Future Worker-Agents (§5.2) evaluating bids on similar tasks now have this worker as a discoverable bidder candidate, even on chains the worker has not previously interacted with directly.

The community-ask poster, after r-993 closes, deposits a thank-you insight at 📍🏥🆘 so future drivers searching for community-care work in the area find the pattern.

What this materialisation illustrates

  • Discovery is dwell. Matching is §5.7. Execution is the workchain. Trust is HOP overall. Four distinct substrates, four distinct jobs, one coordinate system.
  • The same loop works for skillchain discovery. A poster looking for candidate bidders projects the task vector to a coarse address, browses dwell for skillchain pointers, pulls candidate Skillchains, ranks via §5.7. The discovery primitive is universal because the coordinate system is universal.
  • The random-slot is load-bearing. Without it, the worker never sees the community-ask. The explore-exploit perturbation is the protocol-level answer to basin-lock — both at the dwell-as-mesh layer and at the worker-as-individual-finding-meaning layer.
  • Cross-chain discovery does not require federation treaties. The Melbourne-transit-coop, the outer-suburbs-rideshare, and the community-board chains are unrelated; the worker found work on all three through one dwell browse. Federation gossip (§8.19) is for peer-chain push; dwell is for everyone-else pull. Both work; both compose.

The materialisation is not exhaustive. It does not cover: dispute resolution, what happens when the worker fails to complete, the bid-window mode for open_competition postings, encrypted-mail follow-up between worker and poster after the ride. Those are operational details the relevant sections specify. The loop above is the spine.

Surfaced from a working session on the ant_colony substrate, 2026-06-22. Illustrates §15 (Discovery Layer), §5.7 (Universal Matching Coordinate System), §8.19 (Federation as Vector Channel), and the bilateral task primitive from §2 expansion (price-signed task semantics — the worker takes negative-price work and could also offer positive-price labour through the same primitive).