The projects, in their own words.
Each project ships its own README, protocol document, and BDD-driven backlog. The summaries below pull the parts that matter for an operator deciding which pieces to adopt and in what order. Four are stable; one — ECSC — is a live demo on Bitcoin regtest.
Watch the CI → CD loop
Ninety seconds, ten scenes. A fresh commit becomes a PMCI test result. The test result becomes a PMCD release manifest. The deploy host installs only when the hash matches. The receipt on disk remembers what shipped.
The key moment is scene 8. The same release manifest goes to two deploy hosts. One install works. The other refuses, because the bytes don’t match the sha256. No exceptions, no override.
poor-mans-ci — tests, attestations, artifact mirrors
// 0.4 protocol baseline · 212/212 BDD scenarios · language-agnostic · watch the CI → CD loop
Runs tests and builds without GitHub Actions, CircleCI, Buildkite, or any central provider. Writes signed test results and artifact hashes to disk. Delegates use those results to decide whether to merge. The protocol is written down as both a human-readable spec and a machine-readable manifest. So you can build a compatible CI engine in any language.
What it owns
- Runner checkouts pinned to a commit, with the runner image hash recorded.
- Two builds per change: the head build and a synthetic test-merge build, for every branch and patch ref.
- A local
pmci-out/folder: test results, hashes, and run summaries. - Artifact mirror at
/artifact/<sha256>. It refuses any byte that doesn’t match the hash. - Per-stage retry rules and canary-before-fleet rollout evidence.
- Optional gates for ECSC, Envoy routes, Network Service Mesh, and VPP packet-path checks.
How it runs
- One runner binary. Multiple suites described in pipeline JSON.
- Built-in hooks for Telegram and Radicle patch comments.
- Works with poor-mans-cd for the deploy half and radicle-seed-kit for sharing test results.
poor-mans-cd — deploy by manifest, verify by hash
// local-first dashboard · receipts on disk · gated CD · watch the CI → CD loop
A local-first deployment control plane. It installs exact bytes named in a release manifest. It writes evidence to disk that survives a reboot. The dashboard looks like a GitHub Actions page — CI attempts, branch and patch checks, gated promotion, release deploys — but it doesn’t need a hosted CI/CD provider.
What it owns
- Release manifests. They tie together a service, version, sha256, mirror URLs, SBOM links, health checks, and trace info.
- Deploy-only pipelines that can pause at gates, restart prior runs, retry failed stages, record triage notes, and cancel runs.
- An importer for PMCI test results. CI labels, post-deploy checks, runner identity, source refs, and artifact details all carry forward.
- Continuous delivery is limited to the declared canonical ref (usually
rad/main) and only turns on when each repo opts in. - Pull-style CD. Deploy hosts poll for promoted manifests and deploy only when the promotion changes.
Design rules in plain words
- Deploy by manifest. The manifest is the source of truth. URLs are just how the bytes travel.
- Verify by hash. Refuse to install bytes that don’t match the sha256.
- Secrets out-of-band.
.secrets/on your laptop,/etc/on servers. Never in the manifest. - Evidence on disk. Dashboards and operators can rebuild state from local run files, CI files, receipts, and gossip files.
- Clear CI/CD line. CI writes test results and artifacts. CD checks them and deploys them.
radicle-seed-kit — always-on seed, private repos that stay private
// availability layer · private-by-default · NAT-friendly mirroring · watch the seed board walkthrough
A toolbox for running an always-on Radicle seed node. It keeps private repos copied between machines, even when contributor laptops are offline. It includes an org-style flow. Collaborators behind a NAT can mirror to the seed through a restricted SSH reverse tunnel — no shell access needed.
Watch the Radicle Seed board walkthrough
Ninety seconds, eleven scenes. The seed dashboard shows every private repo. A delegate clicks into a repo, then into a peer, then approves an allowlist request. Scene 8 is the punch: the privacy guardrail refuses an accidental publish, and the repo stays private.
The seed is the availability layer. The allowlist gates who reads it. The privacy guardrail refuses to change that on a mistake.
What it owns
- DigitalOcean seed setup, mirror, sync, and Telegram alerts.
- A friend-onboarding flow for cloning private repos from the seed.
- Circle Source — a way for stewards, catalysts, and allies to work together through patches.
- Networking that bounces back: Tor onion endpoints and multi-seed redundancy.
- Privacy guardrails so a private repo can’t become public by accident.
- Fingerprinting and leak-response runbooks for any sharing that happens off the seed.
Its role in the suite
Seed Kit is the availability layer everything else sits on. PMCI test results, PMCD receipts, and the canonical backlog all travel through it. If your seed is healthy, the rest of the suite can sync. If your seed is captured, nothing else covers for it.
radicle-priorities — the canonical backlog protocol
// 1.16 protocol · BDD-first · board reads working tree
BDD .feature files are the source of truth for the
backlog. Radicle issues are where the team talks about the work.
The board UI reads your files directly — you don’t need
to commit to see the backlog. The full methodology, walkthrough
video, and getting-started guide live at
extremebdd.com.
What it owns (from the community-infra angle)
- Each repo declares its protocol in
bdd/RADICLE_PRIORITIES.json. That file lists the protocol version and which features are required, optional, or planned. - Stakeholder mode and read-only mode, for hosted boards used by people outside the team.
- A performance contract: compact payloads, response cache, and trimmed side views. One seed can serve many repos.
- A suite evidence read model that puts PMCI and PMCD signals next to the BDD backlog.
Why it belongs here
Every project in the suite uses Extreme-BDD scenarios as its own acceptance tests. Radicle Priorities is the layer that makes that work across repos. It also makes the dependency clear: the same backlog protocol ships with the code, on the same seed, through the same Radicle issues mirror.
ecsc — evidence-coupled service channels
// live (regtest) · two peers, two seeds, two runners · watch the reciprocal-live demo
A protocol for two parties to settle a service payment over normal
Lightning channel updates. The rule it enforces: no signed payment
state exists without valid service evidence. Every Lightning
commitment carries a payment_hash bound to a signed
service_state, and the gate refuses any claim whose
PMCD receipt and PMCI attestation don’t line up. Cheating
cases stop before settlement, deterministically and offline.
Watch the reciprocal live demo
Two minutes. Alice and Bob each run a Radicle seed and a PMCD
runner. They share one Lightning channel on Bitcoin regtest.
Round 1 is a real settled 43 000 msat Alice→Bob
payment (hash sha256:8bf4245b…1578) gated by
the matching ECSC receipt. Round 2 is the real reverse
47 000 msat Bob→Alice payment
(hash sha256:5a69b6a5…cf0cb726) over the
same channel. Neither direction settled without matching proof.
Every receipt on screen reads from a committed live regtest LND fixture. Offline replay needs no bitcoind, no LND, no network — anyone can verify the recording without contacting either peer.
What it owns
- Service contract that binds participant ids, Lightning channel id, seed service ids, runner service ids, policy hash, and balance band.
- Proof gate that compares PMCD receipt, PMCI attestation,
service_state_hash, andchannel_update_receipt_hashbefore letting an HTLC out the door. - Reciprocal netting: each peer’s verified seed and runner credits net into one signed service state per channel update.
- Adapter that records the three LND events (
update_add_htlc,commitment_signed,revoke_and_ack) as node-backed proof. - Public audit bundle: the redacted fixture replays the rejection paths offline so anyone can re-check the decision.
Its role in the suite
ECSC is the settlement layer. Seed Kit availability and PMCI test
evidence flow into it; nothing else in the suite handles money. The
boundary is explicit: real bitcoind, real LND, real channel, real
settled payment — on Bitcoin regtest, not mainnet, and the
proof source label is live-lnd-regtest-rpc.