Skip to content
Back to skills

Issue Verify

ASecurity

Use when referencing issues in documentation, commits, or PRs. Verifies issue identifiers exist, validates cross-references.

  • 8 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
ai-agentsrustbashnodegitdocumentation

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add bordenet/superpowers-plus --skill issue-verify --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Issue Verify?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Issue Verify
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bordenet-issue-verify/badge)](https://www.skillsdirectory.com/skills/bordenet-issue-verify)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: issue-verify
disable-model-invocation: true
source: superpowers-plus
triggers: ["verify issue", "check if ticket exists", "issue identifier in commit message", "link PR to issue"]
anti_triggers: ["create issue", "update issue", "edit ticket"]
description: Use when referencing issues in documentation, commits, or PRs. Verifies issue identifiers exist, validates cross-references.
summary: "Use when: referencing issues in docs, commits, or PRs."
coordination:
  group: issue-tracking
  order: 4
  requires: []
  enables: []
  escalates_to: []
  internal: false
composition:
  consumes: [todo-items]
  produces: [verification-report]
  capabilities: [verifies-issues]
  priority: 25
---

# Issue Identifier Verification

> **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 configuration
>
> **Wrong skill?** Creating issues → `issue-authoring`. Updating issues → `issue-editing`. Verifying URLs in issues → `issue-link-verification`.

---

## When to Use

Invoke this skill when:

- Writing commit messages with issue identifier prefixes
- Linking PRs to issues
- Documenting issues in wiki pages
- Cross-referencing issues in changelogs
- Any time you reference an issue identifier outside your tracker

---

## Issue Identifier Verification

<EXTREMELY_IMPORTANT>

**Before writing ANY issue reference, verify it exists using your adapter:**
- **Exact identifier**: normalize first using adapter rules (e.g., GitHub: strip `#` prefix; Jira: use key as-is), then call `get_issue` → check `exists: true` and `entityType: "issue"` before proceeding
- **URL**: call `verify_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.
- Use `search_issues` only when the exact identifier is unknown

**In all cases, the adapter returns `exists` and `entityType`. Apply the following policy:**
- `entityType: "issue"` → proceed
- `entityType: "pull_request"` or `"other"` → **HARD BLOCK**; do not reference this target as an issue
- `entityType: "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:**

- Issue identifier, title, status returned (from get_issue; title and status may not be present in verify_link result)

**For non-existent issue:**

- Empty results or "not found"

**If issue doesn't exist:**

```text
⚠️ 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>

---

## Cross-Reference Validation

### Issue → PR Linking

When linking PRs to issues:

1. **Verify issue exists** using your adapter
2. **Verify PR exists** in your source control
3. **Only then create the link**

### Commit Messages with Issue Identifiers

**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:

1. Verify issue exists
2. Verify issue is in appropriate state (not Done/Closed unless reopening)

---

## Batch Verification

For bulk operations (changelog, sprint reports):

```markdown
## 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
```

---

## Hallucination Prevention

<EXTREMELY_IMPORTANT>

**AI assistants commonly hallucinate issue identifiers based on:**

- Sequential patterns (PROJ-100 exists, so PROJ-101 must too)
- Memory from previous conversations
- Assuming issues referenced in docs still exist

**Verification is MANDATORY, not optional.**

</EXTREMELY_IMPORTANT>

---

## Verification Checklist

```text
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
```

---

## Companion Skills

- **issue-authoring**: Creating new issues
- **issue-editing**: Updating existing issues

## Example

```bash
# 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
```

## Failure Modes

- **Skipping URL verification:** Assuming all links in the issue body are valid without fetching them
- **Checking only title/description:** Missing label, assignee, or priority validation
- **Trusting memory:** Verifying against what you remember the issue said instead of re-fetching it

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…