---
name: Verify Witness
slug: verify-witness
category: Quality
description: Verify Witness checks a scaffolded harness witness manifest by validating its Ed25519 signature and reporting valid or invalid. Use it for fast CI checks or federation handshakes before a full harness validation.
github: "https://github.com/ruvnet/metaharness/tree/main/.claude-plugin/skills/verify-witness"
language: TypeScript
stars: 609
forks: 72
install: "npx degit https://github.com/ruvnet/metaharness/tree/main/.claude-plugin/skills/verify-witness ~/.claude/skills/verify-witness"
installs_to: ~/.claude/skills/verify-witness
source_path: .claude-plugin/skills/verify-witness/SKILL.md
collection_size: 16
category_size: 1354
collection_url: "https://dirskills.com/collections/ruvnet/metaharness"
added: 2026-08-25T05:12:54.497Z
last_synced: 2026-08-25T05:12:54.497Z
canonical_url: "https://dirskills.com/skills/verify-witness"
---

# Verify Witness

Verify Witness checks a scaffolded harness witness manifest by validating its Ed25519 signature and reporting valid or invalid. Use it for fast CI checks or federation handshakes before a full harness validation.

**Install:**

```bash
npx degit https://github.com/ruvnet/metaharness/tree/main/.claude-plugin/skills/verify-witness ~/.claude/skills/verify-witness
```

## README

# verify-witness

> Codex skill: Ed25519 witness manifest verification for a scaffolded harness.

## What it does

Reads `.harness/witness.json`, validates the Ed25519 signature against the embedded public key, and reports `VALID` / `INVALID` with a one-line reason.

Distinct from [`validate-harness`](../validate-harness/):
- `validate-harness` is the **umbrella** — doctor + verify + path-guard + mcp + secrets
- `verify-witness` is **only** the signature check — fast yes/no for CI / federation handshakes / multi-signer workflows

## Usage from Codex

```
/verify-witness
/verify-witness path=./my-harness
/verify-witness path=./my-harness strict=false
```

## Equivalent CLI

```bash
harness verify ./my-harness
```

## Why it's separate from validate-harness

When two harnesses federate (iter 9), they need to confirm each other's witness signatures BEFORE doing the full release-readiness check. Splitting this surface lets federation peers run a fast signature handshake without paying for the full validate sweep.

Also: CI workflows that only care about signature integrity (e.g. mirroring a published harness to a private registry) can call this skill instead of the heavier umbrella.

## What's checked

| Check | Detail |
|-------|--------|
| File present | `.harness/witness.json` exists |
| Manifest shape | All required fields (harness, version, entries, public_key, signature) |
| Signature | Ed25519 verify against the embedded public key |
| Strict mode | If `strict=true` and no witness, exit non-zero. If `false`, soft-skip with PASS |

Exit 0 = signature VALID. Exit 1 = INVALID / missing (strict mode).
