feat: add bd state and bd set-state helper commands (bd-7l67)
Implements convenience commands for the labels-as-state pattern: - `bd state <id> <dimension>` - Query current state value from labels - `bd state list <id>` - List all state dimensions on an issue - `bd set-state <id> <dimension>=<value> --reason "..."` - Atomically: 1. Create event bead (source of truth) 2. Remove old dimension label 3. Add new dimension:value label (cache) Common dimensions: patrol, mode, health, status Convention: <dimension>:<value> (e.g., patrol:active, mode:degraded) Updated docs/CLI_REFERENCE.md with new State section. Updated docs/LABELS.md to reflect implemented helpers. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -714,20 +714,32 @@ bd label list witness-alpha
|
||||
# Output: patrol:active, mode:normal, health:healthy
|
||||
```
|
||||
|
||||
### Future: Helper Commands
|
||||
### Helper Commands
|
||||
|
||||
For convenience, these helpers are planned:
|
||||
For convenience, use these helpers:
|
||||
|
||||
```bash
|
||||
# Query a specific dimension
|
||||
bd state witness-alpha patrol
|
||||
# Output: active
|
||||
|
||||
# List all state dimensions
|
||||
bd state list witness-alpha
|
||||
# Output:
|
||||
# patrol: active
|
||||
# mode: normal
|
||||
# health: healthy
|
||||
|
||||
# Set state (creates event + updates label atomically)
|
||||
bd set-state witness-alpha patrol=muted --reason "Investigating issue"
|
||||
```
|
||||
|
||||
Until then, use the manual event + label pattern above.
|
||||
The `set-state` command atomically:
|
||||
1. Creates an event bead with the reason (source of truth)
|
||||
2. Removes the old dimension label if present
|
||||
3. Adds the new dimension:value label (cache)
|
||||
|
||||
See [CLI_REFERENCE.md](CLI_REFERENCE.md#state-labels-as-cache) for full command reference.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
|
||||
Reference in New Issue
Block a user