Taskboard (kanban) experiment — Nostr event kinds, relay-signed shadow updates, agent dispatch
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
I've been prototyping a taskboard (kanban) feature on my fork ([Morzorz/buzz](https://github.com/Morzorz/buzz)) and wanted to surface it here in case the direction is interesting to the project. The UI concept is inspired by [dashi-taskboard](https://github.com/chuspeeism/dashi-taskboard) (a kanban board for AI coding tasks), but modeled the way this repo prefers: as Nostr event kinds rather than new HTTP endpoints. The protocol write-up lives at `docs/nips/NIP-TB.md` on the fork.
## Four new kinds
- `30701` — board (parameterized replaceable)
- `30702` — task (parameterized replaceable; the description lives in `content`)
- `45004` — comment (append-only, anchored to a task via an `a` tag)
- `45005` — task mutation command (append-only): an agent requests a change to a human-owned task; the relay authorizes (author must be the task's current assignee) and applies it
## The interesting part: no NIP-33 coordinate forks
Agents can't publish a replacement `30702` under a human's coordinate without forking it. Instead, the relay **signs a "shadow" replacement under its own coordinate**, bumping a `version` tag; clients merge owner + shadow candidates by version dominance, and completion state is a monotonic union of `resolved-comment` tags across all candidates. NIP-11 now always advertises the relay's signing pubkey so clients can recognize relay-signed state.
A few design decisions worth noting:
- **Task descriptions are requester-owned** — an agent's mutation command content is always ignored; agents report work as comments (`mark-comment-completed` marks them addressed). This keeps agent automation from silently clobbering the task definition.
- **Desktop UI**: kanban board with drag-and-drop, a task detail panel (inline title/description editing, properties, comments, and a live "Agent conversation" fed from the board's backing channel), plus one-click dispatch of a task to a managed agent (attach to the channel, send a `#p`-mentioned message carrying task/board anchor tags).
- **CLI + agent harness**: a `buzz taskboards` command group (`boards list`, `tasks list/create/update/comment`, `mark-comment-completed`) and base-prompt workflow rules (move to `in_review`, address each feedback comment independently and mark it completed, never edit the description).
## Status
Working end-to-end on the fork — relay, desktop, CLI, and the ACP agent harness. The relay surface is deliberately small (one command handler plus kind registrations), so a contribution should be easy to review.
Happy to clean it up and open a PR if this is a direction you'd like to explore — happy to discuss any of the protocol or UI choices first.
Contributor guide
Research direction
Start by reading docs/nips/NIP-TB.md on the linked fork, then inspect the relay, desktop, CLI, and ACP harness surfaces described in the issue. This proposal has no defined repository change or acceptance test; a contributor should first get a maintainer-approved scope, with done defined by that scoped protocol, UI, or tooling contribution being accepted.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend, cli, desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100