Triaging Issues Skill You are a GitHub issue triage expert specializing in duplicate detection, issue classification, relationship mapping, and efficient issue management. You understand how effective triage improves project organization and accelerates issue resolution. When to Use This Skill Auto-invoke this skill when the conversation involves: - Triaging new or existing issues - Detecting duplicate issues - Classifying issue type and priority - Mapping issue relationships (parent, blocking, related) - Validating issue claims against codebase - Organizing issues into milestones or sprints…

\\t' read -r num title; do\n # Search for similar titles\n local similar\n similar=$(gh issue list --search \"is:open \\\"$title\\\"\" --json number --limit 5 | jq 'length')\n\n if [ \"$similar\" -gt 1 ]; then\n echo -e \"${YELLOW}Potential duplicates for #$num:${NC}\"\n gh issue list --search \"is:open \\\"$title\\\"\" --json number,title --limit 5 | \\\n jq -r '.[] | \" #\\(.number): \\(.title)\"'\n echo \"\"\n fi\n done\n}\n\ncompare() {\n local issue1=\"$1\"\n local issue2=\"$2\"\n\n echo -e \"${YELLOW}Comparing issues #$issue1 and #$issue2${NC}\"\n echo \"\"\n\n local data1\n data1=$(gh issue view \"$issue1\" --json title,body)\n local data2\n data2=$(gh issue view \"$issue2\" --json title,body)\n\n echo \"Issue #$issue1:\"\n echo \"$data1\" | jq -r '.title'\n echo \"\"\n\n echo \"Issue #$issue2:\"\n echo \"$data2\" | jq -r '.title'\n echo \"\"\n\n # Simple comparison\n local title1\n title1=$(echo \"$data1\" | jq -r '.title' | tr '[:upper:]' '[:lower:]')\n local title2\n title2=$(echo \"$data2\" | jq -r '.title' | tr '[:upper:]' '[:lower:]')\n\n if [ \"$title1\" = \"$title2\" ]; then\n echo -e \"${RED}⚠️ Titles are identical - likely duplicate${NC}\"\n else\n echo -e \"${GREEN}Titles differ - likely not duplicate${NC}\"\n fi\n}\n\nmain() {\n local command=\"${1:-help}\"\n shift || true\n\n case \"$command\" in\n find-duplicates)\n find_duplicates \"$@\"\n ;;\n scan-all)\n scan_all\n ;;\n compare)\n compare \"$@\"\n ;;\n *)\n cat \u003c\u003cEOF\nDuplicate Detection Script\n\nUsage: $0 \u003ccommand> [options]\n\nCommands:\n find-duplicates \u003cissue-number>\n Find potential duplicates for an issue\n\n scan-all\n Scan all open issues for duplicates\n\n compare \u003cissue1> \u003cissue2>\n Compare two issues for similarity\n\nExamples:\n $0 find-duplicates 42\n $0 scan-all\n $0 compare 42 38\n\nEOF\n ;;\n esac\n}\n\nmain \"$@\"\n","content_type":"application/x-sh; charset=utf-8","language":"bash","size":3562,"content_sha256":"7eb3c79eedde3756926ecad74e2280428dbfea5f349ffdd55dc5ab416c41e280"},{"filename":"scripts/issue-helpers.sh","content":"#!/usr/bin/env bash\n# GitHub Issue Helper Functions\n# Bulk operations and utilities for issue management\n\nset -euo pipefail\n\nRED='\\033[0;31m'\nGREEN='\\033[0;32m'\nYELLOW='\\033[1;33m'\nBLUE='\\033[0;34m'\nNC='\\033[0m'\n\nerror() {\n echo -e \"${RED}Error: $1${NC}\" >&2\n exit 1\n}\n\nsuccess() {\n echo -e \"${GREEN}✓ $1${NC}\"\n}\n\nwarn() {\n echo -e \"${YELLOW}⚠ $1${NC}\"\n}\n\ninfo() {\n echo -e \"${BLUE}ℹ $1${NC}\"\n}\n\ncheck_gh_auth() {\n if ! gh auth status >/dev/null 2>&1; then\n error \"Not authenticated with GitHub. Run: gh auth login\"\n fi\n}\n\ntriage_batch() {\n local filter=\"$1\"\n\n check_gh_auth\n\n info \"Finding issues matching: $filter\"\n\n local issues\n issues=$(gh issue list --search \"$filter\" --json number,title,labels --limit 100)\n\n local count\n count=$(echo \"$issues\" | jq 'length')\n\n if [ \"$count\" -eq 0 ]; then\n warn \"No issues found matching filter\"\n return\n fi\n\n info \"Processing $count issues...\"\n\n local processed=0\n echo \"$issues\" | jq -c '.[]' | while read -r issue; do\n local number\n number=$(echo \"$issue\" | jq -r '.number')\n local title\n title=$(echo \"$issue\" | jq -r '.title')\n\n echo \"Processing #$number: $title\"\n\n # Simple classification based on title keywords\n local labels=\"\"\n\n if echo \"$title\" | grep -iq \"bug\\|error\\|fail\\|broken\\|crash\"; then\n labels=\"bug\"\n elif echo \"$title\" | grep -iq \"feature\\|add\\|implement\\|new\"; then\n labels=\"feature\"\n elif echo \"$title\" | grep -iq \"doc\\|readme\\|guide\"; then\n labels=\"docs\"\n fi\n\n if [ -n \"$labels\" ]; then\n gh issue edit \"$number\" --add-label \"$labels\" 2>/dev/null && \\\n echo \" → Added label: $labels\"\n fi\n\n ((processed++)) || true\n done\n\n success \"Processed $processed issues\"\n}\n\nfind_stale() {\n local days=\"${1:-90}\"\n\n check_gh_auth\n\n info \"Finding issues inactive for $days+ days...\"\n\n local cutoff_date\n cutoff_date=$(date -d \"$days days ago\" +%Y-%m-%d 2>/dev/null || date -v-${days}d +%Y-%m-%d)\n\n gh issue list \\\n --search \"is:open updated:\u003c$cutoff_date\" \\\n --json number,title,updatedAt \\\n --limit 100 | \\\n jq -r '.[] | \"#\\(.number): \\(.title) (updated: \\(.updatedAt[:10]))\"'\n}\n\nclose_duplicate() {\n local duplicate=\"$1\"\n local original=\"$2\"\n\n check_gh_auth\n\n info \"Closing #$duplicate as duplicate of #$original\"\n\n gh issue close \"$duplicate\" \\\n --reason \"not planned\" \\\n --comment \"Duplicate of #$original\"\n\n gh issue comment \"$original\" \\\n --body \"Duplicate report: #$duplicate\"\n\n success \"Closed #$duplicate as duplicate\"\n}\n\nbulk_label() {\n local filter=\"$1\"\n local label=\"$2\"\n\n check_gh_auth\n\n info \"Applying '$label' to issues matching: $filter\"\n\n local issues\n issues=$(gh issue list --search \"$filter\" --json number --limit 100)\n\n local count\n count=$(echo \"$issues\" | jq 'length')\n\n if [ \"$count\" -eq 0 ]; then\n warn \"No issues found\"\n return\n fi\n\n info \"Adding label to $count issues...\"\n\n echo \"$issues\" | jq -r '.[].number' | while read -r number; do\n gh issue edit \"$number\" --add-label \"$label\" 2>/dev/null && \\\n echo -n \".\"\n done\n\n echo \"\"\n success \"Added '$label' to $count issues\"\n}\n\nadd_to_project() {\n local filter=\"$1\"\n local project_number=\"$2\"\n local owner=\"${3:-}\"\n\n check_gh_auth\n\n if [ -z \"$owner\" ]; then\n owner=$(gh repo view --json owner -q '.owner.login')\n fi\n\n info \"Adding issues to project #$project_number\"\n\n gh issue list --search \"$filter\" --json url --limit 100 | \\\n jq -r '.[].url' | while read -r url; do\n gh project item-add \"$project_number\" --owner \"$owner\" --url \"$url\" 2>/dev/null && \\\n echo -n \".\"\n done\n\n echo \"\"\n success \"Added issues to project\"\n}\n\ngenerate_report() {\n check_gh_auth\n\n echo \"\"\n echo \"========================================\"\n echo \"Issue Triage Report\"\n echo \"========================================\"\n echo \"\"\n\n local total_open\n total_open=$(gh issue list --state open --json number --limit 5000 | jq 'length')\n\n local needs_triage\n needs_triage=$(gh issue list --label \"needs-triage\" --json number --limit 5000 | jq 'length')\n\n local high_priority\n high_priority=$(gh issue list --label \"priority:high\" --json number --limit 5000 | jq 'length')\n\n local bugs\n bugs=$(gh issue list --label \"bug\" --state open --json number --limit 5000 | jq 'length')\n\n local features\n features=$(gh issue list --label \"feature\" --state open --json number --limit 5000 | jq 'length')\n\n echo \"Total open issues: $total_open\"\n echo \"Needs triage: $needs_triage\"\n echo \"High priority: $high_priority\"\n echo \"Bugs: $bugs\"\n echo \"Features: $features\"\n echo \"\"\n}\n\nmain() {\n local command=\"${1:-help}\"\n shift || true\n\n case \"$command\" in\n triage-batch)\n triage_batch \"$@\"\n ;;\n find-stale)\n find_stale \"$@\"\n ;;\n close-duplicate)\n close_duplicate \"$@\"\n ;;\n bulk-label)\n bulk_label \"$@\"\n ;;\n add-to-project)\n add_to_project \"$@\"\n ;;\n report)\n generate_report\n ;;\n help|*)\n cat \u003c\u003cEOF\nGitHub Issue Helper Script\n\nUsage: $0 \u003ccommand> [options]\n\nCommands:\n triage-batch \u003cfilter>\n Batch triage issues matching filter\n Example: triage-batch \"is:open no:label\"\n\n find-stale [days]\n Find issues inactive for N days (default: 90)\n\n close-duplicate \u003cduplicate-number> \u003coriginal-number>\n Close issue as duplicate\n\n bulk-label \u003cfilter> \u003clabel>\n Add label to all matching issues\n Example: bulk-label \"is:bug\" \"needs-triage\"\n\n add-to-project \u003cfilter> \u003cproject-number> [owner]\n Add matching issues to project board\n\n report\n Generate triage status report\n\nExamples:\n $0 triage-batch \"is:open no:label\"\n $0 find-stale 90\n $0 close-duplicate 42 38\n $0 bulk-label \"is:bug is:open\" \"needs-triage\"\n $0 report\n\nEOF\n ;;\n esac\n}\n\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n main \"$@\"\nfi\n","content_type":"application/x-sh; charset=utf-8","language":"bash","size":6265,"content_sha256":"a66df57f9b66a2e097855ff20b9f5ff98b4151f11f4f0b568cbb56eb75001967"},{"filename":"scripts/relationship-mapper.sh","content":"#!/usr/bin/env bash\n# Issue Relationship Mapper\n# Map dependencies and relationships between issues\n\nset -euo pipefail\n\nBLUE='\\033[0;34m'\nYELLOW='\\033[1;33m'\nGREEN='\\033[0;32m'\nNC='\\033[0m'\n\nmap_issue() {\n local issue_number=\"$1\"\n\n echo -e \"${BLUE}Mapping relationships for issue #$issue_number${NC}\"\n echo \"\"\n\n # Get issue details\n local issue_data\n issue_data=$(gh issue view \"$issue_number\" --json title,body,labels)\n\n local title\n title=$(echo \"$issue_data\" | jq -r '.title')\n\n echo \"Issue #$issue_number: $title\"\n echo \"\"\n\n # Find mentioned issues in body\n local body\n body=$(echo \"$issue_data\" | jq -r '.body // \"\"')\n\n echo -e \"${YELLOW}Related Issues:${NC}\"\n echo \"$body\" | grep -oE '#[0-9]+' | sort -u | while read -r ref; do\n local ref_num\n ref_num=$(echo \"$ref\" | tr -d '#')\n if [ \"$ref_num\" != \"$issue_number\" ]; then\n local ref_title\n ref_title=$(gh issue view \"$ref_num\" --json title 2>/dev/null | jq -r '.title' || echo \"Unknown\")\n echo \" $ref: $ref_title\"\n fi\n done\n\n echo \"\"\n\n # Check labels for relationships\n echo -e \"${YELLOW}Labels:${NC}\"\n echo \"$issue_data\" | jq -r '.labels[].name' | while read -r label; do\n echo \" - $label\"\n done\n\n echo \"\"\n\n # Find blockers (issues this depends on)\n echo -e \"${YELLOW}Potential Blockers:${NC}\"\n if echo \"$body\" | grep -iq \"depends on\\|blocked by\\|requires\"; then\n echo \"$body\" | grep -iE \"depends on|blocked by|requires\" | head -5\n else\n echo \" None detected\"\n fi\n\n echo \"\"\n\n # Find blocked issues (issues that depend on this)\n echo -e \"${YELLOW}Issues Blocked by This:${NC}\"\n gh issue list --search \"is:open #$issue_number\" --json number,title --limit 10 | \\\n jq -r '.[] | \" #\\(.number): \\(.title)\"'\n}\n\nfind_blockers() {\n echo -e \"${BLUE}Finding blocking issues...${NC}\"\n echo \"\"\n\n # Search for issues with blocking keywords\n gh issue list \\\n --search 'is:open \"blocked by\" OR \"depends on\" OR \"requires\"' \\\n --json number,title,body \\\n --limit 50 | \\\n jq -r '.[] | \"#\\(.number): \\(.title)\"'\n}\n\ngenerate_graph() {\n local format=\"${1:-text}\"\n\n echo -e \"${BLUE}Generating dependency graph...${NC}\"\n echo \"\"\n\n if [ \"$format\" = \"dot\" ]; then\n echo \"digraph issues {\"\n echo \" rankdir=LR;\"\n\n # Get all open issues\n gh issue list --state open --json number,title,body --limit 100 | \\\n jq -c '.[]' | while read -r issue; do\n local num\n num=$(echo \"$issue\" | jq -r '.number')\n local title\n title=$(echo \"$issue\" | jq -r '.title' | cut -c1-30)\n\n echo \" issue_$num [label=\\\"#$num: $title\\\"];\"\n\n # Find dependencies\n local body\n body=$(echo \"$issue\" | jq -r '.body // \"\"')\n\n echo \"$body\" | grep -oE '#[0-9]+' | sort -u | while read -r ref; do\n local ref_num\n ref_num=$(echo \"$ref\" | tr -d '#')\n if [ \"$ref_num\" != \"$num\" ]; then\n echo \" issue_$ref_num -> issue_$num;\"\n fi\n done\n done\n\n echo \"}\"\n else\n # Text format\n gh issue list --state open --json number,title,body --limit 20 | \\\n jq -r '.[] | \"#\\(.number): \\(.title)\"'\n fi\n}\n\nmain() {\n local command=\"${1:-help}\"\n shift || true\n\n case \"$command\" in\n map-issue)\n map_issue \"$@\"\n ;;\n find-blockers)\n find_blockers\n ;;\n generate-graph)\n generate_graph \"$@\"\n ;;\n *)\n cat \u003c\u003cEOF\nIssue Relationship Mapper\n\nUsage: $0 \u003ccommand> [options]\n\nCommands:\n map-issue \u003cissue-number>\n Map all relationships for an issue\n\n find-blockers\n Find all blocking issues\n\n generate-graph [format]\n Generate dependency graph (format: text|dot)\n\nExamples:\n $0 map-issue 42\n $0 find-blockers\n $0 generate-graph dot > deps.dot\n\nEOF\n ;;\n esac\n}\n\nmain \"$@\"\n","content_type":"application/x-sh; charset=utf-8","language":"bash","size":4077,"content_sha256":"cf9733b3826f1cadc6640ce6e71d8abc8f14e3936550fb13ce3658917adbdf86"},{"filename":"skill-report.json","content":"{\n \"schema_version\": \"2.0\",\n \"meta\": {\n \"generated_at\": \"2026-01-16T21:28:45.007Z\",\n \"slug\": \"c0ntr0lledcha0s-triaging-issues\",\n \"source_url\": \"https://github.com/C0ntr0lledCha0s/claude-code-plugin-automations/tree/main/github-workflows/skills/triaging-issues\",\n \"source_ref\": \"main\",\n \"model\": \"claude\",\n \"analysis_version\": \"3.0.0\",\n \"source_type\": \"community\",\n \"content_hash\": \"d139ac4c29d110009b868a06def3776fb69fe5e7ac1a71d92590c4f4384ff13c\",\n \"tree_hash\": \"b4014f30da18f2e77275e971607591ca75042d4e7e6aa9f88cfcddd1fea237ca\"\n },\n \"skill\": {\n \"name\": \"triaging-issues\",\n \"description\": \"GitHub issue triage and management expertise. Auto-invokes when issue triage, duplicate detection, issue relationships, or issue management are mentioned. Integrates with existing github-issues skill.\",\n \"summary\": \"GitHub issue triage and management expertise. Auto-invokes when issue triage, duplicate detection, i...\",\n \"icon\": \"🏷️\",\n \"version\": \"1.1.0\",\n \"author\": \"C0ntr0lledCha0s\",\n \"license\": \"MIT\",\n \"category\": \"productivity\",\n \"tags\": [\n \"github\",\n \"issues\",\n \"triage\",\n \"automation\",\n \"management\"\n ],\n \"supported_tools\": [\n \"claude\",\n \"codex\",\n \"claude-code\"\n ],\n \"risk_factors\": [\n \"scripts\",\n \"external_commands\"\n ]\n },\n \"security_audit\": {\n \"risk_level\": \"low\",\n \"is_blocked\": false,\n \"safe_to_publish\": true,\n \"summary\": \"This skill provides GitHub issue triage functionality through helper scripts that interact with GitHub CLI. All code behavior matches the stated purpose of issue management. Risk factors include executable scripts and external commands, but these are standard tools (gh, jq) used for legitimate GitHub API operations. No credential theft, data exfiltration, or malicious patterns detected. Static findings of 'weak cryptographic algorithm' and 'C2 keywords' are false positives - scanner misidentified SHA256 hash strings and common English words in documentation as security threats.\",\n \"risk_factor_evidence\": [\n {\n \"factor\": \"scripts\",\n \"evidence\": [\n {\n \"file\": \"scripts/relationship-mapper.sh\",\n \"line_start\": 1,\n \"line_end\": 163\n },\n {\n \"file\": \"scripts/validate-issue.py\",\n \"line_start\": 1,\n \"line_end\": 196\n },\n {\n \"file\": \"scripts/duplicate-detection.sh\",\n \"line_start\": 1,\n \"line_end\": 149\n },\n {\n \"file\": \"scripts/issue-helpers.sh\",\n \"line_start\": 1,\n \"line_end\": 272\n }\n ]\n },\n {\n \"factor\": \"external_commands\",\n \"evidence\": [\n {\n \"file\": \"scripts/relationship-mapper.sh\",\n \"line_start\": 20,\n \"line_end\": 20\n },\n {\n \"file\": \"scripts/validate-issue.py\",\n \"line_start\": 18,\n \"line_end\": 24\n },\n {\n \"file\": \"scripts/issue-helpers.sh\",\n \"line_start\": 31,\n \"line_end\": 34\n }\n ]\n }\n ],\n \"critical_findings\": [],\n \"high_findings\": [],\n \"medium_findings\": [],\n \"low_findings\": [],\n \"dangerous_patterns\": [],\n \"files_scanned\": 10,\n \"total_lines\": 2028,\n \"audit_model\": \"claude\",\n \"audited_at\": \"2026-01-16T21:28:45.007Z\"\n },\n \"content\": {\n \"user_title\": \"Triage GitHub Issues Efficiently\",\n \"value_statement\": \"Managing GitHub issues can be overwhelming when duplicates accumulate and priorities are unclear. This skill automates issue triage by detecting duplicates, classifying bugs vs features, mapping relationships between issues, and generating triage reports to keep projects organized.\",\n \"seo_keywords\": [\n \"GitHub issue triage\",\n \"Claude issue management\",\n \"duplicate issue detection\",\n \"GitHub automation\",\n \"issue classification\",\n \"Claude Code skills\",\n \"GitHub workflow automation\",\n \"issue prioritization\",\n \"bug tracking\",\n \"GitHub project management\"\n ],\n \"actual_capabilities\": [\n \"Classify issues by type (bug, feature, enhancement, documentation) and priority (critical, high, medium, low)\",\n \"Detect duplicate issues using keyword and fuzzy matching algorithms\",\n \"Map issue relationships including blocking, dependencies, and related issues\",\n \"Validate issue quality with scoring system for title, description, labels, and completeness\",\n \"Generate triage reports showing issue distribution and quality metrics\",\n \"Apply bulk labels and find stale issues inactive for specified days\"\n ],\n \"limitations\": [\n \"Requires GitHub CLI (gh) installed and authenticated for full functionality\",\n \"Cannot create or modify issues without appropriate repository permissions\",\n \"Duplicate detection uses basic keyword matching, not AI-powered semantic analysis\",\n \"Does not integrate with project management tools outside GitHub ecosystem\"\n ],\n \"use_cases\": [\n {\n \"target_user\": \"Open source maintainers\",\n \"title\": \"Process incoming issues daily\",\n \"description\": \"Quickly triage new bug reports and feature requests to keep backlog organized and identify duplicates early.\"\n },\n {\n \"target_user\": \"Development teams\",\n \"title\": \"Track issue dependencies\",\n \"description\": \"Map how issues relate to each other to understand what can be worked on and what is blocked.\"\n },\n {\n \"target_user\": \"Project managers\",\n \"title\": \"Generate triage summaries\",\n \"description\": \"Create reports on issue quality and distribution to prioritize work and identify bottlenecks.\"\n }\n ],\n \"prompt_templates\": [\n {\n \"title\": \"Quick triage single issue\",\n \"scenario\": \"Review a specific issue\",\n \"prompt\": \"Triage issue #42. Classify the type and priority, check for duplicates, assess quality, and recommend labels.\"\n },\n {\n \"title\": \"Find duplicate issues\",\n \"scenario\": \"Identify duplicates\",\n \"prompt\": \"Find all potential duplicate issues in this repository. Group similar issues together and recommend which to close.\"\n },\n {\n \"title\": \"Map issue relationships\",\n \"scenario\": \"Show dependencies\",\n \"prompt\": \"Show the dependency graph for issue #42. What does it block and what blocks it?\"\n },\n {\n \"title\": \"Batch triage unlabeled\",\n \"scenario\": \"Process multiple issues\",\n \"prompt\": \"Triage all unlabeled issues. Apply appropriate type and priority labels to each one.\"\n }\n ],\n \"output_examples\": [\n {\n \"input\": \"Triage issue #42\",\n \"output\": [\n \"Issue #42: Login fails with 500 error\",\n \"Classification: bug, priority:high, scope:backend\",\n \"Quality Score: 75/100\",\n \"Missing: environment details, screenshots\",\n \"Potential duplicate: #38 (Auth server error, 95% match)\",\n \"Recommended actions: Add labels bug,priority:high,scope:backend; request server logs; link to #38\"\n ]\n }\n ],\n \"best_practices\": [\n \"Triage new issues within 24 hours to maintain contributor engagement and prevent backlog buildup\",\n \"Always verify duplicates by reading both issues before closing one as duplicate\",\n \"Document your reasoning when closing or labeling issues so teams understand decisions\"\n ],\n \"anti_patterns\": [\n \"Closing issues without checking for duplicates wastes contributor time and creates fragmented discussions\",\n \"Applying too many labels makes filters unusable and creates confusion about issue status\",\n \"Ignoring stale issues clutters the backlog and makes it harder to find active work\"\n ],\n \"faq\": [\n {\n \"question\": \"Does this skill work with private repositories?\",\n \"answer\": \"Yes, as long as you are authenticated with gh auth and have permission to view and edit issues.\"\n },\n {\n \"question\": \"How accurate is the duplicate detection?\",\n \"answer\": \"Uses keyword matching with TF-IDF scoring. It finds obvious duplicates reliably but may miss semantically similar issues.\"\n },\n {\n \"question\": \"Can I use this without GitHub CLI installed?\",\n \"answer\": \"The skill requires GitHub CLI for issue operations. Install gh from cli.github.com or your package manager.\"\n },\n {\n \"question\": \"Does this skill store or share my issue data?\",\n \"answer\": \"No. All processing happens locally through GitHub API. No data is sent to external services.\"\n },\n {\n \"question\": \"Why is my issue showing poor quality score?\",\n \"answer\": \"Quality checks title length, description completeness, labels, reproduction steps for bugs, and environment details.\"\n },\n {\n \"question\": \"How does this differ from GitHub issue templates?\",\n \"answer\": \"This skill analyzes and organizes existing issues. Templates help create better new issues. They work well together.\"\n }\n ]\n },\n \"file_structure\": [\n {\n \"name\": \"references\",\n \"type\": \"dir\",\n \"path\": \"references\",\n \"children\": [\n {\n \"name\": \"issue-lifecycle-guide.md\",\n \"type\": \"file\",\n \"path\": \"references/issue-lifecycle-guide.md\",\n \"lines\": 54\n }\n ]\n },\n {\n \"name\": \"scripts\",\n \"type\": \"dir\",\n \"path\": \"scripts\",\n \"children\": [\n {\n \"name\": \"duplicate-detection.sh\",\n \"type\": \"file\",\n \"path\": \"scripts/duplicate-detection.sh\",\n \"lines\": 149\n },\n {\n \"name\": \"issue-helpers.sh\",\n \"type\": \"file\",\n \"path\": \"scripts/issue-helpers.sh\",\n \"lines\": 272\n },\n {\n \"name\": \"relationship-mapper.sh\",\n \"type\": \"file\",\n \"path\": \"scripts/relationship-mapper.sh\",\n \"lines\": 163\n },\n {\n \"name\": \"validate-issue.py\",\n \"type\": \"file\",\n \"path\": \"scripts/validate-issue.py\",\n \"lines\": 196\n }\n ]\n },\n {\n \"name\": \"templates\",\n \"type\": \"dir\",\n \"path\": \"templates\",\n \"children\": [\n {\n \"name\": \"bug-report-template.md\",\n \"type\": \"file\",\n \"path\": \"templates/bug-report-template.md\",\n \"lines\": 38\n },\n {\n \"name\": \"feature-request-template.md\",\n \"type\": \"file\",\n \"path\": \"templates/feature-request-template.md\",\n \"lines\": 36\n },\n {\n \"name\": \"issue-response-templates.md\",\n \"type\": \"file\",\n \"path\": \"templates/issue-response-templates.md\",\n \"lines\": 176\n }\n ]\n },\n {\n \"name\": \"SKILL.md\",\n \"type\": \"file\",\n \"path\": \"SKILL.md\",\n \"lines\": 655\n }\n ]\n}\n","content_type":"application/json; charset=utf-8","language":"json","size":11030,"content_sha256":"b4dcce54fa522a14ede69fdd8bba0b1c1bdb5f65d6975de19a40eb79ad94f37e"},{"filename":"templates/bug-report-template.md","content":"## Summary\n\n[Brief description of the bug and its impact]\n\n## Steps to Reproduce\n\n1. [First step]\n2. [Second step]\n3. [Third step]\n\n## Expected Behavior\n\n[What should happen]\n\n## Actual Behavior\n\n[What actually happens - include error messages if applicable]\n\n## Environment\n\n- **OS**: [e.g., macOS 14.0, Ubuntu 22.04]\n- **Version**: [e.g., v1.5.0]\n- **Browser/Runtime**: [if applicable]\n\n## Acceptance Criteria\n\n- [ ] Bug is fixed and no longer reproducible\n- [ ] Tests added to prevent regression\n- [ ] No side effects on related functionality\n\n## Additional Context\n\n[Screenshots, logs, stack traces, or relevant information]\n\n## Workaround\n\n[Optional: Temporary solution until fix is deployed]\n","content_type":"text/markdown; charset=utf-8","language":"markdown","size":698,"content_sha256":"05c37a32c295778700d7d455e24d41a44fab01ca347fd554e0fbed5b7ca68d5b"},{"filename":"templates/feature-request-template.md","content":"## Summary\n\n[Clear description of the feature and why it's needed]\n\n## Use Cases\n\n1. As a [user type], I want to [action] so that [benefit]\n2. As a [user type], I want to [action] so that [benefit]\n\n## Proposed Solution\n\n[High-level description of how this could be implemented]\n\n### Alternatives Considered\n\n[Other approaches and why they weren't chosen]\n\n## Acceptance Criteria\n\n- [ ] Feature implemented as described\n- [ ] Tests added for new functionality\n- [ ] Documentation updated\n- [ ] No regressions\n\n## Out of Scope\n\n[What this feature does NOT include]\n\n## Dependencies\n\n[Other issues or features this depends on]\n\n## Additional Context\n\n[Mockups, diagrams, references]\n","content_type":"text/markdown; charset=utf-8","language":"markdown","size":681,"content_sha256":"515aa2d2b1f355554f60701093b413d8070e54ce2104dfdba9ea616c5a09f262"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"Triaging Issues Skill","type":"text"}]},{"type":"paragraph","content":[{"text":"You are a GitHub issue triage expert specializing in duplicate detection, issue classification, relationship mapping, and efficient issue management. You understand how effective triage improves project organization and accelerates issue resolution.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"When to Use This Skill","type":"text"}]},{"type":"paragraph","content":[{"text":"Auto-invoke this skill when the conversation involves:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Triaging new or existing issues","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Detecting duplicate issues","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Classifying issue type and priority","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Mapping issue relationships (parent, blocking, related)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Validating issue claims against codebase","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Organizing issues into milestones or sprints","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Generating triage reports or summaries","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Keywords: \"triage\", \"duplicate\", \"classify issue\", \"issue relationships\", \"blocked by\", \"related to\"","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Your Capabilities","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Issue Triage","type":"text","marks":[{"type":"strong"}]},{"text":": Review, classify, and prioritize incoming issues","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Duplicate Detection","type":"text","marks":[{"type":"strong"}]},{"text":": Find similar issues using keyword and fuzzy matching","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Relationship Mapping","type":"text","marks":[{"type":"strong"}]},{"text":": Identify parent/child, blocking, and related issues","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Validation","type":"text","marks":[{"type":"strong"}]},{"text":": Verify issue claims by checking codebase","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Classification","type":"text","marks":[{"type":"strong"}]},{"text":": Apply appropriate labels based on content analysis","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Report Generation","type":"text","marks":[{"type":"strong"}]},{"text":": Create triage summaries with recommendations","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Your Expertise","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"1. ","type":"text"},{"text":"Issue Triage Process","type":"text","marks":[{"type":"strong"}]}]},{"type":"paragraph","content":[{"text":"Standard triage workflow","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Initial review","type":"text","marks":[{"type":"strong"}]},{"text":": Understand the issue","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Classify","type":"text","marks":[{"type":"strong"}]},{"text":": Assign type (bug, feature, etc.)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Prioritize","type":"text","marks":[{"type":"strong"}]},{"text":": Assess urgency and impact","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Check duplicates","type":"text","marks":[{"type":"strong"}]},{"text":": Search for similar issues","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Map relationships","type":"text","marks":[{"type":"strong"}]},{"text":": Identify dependencies","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Label","type":"text","marks":[{"type":"strong"}]},{"text":": Apply appropriate labels","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Assign","type":"text","marks":[{"type":"strong"}]},{"text":": Route to appropriate team member","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Add to board","type":"text","marks":[{"type":"strong"}]},{"text":": Include in project tracking","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"2. ","type":"text"},{"text":"Duplicate Detection","type":"text","marks":[{"type":"strong"}]}]},{"type":"paragraph","content":[{"text":"Detection strategies","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"paragraph","content":[{"text":"Keyword matching","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Search for similar issues\ngh issue list --search \"authentication error\" --json number,title,body\n\n# Find by label\ngh issue list --label \"bug\" --search \"login fail\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Fuzzy matching","type":"text","marks":[{"type":"strong"}]},{"text":": Use TF-IDF similarity scoring","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"python"},"content":[{"text":"{baseDir}/scripts/duplicate-detection.sh find-duplicates --issue 42","type":"text"}]},{"type":"paragraph","content":[{"text":"Common duplicate patterns","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Same error message","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Same feature request","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Similar symptoms, different descriptions","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Related root cause","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"3. ","type":"text"},{"text":"Issue Relationships","type":"text","marks":[{"type":"strong"}]}]},{"type":"paragraph","content":[{"text":"Relationship types","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"paragraph","content":[{"text":"Blocks","type":"text","marks":[{"type":"strong"}]},{"text":": Issue A must be completed before Issue B","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Issue #42: Implement authentication\nBlocks: #43, #45, #47","type":"text"}]},{"type":"paragraph","content":[{"text":"Depends on","type":"text","marks":[{"type":"strong"}]},{"text":": Issue B requires Issue A to be completed first","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Issue #43: Add user profile\nDepends on: #42 (authentication)","type":"text"}]},{"type":"paragraph","content":[{"text":"Related","type":"text","marks":[{"type":"strong"}]},{"text":": Issues share context but no direct dependency","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Issue #44: Add avatar upload\nRelated: #43 (user profile), #50 (file storage)","type":"text"}]},{"type":"paragraph","content":[{"text":"Duplicate","type":"text","marks":[{"type":"strong"}]},{"text":": Same issue, mark one as duplicate","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Issue #46: Login not working\nDuplicate of: #42","type":"text"}]},{"type":"paragraph","content":[{"text":"Relationship mapping","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Map relationships\n{baseDir}/scripts/relationship-mapper.sh map-issue 42\n\n# Find blocking issues\n{baseDir}/scripts/relationship-mapper.sh find-blockers\n\n# Generate dependency graph\n{baseDir}/scripts/relationship-mapper.sh generate-graph","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"4. ","type":"text"},{"text":"Issue Classification","type":"text","marks":[{"type":"strong"}]}]},{"type":"paragraph","content":[{"text":"By type","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Bug","type":"text","marks":[{"type":"strong"}]},{"text":": Something is broken","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Feature","type":"text","marks":[{"type":"strong"}]},{"text":": New functionality request","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Enhancement","type":"text","marks":[{"type":"strong"}]},{"text":": Improvement to existing feature","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Question","type":"text","marks":[{"type":"strong"}]},{"text":": Needs clarification","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Documentation","type":"text","marks":[{"type":"strong"}]},{"text":": Docs improvement","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"By priority","type":"text","marks":[{"type":"strong"}]},{"text":" (based on impact + urgency):","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Critical","type":"text","marks":[{"type":"strong"}]},{"text":": System down, data loss, security issue","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"High","type":"text","marks":[{"type":"strong"}]},{"text":": Major functionality broken, affects many users","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Medium","type":"text","marks":[{"type":"strong"}]},{"text":": Important but workaround exists","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Low","type":"text","marks":[{"type":"strong"}]},{"text":": Minor issue, nice to have","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Priority matrix","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":" High Impact Low Impact\nHigh Urgency Critical High\nLow Urgency High Medium/Low","type":"text"}]},{"type":"paragraph","content":[{"text":"By scope","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Frontend, Backend, Database, Infrastructure, Documentation","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"By effort","type":"text","marks":[{"type":"strong"}]},{"text":" (T-shirt sizing):","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"XS: \u003c 2 hours","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"S: 2-8 hours","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"M: 1-3 days","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"L: 3-7 days","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"XL: > 1 week","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"5. ","type":"text"},{"text":"Issue Quality","type":"text","marks":[{"type":"strong"}]}]},{"type":"paragraph","content":[{"text":"Good issue checklist","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"✅ Clear, descriptive title","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"✅ Detailed description","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"✅ Steps to reproduce (for bugs)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"✅ Expected vs actual behavior","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"✅ Environment details","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"✅ Screenshots/logs if applicable","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"✅ Appropriate labels","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"✅ Linked to related issues","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Poor issue example","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Title: \"It's broken\"\nBody: \"doesn't work\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Good issue example","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Title: \"Authentication fails with OAuth provider timeout\"\n\nDescription:\nWhen attempting to log in with Google OAuth, the authentication\nfails after 30 seconds with a timeout error.\n\nSteps to Reproduce:\n1. Click \"Login with Google\"\n2. Enter credentials\n3. Wait for redirect\n4. Error appears after 30 seconds\n\nExpected: Successful authentication and redirect to dashboard\nActual: Timeout error \"OAuth provider did not respond\"\n\nEnvironment:\n- Browser: Chrome 120\n- OS: macOS 14.1\n- Application version: v2.3.1\n\nLogs:\n[OAuth] Timeout waiting for provider response (30000ms)\n\nRelated: #142 (OAuth integration)","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"6. ","type":"text"},{"text":"Automated Triage Rules","type":"text","marks":[{"type":"strong"}]}]},{"type":"paragraph","content":[{"text":"Auto-label rules","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"yaml"},"content":[{"text":"# By keywords\n- body contains \"error\", \"bug\", \"broken\" → label: bug\n- body contains \"feature\", \"add\", \"new\" → label: feature\n- title contains \"[Security]\" → label: security, priority:critical\n\n# By template\n- uses bug_report template → label: bug, needs-triage\n- uses feature_request template → label: feature, needs-triage\n\n# By file paths (in PRs)\n- changes frontend/* → label: scope:frontend\n- changes backend/* → label: scope:backend","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Your Capabilities","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"1. Comprehensive Issue Triage","type":"text"}]},{"type":"paragraph","content":[{"text":"Perform complete triage on issues:","type":"text"}]},{"type":"paragraph","content":[{"text":"Single issue triage","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"markdown"},"content":[{"text":"User: \"Triage issue #42\"\n\nYou:\nAnalyzing issue #42: \"Login fails with 500 error\"\n\n**Classification**:\n- Type: bug ✅\n- Priority: high (authentication broken)\n- Scope: backend (server error)\n- Effort: S (likely configuration issue)\n\n**Duplicate check**:\nSearching similar issues...\n- Issue #38: \"Auth server error\" (80% similar) - possibly related\n- Issue #27: \"Login timeout\" (60% similar) - different root cause\n\nNot a duplicate, but related to #38.\n\n**Quality check**:\n✅ Clear title\n✅ Has reproduction steps\n❌ Missing environment details\n⚠️ Could use logs/screenshots\n\n**Recommendations**:\n1. Add labels: bug, priority:high, scope:backend\n2. Add comment requesting server logs\n3. Link to related issue #38\n4. Assign to @backend-team\n5. Add to \"Bug Triage\" board\n\nApply these recommendations? [y/n]","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"2. Duplicate Detection","type":"text"}]},{"type":"paragraph","content":[{"text":"Find and merge duplicate issues:","type":"text"}]},{"type":"paragraph","content":[{"text":"Find duplicates","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"markdown"},"content":[{"text":"User: \"Check if #42 is a duplicate\"\n\nYou:\nSearching for duplicates of #42: \"Authentication error\"...\n\n**Potential duplicates found**:\n\n1. Issue #38: \"Auth fails with 401\" (95% match) ⚠️ HIGH\n - Same error code\n - Same component (authentication)\n - Same symptoms\n - Created 3 days earlier\n - Already has investigation in progress\n\n **Recommendation**: Mark #42 as duplicate of #38\n\n2. Issue #27: \"Login timeout\" (65% match)\n - Similar area (login)\n - Different error (timeout vs 401)\n - Likely different root cause\n\n **Recommendation**: Link as related, not duplicate\n\n**Action**:\n```bash\ngh issue close 42 --reason \"duplicate\" --comment \"Duplicate of #38\"\ngh issue comment 38 --body \"Also reported in #42\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Execute? [y/n]","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"\n### 3. Relationship Mapping\n\nMap dependencies between issues:\n\n**Create relationship map**:\n```markdown\nUser: \"Show relationships for issue #42\"\n\nYou:\nMapping relationships for #42: \"Implement JWT authentication\"\n\n**Dependencies** (blocks this issue):\nNone - can start immediately ✅\n\n**Blocks** (this issue blocks):\n- #43: Add user profile (needs auth first)\n- #45: Implement password reset (needs auth system)\n- #47: Add OAuth providers (extends auth)\n\n**Related**:\n- #38: Auth error (bug to fix in implementation)\n- #50: Session management (complementary feature)\n\n**Duplicate tracking**:\n- #46: \"Need login system\" (duplicate, closed)\n\n**Dependency graph**:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"[#42 JWT Auth]\n ↓\n┌─────┼─────┐\n↓ ↓ ↓","type":"text"}]},{"type":"paragraph","content":[{"text":"[#43] [#45] [#47] Profile Reset OAuth","type":"text"}]},{"type":"paragraph","content":[{"text":"Related: #38 (bug), #50 (session)","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"\n**Impact analysis**:\n- Completing #42 unblocks 3 issues\n- High priority due to blocking nature\n- Estimated effort: L (5-7 days)","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"4. Batch Triage","type":"text"}]},{"type":"paragraph","content":[{"text":"Triage multiple issues efficiently:","type":"text"}]},{"type":"paragraph","content":[{"text":"Triage all unlabeled","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"markdown"},"content":[{"text":"User: \"Triage all unlabeled issues\"\n\nYou:\nFound 23 unlabeled issues. Processing...\n\n**Issue #42**: \"Login fails with 500 error\"\n Classified: bug, priority:high, scope:backend\n\n**Issue #43**: \"Add dark mode\"\n Classified: feature, priority:medium, scope:frontend\n\n**Issue #44**: \"Update README\"\n Classified: documentation, priority:low\n\n**Issue #45**: \"Slow query performance\"\n Classified: bug, priority:high, scope:database\n\n... [progress: 23/23]\n\n**Summary**:\n- Bugs: 12 (8 high, 3 medium, 1 low)\n- Features: 8 (2 high, 4 medium, 2 low)\n- Documentation: 3 (all low)\n\n**Actions taken**:\n- Applied 69 labels\n- Found 4 duplicates (closed)\n- Added 18 issues to \"Triage Board\"\n- Assigned 8 high-priority issues to teams\n\n✅ Triage complete!","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"5. Issue Quality Improvement","type":"text"}]},{"type":"paragraph","content":[{"text":"Help improve issue quality:","type":"text"}]},{"type":"paragraph","content":[{"text":"Request more information","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"markdown"},"content":[{"text":"User: \"Issue #42 is vague, request more details\"\n\nYou:\nAdding comment to issue #42...\n\n────────────────────────────────────────\nThanks for reporting this issue!\n\nTo help us investigate, could you please provide:\n\n**For bug reports**:\n1. **Steps to reproduce**: Exact steps to trigger the issue\n2. **Expected behavior**: What should happen\n3. **Actual behavior**: What actually happens\n4. **Environment**:\n - Browser/OS version\n - Application version\n - Any relevant configuration\n\n**Logs/Screenshots**:\nPlease include any error messages, console logs, or screenshots that might help.\n\n**Related Issues**:\nHave you seen this issue before? Are there any related issues?\n\nAdding label: `needs-more-info`\n────────────────────────────────────────\n\n✅ Comment added","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Workflow Patterns","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Pattern 1: New Issue Triage","type":"text"}]},{"type":"paragraph","content":[{"text":"Trigger","type":"text","marks":[{"type":"strong"}]},{"text":": New issue created","type":"text"}]},{"type":"paragraph","content":[{"text":"Workflow","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Read issue title and body","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Classify type, priority, scope","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Check for duplicates","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Assess quality (complete information?)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Apply labels","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Find relationships","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Add to appropriate board","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Assign if priority is high","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Add comment if info needed","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Pattern 2: Duplicate Resolution","type":"text"}]},{"type":"paragraph","content":[{"text":"Trigger","type":"text","marks":[{"type":"strong"}]},{"text":": \"Check for duplicates\" or suspected duplicate","type":"text"}]},{"type":"paragraph","content":[{"text":"Workflow","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Extract keywords from issue","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Search existing issues (open and closed)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Calculate similarity scores","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Rank potential duplicates","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Present findings with confidence levels","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"If high confidence: suggest closing as duplicate","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Update both issues with cross-references","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Transfer relevant information","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Pattern 3: Relationship Mapping","type":"text"}]},{"type":"paragraph","content":[{"text":"Trigger","type":"text","marks":[{"type":"strong"}]},{"text":": \"Show dependencies\" or complex issue","type":"text"}]},{"type":"paragraph","content":[{"text":"Workflow","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Parse issue for mentioned issue numbers","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Check for blocking/blocked-by indicators","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Find related issues by labels/keywords","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Generate dependency graph","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Identify critical path","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Highlight blocking issues","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Suggest resolution order","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Pattern 4: Batch Processing","type":"text"}]},{"type":"paragraph","content":[{"text":"Trigger","type":"text","marks":[{"type":"strong"}]},{"text":": \"Triage all...\" or \"Process issues with...\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Workflow","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Query issues matching criteria","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"For each issue:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Classify and label","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Check duplicates","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Check quality","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Apply standard actions","type":"text"}]}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Generate summary report","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Highlight issues needing attention","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Helper Scripts","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Issue Helpers","type":"text"}]},{"type":"paragraph","content":[{"text":"{baseDir}/scripts/issue-helpers.sh","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Bulk triage\nbash {baseDir}/scripts/issue-helpers.sh triage-batch --filter \"is:open no:label\"\n\n# Find stale issues\nbash {baseDir}/scripts/issue-helpers.sh find-stale --days 90\n\n# Close duplicates\nbash {baseDir}/scripts/issue-helpers.sh close-duplicate 42 --original 38\n\n# Add bulk labels\nbash {baseDir}/scripts/issue-helpers.sh bulk-label --filter \"is:bug\" --label \"needs-triage\"","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Duplicate Detection","type":"text"}]},{"type":"paragraph","content":[{"text":"{baseDir}/scripts/duplicate-detection.sh","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Find duplicates for specific issue\nbash {baseDir}/scripts/duplicate-detection.sh find-duplicates --issue 42\n\n# Scan all open issues for duplicates\nbash {baseDir}/scripts/duplicate-detection.sh scan-all\n\n# Check similarity between two issues\nbash {baseDir}/scripts/duplicate-detection.sh compare 42 38","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Relationship Mapper","type":"text"}]},{"type":"paragraph","content":[{"text":"{baseDir}/scripts/relationship-mapper.sh","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Map relationships for issue\nbash {baseDir}/scripts/relationship-mapper.sh map-issue 42\n\n# Find blocking issues\nbash {baseDir}/scripts/relationship-mapper.sh find-blockers\n\n# Generate full dependency graph\nbash {baseDir}/scripts/relationship-mapper.sh generate-graph --format dot > deps.dot","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Issue Validation","type":"text"}]},{"type":"paragraph","content":[{"text":"{baseDir}/scripts/validate-issue.py","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Validate issue quality\npython {baseDir}/scripts/validate-issue.py check 42\n\n# Batch validate\npython {baseDir}/scripts/validate-issue.py check-batch --filter \"is:open\"\n\n# Generate quality report\npython {baseDir}/scripts/validate-issue.py report","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Templates","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Response Templates","type":"text"}]},{"type":"paragraph","content":[{"text":"{baseDir}/templates/issue-response-templates.md","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Need more info","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Duplicate issue","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Fixed in version","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Won't fix","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Thanks for reporting","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Feature request acknowledgment","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Issue Templates","type":"text"}]},{"type":"paragraph","content":[{"text":"{baseDir}/templates/bug-report-template.md","type":"text","marks":[{"type":"strong"}]},{"text":": Standard bug report template with all required fields","type":"text"}]},{"type":"paragraph","content":[{"text":"{baseDir}/templates/feature-request-template.md","type":"text","marks":[{"type":"strong"}]},{"text":": Feature request template with use case and requirements","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"References","type":"text"}]},{"type":"paragraph","content":[{"text":"{baseDir}/references/issue-lifecycle-guide.md","type":"text","marks":[{"type":"strong"}]},{"text":": Complete guide to issue lifecycle from creation to closure","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Integration Points","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"With organizing-with-labels","type":"text"}]},{"type":"paragraph","content":[{"text":"Auto-apply labels during triage:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Type labels based on classification","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Priority labels based on impact assessment","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Scope labels based on affected areas","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"With managing-projects","type":"text"}]},{"type":"paragraph","content":[{"text":"Add triaged issues to boards:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"High priority → Sprint board","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Bugs → Bug triage board","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Features → Feature backlog","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"With reviewing-pull-requests","type":"text"}]},{"type":"paragraph","content":[{"text":"Link PRs to issues:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Verify PR closes related issues","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Check if PR addresses issue requirements","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Update issue status when PR merges","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Common Use Cases","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Use Case 1: Daily Triage","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"markdown"},"content":[{"text":"User: \"Triage today's new issues\"\n\nYou:\nFound 5 new issues created today:\n\n**Issue #42**: bug, priority:high, assigned to @backend-team ✅\n**Issue #43**: feature, priority:medium, added to backlog ✅\n**Issue #44**: duplicate of #38, closed ✅\n**Issue #45**: needs-more-info, commented ⏳\n**Issue #46**: documentation, priority:low ✅\n\nSummary: 4 triaged, 1 awaiting info","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Use Case 2: Find Duplicates","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"markdown"},"content":[{"text":"User: \"Find all duplicate issues\"\n\nYou:\nScanning 156 open issues...\n\nFound 8 potential duplicate groups:\n\n**Group 1**: Authentication errors (3 issues)\n- #42, #46, #51 (95% similarity)\n- Recommend: Keep #42 (oldest), close others\n\n**Group 2**: Dark mode requests (2 issues)\n- #43, #49 (90% similarity)\n- Recommend: Keep #43 (more detailed), close #49\n\nClose all duplicates? [y/n]","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Use Case 3: Dependency Analysis","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"markdown"},"content":[{"text":"User: \"What can we work on next?\"\n\nYou:\nAnalyzing issue dependencies...\n\n**Ready to start** (no blockers):\n- #42: JWT authentication (priority:high, 5d effort)\n- #50: Session management (priority:medium, 3d effort)\n- #52: Update docs (priority:low, 1d effort)\n\n**Blocked** (waiting on dependencies):\n- #43: User profile (blocked by #42)\n- #45: Password reset (blocked by #42)\n\n**Recommended order**:\n1. #42 (unblocks 2 other issues)\n2. #50 (parallel with #42)\n3. #43, #45 (after #42 completes)","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Important Notes","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Triage promptly","type":"text","marks":[{"type":"strong"}]},{"text":": New issues should be triaged within 24 hours","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Be thorough","type":"text","marks":[{"type":"strong"}]},{"text":": Check duplicates carefully before closing","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Be respectful","type":"text","marks":[{"type":"strong"}]},{"text":": Always thank reporters, even for duplicates","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Document decisions","type":"text","marks":[{"type":"strong"}]},{"text":": Explain why issues are closed/labeled","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Track relationships","type":"text","marks":[{"type":"strong"}]},{"text":": Dependencies matter for planning","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Quality over speed","type":"text","marks":[{"type":"strong"}]},{"text":": Better to triage well than triage fast","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Error Handling","type":"text"}]},{"type":"paragraph","content":[{"text":"Common issues","type":"text","marks":[{"type":"strong"}]},{"text":":","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Issue not found → Check issue number","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Permission denied → Need triage access","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Duplicate false positive → Review similarity criteria","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Missing information → Request politely","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"When you encounter issue triage operations, use this expertise to help users manage issues effectively!","type":"text"}]}]},"metadata":{"date":"2026-06-05","name":"triaging-issues","author":"@skillopedia","source":{"stars":336,"repo_name":"marketplace","origin_url":"https://github.com/aiskillstore/marketplace/blob/HEAD/skills/c0ntr0lledcha0s/triaging-issues/SKILL.md","repo_owner":"aiskillstore","body_sha256":"ad32e36029d536c23f442925fc1151664e0effe8a4d5583821dd205947351241","cluster_key":"b123d0e777db4b44f40c892c8ae39b2c843d4ee4ca1e453a75db476a5293bf5e","clean_bundle":{"format":"clean-skill-bundle-v1","source":"aiskillstore/marketplace/skills/c0ntr0lledcha0s/triaging-issues/SKILL.md","attachments":[{"id":"52cc3a17-0369-5865-9601-1ad9a619bfd7","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/52cc3a17-0369-5865-9601-1ad9a619bfd7/attachment.md","path":"references/issue-lifecycle-guide.md","size":1790,"sha256":"eb838a09dd17a449a559143da16f449d116d8bbd5b36867799a652ebe40d5ad9","contentType":"text/markdown; charset=utf-8"},{"id":"2b8e0267-1b2d-5eec-b0b6-ff0388c4f60f","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/2b8e0267-1b2d-5eec-b0b6-ff0388c4f60f/attachment.sh","path":"scripts/duplicate-detection.sh","size":3562,"sha256":"7eb3c79eedde3756926ecad74e2280428dbfea5f349ffdd55dc5ab416c41e280","contentType":"application/x-sh; charset=utf-8"},{"id":"b498042e-2696-5a71-aca4-0f05324cf594","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/b498042e-2696-5a71-aca4-0f05324cf594/attachment.sh","path":"scripts/issue-helpers.sh","size":6265,"sha256":"a66df57f9b66a2e097855ff20b9f5ff98b4151f11f4f0b568cbb56eb75001967","contentType":"application/x-sh; charset=utf-8"},{"id":"2a25dc21-4217-5f7f-b701-0f2a582747ca","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/2a25dc21-4217-5f7f-b701-0f2a582747ca/attachment.sh","path":"scripts/relationship-mapper.sh","size":4077,"sha256":"cf9733b3826f1cadc6640ce6e71d8abc8f14e3936550fb13ce3658917adbdf86","contentType":"application/x-sh; charset=utf-8"},{"id":"05e61d97-5b4d-53f0-ab5e-a5d1b679e212","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/05e61d97-5b4d-53f0-ab5e-a5d1b679e212/attachment.py","path":"scripts/validate-issue.py","size":5654,"sha256":"23494dee07e4e52344d9ba12792219632751fccf8428a6a6b4bc25122a7d07fd","contentType":"text/x-python; charset=utf-8"},{"id":"2a0561e2-a9cf-5cda-8dbd-dd4a9439e57f","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/2a0561e2-a9cf-5cda-8dbd-dd4a9439e57f/attachment.json","path":"skill-report.json","size":11030,"sha256":"b4dcce54fa522a14ede69fdd8bba0b1c1bdb5f65d6975de19a40eb79ad94f37e","contentType":"application/json; charset=utf-8"},{"id":"dfac3358-891a-5d67-b7ac-b9a3b2462ce3","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/dfac3358-891a-5d67-b7ac-b9a3b2462ce3/attachment.md","path":"templates/bug-report-template.md","size":698,"sha256":"05c37a32c295778700d7d455e24d41a44fab01ca347fd554e0fbed5b7ca68d5b","contentType":"text/markdown; charset=utf-8"},{"id":"af721999-ea41-520b-a62e-103c137a9018","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/af721999-ea41-520b-a62e-103c137a9018/attachment.md","path":"templates/feature-request-template.md","size":681,"sha256":"515aa2d2b1f355554f60701093b413d8070e54ce2104dfdba9ea616c5a09f262","contentType":"text/markdown; charset=utf-8"},{"id":"b48fab7b-e39b-5e67-bf3d-b2fd1dcf463b","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/b48fab7b-e39b-5e67-bf3d-b2fd1dcf463b/attachment.md","path":"templates/issue-response-templates.md","size":4225,"sha256":"67d697b342ffa687fb828154b9bfdd60f2a3134b9d336e25be4aa60ac38bc359","contentType":"text/markdown; charset=utf-8"}],"bundle_sha256":"4a11d273c8909be0c5f8c4f4f5576a51eaef6279d39ec0ef3fc220fb0257662d","attachment_count":9,"text_attachments":9,"attachment_storage":"skillopedia-attachments-v1","binary_attachments":0,"excluded_attachments":[]},"cluster_size":1,"skill_md_path":"skills/c0ntr0lledcha0s/triaging-issues/SKILL.md","import_metadata":{"date":"2026-06-05","author":"@skillopedia","version":"v1","category":"integrations-apis","category_label":"Integrations"},"exact_dupes_collapsed_into_this":0},"version":"v1","category":"integrations-apis","import_tag":"clean-skills-v1","description":"GitHub issue triage and management expertise. Auto-invokes when issue triage, duplicate detection, issue relationships, or issue management are mentioned. Integrates with existing github-issues skill.","allowed-tools":"Bash, Read, Grep, Glob"}},"renderedAt":1782979627540}

Triaging Issues Skill You are a GitHub issue triage expert specializing in duplicate detection, issue classification, relationship mapping, and efficient issue management. You understand how effective triage improves project organization and accelerates issue resolution. When to Use This Skill Auto-invoke this skill when the conversation involves: - Triaging new or existing issues - Detecting duplicate issues - Classifying issue type and priority - Mapping issue relationships (parent, blocking, related) - Validating issue claims against codebase - Organizing issues into milestones or sprints…