start-tasklisted
Install: claude install-skill foyzulkarim/skills
# Start-Task
Turn a task reference into a synced feature branch named
`{type}/{number}/{slug}` plus a context file at `specs/context/<id>.md`.
Zero confirmations on the happy path: detect → fetch → derive → execute → report.
## 1. Detect the source (no bash)
Match the args in this order:
1. **Jira** — `[A-Z]+-\d+` (e.g. `PROJ-42`)
2. **GitHub issue** — a numeric token, stripping any of `github`, `gh`, `issue`, `issues`, `#`
3. **Local spec** — a path ending in `.md`, `.txt`, `.yaml`, `.yml`, or `.json`; reject any path containing `..`
4. **Ad-hoc** — nothing matched: ask once (a single question) for the task type, title, and identifier, then skip to step 3
## 2. Fetch (1 bash call)
**GitHub:**
```bash
gh issue view <ISSUE_NUM> --json title,labels --jq '{title: .title, labels: [.labels[].name]}'
```
**Jira:** `which acli && acli jira issue view <KEY>` — extract summary, type, key.
If `acli` is missing, hard-stop: the developer chose Jira; do not degrade to ad-hoc.
**Local spec:** read the file; extract title and scope. The identifier is the
developer-provided one or the filename stem.
On any fetch failure, hard-stop and print the error verbatim — no retries, no
paraphrasing, no follow-up questions.
## 3. Derive TYPE and SLUG (no bash)
**TYPE** — from GitHub labels (first match wins) or from the task's nature:
| Signal | TYPE |
|---|---|
| `bug`, `fix`, `hotfix` | `fix` |
| `enhancement`, `feature` | `feat` |
| `refactor` | `refactor` |
| `docs`, `documentation` |