Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Show my pending sprint tickets and help knock them off one by one
.claude/skills/nudgebee-my-tickets/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 164% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 123% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 100% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 95% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 182% | 0% |
Show my pending GitHub issues for the current sprint and help me knock them off. The goal is to streamline productivity: see what's pending, pick a ticket, understand it, and get it done — whether that means implementing it directly or researching first.
bashGH_USER=$(gh api user --jq '.login')
Fetch all items from the Nudgebee project board (project #1, org: nudgebee) using GraphQL:
bashgh api graphql --paginate -f query=' query($endCursor: String) { organization(login: "nudgebee") { projectV2(number: 1) { items(first: 100, after: $endCursor) { pageInfo { hasNextPage endCursor } nodes { id fieldValueByName(name: "Status") { ... on ProjectV2ItemFieldSingleSelectValue { name } } fieldValueByName(name: "Iteration") { ... on ProjectV2ItemFieldIterationValue { title startDate duration } } fieldValueByName(name: "Priority") { ... on ProjectV2ItemFieldSingleSelectValue { name } } fieldValueByName(name: "Story Point") { ... on ProjectV2ItemFieldSingleSelectValue { name } } content { ... on Issue { number title url state assignees(first: 10) { nodes { login } } labels(first: 10) { nodes { name } } } } } } } } }'
From the results, filter for items that match ALL of:
$GH_USERExclude: 👀 In review, 🔎 QA, 🎬 QA - Prod, ✅ Done, ❌Invalid, Won't Fix.
Display as a sorted markdown table (In progress first, then Ready, Re Open, New):
### My Pending Tickets — Sprint {iteration_title}
| # | Title | Status | Priority | SP |
|---|-------|--------|----------|----|
| 1 | #123 Fix login bug | In progress | High | 3 |
| 2 | #456 Add dark mode | Ready | Medium | 5 |
| 3 | #789 Update docs | New | Low | 1 |
Summary: X tickets pending, Y story points remainingIf no tickets found, report "No pending tickets for this sprint!" and stop.
Use AskUserQuestion to ask the user which ticket they want to tackle. List the tickets as options (use the ticket number + short title as the label). Recommend tickets in this priority: "In progress" first (already started), then "Ready" (clear requirements), then others.
Once the user picks a ticket, fetch the full issue details:
bashgh issue view {ISSUE_NUMBER} --json title,body,labels,comments,assignees
Read the issue body and all comments carefully. Then proceed to triage.
Before starting any work, analyze the ticket for cross-service impact. A single ticket often requires changes across multiple services/teams.
Search the codebase to understand the impact:
app/src/ for usages of the affected API endpoints or GraphQL queries.api-server/migrations/.Present the triage to the user:
Triage for #{number} — {title}
Your scope (what you'll implement):
- {service}: {changes needed}
Dependencies found:
- [UI] {description of UI changes needed} — needs a ticket for the frontend team
- [Hasura] {description of migration needed} — needs a migration before/after your changes
- [Notifications] {description} — can be done in parallel
(or "No cross-team dependencies found.")
Blockers:
- {any dependency that must be done BEFORE your work}
(or "None — you can start immediately.")If cross-team dependencies are found, ask the user:
I found dependencies that need separate tickets. Should I create them?For each dependency the user approves, create a GitHub issue using the /create-issue skill pattern:
bashgh issue create --title "[REQUEST] - {dependency description}" --body "$(cat <<'EOF' ## Summary This is a dependency of #{parent_issue_number} — {parent_title}. {Description of what needs to be done in this service} ## Context Parent ticket: #{parent_issue_number} Changes in parent: {brief summary of parent changes that create this dependency} ## Acceptance Criteria - {specific criterion 1} - {specific criterion 2} ## Reference Issues - #{parent_issue_number} EOF )"
After creating, add each new issue to the project board with current iteration:
bashgh project item-add 1 --owner nudgebee --url "https://github.com/nudgebee/nudgebee/issues/${NEW_ISSUE_NUMBER}"
Link the dependency tickets back to the parent by adding a comment:
bashgh issue comment {PARENT_ISSUE_NUMBER} --body "Dependencies created: - #{dep1_number} — {dep1_title} - #{dep2_number} — {dep2_title}"
After triage, assess the ticket's readiness:
A ticket has CLEAR requirements if it has:
A ticket NEEDS RESEARCH if:
If the ticket has clear requirements:
Ticket #{number} — {title}
What needs to be done:
{extracted requirements}
Affected service(s): {services}
Implementation plan:
1. {step 1}
2. {step 2}
...bash git fetch origin main git checkout -b {type}/{issue-number}-short-description origin/main Use fix/ for bugs, feature/ for features, spike/ for spikes — infer from issue labels/title.
/validate) and commit (/commit).If the ticket needs research:
Inform the user:
This ticket needs some research before we can start. Let me investigate and I'll keep you in the loop.Then do a thorough investigation:
bash gh issue view {number} --json body --jq '.body' | grep -oE '#[0-9]+' Fetch those related issues for context.
Present findings to the user with AskUserQuestion:
Research Summary for #{number} — {title}
What I found:
- {finding 1}
- {finding 2}
- {finding 3}
Affected code:
- {file1}: {what it does}
- {file2}: {what it does}
Open questions:
- {question 1}
- {question 2}
Possible approaches:
1. {approach A — pros/cons}
2. {approach B — pros/cons}Ask the user to clarify open questions and pick an approach. Once the user confirms direction, proceed to Phase 4A (plan and implement).
If the GraphQL query fails (permissions, network, etc.), fall back to:
bashgh issue list --assignee @me --state open --limit 30 --json number,title,labels,url
Note to the user that sprint filtering is unavailable and showing all open issues instead.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 7,356 | 34,625 | +371% | 1 | 1 | 0% | 1,078 | 8,952 | +730% | 0 | 0 | — |
case-02 | fail→fail | 5,658 | 6,469 | +14% | 1 | 1 | 0% | 859 | 3,171 | +269% | 0 | 0 | — |
case-03 | fail→fail | 5,382 | 4,312 | -20% | 1 | 1 | 0% | 709 | 2,829 | +299% | 0 | 0 | — |
case-04 | pass→fail | 6,436 | 3,412 | -47% | 1 | 1 | 0% | 926 | 3,010 | +225% | 0 | 0 | — |
case-05 | pass→pass | 9,936 | 4,352 | -56% | 1 | 1 | 0% | 1,912 | 3,465 | +81% | 0 | 0 | — |
case-06 | fail→pass | 7,224 | 3,464 | -52% | 1 | 1 | 0% | 1,204 | 3,180 | +164% | 0 | 0 | — |
case-07 | fail→pass | 7,809 | 2,393 | -69% | 1 | 1 | 0% | 1,348 | 3,007 | +123% | 0 | 0 | — |
case-08 | pass→pass | 5,753 | 2,121 | -63% | 1 | 1 | 0% | 983 | 2,953 | +200% | 0 | 0 | — |
case-09 | pass→pass | 4,921 | 1,556 | -68% | 1 | 1 | 0% | 832 | 2,812 | +238% | 0 | 0 | — |
case-14 | fail→pass | 9,625 | 3,248 | -66% | 1 | 1 | 0% | 1,543 | 3,085 | +100% | 0 | 0 | — |
case-10 | fail→pass | 10,894 | 5,053 | -54% | 1 | 1 | 0% | 1,746 | 3,413 | +95% | 0 | 0 | — |
case-11 | fail→fail | 5,100 | 1,554 | -70% | 1 | 1 | 0% | 791 | 2,832 | +258% | 0 | 0 | — |
case-12 | pass→pass | 9,020 | 4,795 | -47% | 1 | 1 | 0% | 1,498 | 3,422 | +128% | 0 | 0 | — |
case-13 | pass→pass | 3,440 | 2,531 | -26% | 1 | 1 | 0% | 596 | 3,060 | +413% | 0 | 0 | — |
case-15 | pass→pass | 3,787 | 2,408 | -36% | 1 | 1 | 0% | 657 | 3,001 | +357% | 0 | 0 | — |
case-16 | fail→pass | 7,605 | 3,972 | -48% | 1 | 1 | 0% | 1,173 | 3,308 | +182% | 0 | 0 | — |
case-17 | pass→pass | 8,755 | 2,173 | -75% | 1 | 1 | 0% | 1,539 | 2,982 | +94% | 0 | 0 | — |
case-18 | pass→pass | 6,956 | 3,893 | -44% | 1 | 1 | 0% | 1,124 | 3,195 | +184% | 0 | 0 | — |
case-19 | pass→pass | 8,546 | 2,944 | -66% | 1 | 1 | 0% | 1,348 | 3,153 | +134% | 0 | 0 | — |
case-20 | pass→fail | 7,493 | 5,708 | -24% | 1 | 1 | 0% | 1,425 | 2,926 | +105% | 0 | 0 | — |
case-21 | pass→pass | 11,846 | 1,770 | -85% | 1 | 1 | 0% | 528 | 2,849 | +440% | 0 | 0 | — |
case-22 | pass→pass | 28,964 | 5,504 | -81% | 1 | 1 | 0% | 1,803 | 3,556 | +97% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +14 percentage points is the difference between those two pass rates over the 18 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.