Skip to content
Back to skills

Harness Audit

ASecurity

Agent-driven, read-only self-audit of the harness — run the machine integrity layer once as a dry-run, present a per-check pass/fail table, cite the P1-1 doc-reality result, and for any failure give root-cause + fix + backlog follow-up. Consumes the machine gates; it does not reimplement them. NOT for auditing a consumer project's own codebase (use that project's test suite), and NOT for applying fixes — this skill observes and reports only.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 8, 2026
ai-agentsgobashawsgitsecurity

Security analysis

A100/100

Scanned October 8, 2026

npx -y skills add joymin5655/Agent --skill harness-audit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Harness Audit?

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

Security grade badge for Harness Audit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/joymin5655-harness-audit/badge)](https://www.skillsdirectory.com/skills/joymin5655-harness-audit)

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: harness-audit
description: Agent-driven, read-only self-audit of the harness — run the machine integrity layer once as a dry-run, present a per-check pass/fail table, cite the P1-1 doc-reality result, and for any failure give root-cause + fix + backlog follow-up. Consumes the machine gates; it does not reimplement them. NOT for auditing a consumer project's own codebase (use that project's test suite), and NOT for applying fixes — this skill observes and reports only.
when_to_use: A periodic or on-demand health check of the harness itself — "audit the harness", "/harness-audit", "is the harness passing its own gates", or when you want one interpreted report over the CI/gate layer before a release or after a structural change.
tools: Bash, Read, Grep, Glob
---

# /harness-audit

## Goal

Produce **one interpreted health report** of the harness in a single read-only
dry-run. The machine integrity layer (P1-1 `doc-reality.sh`, the CI jobs, and the
`verify-all.sh` runner) is the *enforcement*; this skill is the *consumer* that
runs it once, reads off a per-check pass/fail table, and turns each failure into a
diagnosis a maintainer can act on.

Concretely the report answers three questions with evidence:

1. **Is the harness passing its own gates right now?** — a per-check PASS / FAIL /
   SKIP table, taken verbatim from `verify-all.sh`.
2. **What does the doc-reality gate (P1-1) say?** — cited explicitly, because it is
   the gate that catches the harness lying about itself (phantom paths + drifted
   counts), and it is the one item most easily missed in a wall of green.
3. **For every non-PASS: why, and what next?** — the check's purpose, the likely
   root cause, the recommended fix, and whether it warrants a new backlog row.

This skill supplies the *interpretation*; it does **not** re-implement any check.
The checks live in `core/tests/` and CI; here you run them and read the results.

## Why this is a layer, not a duplicate of P1-1

P1-1 (`core/tests/doc-reality.sh`) is a **machine gate**: it runs in CI, exits 0/1,
and mechanically blocks doc drift. This skill is the **agent consumer** that sits on
top of that gate — it invokes the whole machine layer in one dry-run and *interprets*
the results (root-cause, fix, backlog follow-up) the way a maintainer would. It reads
doc-reality's verdict; it never re-derives phantom-path or count logic. Deleting this
skill would not weaken any gate (CI still enforces them); deleting doc-reality would.
That asymmetry is the layer relationship: the gate enforces, the audit interprets.
This mirrors the machine-gate-vs-agent-consumer split the plan draws for H-2.

## Steps

### 1. Run the machine integrity layer (one dry-run)

```bash
bash core/tests/verify-all.sh
```

`verify-all.sh` is the single-command runner. It **dynamically discovers** every
`core/tests/*.sh` check (the runner and its own self-test aside, to avoid recursion —
that self-test runs as its own CI step) so no harness check is silently omitted, and
runs, per check, PASS / FAIL / loud SKIP with a final tally. Its discovered set
already includes the machine layer this audit reports on:

- **`doc-reality.sh` (P1-1)** — the doc-drift gate. It also cross-checks the §7
  artifact counts, which include the hook file count, so the historical **"hook
  count" audit item is covered here** (there is no separate hook-count step to run).
- **`sanitize-audit.sh`** — domain-neutrality (no prior-project taint).
- **`supply-chain-scan.sh`** — no injection-style directives in shipped files.
- **`adapter-parity.sh`** — the three adapters normalize one event identically.
- **`registry-drift.sh`** — the registry/manifest gate (plugin/marketplace fields,
  hooks.json → executable core-hook resolution, agent `name:` frontmatter, and
  registry↔agent model agreement).
- **every `*-test.sh` battery** — the per-hook and per-gate fixture tests.
- **`evals:deterministic` and `evals:semantic`** — the two eval layers (same
  invocation CI uses).
