id: task-308.05 title: Add dynamic completions for task IDs and config values status: Done assignee: [] created_date: '2025-10-23 10:09' updated_date: '2025-10-27 21:33' labels:
- completion
- dynamic dependencies:
- task-308.02
- task-308.03
- task-308.04 parent_task_id: task-308
Description
Implement dynamic completion support that queries the backlog system for context-aware suggestions.
Dynamic completions should include:
- Task IDs when relevant (e.g., 'backlog task edit [TAB]' shows actual task IDs)
- Status values from config (e.g., '--status [TAB]' shows configured statuses)
- Priority values (high, medium, low)
- Label values from existing tasks
- Assignee values from existing tasks
This requires the CLI to provide a completion helper command that shells can invoke to get dynamic values.
Acceptance Criteria
- [x] #1 CLI provides completion helper command (e.g., 'backlog __complete')
- [x] #2 Task IDs complete when editing tasks
- [x] #3 Status values complete from actual config
- [x] #4 Priority values complete correctly
- [x] #5 Labels complete from existing tasks
- [x] #6 Assignees complete from existing tasks
- [x] #7 Dynamic completions work in bash, zsh, and fish
Implementation Notes
Dynamic completions are already implemented through the completion helper system:
getTaskIds(): Returns actual task IDs from Core APIgetStatuses(): Returns configured status values from configgetPriorities(): Returns high/medium/lowgetLabels(): Extracts unique labels from all tasksgetAssignees(): Extracts unique assignees from all tasksgetDocumentIds(): Returns actual document IDs from Core API
The completion helper automatically provides these dynamic completions based on context:
- Task IDs when completing commands like
backlog task edit <TAB> - Status values when completing
--status <TAB> - Priority values when completing
--priority <TAB> - Labels when completing
--labels <TAB> - Assignees when completing
--assignee <TAB>
All three shell scripts (bash, zsh, fish) call the backlog completion __complete command which uses these data providers to return context-aware, dynamic completions.