issue-duplicate-detection
Patterns for detecting duplicate GitHub issues before creating new ones.
What this skill does
# GitHub Issue Duplicate Detection Skill
This skill provides patterns for detecting and handling duplicate GitHub issues.
## Why Check for Duplicates
- Prevent duplicate work
- Consolidate discussion
- Better tracking and metrics
- Cleaner backlog
---
## Detection Process
### Step 1: Extract Key Terms
From the potential new issue:
- Core functionality/feature
- Error messages (exact text)
- Component names
- User actions described
### Step 2: Search Existing Issues
```bash
# Search open issues
gh issue list --state open --search "keyword1 keyword2" --limit 20
# Search all issues (including closed)
gh issue list --state all --search "keyword1 keyword2" --limit 20
# Search with specific terms
gh issue list --state all --search "in:title error message"
# Search by label
gh issue list --state open --label "bug" --search "keyword"
```
### Step 3: Review Results
For each potential match:
- Compare titles carefully
- Read descriptions
- Check if closed issue was fixed
- Consider different wordings of same problem
### Step 4: Present Findings
```markdown
## Duplicate Check Results
### Potential Duplicates Found
| # | Title | State | Created | Similarity |
|---|-------|-------|---------|------------|
| #123 | Similar issue title | Open | 2024-01-10 | High |
| #456 | Related problem | Closed | 2023-12-01 | Medium |
### Analysis
**#123** appears to describe the same issue:
- Same error message mentioned
- Same component affected
- Both triggered by same user action
**Recommendation**: Add context to #123 instead of creating new issue.
### If Not Duplicate
If you confirm this is a new issue, I'll proceed with creation.
```
---
## Search Strategies
### By Error Message
```bash
gh issue list --state all --search "TypeError: Cannot read property"
```
### By Component/Feature
```bash
gh issue list --state all --search "in:title checkout"
gh issue list --state all --search "in:body payment"
```
### By Author (Recent)
```bash
gh issue list --state all --author @me --search "keyword"
```
### Combined Search
```bash
gh issue list --state open --label "bug" --search "in:title login error"
```
---
## Similarity Assessment
### High Similarity (Likely Duplicate)
- Same error message
- Same steps to reproduce
- Same component affected
- Different wording, same problem
**Action**: Recommend adding to existing issue
### Medium Similarity (Possibly Related)
- Same area but different specifics
- Could share root cause
- Related symptoms
**Action**: Recommend linking issues
### Low Similarity (Probably Different)
- Same component, different issue
- Superficially similar only
**Action**: Proceed with new issue
---
## Handling Duplicates
### When Duplicate Found
1. **Don't create new issue**
2. **Add context to existing:**
```bash
gh issue comment 123 --body "$(cat <<'EOF'
Additional report:
[New information not in original issue]
Confirming this is still occurring as of [date].
EOF
)"
```
3. **If existing is closed:**
- Check if fix actually resolved it
- May need to reopen with new info
### Linking Related Issues
When related but not duplicate:
```markdown
In new issue body:
Related to #123
See also #456
```
### Closing as Duplicate
```bash
gh issue close {number} --comment "Closing as duplicate of #123"
gh issue edit {number} --add-label "duplicate"
```
---
## Common Duplicate Patterns
### Same Bug, Different Reports
- Different users reporting
- Slightly different reproduction steps
- Same underlying cause
### Feature Requests
- Multiple requests for same feature
- Different use cases, same solution
- Different wording, same goal
### Regression Reports
- Previously fixed, returned
- Same symptoms as old issue
- May warrant new issue with reference
---
## Search Query Reference
| Query | Meaning |
|-------|---------|
| `keyword` | Search all fields |
| `in:title keyword` | Title only |
| `in:body keyword` | Body only |
| `is:open` | Open issues |
| `is:closed` | Closed issues |
| `label:bug` | With label |
| `author:username` | By author |
| `assignee:username` | Assigned to |
| `created:>2024-01-01` | Created after |
| `updated:>2024-01-01` | Updated after |
**Combine with AND:**
```bash
gh issue list --search "is:open label:bug in:title checkout"
```
---
## Checklist Before Creating
- [ ] Searched for exact error messages
- [ ] Searched for key feature terms
- [ ] Checked component-specific issues
- [ ] Reviewed recent issues
- [ ] Verified no duplicate exists
- [ ] OR found duplicate and added context
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.