season deck · gimbalabs piece of pi · protocol v0.1.0

flyway

One open corridor, no controller — sovereign AI-agent murmurations that recognize each other in flight.

9 protocol tools 13 ADRs 8 walkthroughs 449 tests 🟢

the problem

Swarms can act. They can't yet cross a border.

An autonomous agent swarm — a murmuration — already gets real work done under one owner. What it can't do is reach across an organizational boundary to another swarm: verify who it's talking to, exchange a signal, reach a binding agreement, and walk away cleanly.

The obvious fix is a central coordinator sitting above everyone. That fix quietly dissolves the thing worth protecting: each owner's sovereignty over their own agents.

flyway is the other answer — a shared protocol, no controller.

first, a definition

A murmuration is any agent swarm answering to a single human Source.

The unifying property is not the runtime — it's a Source whose authority is anchored in a Git-addressable project, with agents acting under it. A murmuration might be a harness install, a Claude Code session with subagents, an IDE agent workflow, or a human driving GitHub by hand.

“Source — the person who first takes the initiative and the risk on an idea, and holds the vision and accountability for it.”

after Peter Koenig · Tom Nixon, Work with Source (2021)

sovereign

No master flock

Not a controller, daemon, or dependency of any harness. It never forces agreement between Sources.

consent

Achieve, don't override

It helps sovereign Sources surface objections, integrate concerns, and reach agreements every party can stand behind.

exact

Cryptographic throughout

Every identity, recognition, and signal is Ed25519-signed and independently verified on both sides.

the surface

Nine typed tools, defined once.

The whole protocol is nine tools defined in flyway-core and exposed through every adapter — the agent skill, an MCP server, and a CLI — without rewriting. All nine run end-to-end.

ToolWhat it doesStatus
flyway_initMint the murmuration's identity — DID document, EdDSA-signed entity statement, Ed25519 keypair.wired
flyway_statusReport identity, peers, agreements, effective exit-state — and inbox delivery-state.wired
flyway_discoverSearch a flyway directory for potential peers (pre-trust) — local file or https:// URL.wired
flyway_recognizeVerify a peer's identity and write a signed recognition entry — locally or over a did:web URL.wired
flyway_tensionFlag a tension to a recognized peer — the S3 Navigate via Tension pattern.wired
flyway_proposeDrive the full S3 staging chain: driver → requirements → draft → refinement → final.wired
flyway_respondAnswer a tension (acknowledge / dispute / dissolve / transfer) or a proposal (accept / object / exit).wired
flyway_checkRead incoming signals; verify signatures against the recognition-time cached key; flag anomalies.wired
flyway_exitLeave a peer, project, or syndicate — a signed, unilateral notice no peer can prevent.wired

Beyond the nine, agreement materialize turns an accepted final-stage proposal into a co-signed flyway/agreements/<id>.yaml — a local act over records both sides already hold.

not invented here

The protocol stands on three pillars.

governance

Sociocracy 3.0

The signal vocabulary is S3 verbatim — tensions, drivers, consent rounds, proposal forming. Governance patterns, not ad-hoc message types.

identity

W3C DID + did:web

Each Source is a did:web resolvable from its repo. Recognition binds a peer's key and a fingerprint of their statement at trust-time.

method

ADR-first discipline

Every architectural decision recorded before code — 13 accepted ADRs form the system's institutional memory.

the season

Implement → walkthrough → review → harden.

Each milestone produced behaviour, not just code. Every walkthrough runs real code against a real on-disk repo, surfaces gaps as issues, and the next cycle closes them.

gold nodes ship tools · violet nodes are multi-agent review passes

S+0 · protocol surface
Nine tool schemas, agent skill, MCP, CLI scaffold

The whole surface, typed and schema-stable, before a single signal moved.

S+1 · identity + recognition
Signed identities; mutual recognition

Domain-separated EdDSA; inline peer-key binding. Tier 1.

S+2–S+4 · the first dialogue
Signal envelope → first tension → round-trip

Outbox/inbox transport; flyway_check; A↔B response bound to its subject. Tiers 2–3.

review · 3 agents
Architecture · TypeScript · security

ADR-0009 captures the antecedent-verification invariant; 12 findings filed.

S+5 · co-signed agreements
Proposal staging chain → byte-identical agreement

Detached signatures ride inside the final + accept; each side materializes the same file. Tier 4.

S+6–S+7 · exit & discovery
Clean unilateral exit; pre-trust directory search

The nine-tool surface completes.

S+8–S+12 · reach at a distance
HTTPS directory · did:web recognition · github-pr delivery

The full discover → recognize → deliver loop runs with no shared filesystem. Tiers 5–7. ADRs 0010–0012.

S+13 · exit-aware status
Read the exit lifecycle back

A relationship or agreement reads as effectively closed from one read — the co-signed file never rewritten. ADR-0013, Tier 8.

S+14 · wrap-up · this week
Green build; four backlog items resolved

Typecheck, lint, and format to zero; an honest v0.2 roadmap; the deployed site + this deck.

the flagship moment

Two flocks. One agreement. Byte-identical.

A proposes a final-stage engagement agreement; B accepts, co-signing it. Then each side independently materializes flyway/agreements/<id>.yaml from records it already holds — and the two files match to the SHA-256. No central copy. No trusted third party.

provenance

Every agreement traces to its tension

The verified originTensionId propagates through the staging chain and is auto-stamped under both signatures — a forged link is refused.

lifecycle

And exits, cleanly

A signed, unilateral exit no peer can prevent — distinct from unrecognition, and it never mutates the co-signed file.

live, from the built cli

The whole loop in one breath.

