Adopt Extreme-BDD in an existing repo.
You do not need to migrate anything. Add one JSON file, one folder, and one priority tag. The board will read your working tree from that point on, and Radicle will replicate everything else.
Prerequisites
- Python 3.10+ on your laptop.
- A Radicle node (
rad 1.6or later). A local node is enough; a seed is recommended for collaboration. - One repo you want to backlog-ify.
1. Declare the protocol
Create bdd/RADICLE_PRIORITIES.json at the repo root:
{
"protocolVersion": "1.16",
"product": { "name": "your-project" },
"featuresRoot": "bdd/features",
"boardStateSchema": 3,
"capabilities": {
"featureCatalog": true,
"boardState": true,
"priorityTags": "p0-p3",
"issueMap": "optional",
"radicleIssueMirror": "optional"
}
}
2. Write your first scenario
Drop a .feature file under bdd/features/:
Feature: Your first Extreme-BDD scenario
@pending @p1 @epic:starter
Scenario: A scenario can be promoted from pending to passing
As a Builder
Given a pending scenario lives in bdd/features/
When I implement the behaviour and remove the @pending tag
Then the BDD harness should report it as passing
3. Open the board
git clone https://github.com/wavellwatson/radicle-priorities reference
cd your-project
python3 reference/scripts/board_server.py
# visit http://127.0.0.1:8844/
The board reads bdd/features/*.feature and
bdd/BOARD_STATE.json in your repo’s working tree. Drag
your new card into in-process — the JSON updates
atomically and stays in your tree.
4. Mirror to Radicle issues (optional)
# Dry run first to see the diff
python3 reference/scripts/sync_bdd_issues.py --dry-run
# Apply: opens/edits issues, writes bdd/ISSUE_MAP.json
python3 reference/scripts/sync_bdd_issues.py --apply
5. Replicate
rad sync
Your collaborators will pick up the new .feature, the
board state, the issue map, and (because Radicle replicates the issues
too) the discussion thread. There is no central server in this
sentence.