helpers/skills/doc-gather/SKILL.md
Use when you need to gather context for a Jira ticket or PR. Resolves ticket metadata, clones relevant repos, collects candidate files, runs filtering pipeline, and produces workspace/context-package.json.
npx skillsauth add opendatahub-io/ai-helpers doc-gatherInstall 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.
Gather context from Jira tickets, source repos, and documentation repos to produce a structured context package for downstream skills.
$ARGUMENTS contains either:
RHOAIENG-55490)https://github.com/org/repo/pull/123)Detect the input type:
http → PR URLUse the resolve script to fetch and structure ticket metadata:
bash ${CLAUDE_SKILL_DIR}/scripts/resolve-jira.sh <JIRA-KEY>
This returns JSON with: key, summary, description, acceptance_criteria, fix_versions, components, linked_tickets, epic_key, status, issue_type.
If the ticket has linked tickets that provide useful context (e.g., parent epic, related stories), resolve those too (up to 5 linked tickets):
bash ${CLAUDE_SKILL_DIR}/scripts/resolve-jira.sh <LINKED-KEY>
Use gh CLI to extract PR metadata:
gh pr view <PR-URL> --json title,body,labels,files,headRefName
Extract the Jira key from the PR title or body (pattern: [A-Z]+-\d+), then resolve the Jira ticket using the resolve script as above.
Read the product configuration bundled with this skill:
python3 ${CLAUDE_SKILL_DIR}/scripts/parse-product-config.py ${CLAUDE_SKILL_DIR}/references/rhoai.yaml
From the config, determine:
For each fixVersion from the ticket:
python3 ${CLAUDE_SKILL_DIR}/scripts/parse-product-config.py ${CLAUDE_SKILL_DIR}/references/rhoai.yaml --resolve-version "<fixVersion>"
This determines which branch to checkout for each repo.
For each component from the ticket:
python3 ${CLAUDE_SKILL_DIR}/scripts/parse-product-config.py ${CLAUDE_SKILL_DIR}/references/rhoai.yaml --resolve-component "<component-name>"
This identifies which source repos are relevant.
For each context source in the product config, plus each resolved component repo:
bash ${CLAUDE_SKILL_DIR}/scripts/gather-context.sh <repo-slug> <branch> <path-patterns...>
The branch is determined by:
branch_hint from the context source declarationmainAssemble a JSON input for the filtering pipeline combining:
python3 ${CLAUDE_SKILL_DIR}/scripts/context-filter.py <<< '<assembled-json>'
The pipeline runs six stages:
Source the git utilities (which internally uses scripts/load-env.sh to load credentials from the environment) and read each selected candidate's content from the cloned repo:
source ${CLAUDE_SKILL_DIR}/scripts/git-utils.sh
git_file_content "workspace/repos/<repo-slug>" "<file-path>"
Attach content to each candidate entry.
Write workspace/context-package.json with this structure:
{
"ticket": {
"key": "RHOAIENG-55490",
"summary": "...",
"description": "...",
"fix_versions": ["rhoai-2.18"],
"components": ["Dashboard"],
"linked_tickets": [],
"epic_key": "",
"status": "In Progress",
"issue_type": "Story"
},
"product": {
"product_id": "rhoai",
"display_name": "Red Hat OpenShift AI",
"docs_repo": "opendatahub-io/opendatahub-documentation",
"docs_branch": "main",
"framework": "asciidoc-modular",
"module_prefixes": {
"concept": "con_",
"procedure": "proc_",
"reference": "ref_",
"assembly": "assembly_",
"snippet": "snip_"
}
},
"context_files": [
{
"source_type": "documentation",
"repo": "opendatahub-io/opendatahub-documentation",
"file_path": "modules/serving/pages/con_model-serving.adoc",
"content": "...",
"relevance_score": 0.85,
"size_bytes": 4521,
"estimated_tokens": 1130,
"signals": [...]
}
],
"metadata": {
"gathered_at": "2026-04-14T10:30:00Z",
"total_candidates": 500,
"selected_candidates": 42,
"total_tokens": 85000,
"version_resolved": "2.18",
"branch_resolved": "release-2.18"
}
}
GITHUB_TOKEN must be set in the environment; without it, private repo clones and GitHub API calls will fail silently or return incomplete data.Primary: workspace/context-package.json
Report to caller: number of files gathered, total tokens, repos cloned.
tools
Use this skill to filter a pre-fetched set of Hacker News stories down to those that report supply-chain security threats relevant to software developers — including malicious packages on npm or PyPI, compromised developer tooling, and attacks targeting source code repositories or CI/CD infrastructure. Reads stories from stories.json in the workspace, performs semantic analysis (fetching HN threads when the title alone is ambiguous), and writes the stories worth alerting on to findings.json.
development
Run hexora static analysis on a Python package repository to detect suspicious code patterns, then triage findings with deterministic rules and AI reasoning to produce a structured risk report section.
development
Inspect recent git history of a Python package repository for suspicious commits touching supply-chain-sensitive files, then triage findings with AI reasoning to produce a structured risk report section.
development
Scan a Python package repository for compiled/binary files using Fromager-style detection and malcontent YARA analysis, then triage findings with deterministic rules and AI reasoning to produce a structured risk report section.