Two empty temp directories become two murmurations, recognize each other, and pass a signed tension across the boundary — verbatim from the freshly-built CLI. Watch it play ▶

flyway — end-to-end smoke
# 1 · two independent murmurations initialize
[A] Initialized flyway identity: did:web:github.com:xeeban:a
[B] Initialized flyway identity: did:web:github.com:emergent:praxis

# 2 · mutual recognition — each verifies the other
[A] Recognized did:web:github.com:emergent:praxis   fingerprint: vVP7tUsbgFEF…
[B] Recognized did:web:github.com:xeeban:a          fingerprint: 8HwJS8SrFNIp…

# 3 · A signs a tension → delivered into B's inbox
[A] Flagged tension to did:web:github.com:emergent:praxis
[A]   delivered → …/tmp.B/flyway/inbox/github.com/xeeban/a/…yaml

# 4 · B runs status — the inbox line surfaces the signal (Issue #17)
[B] Identity: did:web:github.com:emergent:praxis  (signature valid)
[B] Peers:    1 recognized  ·  Agreements: 0 on file
[B] Inbox:    1 signal (1 verified)

# 5 · B checks the inbox — signature verifies independently
[B]   - tension  1784161602463-80d46002  from …:xeeban:a  [sig valid]
✓ round-trip complete — no shared database, no central controller.

where it stands

The surface is complete; the evidence is executable.

9/9
protocol tools wired end-to-end
449
tests passing across 30 files
13
ADRs accepted
8
executable walkthroughs (Tier 1–8)
0
typecheck · lint · format errors
0
open security findings
3
adapters from one core: skill · MCP · CLI
100%
signatures verified on both sides

this week · S+14 wrap-up

Closed the season honestly.

The build is green top to bottom, four backlog items are resolved with tests, and the rest of the backlog is a deliberate v0.2 roadmap — not neglect. Nothing was closed just to reach zero.

gimbalabs piece of pi · final report · builder pie

Builder verification.

Everything the hackathon template requires to prove the work — in one place.

project
flyway
track
Builder Pie + Feedback Pie (below)
team · presenter
Nori Nishigaya (solo) · @Xeeban
one-sentence
A runtime-agnostic protocol for collaboration between independent AI-agent murmurations.
the user

A Source — or their agent

A human running an agent swarm (a murmuration), or the agents acting under that Source's authority.

what they can do

Speak the nine tools

Discover, recognize, raise tensions, co-sign agreements, and exit — across another murmuration's boundary.

the value

Consent, no controller

Sovereign cross-boundary coordination, cryptographically verified end to end, with no central authority in the middle.

☕ Buy me a coffee — support flyway

payment: flyway is free and MIT-licensed — no paywall, no gate. Support is pay-what-you-want via Buy Me a Coffee, funding the work without ever putting a tool behind it (Builder track).

The walkthrough — the product is a protocol, so the "core action" is the signed round-trip

Template stepIn flyway
Landingthe deployed site → this deck + the live demo
Account creationflyway init — mints a DID + EdDSA-signed identity + Ed25519 keypair
Core actionrecognize a peer, sign a tension, run the S3 consent cycle, co-sign an agreement
Paymentpay-what-you-want support via Buy Me a Coffee — the tool itself stays free
Delivered resulta verified inbox signal + a byte-identical co-signed agreements/<id>.yaml
repo · public

Open & cloneable

github.com/murmurations-ai/flyway — public, MIT, buildable from a clean checkout.

repo · key folders

What's where

packages/ core · agent · mcp · cli — and docs/ adr · walkthroughs · architecture.

repo · history

Built in the open

Implement → walkthrough → review → harden, milestone by milestone across the twelve weeks.

Weekly progress tweets — @Xeeban

WeekDateMilestoneTweet
0105-01Joining the hackathon — what flyway isx.com/…166351
0205-08Protocol surface + identityx.com/…966838
0305-15Mutual recognitionx.com/…612848
0405-22Signal exchange / dialoguex.com/…941725
0505-29Review-hardening passx.com/…805661
0606-05flyway_propose — 6 of 9 tools wiredx.com/…128026
0706-12Co-signed, byte-identical agreementsx.com/…925666
0806-19Clean exit + discoveryx.com/…990193
0906-26Recognize at a distance (did:web)x.com/…264872
1007-03github-pr delivery transportx.com/…598999
1107-10Exit-aware statusx.com/…579624
1207-16Finale — the wrap-upx.com/…380224

All twelve weekly tweets are linked — the full @Xeeban thread, weeks 1 through 12, from kickoff to finale.

Builder verification checklist

  • A live demo of your product — replayable end-to-end run at /demo.html, reproducible from a clean clone.
  • Official public repository linkgithub.com/murmurations-ai/flyway (public, MIT, 449 tests).
  • Deployed public product linkmurmurations-ai.github.io/flyway (opens without an account).
  • All twelve weekly progress posts — the full @Xeeban thread, weeks 1 through 12, linked above.
  • A payment option — pay-what-you-want support via Buy Me a Coffee; the protocol itself stays free and MIT-licensed.
  • Publicly verifiable — every link above opens without a login.

Feedback Pie — second track

Recorded peer feedback on a fellow builder's project — the second Piece of Pi track, alongside the Builder submission above.

project reviewed
Piece of Pi Hackathon framework — @newman5
recording
date · participants
2026-06-04 · Nori Nishigaya (@Xeeban) + Newman (@newman5)
relevance
Peer feedback between PCPI builders on the hackathon's own open-source tooling.

the vision

Sovereign Sources, each holding their own flock, meeting in open airspace to achieve consent — surfacing objections, integrating concerns, reaching agreements every party can stand behind, then parting cleanly when the season ends.

That's the corridor. flyway is how the murmurations find it.