- **`gitleaks`** — the secret scan when present; a loud SKIP (never a silent pass)
  when the binary is absent.

Capture the runner's per-check output and its final `=== verify-all: … ===` tally.
This is entirely read-only: the runner and every check it dispatches only read the
repo — no files are written, nothing is committed. Note the runner's exit status: a
**non-zero exit means the harness is failing its own gates** and the report must say
so plainly.

To enumerate the checks without executing them (useful for a coverage sanity-check
of the report), `bash core/tests/verify-all.sh --list` prints the labels only.

### 2. Run the runtime layer (doctor + telemetry digest)

`verify-all.sh` covers the *repo*; two further read-only probes cover the
*runtime this repo is installed into* and the *live gate behavior*:

```bash
bash setup.sh --doctor
bash core/infra/telemetry-digest.sh
```

- **`setup.sh --doctor`** — environment diagnosis (tool availability, exec bits,
  registry/hooks sanity) plus the drift observers: plugin-cache single-version
  (a stale cached version re-exposing retired agents/skills), declared-hook
  manifest vs live settings reconciliation, and the phantom-command scan (a
  runtime `commands/*.md` invoking a script that does not exist on this
  machine). Doctor WARNs are observations, never blockers — report them in the
  same diagnosis format as step 4.
- **`telemetry-digest.sh`** — per-gate fire-rate from the local event sinks;
  surface any DEAD (never fires) or FATIGUE (high-frequency ask) candidates as
  calibration follow-ups, not as failures.

Append the doctor summary line (`doctor: N pass, M warn, K fail`) and any
DEAD/FATIGUE candidates to the report. If either probe's input is absent on
this machine (no runtime install, empty sinks), say so — an unmeasured layer is
reported as unmeasured, not as green.

### 3. Present the table (cite P1-1 explicitly)

Read the runner's output and render a per-check table:

```
check                    result   note
-----------------------  -------  -------------------------------------------
doc-reality.sh (P1-1)    PASS     docs match repo; §7 counts + hook count OK
sanitize-audit.sh        PASS     no prior-project taint
supply-chain-scan.sh     PASS     no injection-style directives
adapter-parity.sh        PASS     3 adapters agree
registry-drift.sh        PASS     manifests/hooks/agents/registry agree
… (batteries) …          PASS     fixture tests green
evals:deterministic      PASS     labeled dataset, Pass^3
evals:semantic           PASS     test-meaningfulness judge, Pass^3
gitleaks                 SKIP     binary not installed on this host
```

Call out the **doc-reality (P1-1)** line by name — its verdict is the headline of
this audit. State the overall tally (N passed / M failed / K skipped) and the
runner's exit status.

### 4. Diagnose each non-PASS

For every FAIL, every doctor WARN, and every SKIP that matters (e.g. a skipped
security scan), write:

- **Purpose** — what the check guards (one line).
- **Root cause** — the most likely reason it is failing, read from the check's own
  failure output (each gate prints the offending item; quote it).
- **Fix** — the concrete corrective step (edit which doc / ship which file / restore
  which exec bit), matching the guidance the gate itself prints.
- **Backlog follow-up** — whether this warrants a new row in
  `docs/internal/harness-improvement-plan.md` (a recurring or structural failure does; a
  one-off local fix does not). Suggest the row; do not add it here.

A SKIP is not a PASS: an absent `gitleaks` is a coverage gap to flag (install it or
rely on the dedicated CI secret-scan job), not a silent green.

### 5. Summarize health + next actions

Close with an overall verdict — healthy (all gates green) or failing (one or more
gates red) — and an ordered list of recommended next actions drawn from step 4. If
the harness is failing its own gates, that is the top-line finding.

## Completion condition

The audit is complete when a single dry-run has produced **(a)** a per-check
pass/fail table and **(b)** an explicit citation of the P1-1 (doc-reality) result.
Anything less (a table with no doc-reality line, or a doc-reality verdict with no
table) is an incomplete audit.

## Hard rules

- **Read-only.** This audit observes; it does not edit, fix, or commit. Diagnosis
  and fix *suggestions* are the output — applying them is a separate, human-directed
  step.
- **Do not reimplement the checks.** The gates in `core/tests/` and CI are the
  source of truth. This skill runs them and interprets their output; if a check's
  logic is wrong, fix the check (and its battery), not this skill.
- **The P1-1 citation is mandatory.** doc-reality is the gate that catches the
  harness lying about itself; its verdict is always named in the report.
- **A non-zero `verify-all.sh` exit is a failing harness.** Report it as such —
  never round a red run up to "mostly green".

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.