Status
Status events let authorised parties update the lifecycle state of a task, milestone, or other event without modifying the original. The most recent status by timestamp is considered current, but only events from authors with a direct relationship to the target — its author, referenced events, or mentioned pubkeys — are treated as authoritative. Priority can be set or changed in the same event.
Status Event (kind 1983)
Purpose: Sets the status of any Nostr event (defaults to task events).
Required Tags
-
["e", "<event_id>"](the normal event being updated) OR["a", "<kind>:<pubkey>:<d-identifier>"](the addressable event being updated) -
["status", "<status_value>"]
Optional Tags
-
["priority", "<priority_value>"]— for task targets: urgent | high | medium | low. Omit to leave priority unchanged or unset.
Example
{
"kind": 1983,
"tags": [
["a", "37060:<task-author-pubkey>:<task-d>"],
["status", "in-progress"],
["priority", "high"]
]
}
Status Values
Task Statuses
-
open: Default status for new tasks
-
backlog: Task is not yet scheduled
-
in-progress: Task is actively being worked on
-
in-review: Task is ready for review/approval
-
closed: Task is completed
-
canceled: Task was abandoned or no longer needed
-
duplicate: Task duplicates another; see related task
Project & Milestone Statuses
-
open: Project/milestone is active, work not yet complete
-
closed: Project/milestone is fully complete
-
canceled: Project/milestone was abandoned
Percentage (optional, projects and milestones only)
An optional ["percentage", "<0-100>"] tag MAY accompany a status event targeting a kind:30315 (Project) or kind:30316 (Milestone) event. It records the author’s explicit completion estimate as an integer from 0 to 100.
Clients that compute progress automatically (e.g. closed-tasks ÷ total-tasks) SHOULD prefer the computed value and only fall back to the stored percentage when no task data is available.
{
"kind": 1983,
"tags": [
["a", "30315:<project-author-pubkey>:<project-d>"],
["status", "open"],
["percentage", "42"]
]
}
Resolution
The status event with the largest created_at is considered the current status. If that event has a priority tag, it is the current priority; otherwise the previous priority (if any) remains, or there is no priority.
Authorization
By default, only status events from the following sources are considered authoritative:
- The author of the target event
- The author of any event referenced by the target event (e tags)
- The author of any addressable event referenced by the target event (a tags)
- Any person mentioned in the target event’s p tags
Clients MAY implement additional authorization logic based on their specific use cases.