flake-update-20260505

name: backlog-triage description: “Deep LLM-powered Jira backlog triage against upstream repositories. USE WHEN user says ’triage backlog’, ‘backlog analysis’, ‘clean backlog’, ‘analyze jira backlog’, or wants to assess relevance of Jira issues against upstream git/GitHub activity.”

BacklogTriage

Deep analysis of Jira backlog issues by investigating upstream repositories to determine if issues are still relevant, have been addressed, or should be closed. Uses the agent’s tools (git, gh, jrc) to investigate each issue — no pre-truncated context dumps.

Architecture

Unlike batch-prompt approaches, this skill leverages the agent pattern: the LLM reads each issue, decides what to investigate, and uses tools to pull exactly the evidence it needs. This means:

  • No context window limitations on upstream data
  • The LLM decides which repos, commits, PRs, and issues to look at
  • It can go deep: read specific PRs, check commit diffs, trace feature implementations
  • Iterative reasoning: “this mentions TEP-0137, let me check if that landed”

Project Configuration

The skill expects a backlog-triage.toml config file in the project directory:

[project]
name = "OpenShift Pipelines"
jira_project = "SRVKP"
jira_base = "https://issues.redhat.com/browse"

[versions]
current = ["1.19", "1.20", "1.21"]
development = ["1.22"]
eol = ["1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "1.10", "1.11", "1.12", "1.13", "1.14", "1.15", "1.16", "1.17", "1.18"]
eol_ocp = ["4.1", "4.2", "4.3", "4.4", "4.5", "4.6", "4.7", "4.8", "4.9", "4.10", "4.11", "4.12", "4.13"]

[upstream]
org = "tektoncd"
repos_dir = "~/src/tektoncd"
# Map Jira components to upstream repos
[upstream.component_map]
"Tekton Pipelines" = "pipeline"
"Pipelines as Code" = "pipelines-as-code"
"Tekton Triggers" = "triggers"
"Tekton Chains" = "chains"
"Tekton Results" = "results"
"Tekton CLI" = "cli"
"Operator" = "operator"
"Tekton Ecosystem" = "catalog"
"UI" = "dashboard"
"Tekton Hub" = "hub"

[files]
backlog = "srvkp-backlog-full.json"        # fetched by fetch-backlog.py
analysis = "srvkp-backlog-llm-analysis.json"
report = "srvkp-backlog-llm-report.html"

Workflow Routing

Workflow Trigger File
Fetch “fetch backlog”, “update backlog data” workflows/Fetch.md
Analyze “analyze backlog”, “triage backlog” workflows/Analyze.md
Report “generate report”, “backlog report” workflows/Report.md
FullPipeline “full backlog triage”, “end-to-end triage” workflows/FullPipeline.md

Tools Available

The agent should use these tools for investigation:

Jira (data already fetched)

  • Backlog JSON is pre-fetched via fetch-backlog.py (uses jrc CLI)
  • Read issues from the JSON file directly — no need to query Jira per-issue

Git (local repos)

# Search for related work in upstream repos
git -C ~/src/tektoncd/pipeline log --oneline --all --grep="keyword"
git -C ~/src/tektoncd/pipeline log --oneline --all --since="2024-01-01" -- path/to/file

GitHub CLI

# Search closed issues
gh issue list -R tektoncd/pipeline --state closed --search "keyword" --limit 10 --json number,title,closedAt,url
# Search merged PRs
gh pr list -R tektoncd/pipeline --state merged --search "keyword" --limit 10 --json number,title,mergedAt,url
# Read a specific issue/PR
gh issue view 1234 -R tektoncd/pipeline --json title,body,comments,labels
gh pr view 5678 -R tektoncd/pipeline --json title,body,mergedAt,files

Per-Issue Analysis Output

For each issue, produce:

{
  "key": "SRVKP-1234",
  "recommendation": "CLOSE|REVIEW_TO_CLOSE|NEEDS_TRIAGE|KEEP|HIGH_PRIORITY",
  "relevance_score": 0-100,
  "confidence": "high|medium|low",
  "reason": "2-4 sentence explanation with specific evidence. Reference upstream PRs/commits.",
  "tags": ["eol-version", "addressed-upstream", "stale", "customer-impact", ...],
  "upstream_evidence": "tektoncd/pipeline#1234 merged 2025-03-15 — implemented this feature",
  "suggested_comment": "Closing: this was addressed upstream in tektoncd/pipeline#1234 and shipped in OSP 1.20."
}

Recommendation Guidelines

Recommendation Score Criteria
CLOSE 0-20 EOL version, confirmed fixed upstream, duplicate, obsolete
REVIEW_TO_CLOSE 21-35 Likely irrelevant but needs human confirmation
NEEDS_TRIAGE 36-50 Ambiguous, can’t determine without more context
KEEP 51-75 Still relevant, valid bug/feature, ongoing work
HIGH_PRIORITY 76-100 Blocker, customer-facing, security, active work needed

Examples

Example 1: Full pipeline

User: "triage the SRVKP backlog"
→ Checks fetch-backlog.py output exists (runs if not)
→ Loads issues from JSON
→ For each issue, investigates upstream repos
→ Writes analysis JSON with per-issue reasoning
→ Generates interactive HTML report

Example 2: Analyze specific component

User: "triage backlog for Pipelines as Code"
→ Filters to PaC component issues
→ Focuses investigation on tektoncd/pipelines-as-code
→ Produces component-specific report

Example 3: Just the close candidates

User: "find backlog issues we can close"
→ Pre-filters to old issues, EOL versions, no-description
→ Investigates each against upstream
→ Produces close-focused report with suggested comments