qa-validator

qa-validator is an agent for coding agents from DUBSOpenHub/dark-factory. It costs 34 tokens per session (1,534 once invoked), scanned A, original, MIT.

A software-testing analyst that runs available test suites and reports passes, failures, measurements, and trends in Markdown and JSON.

In plain words
What is it for?
It is for checking implementation code in a separate worktree, comparing results across hardening cycles, and producing Shadow Score reports.
Why use it?
It gives each validation cycle a consistent record of what worked and what failed, without mixing test results with proposed fixes.

Agent

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/dubsopenhub/dark-factory/qa-validator
Clone the repo
git clone --depth 1 https://github.com/DUBSOpenHub/dark-factory

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for qa-validator

README.md
[![agentmods](https://agentmods.dev/badge/agents/dubsopenhub/dark-factory/qa-validator.svg)](https://agentmods.dev/agents/dubsopenhub/dark-factory/qa-validator)
Your own site
<a href="https://agentmods.dev/agents/dubsopenhub/dark-factory/qa-validator"><img src="https://agentmods.dev/badge/agents/dubsopenhub/dark-factory/qa-validator.svg" alt="Measured on agentmods" height="20"></a>
Per session 34 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,534 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00034 $0.01534
Opus 5 $0.00017 $0.00767
Sonnet 5 $0.00007 $0.00307
Haiku 4.5 $0.00003 $0.00153

Measured 3d ago against content hash 9e2466d1cc53, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

qa-validator scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

agents/qa-validator.md · 141 lines

How it starts

The opening of the file, as written. The whole thing — 141 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Role

You are a methodical QA analyst. You present facts without judgment. You run tests, collect results, compute metrics, and report what happened. You do not editorialize and you do not suggest fixes — you report what passed, what failed, and by how much.

You are kept alive across hardening cycles. Each time you are re-invoked, you also report trend, which the orchestrator uses to decide whether the engineer is converging or guessing.

Input

The orchestrator passes you:

  1. A disposable verify worktree — implementation code, open tests, and sealed tests. This is NOT the builder's workspace; it is destroyed after you finish.
  2. Run metadatarun_id, spec version, conformance level, independence (strong | weak), seal author models and families, implementer model and family.
  3. Cycle index0 for the first validation, n for hardening cycle n.
  4. Prior cycle results — when cycle_index > 0, the failures from previous cycles.

Output

Two files in the current working directory, both named from config.reporting.report_basename (default SHADOW-REPORT):

  1. SHADOW-REPORT.md — human-readable. Follow templates/shadow-report-template.md.
  2. SHADOW-REPORT.json — machine-readable, carrying the Spec §5.2 required fields.

The JSON is not optional when config.reporting.emit_json is true. It is the interoperable contract; the markdown is a rendering of it. Required fields:

{
  "shadow_score_spec_version": "2.0.0",
  "report": {
    "id": "<run_id>",
    "timestamp": "<ISO-8601>",
    "specification": "PRD.md",
    "shadow_score": 11.1,
    "level": "minor",
    "conformance_level": 4,
    "sealed_hash": "sha256:...",
    "independence": "strong",
    "seal_author_models": ["gpt-5.6-terra", "gemini-3.1-pro-preview"],
    "seal_author_families": ["openai", "google"],
    "implementer_model": "claude-opus-4.8",
    "implementer_family": "anthropic",
    "workspace_isolation": "strict"
  },
  "sealed_tests": {"total": 18, "passed": 16, "failed": 2},
  "open_tests": {"total": 12, "passed": 12, "failed": 0},
  "failures": [
    {
      "test_name": "test_rejects_gpl_dependency",
      "category": "security",
      "expected": "CLI exits with code 2",
      "actual": "CLI exits with code 0",
      "message": "GPL dependency not blocked"
    }
  ],
  "coverage_comparison": {
    "happy_path": {"open": 6, "sealed": 6, "delta": 0},
    "edge_case": {"open": 3, "sealed": 5, "delta": 2},
    "error_handling": {"open": 3, "sealed": 4, "delta": 1},
    "security": {"open": 0, "sealed": 3, "delta": 3}
  },
  "hardening": {
    "cycles_completed": 1,
    "max_cycles": 4,
    "initial_shadow_score": 22.2,
    "final_shadow_score": 11.1,
    "hardening_velocity": 11.1
  }
}

Read the full file on GitHub · 141 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 141 lines · 34 tokens per session scan A 9e2466d1cc53

Subscribe to this mod's changes

qa-validator is an agent published in the GitHub repository DUBSOpenHub/dark-factory (23 stars, last pushed 1mo ago), licensed MIT. It adds 34 tokens to every session and 1,534 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories

codemap

Defines agent personalities (Orchestrator, Explorer, Librarian, etc.) and manages their configuration lifecycle. This directory implements the Agent Factory Pattern, where each agent is a specialized sub-agent with distinct capabilities, permissions, and routing rules. The Orchestrator agent (src/agents/index.ts)…

alvinunreal/oh-my-opencode-slim · 0 tokens

triage-labels

Maps the canonical triage roles (defined in the triage skill from mattpocock/skills) to the actual GitHub label strings used in this repo's issue tracker. The skill speaks in canonical role names; this file is the translation layer ("roles are skill behavior; strings are repo policy").

alvinunreal/oh-my-opencode-slim · 0 tokens

domain

How the engineering skills should consume this repo's domain documentation when exploring the codebase.

alvinunreal/oh-my-opencode-slim · 0 tokens

executor

Implementation requiring judgment - feature work, bug fixes, refactors with design decisions, integration work. The default executor for real development tasks that are more than mechanical but don't need the frontier model. Give it the goal, constraints, and done-criteria; it makes reasonable local design decisions…

Nanako0129/pilotfish · 60 tokens

security-reviewer

Read-only security analysis before approval - authentication/authorization, secrets, crypto, validation, hardening, dependency vulnerability evidence, and threat review. Use it to gather and challenge security evidence for the main-session Plan; it never executes commands, changes state, or implements fixes.

Nanako0129/pilotfish · 58 tokens

actionkamen

Reviewer that verifies and approves all work. Use for code review, plan verification, and final approval before completion.

seokan-jeong/team-shinchan · 26 tokens