Synopsis
Update a thread’s status without adding an entry. Always updateslast_updated timestamp and rewrites the thread projection.
Usage
Arguments
Thread topic identifier
New status value. Common values:
OPEN, IN_REVIEW, CLOSED, BLOCKED, or custom statusOptions
Threads directory path. Defaults to
./watercooler or $WATERCOOLER_DIR.Examples
Set status to closed
Set status to blocked
Set status to in review
Reopen closed thread
Custom status
Update status in custom directory
Common Status Values
| Status | Typical Use |
|---|---|
OPEN | Active work, default for new threads |
IN_REVIEW | Awaiting review or approval |
BLOCKED | Cannot proceed due to dependency or issue |
CLOSED | Completed or resolved |
ABANDONED | Work discontinued |
WAITING | Waiting for external input |
Expected Output
The command prints the path to the updated thread file:Side Effects
Metadata Updates
- Updates
statusfield in YAML frontmatter - Updates
last_updatedtimestamp to current time - Rewrites thread projection file
Git Sync
- Triggers automatic git commit (if threads directory is a git repository)
- Commit message:
"Update status: feature-auth -> CLOSED"
Status vs Entry
Two ways to change status:1. set-status (silent update)
- No entry added to thread
- Only updates metadata
- Quick status change
2. say with status update (documented change)
- Adds entry explaining the status change
- Updates metadata
- Better for audit trail
say with status when you want to document why the status changed.
Workflows
Close completed thread
Block thread
Reopen thread
Batch status update
Query Status
To see current status of threads:Error Handling
Thread not found
watercooler list.
Invalid status format
While any string is technically valid, consider using consistent status values across your project.Related Commands
- say - Add entry with optional status update
- set-ball - Update ball ownership
- list - List threads with current status
- set-status - MCP tool equivalent