open-weight/skills/issue-tracker-read/SKILL.md
Read and extract ticket details from the configured issue tracker. Use when orchestrator needs to fetch a ticket before decomposing work.
npx skillsauth add jon23d/skillz issue-tracker-readInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Reads a ticket from the configured issue tracker and returns structured context.
Read agent-config.json from the repository root to determine the provider:
cat agent-config.json
Use the issue_tracker.provider field to select the correct commands below.
gh CLI installed and authenticatedgh issue view <ticket-id> --json number,title,body,labels,assignees,milestone,state \
--repo <issue_tracker.github.repo_url>
From the JSON response, extract:
title — issue titlebody — full description (contains requirements, acceptance criteria)labels[].name — label names (use for scope hints)state — open/closedGITEA_TOKEN environment variable setGITEA_URL environment variable set (e.g. https://gitea.example.com)issue_tracker.gitea.repo_urlcurl -s \
-H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \
"$GITEA_URL/api/v1/repos/<owner>/<repo>/issues/<ticket-id>"
From the JSON response, extract:
titlebodylabels[].namestateJIRA_TOKEN environment variable set (API token)JIRA_EMAIL environment variable setJIRA_URL environment variable set (e.g. https://yourorg.atlassian.net)curl -s \
-u "$JIRA_EMAIL:$JIRA_TOKEN" \
-H "Content-Type: application/json" \
"$JIRA_URL/rest/api/3/issue/<ticket-id>"
Jira responses are nested. Extract:
fields.summary → titlefields.description.content → description (Atlassian Document Format — extract plain text from text nodes)fields.labels → label namesfields.status.name → current statusfields.acceptanceCriteria → may be a custom field, check fields for keys containing "acceptance"After reading the ticket, return a structured context object — do not pass the raw API response downstream:
{
"id": "47",
"title": "One-line summary",
"description": "Full requirement text",
"labels": ["backend", "auth"],
"raw_acceptance_criteria": "Text of acceptance criteria if present in ticket body"
}
If acceptance criteria are not explicitly stated in the ticket, note that in raw_acceptance_criteria as null — the orchestrator will infer them during extraction.
development
Use when adding or modifying environment variable handling in TypeScript projects or monorepos — especially when using process.env directly, missing startup validation, sharing env schemas across packages, or encountering "undefined is not a string" errors at runtime from missing env vars.
testing
Use when creating a new skill, editing an existing skill, writing a SKILL.md, or verifying a skill works before deployment.
development
React UI design principles and conventions. Load when building or modifying any user interface or React components. Covers application type detection, visual standards, component design and structure, Mantine (business apps) and Tailwind (consumer apps), accessibility, responsiveness, state management, data fetching, testing, and in-app help patterns.
development
Use when setting up ESLint and/or Prettier in a TypeScript project, adding linting to an existing TypeScript codebase, or configuring typescript-eslint, eslint-config-prettier, or related packages.