From agentic-behavior
Use this skill when the user says "make an issue", "create an issue", "file a bug", "this is a bug", "let's follow up later", "track this", "open a ticket", "create a ticket", "log this for later", "we need to fix this", "add to backlog", "make a task for", "file an enhancement", "create a feature request", or any phrase indicating that something should be tracked, logged, or followed up on in a ticketing system.
npx claudepluginhub nsheaps/ai-mktpl --plugin agentic-behaviorThis skill uses the workspace's default tool permissions.
Create, search, update, and link tickets across ticketing systems. The
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Analyzes BMad project state from catalog CSV, configs, artifacts, and query to recommend next skills or answer questions. Useful for help requests, 'what next', or starting BMad.
Create, search, update, and link tickets across ticketing systems. The
canonical platform is GitHub Issues (via gh CLI), but the workflow is
designed to be system-agnostic. See Platform-Specific Guides
for implementation details per system.
ALWAYS search for existing issues before opening a new one. Creating duplicate tickets fragments context, confuses contributors, and wastes triage time. Only create a new issue after verifying no matching issue exists — open or recently closed.
Run these steps in order before every create operation:
gh issue list --search "keywords from the topic" --repo owner/repo --state all --limit 20
Use 2–4 meaningful keywords from the issue topic. Include --state all
to catch recently closed issues that may need reopening.
gh api graphql -f query='
query($q: String!) {
search(query: $q, type: ISSUE, first: 10) {
nodes {
... on Issue {
number title url state repository { nameWithOwner }
}
}
}
}
' -f q="keywords org:$ORG"
# Replace $ORG with your GitHub organization name (e.g., "nsheaps")
Issues may live in a different repo from where you're currently working. Search broadly — the right place to track something may not be obvious.
| Search result | Action |
|---|---|
| Clear match (open) | Comment on the existing issue with new context; do NOT create a duplicate |
| Clear match (closed) | Evaluate: reopen with a comment, or reference it in a new issue if truly new |
| Ambiguous match | Ask: "Found owner/repo#N which looks related — update that one or create new?" |
| No match | Create a new issue |
These operations map to every supported ticketing platform.
Required fields:
bug, enhancement, question)Optional:
Search by: keywords, labels, assignee, status (open/closed/all), date range.
Always search with --state all unless you specifically want only open issues.
Updateable fields: title, body, labels (add/remove), assignee, milestone, status. Use comments to add context without rewriting history.
Close with a comment explaining resolution. Reference the PR or commit that resolved it when applicable.
Recall the gh skill for full CLI reference.
gh issue create \
--repo owner/repo \
--title "Bug: description of the problem" \
--body "$(cat <<'EOF'
## Problem
Describe what's wrong and why it matters.
## Steps to Reproduce
1. Step one
2. Step two
3. Observe: ...
## Expected Behavior
What should happen.
## Actual Behavior
What actually happens.
EOF
)" \
--label "bug"
For feature requests, swap --label "bug" for --label "enhancement".
gh issue comment ISSUE_NUMBER --repo owner/repo --body "New context: ..."
gh issue edit ISSUE_NUMBER --repo owner/repo \
--add-label "priority:high" \
--remove-label "needs-triage"
gh issue edit ISSUE_NUMBER --repo owner/repo --title "Updated title"
gh issue reopen ISSUE_NUMBER --repo owner/repo --comment "This regressed in v2.3"
gh issue close ISSUE_NUMBER --repo owner/repo --comment "Fixed in #PR_NUMBER"
Add to the PR body (not the issue body):
Fixes owner/repo#ISSUE_NUMBER
GitHub auto-closes the issue when the PR merges.
Integration via the
linear-mcp-syncplugin when available. This guide will be updated when that plugin ships. Until then, use GitHub Issues as the canonical tracker.
## Problem
[What is broken and what impact does it have?]
## Steps to Reproduce
1.
2.
3. Observe: ...
## Expected Behavior
[What should happen]
## Actual Behavior
[What actually happens]
## Environment
- Version/commit:
- OS/platform:
- Relevant config:
## Additional Context
[Logs, screenshots, related issues]
## Summary
[One-sentence description of the feature]
## Motivation
[Why is this needed? What problem does it solve? Who benefits?]
## Proposed Solution
[How should this work? What should the user experience be?]
## Alternatives Considered
[What other approaches were considered and why they were rejected]
## Acceptance Criteria
- [ ] Criterion one
- [ ] Criterion two
## Additional Context
[Mockups, related issues, external references]
| Anti-Pattern | Instead |
|---|---|
| Creating without searching first | Always run the deduplication protocol before creating |
| Vague titles like "Fix bug" | Use specific, actionable titles: "Fix: login 404 on mobile" |
| Empty body or one-liner description | Include context, reproduction steps, or acceptance criteria |
| Silently creating a duplicate | Comment on the existing issue or ask the handler to decide |
| Closing without explanation | Always include a resolution comment referencing the fix |
gh CLI skill — full gh CLI reference