rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 heartwoodb270df902258be4d025671935ad119e13ee1b5d5
{
"request": "trigger",
"version": 1,
"event_type": "patch",
"repository": {
"id": "rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5",
"name": "heartwood",
"description": "Radicle Heartwood Protocol & Stack",
"private": false,
"default_branch": "master",
"delegates": [
"did:key:z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT",
"did:key:z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW",
"did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
"did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz"
]
},
"action": "Created",
"patch": {
"id": "c57042d22408392e64cf959c90f60f882b39b03f",
"author": {
"id": "did:key:z6MkwGoyYxt6A2VE3fvZyH2rgiWdsXHBeV7jm7GSByS2aagA",
"alias": "ade"
},
"title": "tasks: Add spec for Tasks cob",
"state": {
"status": "open",
"conflicts": []
},
"before": "e9245b630d728672d2b3d6ff9265fa4f1a86f13a",
"after": "b270df902258be4d025671935ad119e13ee1b5d5",
"commits": [
"b270df902258be4d025671935ad119e13ee1b5d5",
"4d7580d2d153623bbfa9089e67c1f846b4127569",
"e2fcd1abdc1e4299d4e0841a662d670b1c1e546a",
"e706a3c8be419cd12c6d0052a8cab873bfcac9bd",
"387b7f4038c43ef5bcb45808c1d0af8dd3d62b7f",
"53665641d5176ea8958cf650ee958d38dc4c0af9"
],
"target": "e9245b630d728672d2b3d6ff9265fa4f1a86f13a",
"labels": [],
"assignees": [],
"revisions": [
{
"id": "c57042d22408392e64cf959c90f60f882b39b03f",
"author": {
"id": "did:key:z6MkwGoyYxt6A2VE3fvZyH2rgiWdsXHBeV7jm7GSByS2aagA",
"alias": "ade"
},
"description": "An initial stab at a spec for task cob to help us (me) organise.\n\nConceptually broken into:\n\n- Boards\n- Steps (may rename to status)\n- Tasks\n\nA board is a collection of steps which in turn are a collection of tasks.\n\nSteps and tasks are ordered. Steps can have a defined start and end so as\nto enable something like a `backlog` which is the default step for tasks\nto be added to but may not be rendered.\n\nTasks are progressively moved from the start step to the end step and\neventually archived.\n\nBoards have goals to focus their intent and usage. Only delegates may\ncreate and maintain the boards.\n\nThere should be enough sorting and filtering to enable different types\nof views.",
"base": "e9245b630d728672d2b3d6ff9265fa4f1a86f13a",
"oid": "b270df902258be4d025671935ad119e13ee1b5d5",
"timestamp": 1772020202
}
]
}
}
{
"response": "triggered",
"run_id": {
"id": "5c949fe2-df59-4248-8ddb-ee4a79c81d34"
},
"info_url": "https://cci.rad.levitte.org//5c949fe2-df59-4248-8ddb-ee4a79c81d34.html"
}
Started at: 2026-02-25 12:56:42.712764+01:00
Commands:
$ rad clone rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 .
✓ Creating checkout in ./...
✓ Remote cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT added
✓ Remote-tracking branch cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT/master created for z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT
✓ Remote cloudhead@z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW added
✓ Remote-tracking branch cloudhead@z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW/master created for z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW
✓ Remote fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM added
✓ Remote-tracking branch fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM/master created for z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM
✓ Remote erikli@z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz added
✓ Remote-tracking branch erikli@z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz/master created for z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz
✓ Remote lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz added
✓ Remote-tracking branch lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz/master created for z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz
✓ Repository successfully cloned under /opt/radcis/ci.rad.levitte.org/cci/state/5c949fe2-df59-4248-8ddb-ee4a79c81d34/w/
╭────────────────────────────────────╮
│ heartwood │
│ Radicle Heartwood Protocol & Stack │
│ 143 issues · 31 patches │
╰────────────────────────────────────╯
Run `cd ./.` to go to the repository directory.
Exit code: 0
$ rad patch checkout c57042d22408392e64cf959c90f60f882b39b03f
✓ Switched to branch patch/c57042d at revision c57042d
✓ Branch patch/c57042d setup to track rad/patches/c57042d22408392e64cf959c90f60f882b39b03f
Exit code: 0
$ git config advice.detachedHead false
Exit code: 0
$ git checkout b270df902258be4d025671935ad119e13ee1b5d5
HEAD is now at b270df90 tasks: Add show examples to board-lord
Exit code: 0
$ rad patch show c57042d22408392e64cf959c90f60f882b39b03f -p
╭───────────────────────────────────────────────────────────────────────────╮
│ Title tasks: Add spec for Tasks cob │
│ Patch c57042d22408392e64cf959c90f60f882b39b03f │
│ Author ade z6MkwGo…yS2aagA │
│ Head b270df902258be4d025671935ad119e13ee1b5d5 │
│ Base e9245b630d728672d2b3d6ff9265fa4f1a86f13a │
│ Branches patch/c57042d │
│ Commits ahead 6, behind 0 │
│ Status open │
│ │
│ An initial stab at a spec for task cob to help us (me) organise. │
│ │
│ Conceptually broken into: │
│ │
│ - Boards │
│ - Steps (may rename to status) │
│ - Tasks │
│ │
│ A board is a collection of steps which in turn are a collection of tasks. │
│ │
│ Steps and tasks are ordered. Steps can have a defined start and end so as │
│ to enable something like a `backlog` which is the default step for tasks │
│ to be added to but may not be rendered. │
│ │
│ Tasks are progressively moved from the start step to the end step and │
│ eventually archived. │
│ │
│ Boards have goals to focus their intent and usage. Only delegates may │
│ create and maintain the boards. │
│ │
│ There should be enough sorting and filtering to enable different types │
│ of views. │
├───────────────────────────────────────────────────────────────────────────┤
│ b270df9 tasks: Add show examples to board-lord │
│ 4d7580d tasks: Add example cli interactions to board-lord │
│ e2fcd1a tasks: Add initial radicle's feature spec │
│ e706a3c tasks: Add initial task-doer's feature spec │
│ 387b7f4 tasks: Add initial board-lord features spec │
│ 5366564 tasks: Init radicle-cob-tasks library │
├───────────────────────────────────────────────────────────────────────────┤
│ ● Revision c57042d @ b270df9 by ade z6MkwGo…yS2aagA 6 minutes ago │
╰───────────────────────────────────────────────────────────────────────────╯
commit b270df902258be4d025671935ad119e13ee1b5d5
Author: Adrian Duke <adrian.duke@gmail.com>
Date: Wed Feb 25 11:40:33 2026 +0000
tasks: Add show examples to board-lord
diff --git a/crates/radicle-cob-tasks/features/board-lord.md b/crates/radicle-cob-tasks/features/board-lord.md
index c9fef20fc..b7d933e91 100644
--- a/crates/radicle-cob-tasks/features/board-lord.md
+++ b/crates/radicle-cob-tasks/features/board-lord.md
@@ -36,6 +36,103 @@
$ rad board create --name "Engineering" --goal "Ship V1"
✓ Board 'Engineering' created (b67a123)
```
+
+- Show board
+ - ✗ Repo not defined
+ - ✗ Not found
+ - ✗ Invalid sort
+ - ✗ Invalid filter
+ - ✗ Invalid assignee
+ - ✓ Shown
+ - Views:
+ - Board view
+ - No tasks
+ - One task
+ - Many tasks
+
+ ```
+ $ rad board show b67a123
+ ╭──────────────────────────────────────────────────────────────────────────────╮
+ │ Name Engineering │
+ │ Board b67a123... │
+ │ Goal Ship V1 │
+ ├──────────────────────────────────────────────────────────────────────────────┤
+ │ Todo │ Doing │ Done │
+ ├──────────────────────────┼──────────────────────────┼────────────────────────┤
+ │ ● 27d3132 │ ● 91f64c0 │ ● c10ecd2 │
+ │ Change passphrase │ Add CLI command for │ git push: info links │
+ │ prompt │ canonical refs │ wrong │
+ │ │ │ │
+ │ ● 4e2a36e │ │ ● 23fef8f │
+ │ refs/heads/* cref │ │ Collect errors for │
+ │ rule conflicts │ │ fetch updates │
+ │ │ │ │
+ ╰──────────────────────────────────────────────────────────────────────────────╯
+ ```
+
+ - Table view (should contain: id, title, assignee, labels - by default)
+ - No tasks
+ - One task
+ - Many tasks
+
+ ```
+ $ rad board show b67a123 --table
+ ╭──────────────────────────────────────────────────────────────────────────────╮
+ │ ● ID Title Assignee Labels │
+ ├──────────────────────────────────────────────────────────────────────────────┤
+ │ ● 27d3132 Change passphrase... z6MkkPv... bug │
+ │ ● 91f64c0 Add CLI command... z6MkkPv... enhancement │
+ ╰──────────────────────────────────────────────────────────────────────────────╯
+ ```
+
+ - Filter
+ - By step
+ ```
+ $ rad board show b67a123 --step "Todo"
+ ...
+ ```
+ - By assignee
+ ```
+ $ rad board show b67a123 --assignee z6MkkPvad...
+ ...
+ ```
+ - By author
+ ```
+ $ rad board show b67a123 --author adrianduke
+ ...
+ ```
+ - By fuzzy search
+ ```
+ $ rad board show b67a123 --search "CLI"
+ ...
+ ```
+ - Sort
+ - By creation
+ ```
+ $ rad board show b67a123 --sort created
+ ...
+ ```
+ - By updated
+ ```
+ $ rad board show b67a123 --sort updated
+ ...
+ ```
+ - By assignee
+ ```
+ $ rad board show b67a123 --sort assignee
+ ...
+ ```
+ - By author
+ ```
+ $ rad board show b67a123 --sort author
+ ...
+ ```
+ - Archived
+ ```
+ $ rad board show b67a123 --archived
+ ...
+ ```
+
- Add step(s) to board
- ✗ Repo not defined
- ✗ Non-delegate
@@ -62,16 +159,19 @@
```
- ✓ Nominate step
- Start
+
```
$ rad board step add b67a123 --label "Backlog" --start
✓ Step 'Backlog' added to board 'Engineering'
```
- End
+
```
$ rad board step add b67a123 --label "Done" --end
✓ Step 'Done' added to board 'Engineering'
```
+
- Remove step(s) from board
- ✗ Repo not defined
- ✗ Non-delegate
@@ -116,16 +216,19 @@
- Start and End
- ✓ Nominated
- Start
+
```
$ rad board step nominate b67a123 --start "Backlog"
✓ Board 'Engineering' updated
```
- End
+
```
$ rad board step nominate b67a123 --end "Done"
✓ Board 'Engineering' updated
```
+
- Reorder steps
- ✗ Repo not defined
- ✗ Non-delegate
@@ -139,22 +242,26 @@
- Start and End
- ✓ Reordered
- To Start
+
```
$ rad board step move b67a123 --step "Doing" --after "Backlog"
✓ Board 'Engineering' updated
```
- To End
+
```
$ rad board step move b67a123 --step "Review" --before "Done"
✓ Board 'Engineering' updated
```
- Inbetween
+
```
$ rad board step move b67a123 --step "Review" --after "Doing"
✓ Board 'Engineering' updated
```
+
- Add goal to board
- ✗ Repo not defined
- ✗ Non-delegate
commit 4d7580d2d153623bbfa9089e67c1f846b4127569
Author: Adrian Duke <adrian.duke@gmail.com>
Date: Wed Feb 25 11:25:01 2026 +0000
tasks: Add example cli interactions to board-lord
diff --git a/crates/radicle-cob-tasks/features/board-lord.md b/crates/radicle-cob-tasks/features/board-lord.md
index 038844e28..c9fef20fc 100644
--- a/crates/radicle-cob-tasks/features/board-lord.md
+++ b/crates/radicle-cob-tasks/features/board-lord.md
@@ -24,7 +24,18 @@
- ✗ Name already exists
- ✓ Delegate creates board
- No Goal
+
+ ```
+ $ rad board create --name "Engineering"
+ ✓ Board 'Engineering' created (b67a123)
+ ```
+
- With Goal
+
+ ```
+ $ rad board create --name "Engineering" --goal "Ship V1"
+ ✓ Board 'Engineering' created (b67a123)
+ ```
- Add step(s) to board
- ✗ Repo not defined
- ✗ Non-delegate
@@ -40,19 +51,48 @@
- Proceeding
- Preceeding & Proceeding
- ✓ Start step already exists; adds new start
+ ```
+ $ rad board step add b67a123 --label "Inbox" --start
+ ✓ Step 'Inbox' added to board 'Engineering'
+ ```
- ✓ End step already exists; adds new end
+ ```
+ $ rad board step add b67a123 --label "Deployed" --end
+ ✓ Step 'Deployed' added to board 'Engineering'
+ ```
- ✓ Nominate step
- Start
+ ```
+ $ rad board step add b67a123 --label "Backlog" --start
+ ✓ Step 'Backlog' added to board 'Engineering'
+ ```
+
- End
+ ```
+ $ rad board step add b67a123 --label "Done" --end
+ ✓ Step 'Done' added to board 'Engineering'
+ ```
- Remove step(s) from board
- ✗ Repo not defined
- ✗ Non-delegate
- ✗ Not found
- ✗ Cannot remove nominated Start/End step (must re-nominate)
- ✓ Empty start step
+ ```
+ $ rad board step rm b67a123 --step "Inbox"
+ ✓ Step 'Inbox' removed from board 'Engineering'
+ ```
- ✓ Empty end step
+ ```
+ $ rad board step rm b67a123 --step "Deployed"
+ ✓ Step 'Deployed' removed from board 'Engineering'
+ ```
- ✗ Non-empty step, no migrate
- ✓ Non-empty step, with migrate
+ ```
+ $ rad board step rm b67a123 --step "Doing" --migrate-to "Todo"
+ ✓ Step 'Doing' removed from board 'Engineering'
+ ```
- Rename step(s)
- ✗ Repo not defined
- ✗ Non-delegate
@@ -62,6 +102,10 @@
- ✗ Label Too Long
- ✗ New label already exists
- ✓ Renamed
+ ```
+ $ rad board step edit b67a123 --step "Todo" --label "To Do"
+ ✓ Step 'Todo' renamed to 'To Do'
+ ```
- Nominate start and end steps
- ✗ Repo not defined
- ✗ Non-delegate
@@ -72,7 +116,16 @@
- Start and End
- ✓ Nominated
- Start
+ ```
+ $ rad board step nominate b67a123 --start "Backlog"
+ ✓ Board 'Engineering' updated
+ ```
+
- End
+ ```
+ $ rad board step nominate b67a123 --end "Done"
+ ✓ Board 'Engineering' updated
+ ```
- Reorder steps
- ✗ Repo not defined
- ✗ Non-delegate
@@ -86,8 +139,22 @@
- Start and End
- ✓ Reordered
- To Start
+ ```
+ $ rad board step move b67a123 --step "Doing" --after "Backlog"
+ ✓ Board 'Engineering' updated
+ ```
+
- To End
+ ```
+ $ rad board step move b67a123 --step "Review" --before "Done"
+ ✓ Board 'Engineering' updated
+ ```
+
- Inbetween
+ ```
+ $ rad board step move b67a123 --step "Review" --after "Doing"
+ ✓ Board 'Engineering' updated
+ ```
- Add goal to board
- ✗ Repo not defined
- ✗ Non-delegate
@@ -95,6 +162,10 @@
- ✗ Goal too Long
- ✗ Goal already exists
- ✓ Added
+ ```
+ $ rad board edit b67a123 --goal "Ship V1"
+ ✓ Board 'Engineering' updated
+ ```
- Update board goal
- ✗ Repo not defined
- ✗ Non-delegate
@@ -102,19 +173,35 @@
- ✗ Goal too Long
- ✗ Goal already exists
- ✓ Updated
+ ```
+ $ rad board edit b67a123 --goal "Ship V2"
+ ✓ Board 'Engineering' updated
+ ```
- Remove board goal
- ✗ Repo not defined
- ✗ Non-delegate
- ✗ Not found
- ✗ No existing goals
- ✓ Removed
+ ```
+ $ rad board edit b67a123 --goal ""
+ ✓ Board 'Engineering' updated
+ ```
- Archive board
- ✗ Repo not defined
- ✗ Non-delegate
- ✗ Not found
- ✓ Archived
+ ```
+ $ rad board archive b67a123
+ ✓ Board 'Engineering' archived
+ ```
- Un-archive board
- ✗ Repo not defined
- ✗ Non-delegate
- ✗ Not found
- ✓ Un-archived
+ ```
+ $ rad board unarchive b67a123
+ ✓ Board 'Engineering' un-archived
+ ```
commit e2fcd1abdc1e4299d4e0841a662d670b1c1e546a
Author: Adrian Duke <adrian.duke@gmail.com>
Date: Wed Feb 25 10:57:17 2026 +0000
tasks: Add initial radicle's feature spec
diff --git a/crates/radicle-cob-tasks/features/radicle.md b/crates/radicle-cob-tasks/features/radicle.md
new file mode 100644
index 000000000..f68d2b277
--- /dev/null
+++ b/crates/radicle-cob-tasks/features/radicle.md
@@ -0,0 +1,10 @@
+# Persona: Radicle
+
+## Goal: Make delightful and easy user experiences where possible
+
+### Features:
+
+- Cross linking other cobs
+- Implicit linking of known local references
+- Default board step flow
+- Short-ID generation for CLI ergonomics
commit e706a3c8be419cd12c6d0052a8cab873bfcac9bd
Author: Adrian Duke <adrian.duke@gmail.com>
Date: Wed Feb 25 10:57:03 2026 +0000
tasks: Add initial task-doer's feature spec
diff --git a/crates/radicle-cob-tasks/features/task-doer.md b/crates/radicle-cob-tasks/features/task-doer.md
new file mode 100644
index 000000000..66b6071c8
--- /dev/null
+++ b/crates/radicle-cob-tasks/features/task-doer.md
@@ -0,0 +1,146 @@
+# Persona: Task Doer
+
+## Goal: Track and progress work items
+
+### Feature and scenario headings:
+
+- Add task
+ - ✗ Repo not defined
+ - ✗ Empty title
+ - ✗ Invalid characters
+ - ✗ Title too long
+ - ✗ Description too long
+ - ✓ Added
+ - Title only
+ - Title and description
+- Remove task
+ - ✗ Repo not defined
+ - ✗ Not found
+ - ✓ Removed
+- Edit task
+ - ✗ Repo not defined
+ - ✗ Not found
+ - ✗ Empty title
+ - ✗ Invalid characters
+ - ✗ Title too long
+ - ✓ Updated title
+ - ✓ Updated description
+- Attach file
+ - ✗ Repo not defined
+ - ✗ Task not found
+ - ✗ File not found
+ - ✗ File too large
+ - ✓ Attached
+- Remove attachment
+ - ✗ Repo not defined
+ - ✗ Task not found
+ - ✗ Attachment not found
+ - ✓ Removed
+- Comment on task
+ - ✗ Repo not defined
+ - ✗ Not found
+ - ✗ Empty comment
+ - ✗ Comment too long
+ - ✓ Commented
+- React to comment
+ - ✗ Repo not defined
+ - ✗ Task not found
+ - ✗ Comment not found
+ - ✗ Invalid reaction
+ - ✓ Reacted
+- Label task
+ - ✗ Repo not defined
+ - ✗ Not found
+ - ✗ Empty label
+ - ✗ Invalid label characters
+ - ✗ Label too long
+ - ✗ Label already exists
+ - ✓ Labeled
+- Un-label task
+ - ✗ Repo not defined
+ - ✗ Not found
+ - ✗ Label not found
+ - ✓ Un-labeled
+- Progress task
+ - ✗ Repo not defined
+ - ✗ Not found
+ - ✗ Step not found
+ - ✗ Already in step
+ - ✓ Progressed
+- Assign task
+ - ✗ Repo not defined
+ - ✗ Not found
+ - ✗ Assignee not found
+ - ✗ Already assigned
+ - ✓ Assigned
+ - Single DID
+ - Multiple DIDs
+- Unassign task
+ - ✗ Repo not defined
+ - ✗ Not found
+ - ✗ Not assigned
+ - ✓ Unassigned
+ - Single DID
+ - Multiple DIDs
+- Reorder task
+ - ✗ Repo not defined
+ - ✗ Not found
+ - ✗ Sibling not found
+ - ✗ Same position
+ - ✓ Reordered
+ - To top
+ - To bottom
+ - After sibling
+- Filter tasks
+ - ✗ Repo not defined
+ - ✗ Invalid filter key
+ - ✓ Filtered
+ - By step
+ - By assignee
+ - By label
+ - By status
+- View board
+ - ✗ Repo not defined
+ - ✗ Board not found
+ - ✓ Viewed
+- View task
+ - ✗ Repo not defined
+ - ✗ Not found
+ - ✓ Viewed
+ - With Title only
+ - With Title and Description
+ - With Single Assignee
+ - With Multiple Assignees
+ - With Attachment
+ - With Attachments
+ - With Comment
+ - With Comments
+- Archive task
+ - ✗ Repo not defined
+ - ✗ Not found
+ - ✗ Already archived
+ - ✓ Archived
+- Un-archive task
+ - ✗ Repo not defined
+ - ✗ Not found
+ - ✗ Not archived
+ - ✓ Un-archived
+- Batch progress task
+ - ✗ Repo not defined
+ - ✗ Empty list
+ - ✗ Task not found
+ - ✗ Step not found
+ - ✓ Progressed
+- Batch archive/unarchive task
+ - ✗ Repo not defined
+ - ✗ Empty list
+ - ✗ Task not found
+ - ✓ Archived
+ - ✓ Un-archived
+- Batch label/unlabel task
+ - ✗ Repo not defined
+ - ✗ Empty list
+ - ✗ Task not found
+ - ✗ Label invalid
+ - ✓ Labeled
+ - ✓ Un-labeled
commit 387b7f4038c43ef5bcb45808c1d0af8dd3d62b7f
Author: Adrian Duke <adrian.duke@gmail.com>
Date: Wed Feb 25 10:56:41 2026 +0000
tasks: Add initial board-lord features spec
diff --git a/crates/radicle-cob-tasks/features/board-lord.md b/crates/radicle-cob-tasks/features/board-lord.md
new file mode 100644
index 000000000..038844e28
--- /dev/null
+++ b/crates/radicle-cob-tasks/features/board-lord.md
@@ -0,0 +1,120 @@
+# Persona: Board Leader
+
+## Goal: Structure boards workflow to the their culture
+
+## Goal: Maintain the smallest set of boards to manage tasks at hand
+
+## Goal: Focus boards with a goal
+
+### Feature and scenario headings:
+
+- Create a board
+ - ✗ Repo not defined
+ - ✗ Non-delegate
+ - ✗ Empty
+ - Name
+ - Goal
+ - ✗ Invalid Characters
+ - Name
+ - Goal
+ - ✗ Too Long
+ - Name
+ - Goal
+ - ✗ Non-delegate can't create board
+ - ✗ Name already exists
+ - ✓ Delegate creates board
+ - No Goal
+ - With Goal
+- Add step(s) to board
+ - ✗ Repo not defined
+ - ✗ Non-delegate
+ - ✗ Empty
+ - Label
+ - ✗ Invalid Characters
+ - Label
+ - ✗ Too Long
+ - Label
+ - ✗ Label already exists
+ - ✗ Label not found
+ - Preceeding
+ - Proceeding
+ - Preceeding & Proceeding
+ - ✓ Start step already exists; adds new start
+ - ✓ End step already exists; adds new end
+ - ✓ Nominate step
+ - Start
+ - End
+- Remove step(s) from board
+ - ✗ Repo not defined
+ - ✗ Non-delegate
+ - ✗ Not found
+ - ✗ Cannot remove nominated Start/End step (must re-nominate)
+ - ✓ Empty start step
+ - ✓ Empty end step
+ - ✗ Non-empty step, no migrate
+ - ✓ Non-empty step, with migrate
+- Rename step(s)
+ - ✗ Repo not defined
+ - ✗ Non-delegate
+ - ✗ Not found
+ - ✗ Empty label
+ - ✗ Invalid Label Characters
+ - ✗ Label Too Long
+ - ✗ New label already exists
+ - ✓ Renamed
+- Nominate start and end steps
+ - ✗ Repo not defined
+ - ✗ Non-delegate
+ - ✗ Not found
+ - ✗ Start >= End
+ - Start after End
+ - End before Start
+ - Start and End
+ - ✓ Nominated
+ - Start
+ - End
+- Reorder steps
+ - ✗ Repo not defined
+ - ✗ Non-delegate
+ - ✗ Not found
+ - Preceeding
+ - Proceeding
+ - Preceeding & Proceeding
+ - ✗ Start >= End
+ - Start after End
+ - End before Start
+ - Start and End
+ - ✓ Reordered
+ - To Start
+ - To End
+ - Inbetween
+- Add goal to board
+ - ✗ Repo not defined
+ - ✗ Non-delegate
+ - ✗ Invalid goal characters
+ - ✗ Goal too Long
+ - ✗ Goal already exists
+ - ✓ Added
+- Update board goal
+ - ✗ Repo not defined
+ - ✗ Non-delegate
+ - ✗ Invalid goal characters
+ - ✗ Goal too Long
+ - ✗ Goal already exists
+ - ✓ Updated
+- Remove board goal
+ - ✗ Repo not defined
+ - ✗ Non-delegate
+ - ✗ Not found
+ - ✗ No existing goals
+ - ✓ Removed
+- Archive board
+ - ✗ Repo not defined
+ - ✗ Non-delegate
+ - ✗ Not found
+ - ✓ Archived
+- Un-archive board
+ - ✗ Repo not defined
+ - ✗ Non-delegate
+ - ✗ Not found
+ - ✓ Un-archived
commit 53665641d5176ea8958cf650ee958d38dc4c0af9
Author: Adrian Duke <adrian.duke@gmail.com>
Date: Wed Feb 25 10:56:16 2026 +0000
tasks: Init radicle-cob-tasks library
diff --git a/crates/radicle-cob-tasks/Cargo.toml b/crates/radicle-cob-tasks/Cargo.toml
new file mode 100644
index 000000000..26073449d
--- /dev/null
+++ b/crates/radicle-cob-tasks/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "radicle-cob-tasks"
+description = "Radicle Tasks COB"
+homepage.workspace = true
+repository.workspace = true
+version = "0.1.0"
+authors = ["Adrian Duke <adrian.duke@gmail.com>"]
+edition.workspace = true
+license.workspace = true
+keywords = ["radicle", "cob", "cobs", "tasks"]
+rust-version.workspace = true
diff --git a/crates/radicle-cob-tasks/README.md b/crates/radicle-cob-tasks/README.md
new file mode 100644
index 000000000..312716b41
--- /dev/null
+++ b/crates/radicle-cob-tasks/README.md
@@ -0,0 +1 @@
+# Tasks COB
diff --git a/crates/radicle-cob-tasks/src/lib.rs b/crates/radicle-cob-tasks/src/lib.rs
new file mode 100644
index 000000000..e69de29bb
Exit code: 0
shell: 'export RUSTDOCFLAGS=''-D warnings'' cargo --version rustc --version cargo fmt --check cargo clippy --all-targets --workspace -- --deny warnings cargo build --all-targets --workspace cargo doc --workspace --no-deps --all-features cargo test --workspace --no-fail-fast '
Commands:
$ podman run --name 5c949fe2-df59-4248-8ddb-ee4a79c81d34 -v /opt/radcis/ci.rad.levitte.org/cci/state/5c949fe2-df59-4248-8ddb-ee4a79c81d34/s:/5c949fe2-df59-4248-8ddb-ee4a79c81d34/s:ro -v /opt/radcis/ci.rad.levitte.org/cci/state/5c949fe2-df59-4248-8ddb-ee4a79c81d34/w:/5c949fe2-df59-4248-8ddb-ee4a79c81d34/w -w /5c949fe2-df59-4248-8ddb-ee4a79c81d34/w -v /opt/radcis/ci.rad.levitte.org/.radicle:/${id}/.radicle:ro -e RAD_HOME=/${id}/.radicle rust:trixie bash /5c949fe2-df59-4248-8ddb-ee4a79c81d34/s/script.sh
+ export 'RUSTDOCFLAGS=-D warnings'
+ RUSTDOCFLAGS='-D warnings'
+ cargo --version
info: syncing channel updates for '1.90-x86_64-unknown-linux-gnu'
info: latest update on 2025-09-18, rust version 1.90.0 (1159e78c4 2025-09-14)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-src'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
info: installing component 'rust-src'
info: installing component 'rust-std'
info: installing component 'rustc'
info: installing component 'rustfmt'
cargo 1.90.0 (840b83a10 2025-07-30)
+ rustc --version
rustc 1.90.0 (1159e78c4 2025-09-14)
+ cargo fmt --check
Diff in /5c949fe2-df59-4248-8ddb-ee4a79c81d34/w/crates/radicle-cob-tasks/src/lib.rs:1:
+
+
Exit code: 1
{
"response": "finished",
"result": "failure"
}