From superpowers-plus
Verifies issue identifiers exist and validates entity types before referencing in commits, PRs, documentation, or changelogs. Uses platform adapters like GitHub and Jira.
npx claudepluginhub bordenet/superpowers-plus --plugin superpowers-plusThis skill uses the workspace's default tool permissions.
> **Purpose:** Verify issue identifiers before referencing in commits, PRs, or documentation
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Purpose: Verify issue identifiers before referencing in commits, PRs, or documentation Pattern: Evidence before assertion — verify existence before citing Adapter: See
_adapters/for platform-specific configurationWrong skill? Creating issues →
issue-authoring. Updating issues →issue-editing. Verifying URLs in issues →issue-link-verification.
Invoke this skill when:
<EXTREMELY_IMPORTANT>
Before writing ANY issue reference, verify it exists using your adapter:
# prefix; Jira: use key as-is), then call get_issue → check exists: true and entityType: "issue" before proceedingverify_link → check exists: true and entityType: "issue" before proceeding. Note: verify_link guarantees exists, identifier, and entityType but not title or status. If you need to report title/status (e.g., in verification output), call get_issue with the returned identifier as a follow-up step.search_issues only when the exact identifier is unknownIn all cases, the adapter returns exists and entityType. Apply the following policy:
entityType: "issue" → proceedentityType: "pull_request" or "other" → HARD BLOCK; do not reference this target as an issueentityType: "unknown" (permission/cross-workspace ambiguity) → WARN; stop and require explicit user confirmation that the reference is intentional before proceeding. Silence, unclear responses, off-topic replies, echoing, and partial acknowledgments do not count as approval.exists: false and entityType: "unknown" → HARD BLOCK (not-found overrides ambiguous path)Expected response for existing issue:
For non-existent issue:
If issue doesn't exist:
⚠️ ISSUE NOT FOUND
The issue "[IDENTIFIER]" does not exist.
- Verify the issue identifier is correct
- Check if the issue was deleted or moved
- Do NOT reference this identifier in commits/docs
</EXTREMELY_IMPORTANT>
When linking PRs to issues:
Recommended format: [IDENTIFIER] Brief description (use the exact identifier format your tracker uses — e.g. PROJ-123, #42, or TICKET-456)
Before committing with issue identifier:
For bulk operations (changelog, sprint reports):
## Issue Identifier Verification Report
| Issue Identifier | Status | Title | Verified |
|-----------------|--------|-------|----------|
| PROJ-123 | Done | Implement feature X | ✅ |
| #456 | In Progress | Fix bug Y | ✅ |
| TICKET-789 | — | — | ❌ NOT FOUND |
Summary: 2 verified, 1 not found
<EXTREMELY_IMPORTANT>
AI assistants commonly hallucinate issue identifiers based on:
Verification is MANDATORY, not optional.
</EXTREMELY_IMPORTANT>
Before referencing ANY issue identifier:
1. QUERY — Use get_issue for exact identifier lookup (or verify_link for URL-based verification)
2. VERIFY — Issue exists and is in expected state
3. FETCH — Get actual title (don't guess)
4. REFERENCE — Only then cite the issue
# Verify issue metadata matches reality
# Check assignee exists, sprint is current, labels are valid
node ~/.codex/superpowers-augment/superpowers-augment.js use-skill issue-verify