seek-verdict: Independent Second-Opinion Verification

SkillAI & models

Independent second-opinion verification for any finding. Use when: Claude or user wants independent Codex verification of a review finding — dismiss (false positive check), confirm (does this issue exist?), or clarify (what's the impact?). Triggers: dismiss verification, seek verdict, verify dismiss, false positive check, second opinion, confirm finding, clarify impact. Not for: general code review (use codex-code-review), architecture debates (use codex-brainstorm). Output: [DISMISS_VERDICT] or [SEEK_VERDICT] audit trail with verdict, confidence, and evidence refs.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the seek-verdict: Independent Second-Opinion Verification skill

What this skill tells your AI

The instructions your AI receives, as published by sd0xdev/sd0x-harness in skills/seek-verdict/SKILL.md and read by ahel’s review.

When NOT to Use

  • General code review (use /codex-review-fast)
  • Architecture debates (use /codex-brainstorm)
  • Nit findings with no dismiss intent (use [NIT_DEFERRED])

Intent x Severity

IntentPurposeEligible SeveritiesOutput Token
dismissIs this a false positive?All (P0/P1/P2/Nit)[DISMISS_VERDICT]
confirmDoes this issue actually exist?All[SEEK_VERDICT]
clarifyWhat's the actual impact?All[SEEK_VERDICT]

Default intent: dismiss (backward compatible with v1).

Dismiss Authorization

SeverityAuthorizationGate
P0DISMISS_CANDIDATEHuman confirmation required
P1DISMISS_CANDIDATEHuman confirmation required
P2DISMISS_VERIFIEDAutomated
NitDISMISS_VERIFIEDAutomated

P0/P1 dismiss produces a candidate, not a final authorization. See Policy Mapping for human gate protocol.

3-Phase Protocol

sequenceDiagram
    participant C as Claude
    participant S as seek-verdict
    participant X as Codex (fresh thread)

    C->>S: Finding + intent + severity
    Note over S: Phase A: Candidate Packaging
    S->>S: Extract finding_packet<br/>(no Claude conclusions)
    S->>X: Phase B: Blind Independent Verdict
    Note over X: Independent research<br/>git status / grep / cat
    X-->>S: verdict + confidence + evidence
    Note over S: Phase C: Policy Mapping (intent x severity)
    alt intent=dismiss + P2/Nit
        S-->>C: DISMISS_VERIFIED / FIX_REQUIRED (automated)
    else intent=dismiss + P0/P1
        S-->>C: DISMISS_CANDIDATE + Need Human (human gate)
    else intent=confirm/clarify
        S-->>C: [SEEK_VERDICT] informational result
    end

Phase A: Candidate Packaging

Extract finding artifact from review output:

FieldSource
finding_keyfile + canonical_issue_text
severity<P0 | P1 | P2 | Nit>
intent<dismiss | confirm | clarify>
original_finding_textCodex review original (secrets redacted)
origin_thread_idReview session threadId
current_head_shagit rev-parse HEAD
relevant_diffgit diff HEAD -- <file>

Critical: Record Claude's hypothesis locally. Never send it to Codex.

Phase B: Blind Independent Verdict

Use the prompt template in Verdict Prompt.

RequirementDetail
ThreadFresh — dispatch per @skills/codex-code-review/references/codex-transport.md § Start (never reuse a review thread)
Anti-anchoringNo Claude conclusions in prompt

Phase C: Policy Mapping

Apply thresholds from Policy Mapping.

Dismiss intent: graduated thresholds by severity (P0: 0.95/4, P1: 0.90/3, P2: 0.80/2, Nit: 0.70/1).

Confirm intent: ACTIONABLE->CONFIRMED, NON_ACTIONABLE->DISPUTED, low confidence->UNCERTAIN.

Clarify intent: HIGH_IMPACT / LOW_IMPACT / UNCERTAIN.

Output audit trail per Policy Mapping.

Rebuttal

When Phase C maps the verdict to FIX_REQUIRED (raw ACTIONABLE at or above the confidence floor — FIX_REQUIRED is the mapping's word, never Codex's) and Claude has objective counter-evidence:

  • 1 round max via § Resume (same verdict thread)
  • Only objective artifacts (tests, specs, language semantics)
  • The rebuttal names Codex's own verdict, ACTIONABLE, not the mapped result
  • After rebuttal: map the new answer again — still FIX_REQUIRED -> fix; ambiguous -> NEED_HUMAN

Anti-Abuse Guard

See Policy Mapping for full rules.

  • Dismiss: 3 consecutive DISMISS_VERIFIED -> [DISMISS_PATTERN_WARN] + heightened thresholds
  • Confirm/Clarify: per-finding cap (1 confirm + 1 clarify per finding per commit)
  • Session end or branch switch resets all counters

Output

Dismiss intent:

[DISMISS_VERDICT] key=<file|canonical_issue> | severity=<P0-Nit> | verdict=<DISMISS_VERIFIED|DISMISS_CANDIDATE|FIX_REQUIRED|NEED_HUMAN> | confidence=<0..1> | codex_thread=<id> | evidence=<brief> | timestamp=<ISO8601> | intent=dismiss | authorization=<automated|human-required|human-confirmed>

Confirm/Clarify intent:

[SEEK_VERDICT] key=<file|canonical_issue> | severity=<P0-Nit> | intent=<confirm|clarify> | verdict=<CONFIRMED|DISPUTED|HIGH_IMPACT|LOW_IMPACT|UNCERTAIN> | confidence=<0..1> | codex_thread=<id> | evidence=<brief> | timestamp=<ISO8601>

Verification

  • Intent is valid (dismiss / confirm / clarify)
  • Codex prompt contains no Claude conclusions (anti-anchoring)
  • Fresh Codex thread used (not review session thread)
  • Correct audit trail token output ([DISMISS_VERDICT] or [SEEK_VERDICT])
  • P0/P1 dismiss produces DISMISS_CANDIDATE + human gate (never auto-dismiss)
  • Anti-abuse streak tracked (dismiss) / per-finding cap enforced (confirm/clarify)

References

FilePurpose
Verdict PromptCodex blind verification prompt template
Policy MappingIntent x severity thresholds, audit format, anti-abuse

Signals

GitHub stars
188
Forks
24
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
seek-verdict
Source
github.com/sd0xdev/sd0x-harness