afk-tracker-issuelisted
Install: claude install-skill Mo-Tamim/afk-agent
# Skill: afk-tracker-issue
The **only** sanctioned way to talk to a single tracker issue from an
AFK phase. Routes to `gh` or `glab` based on `.afk/config.yml`'s
`tracker:` value. Behavior is predictable across phases and across
hosts.
## Preconditions (run once per session)
```bash
# Resolve the tracker once per session.
TRACKER="$(grep -E '^tracker:' .afk/config.yml | awk '{print $2}')" # github | gitlab
REPO="$(grep -E '^repo:' .afk/config.yml | awk '{print $2}')"
case "$TRACKER" in
github) CLI=gh ; AUTH="$($CLI auth status 2>&1)" ;;
gitlab) CLI=glab ; AUTH="$($CLI auth status 2>&1)" ;;
*) echo "unknown tracker: $TRACKER" >&2; exit 1 ;;
esac
command -v "$CLI" >/dev/null || { echo "$CLI not installed" >&2; exit 1; }
git rev-parse --show-toplevel >/dev/null # must be inside a repo
```
For `gh`, pass `-R "$REPO"` to every call. For `glab`, pass
`-R "$REPO"` (it accepts the same flag).
## Inputs
Every prompt that uses this skill passes one of:
- `ISSUE_ID` — e.g. `42`
- `ISSUE_URL` — extract the trailing number as `ISSUE_ID`
## Operations
Use exactly these wrappers. Do not invent flags.
### 1. Fetch (always first)
GitHub:
```bash
gh issue view "$ISSUE_ID" -R "$REPO" \
--json number,title,body,labels,state,assignees,comments
```
GitLab:
```bash
glab issue view "$ISSUE_ID" -R "$REPO" --output json
```
Capture title, body (treat as source of truth), labels, state, and
every comment. Newer comments override older ones on conflict. Do
**not** re-f