← ClaudeAtlas

afk-tracker-issuelisted

Tracker-agnostic CRUD on a single issue — fetch, comment, label, close — wrapping `gh` (GitHub) or `glab` (GitLab) behind the same verbs. Use whenever the active AFK phase needs to read or write an issue and you don't want to hardcode the tracker.
Mo-Tamim/afk-agent · ★ 0 · AI & Automation · score 72
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