Skip to content
Back to skills

Verify

ASecurity

Human acceptance testing — structured verification that work actually works. Run standalone or integrated in HITL review cycle.

  • 7 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
developmentgobashtestinggit

Works with

  • cli

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add OrodruinLabs/nazgul --skill verify --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Verify?

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

Security grade badge for Verify
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/orodruinlabs-verify/badge)](https://www.skillsdirectory.com/skills/orodruinlabs-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: nazgul:verify
description: "Human acceptance testing — structured verification that work actually works. Run standalone or integrated in HITL review cycle."
context: fork
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
metadata:
  author: Jose Mejia
  version: 1.2.2
---

# Nazgul Verify

## Examples
- `/nazgul:verify` — Verify all completed tasks that haven't been verified yet
- `/nazgul:verify TASK-003` — Verify a specific completed task

## Arguments
$ARGUMENTS

## Current State
- Config: !`cat nazgul/config.json 2>/dev/null | head -3 || echo "NOT_INITIALIZED"`
- Completed unverified tasks: !`for f in nazgul/tasks/TASK-*.md; do status=$(grep -m1 'Status' "$f" 2>/dev/null | sed 's/.*: *//'); id=$(basename "$f" .md); if [ "$status" = "DONE" ] && [ ! -f "nazgul/tasks/$id/verification.md" ]; then echo "$id"; fi; done 2>/dev/null || echo "none"`

## Instructions

Format all output per `references/ui-brand.md` — use checkpoint boxes, status symbols, and display patterns defined there.

### Pre-flight
1. Check if `nazgul/config.json` exists. If not: "Nazgul not initialized. Run `/nazgul:init` first." and STOP.
2. Parse `$ARGUMENTS`:
   - If a task ID provided → verify that specific task
   - If no arguments → find all DONE tasks without `verification.md` and verify them in sequence

### Display Banner
```
─── ◈ NAZGUL ▸ VERIFYING ─────────────────────────────────
```

### Step 1: Load Task Context

For each task being verified:
1. Read the task manifest at `nazgul/tasks/TASK-NNN.md`
2. Verify status is DONE (or APPROVED in YOLO mode). If not: "TASK-NNN is not complete (status: [status]). Only completed tasks can be verified."
3. Read the implementation log section for what was built
4. Read acceptance criteria for what should be true
5. Check for review results in `nazgul/reviews/TASK-NNN/`

### Step 2: Automated Pre-Checks (Levels 1-3)

Run automated verification using patterns from `references/verification-patterns.md`:

**Level 1 — Exists:**
- Check all files listed in the task's `File Scope → Creates` actually exist
- Check all files in `File Scope → Modifies` were actually modified (git diff)

**Level 2 — Substantive:**
- Run stub detection patterns on created/modified files
- Check substantive size heuristics
- Flag any files with TODO/FIXME/placeholder patterns

**Level 3 — Wired:**
- Check that new files are imported/referenced somewhere
- Check that modified files still have valid connections

Report pre-check results:
```
Automated Pre-Checks
─────────────────────────────────────
  ✦ Level 1 (Exists):      4/4 files present
  ⚠ Level 2 (Substantive): 3/4 pass (1 stub detected in src/utils/helper.ts)
  ✦ Level 3 (Wired):       4/4 connected

1 issue found — included in verification walkthrough below.
```

### Step 3: Extract Testable Deliverables

From the task manifest, extract user-observable outcomes:
1. Read acceptance criteria checkboxes
2. Read implementation log for what was built
3. Convert to testable deliverables — things a human can verify by looking/clicking/using

Focus on outcomes, not implementation:
- Good: "Login form accepts email and password, redirects to dashboard on success"
- Bad: "useAuth hook returns user object with correct fields"

### Step 4: Conversational Walkthrough (Level 4)

Present each deliverable one at a time:

```
┌─── ◈ CHECKPOINT: Verification Required ──────────────┐
│                                                       │
│  TASK-003: User Authentication                        │
│  Test 1 of 4                                          │
│                                                       │
│  Expected: Login form accepts email and password.     │
│  On valid credentials, redirects to /dashboard.       │
│  On invalid credentials, shows error message.         │
│                                                       │
│  → Type "yes" if it works, or describe what's wrong   │
└───────────────────────────────────────────────────────┘
```

Handle responses:
- "yes" / "y" / "pass" / empty → Mark as PASS, move to next
- Anything else → Log as issue with user's description, mark FAIL, continue to next

### Step 5: Record Results

Write `nazgul/tasks/TASK-NNN/verification.md` (create directory if needed):

```markdown
# Verification: TASK-NNN

## Summary
- **Verified at**: [ISO 8601 timestamp]
- **Verified by**: human (via /nazgul:verify)
- **Result**: [ALL_PASS | ISSUES_FOUND]

## Pre-Checks
- Level 1 (Exists): [N/N pass]
- Level 2 (Substantive): [N/N pass]
- Level 3 (Wired): [N/N pass]

## Deliverable Results
| # | Deliverable | Result | Notes |
|---|-------------|--------|-------|
| 1 | [description] | ✦ PASS | — |
| 2 | [description] | ✗ FAIL | [user's description of issue] |

## Issues
### Issue 1: [description from user]
- **Deliverable**: #2
- **Pre-check findings**: [any related automated findings]
```

### Step 6: Handle Issues

If any issues found:
1. For each issue, create a new task:
   - `nazgul/tasks/TASK-MMM.md` with status READY
   - Description references the original task and the specific issue
   - Link: `- **Traces to**: TASK-NNN verification issue #N`
2. Report:
```
─── ◈ NAZGUL ▸ VERIFYING ─────────────────────────────────

TASK-003: 3/4 deliverables passed, 1 issue found

  ✦ Login form renders correctly
  ✦ Valid credentials redirect to dashboard
  ✗ Invalid credentials — error message not shown
  ✦ Session persists after refresh

Fix task created: TASK-008 (fix error message display)

─── ◈ NEXT ─────────────────────────────────────────────
  /nazgul:start to implement fixes
────────────────────────────────────────────────────────
```

If all pass:
```
─── ◈ NAZGUL ▸ VERIFYING ─────────────────────────────────

✦ TASK-003: All 4 deliverables verified

─── ◈ NEXT ─────────────────────────────────────────────
  /nazgul:verify to check more tasks
  /nazgul:start to continue
────────────────────────────────────────────────────────
```

### Error Handling
- If task not found: "Task TASK-NNN not found."
- If task not complete: "TASK-NNN is not complete (status: [status]). Complete it first."
- If no tasks to verify: "All completed tasks have been verified. Nothing to do."

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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.