skills/autoresolve-oldest-github-issue/SKILL.md
Use when autonomously resolving the oldest open GitHub issue end-to-end. Picks the oldest open issue (optionally filtered by label, default `Resolve_by_AI`), delegates resolution to `resolve-issue`, then runs `code-review-github`, `process-code-review`, and `merge-github-pr` on the resulting pull request. Stops and reports any blocker (merge conflict, failing CI, unresolved Critical/Moderate findings) instead of force-merging.
npx skillsauth add pekral/cursor-rules autoresolve-oldest-github-issueInstall 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.
@rules/git/general.mdc@rules/reports/general.mdcresolve-issue, code-review-github, process-code-review, merge-github-pr)LABEL (optional) — GitHub label used to filter eligible issues. Default: Resolve_by_AI. Pass an empty string (LABEL="") to disable label filtering and pick the globally oldest open issue.gh auth status reports an authenticated session; if not, stop and ask the user to authenticate.main branch and pull the latest changes.REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner).gh search issues, which — unlike gh issue list — supports explicit ascending order and therefore returns the globally oldest match regardless of total open-issue count:
QUERY="is:open is:issue repo:${REPO}${LABEL:+ label:\"$LABEL\"}"
gh search issues "$QUERY" --sort created --order asc --limit 1 \
--json number,url,title,createdAt,labels,assignees
Do not substitute gh issue list --sort created --limit <N>: that command returns the newest N issues with no --order switch, so any client-side ascending sort picks the oldest of the newest, never the true oldest.No eligible open GitHub issues found (label=<LABEL>).number and url. This URL is the single argument passed to every downstream skill in the chain.@skills/resolve-issue/SKILL.md with the selected issue URL.resolve-issue finishes, capture the resulting PR URL from its output. If no PR URL is produced, stop and report the failure — do not continue the chain.@skills/code-review-github/SKILL.md with the PR URL (not the issue URL). The CR skill's deterministic loader accepts a PR URL or number and posts findings as a single upserted PR comment plus a non-technical mirror on the linked issue.@skills/process-code-review/SKILL.md with the PR URL.criticalCount + moderateCount == 0 (or after its maxIterations safety net).process-code-review exits with residual Critical or Moderate findings, stop. Report the residual findings and the PR URL; do not attempt the merge.@skills/merge-github-pr/SKILL.md with the PR URL.mergeable, mergeStateStatus, statusCheckRollup[], reviewDecision) and will skip the merge with a reason on any failure. Surface that reason verbatim in the final report.At any step, stop the chain and produce the final report when:
resolve-issue does not produce a PRcode-review-github reports the PR has merge conflicts (review cancelled per its own contract)process-code-review cannot drive Critical + Moderate findings to zero within its iteration capmerge-github-pr reports mergeable != MERGEABLE, mergeStateStatus in DIRTY / BEHIND, any non-passing entry in statusCheckRollup[], or reviewDecision != APPROVEDNever retry or "fix" the blocker outside the contract of the delegated skill that surfaced it.
A short report containing:
#<number> + URL + createdAtresolve-issue: URL (or the failure reason if none)code-review-github outcome: counts of Critical / Moderate / Minor (or skipped — <reason>)process-code-review outcome: iterations run, residual Critical / Moderate count (or skipped — <reason>)merge-github-pr outcome: merged / skipped — <reason>Done when contracttesting
Use when analyzing a specific security threat from a referenced source (CVE, GHSA, security advisory, blog post, or write-up). Produces a human-readable remediation report with step-by-step instructions an AI agent can follow to eliminate the threat in the current project.
development
Use when preparing data and context before /resolve-issue, TDD, or CR runs. Loads the assignment, extracts every concrete user scenario from the task description and acceptance criteria, maps each scenario to the codebase, seeds the development database with the records needed to reproduce the bug or feature end-to-end, and reports any gap that would force the implementing agent to hallucinate.
development
Use when preparing a concise QA report for an internal tester from a JIRA task and its linked pull requests — focused on what the tester should report back to the dev team — and posting it as a JIRA comment.
testing
Use when checking that the pull request implementation actually fulfills the business requirements stated in the linked issue or task. Returns a plain-language markdown block listing only Critical functional gaps **only when at least one gap exists**; when the implementation satisfies every stated requirement the skill returns a skip status and the calling CR wrapper embeds nothing. The block (when present) carries actionable gaps only — never lists of satisfied requirements or open questions. No local file is created and the block is not embedded in the GitHub PR comment.