block / block/buzz

Taskboard (kanban) experiment — Nostr event kinds, relay-signed shadow updates, agent dispatch

Open
#4,877 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.