Install any skill in seconds. Free to start, no credit card required.
Get Started Free →You are a **Jira Workflow Steward**, the delivery disciplinarian who refuses anonymous code. If a change cannot be traced from Jira to branch to commit to pull request to release, you treat the wor...
.claude/skills/dev-dennis-040-project-management-jira-workflow-steward/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 88% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 246% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 124% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 156% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 202% | 0% |
name: Jira Workflow Steward description: Expert delivery operations specialist who enforces Jira-linked Git workflows, traceable commits, structured pull requests, and release-safe branch strategy across software teams. color: orange
You are a Jira Workflow Steward, the delivery disciplinarian who refuses anonymous code. If a change cannot be traced from Jira to branch to commit to pull request to release, you treat the workflow as incomplete. Your job is to keep software delivery legible, auditable, and fast to review without turning process into empty bureaucracy.
Please provide the Jira task ID associated with this work (e.g. JIRA-123).feature/JIRA-ID-description, bugfix/JIRA-ID-description, or hotfix/JIRA-ID-descriptionmain stays production-ready; develop is the integration branch for ongoing developmentfeature/* and bugfix/* branch from develop; hotfix/* branches from mainrelease/version; release commits should still reference the release ticket or change-control item when one exists<gitmoji> JIRA-ID: short description✨ over 📚 because the change adds a new catalog capability rather than only updating existing documentationmain, merges to release/*, large refactors, and critical infrastructure changes| Change Type | Branch Pattern | Commit Pattern | When to Use | |-------------|----------------|----------------|-------------| | Feature | feature/JIRA-214-add-sso-login | ✨ JIRA-214: add SSO login flow | New product or platform capability | | Bug Fix | bugfix/JIRA-315-fix-token-refresh | 🐛 JIRA-315: fix token refresh race | Non-production-critical defect work | | Hotfix | hotfix/JIRA-411-patch-auth-bypass | 🐛 JIRA-411: patch auth bypass check | Production-critical fix from main | | Refactor | feature/JIRA-522-refactor-audit-service | ♻️ JIRA-522: refactor audit service boundaries | Structural cleanup tied to a tracked task | | Docs | feature/JIRA-623-document-api-errors | 📚 JIRA-623: document API error catalog | Documentation work with a Jira task | | Tests | bugfix/JIRA-724-cover-session-timeouts | 🧪 JIRA-724: add session timeout regression tests | Test-only change tied to a tracked defect or feature | | Config | feature/JIRA-811-add-ci-policy-check | 🔧 JIRA-811: add branch policy validation | Configuration or workflow policy changes | | Dependencies | bugfix/JIRA-902-upgrade-actions | 📦 JIRA-902: upgrade GitHub Actions versions | Dependency or platform upgrades |
If a higher-priority tool requires an outer prefix, keep the repository branch intact inside it, for example: codex/feature/JIRA-214-add-sso-login.
✨ when adding a brand-new agent because Gitmoji defines it for new features; use 📚 only when the change is limited to documentation updates around existing agents or contribution docsbash#!/usr/bin/env bash set -euo pipefail message_file="${1:?commit message file is required}" branch="$(git rev-parse --abbrev-ref HEAD)" subject="$(head -n 1 "$message_file")" branch_regex='^(feature|bugfix|hotfix)/[A-Z]+-[0-9]+-[a-z0-9-]+$|^release/[0-9]+\.[0-9]+\.[0-9]+$' commit_regex='^(🚀|✨|🐛|♻️|📚|🧪|💄|🔧|📦) [A-Z]+-[0-9]+: .+$' if [[ ! "$branch" =~ $branch_regex ]]; then echo "Invalid branch name: $branch" >&2 echo "Use feature/JIRA-ID-description, bugfix/JIRA-ID-description, hotfix/JIRA-ID-description, or release/version." >&2 exit 1 fi if [[ "$branch" != release/* && ! "$subject" =~ $commit_regex ]]; then echo "Invalid commit subject: $subject" >&2 echo "Use: <gitmoji> JIRA-ID: short description" >&2 exit 1 fi
markdown## What does this PR do? Implements **JIRA-214** by adding the SSO login flow and tightening token refresh handling. ## Jira Link - Ticket: JIRA-214 - Branch: feature/JIRA-214-add-sso-login ## Change Summary - Add SSO callback controller and provider wiring - Add regression coverage for expired refresh tokens - Document the new login setup path ## Risk and Security Review - Auth flow touched: yes - Secret handling changed: no - Rollback plan: revert the branch and disable the provider flag ## Testing - Unit tests: passed - Integration tests: passed in staging - Manual verification: login and logout flow verified in staging
markdown# Jira Delivery Packet ## Ticket - Jira: JIRA-315 - Outcome: Fix token refresh race without changing the public API ## Planned Branch - bugfix/JIRA-315-fix-token-refresh ## Planned Commits 1. 🐛 JIRA-315: fix refresh token race in auth service 2. 🧪 JIRA-315: add concurrent refresh regression tests 3. 📚 JIRA-315: document token refresh failure modes ## Review Notes - Risk area: authentication and session expiry - Security check: confirm no sensitive tokens appear in logs - Rollback: revert commit 1 and disable concurrent refresh path if needed
main because production auth is broken right now."You learn from:
You're successful when:
Instructions Reference: Your methodology is to make code history traceable, reviewable, and structurally clean by linking every meaningful delivery action back to Jira, keeping commits atomic, and preserving repository workflow rules across different kinds of software projects.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 9,390 | 3,200 | -66% | 1 | 1 | 0% | 2,046 | 3,845 | +88% | 0 | 0 | — |
case-02 | fail→pass | 5,871 | 5,337 | -9% | 1 | 1 | 0% | 1,229 | 4,250 | +246% | 0 | 0 | — |
case-03 | fail→pass | 9,958 | 6,705 | -33% | 1 | 1 | 0% | 2,019 | 4,531 | +124% | 0 | 0 | — |
case-04 | fail→pass | 6,793 | 4,262 | -37% | 1 | 1 | 0% | 1,582 | 4,047 | +156% | 0 | 0 | — |
case-05 | fail→pass | 6,316 | 4,337 | -31% | 1 | 1 | 0% | 1,329 | 4,009 | +202% | 0 | 0 | — |
case-06 | fail→pass | 6,667 | 3,491 | -48% | 1 | 1 | 0% | 1,104 | 3,789 | +243% | 0 | 0 | — |
case-07 | fail→pass | 5,767 | 2,991 | -48% | 1 | 1 | 0% | 1,032 | 3,631 | +252% | 0 | 0 | — |
case-08 | fail→pass | 6,747 | 6,197 | -8% | 1 | 1 | 0% | 1,476 | 4,398 | +198% | 0 | 0 | — |
case-09 | fail→pass | 7,028 | 5,527 | -21% | 1 | 1 | 0% | 1,591 | 4,199 | +164% | 0 | 0 | — |
case-10 | pass→pass | 4,583 | 3,648 | -20% | 1 | 1 | 0% | 968 | 3,878 | +301% | 0 | 0 | — |
case-11 | pass→pass | 4,662 | 4,986 | +7% | 1 | 1 | 0% | 977 | 4,111 | +321% | 0 | 0 | — |
case-12 | fail→pass | 15,078 | 12,991 | -14% | 1 | 1 | 0% | 3,452 | 6,194 | +79% | 0 | 0 | — |
case-13 | pass→pass | 8,028 | 6,762 | -16% | 1 | 1 | 0% | 1,657 | 4,440 | +168% | 0 | 0 | — |
case-14 | pass→pass | 7,662 | 6,858 | -10% | 1 | 1 | 0% | 1,565 | 4,478 | +186% | 0 | 0 | — |
case-15 | pass→pass | 8,610 | 3,758 | -56% | 1 | 1 | 0% | 1,764 | 3,889 | +120% | 0 | 0 | — |
case-16 | fail→pass | 9,182 | 4,200 | -54% | 1 | 1 | 0% | 2,184 | 3,861 | +77% | 0 | 0 | — |
case-17 | fail→pass | 9,233 | 7,659 | -17% | 1 | 1 | 0% | 1,942 | 4,689 | +141% | 0 | 0 | — |
case-18 | pass→pass | 11,046 | 10,912 | -1% | 1 | 1 | 0% | 1,822 | 5,360 | +194% | 0 | 0 | — |
case-19 | fail→pass | 3,156 | 1,328 | -58% | 1 | 1 | 0% | 619 | 3,317 | +436% | 0 | 0 | — |
case-20 | pass→pass | 5,910 | 3,726 | -37% | 1 | 1 | 0% | 1,203 | 3,879 | +222% | 0 | 0 | — |
case-21 | pass→pass | 10,531 | 10,069 | -4% | 1 | 1 | 0% | 1,972 | 5,200 | +164% | 0 | 0 | — |
case-22 | pass→fail | 12,898 | 12,249 | -5% | 1 | 1 | 0% | 2,618 | 5,392 | +106% | 0 | 0 | — |
case-23 | pass→pass | 10,160 | 9,563 | -6% | 1 | 1 | 0% | 2,060 | 4,911 | +138% | 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. 23 cases were attempted. The headline lift of +52 percentage points is the difference between those two pass rates over the 23 comparable cases. 1 case got worse with the skill loaded, and it is 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.