django-ticket-triage

Analyze a Django Trac ticket and produce a triage recommendation report.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "django-ticket-triage" with this command: npx skills add 2ykwang/agent-skills/2ykwang-agent-skills-django-ticket-triage

Analyze Django ticket and provide triage recommendations.

Prerequisites:

  • python3 (standard library only; no extra Python packages required)
  • gh — GitHub CLI (install). Run gh auth login to authenticate.
  • Django source code — git clone https://github.com/django/django.git in the working directory (for Step 5: source code analysis)

Before starting, verify python3 and gh are available. If gh is missing, show the install link and stop. If django/ directory is missing, warn the user and skip Step 5 (source code browsing).

Arguments:

  • $ARGUMENTS: Trac ticket number (required, e.g., 36812, 2750)

IMPORTANT:

  • DO NOT use WebFetch or Fetch for GitHub URLs. ALWAYS use the gh CLI command instead.
  • For commits: gh api repos/<owner>/django/commits/<sha>
  • For PRs: gh pr view <number> --repo django/django or gh api repos/django/django/pulls/<number>
  • See references/gh-examples.md for more examples.

Note: ./scripts/ paths are relative to this SKILL.md file. Use the actual resolved path when executing.


Step 1: Fetch Ticket Details

python3 ./scripts/trac.py get $ARGUMENTS

Identify the following:

  • Basic info: summary, reporter, owner, component, version
  • Status: status, resolution, triage_stage, has_patch
  • Keywords: Extract key terms from keywords field
  • Ticket type: Bug report / Feature request / Documentation / Cleanup
  • History: Review comments for previous discussions, related PRs, prior patch attempts

Step 2: Search for Duplicates and Related Tickets

2-1. Trac Search (at least 2-3 queries)

# Search by key keywords
python3 ./scripts/trac.py search "<key keywords>"

# Search by error message or class/function name
python3 ./scripts/trac.py search "<error message or class name>"

# Search by component + keyword combination
python3 ./scripts/trac.py search "<component> <keyword>"

2-2. Review Potentially Related Tickets

Fetch details for related tickets found (top 3-5):

python3 ./scripts/trac.py get <related_ticket_id>

Step 3: Search Related PRs (GitHub)

Find PRs linked to the ticket:

# Search PRs mentioning ticket number in title/body
gh search prs "Fixed #$ARGUMENTS" --repo django/django --limit 10
gh search prs "#$ARGUMENTS" --repo django/django --limit 10

# Or search by Trac ticket URL
gh search prs "code.djangoproject.com/ticket/$ARGUMENTS" --repo django/django --limit 10

If related PRs exist, review details:

gh pr view <pr_number> --repo django/django --json title,state,body,comments

Step 4: Search Django Forum

Check for forum discussions related to the ticket:

# Search by ticket number
python3 ./scripts/forum.py ticket $ARGUMENTS

# If no results, search internals category by keywords
python3 ./scripts/forum.py search "<key keywords>" --category=internals

Step 5: Browse Related Source Code (If Applicable)

For tickets requiring code changes, check related code in django/ directory:

Find related files:

  • Use the Glob tool with pattern django/**/<relevant_file>.py to find files by name
  • Use the Grep tool with pattern <class or function name> in django/ to search code

Find related tests:

  • Use the Glob tool with pattern tests/**/test_*.py to find test files
  • Use the Grep tool with pattern <related keyword> in tests/ to search test code

Identify:

  • Location of the problematic code
  • Existing test coverage
  • Scope of changes needed

Step 6: Validity Assessment

For Bug Reports

CheckQuestion
ReproducibilityAre reproduction steps clear? Is there minimal reproduction code?
VersionDoes it occur on latest version (main branch)?
Django's responsibilityIs this a Django bug or user code/configuration issue?
Intended behaviorDoes it differ from documented behavior? Is it by design?
Supported versionIs this a supported Django version?
SecurityIs this a security issue? (Should NOT be on Trac)

For Feature Requests

CheckQuestion
GeneralityIs this useful to enough users?
Django philosophyDoes it align with Django's design philosophy?
AlternativesCan this be solved with a third-party package?
Backwards compatibilityDoes it break existing code?
ComplexityIs the maintenance burden worth the value?
DEP requiredIs this a large change requiring a DEP?

Red Flags (Likely Invalid)

  • Security issue reported on public Trac (should go to security@djangoproject.com)
  • Only affects unsupported Django versions
  • "Only I need this" type of feature
  • Works as documented (user misunderstanding)
  • Third-party package issue, not Django core

Step 7: Triage Decision

Read references/triage-stages.md for stage definitions and duplicate criteria.


Step 8: Save Report and Output Summary

8-1. Save Full Report to File

Create directory if needed and save the full report:

mkdir -p triage-reports

Read references/report-template.md and use it as the report format. Write the full report to triage-reports/<ticket_id>.md using the Write tool.

8-2. Output Summary to Terminal

Read the terminal summary format from references/report-template.md and output a brief summary.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

html-visual

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

write-pr

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

ralph-loop-template

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

code-history

No summary provided by upstream source.

Repository SourceNeeds Review