|
| 1 | +--- |
| 2 | +sidebar_position: 3 |
| 3 | +title: task |
| 4 | +description: Manage tasks across GitHub and Linear |
| 5 | +keywords: [cli, task, command, github, linear, issues, unified, assignee] |
| 6 | +--- |
| 7 | + |
| 8 | +# ralph-starter task |
| 9 | + |
| 10 | +Unified task management across GitHub and Linear. Issues stay where they are -- ralph-starter detects the platform from the ID format and routes operations accordingly. |
| 11 | + |
| 12 | +## Synopsis |
| 13 | + |
| 14 | +```bash |
| 15 | +ralph-starter task list [options] |
| 16 | +ralph-starter task create --title "..." [options] |
| 17 | +ralph-starter task update <id> [options] |
| 18 | +ralph-starter task close <id> [options] |
| 19 | +ralph-starter task comment <id> "message" [options] |
| 20 | +``` |
| 21 | + |
| 22 | +## Description |
| 23 | + |
| 24 | +The `task` command provides a single interface for managing issues on both GitHub and Linear. Instead of switching between `gh issue` and Linear's UI, you can: |
| 25 | + |
| 26 | +- **List** tasks from both platforms in a unified table |
| 27 | +- **Create** issues on either platform |
| 28 | +- **Update** status, priority, or assignee |
| 29 | +- **Close** issues with optional comments |
| 30 | +- **Comment** on issues |
| 31 | + |
| 32 | +### Smart ID Detection |
| 33 | + |
| 34 | +ralph-starter automatically detects which platform an issue belongs to based on the ID format: |
| 35 | + |
| 36 | +| Format | Platform | Example | |
| 37 | +|--------|----------|---------| |
| 38 | +| `#123` or `123` | GitHub | `ralph-starter task close #42` | |
| 39 | +| `TEAM-123` | Linear | `ralph-starter task update ENG-42 --status "In Progress"` | |
| 40 | + |
| 41 | +You can always override detection with `--source github` or `--source linear`. |
| 42 | + |
| 43 | +## Actions |
| 44 | + |
| 45 | +### `task list` |
| 46 | + |
| 47 | +List tasks from all configured integrations. |
| 48 | + |
| 49 | +```bash |
| 50 | +# List from all sources |
| 51 | +ralph-starter task list |
| 52 | + |
| 53 | +# List from GitHub only |
| 54 | +ralph-starter task list --source github --project owner/repo |
| 55 | + |
| 56 | +# List from Linear only |
| 57 | +ralph-starter task list --source linear |
| 58 | + |
| 59 | +# Filter by label and status |
| 60 | +ralph-starter task list --label "bug" --status "open" --limit 10 |
| 61 | +``` |
| 62 | + |
| 63 | +### `task create` |
| 64 | + |
| 65 | +Create a new issue on GitHub or Linear. |
| 66 | + |
| 67 | +```bash |
| 68 | +# Create on GitHub (default) |
| 69 | +ralph-starter task create --title "Add dark mode" --project owner/repo |
| 70 | + |
| 71 | +# Create on Linear |
| 72 | +ralph-starter task create --title "Add dark mode" --source linear --priority P1 |
| 73 | + |
| 74 | +# Create with assignee and labels |
| 75 | +ralph-starter task create --title "Fix auth bug" --source github \ |
| 76 | + --project owner/repo --assignee octocat --label "bug,urgent" |
| 77 | +``` |
| 78 | + |
| 79 | +### `task update` |
| 80 | + |
| 81 | +Update an existing issue. |
| 82 | + |
| 83 | +```bash |
| 84 | +# Update status on Linear (auto-detected from ID) |
| 85 | +ralph-starter task update ENG-42 --status "In Progress" |
| 86 | + |
| 87 | +# Assign a task |
| 88 | +ralph-starter task update ENG-42 --assignee ruben |
| 89 | + |
| 90 | +# Update priority |
| 91 | +ralph-starter task update ENG-42 --priority P0 |
| 92 | + |
| 93 | +# Update a GitHub issue |
| 94 | +ralph-starter task update #123 --assignee octocat --project owner/repo |
| 95 | +``` |
| 96 | + |
| 97 | +### `task close` |
| 98 | + |
| 99 | +Close an issue with an optional comment. |
| 100 | + |
| 101 | +```bash |
| 102 | +# Close a Linear issue |
| 103 | +ralph-starter task close ENG-42 |
| 104 | + |
| 105 | +# Close with a comment |
| 106 | +ralph-starter task close #123 --comment "Fixed in PR #456" --project owner/repo |
| 107 | +``` |
| 108 | + |
| 109 | +### `task comment` |
| 110 | + |
| 111 | +Add a comment to an issue. |
| 112 | + |
| 113 | +```bash |
| 114 | +ralph-starter task comment ENG-42 "Working on this now" |
| 115 | +ralph-starter task comment #123 "Needs design review" --project owner/repo |
| 116 | +``` |
| 117 | + |
| 118 | +## Options |
| 119 | + |
| 120 | +| Option | Description | Default | |
| 121 | +|--------|-------------|---------| |
| 122 | +| `--source <source>` | Filter by source: `github`, `linear`, or `all` | `all` (list) / `github` (create) | |
| 123 | +| `--project <name>` | Project filter (`owner/repo` for GitHub, team name for Linear) | - | |
| 124 | +| `--label <name>` | Filter by label or set labels (comma-separated) | - | |
| 125 | +| `--status <status>` | Filter by status or set status on update | - | |
| 126 | +| `--limit <n>` | Max tasks to fetch | `50` | |
| 127 | +| `--title <title>` | Task title (for create) | - | |
| 128 | +| `--body <body>` | Task description (for create) | - | |
| 129 | +| `--priority <p>` | Priority: `P0`, `P1`, `P2`, `P3` | - | |
| 130 | +| `--assignee <name>` | Assign to team member (GitHub username or Linear display name) | - | |
| 131 | +| `--comment <text>` | Comment text (for close/update) | - | |
| 132 | + |
| 133 | +## Assignee Resolution |
| 134 | + |
| 135 | +### GitHub |
| 136 | + |
| 137 | +Pass a GitHub username directly: |
| 138 | + |
| 139 | +```bash |
| 140 | +ralph-starter task update #123 --assignee octocat --project owner/repo |
| 141 | +``` |
| 142 | + |
| 143 | +### Linear |
| 144 | + |
| 145 | +ralph-starter resolves display names, full names, and email prefixes to Linear user IDs: |
| 146 | + |
| 147 | +```bash |
| 148 | +# Match by display name |
| 149 | +ralph-starter task update ENG-42 --assignee "Ruben" |
| 150 | + |
| 151 | +# Match by email prefix |
| 152 | +ralph-starter task update ENG-42 --assignee "ruben" |
| 153 | +``` |
| 154 | + |
| 155 | +Matching is case-insensitive. If no match is found, ralph-starter shows available team members. |
| 156 | + |
| 157 | +## Prerequisites |
| 158 | + |
| 159 | +At least one integration must be configured: |
| 160 | + |
| 161 | +```bash |
| 162 | +# GitHub (via GitHub CLI) |
| 163 | +gh auth login |
| 164 | + |
| 165 | +# Linear (via API key) |
| 166 | +ralph-starter config set linear.apiKey lin_api_xxxxxxxxxxxx |
| 167 | +``` |
| 168 | + |
| 169 | +Check integration status: |
| 170 | + |
| 171 | +```bash |
| 172 | +ralph-starter integrations list |
| 173 | +``` |
| 174 | + |
| 175 | +## See Also |
| 176 | + |
| 177 | +- [`ralph-starter auto`](auto.md) -- Batch-process tasks autonomously |
| 178 | +- [`ralph-starter integrations`](integrations.md) -- Manage integrations |
| 179 | +- [`ralph-starter auth`](auth.md) -- Authenticate with services |
| 180 | +- [GitHub Source](../sources/github.md) -- GitHub integration details |
| 181 | +- [Linear Source](../sources/linear.md) -- Linear integration details |
0 commit comments