# VeriHarness V0.2

Status: active design  
Date: 2026-07-14

## Goal

Build a minimal research harness around `claude -p`. V0.2 keeps Claude Code's native agent loop,
adds one general multimodal-model MCP tool, and composes separate appended-prompt modules for tool
use, task instructions, and later verification ablations. It preserves the reliable lessons and
empirical caveats from V0.1 without inheriting the old Agent SDK runtime as its implementation
base.

## Why A New Version

V0.1 reached a complete, runnable baseline and exposed several useful failures. Continuing to
edit it in place would mix a frozen case1 experiment with a new treatment definition. V0.2 gives
the new discussion an independent contract, decision log, and future implementation boundary.

## Inherited Research Invariants

- Verification is a general behavior, not only a final gate.
- Tool-driven and goal-driven checks are both possible phenomena to study.
- Required multimodal input integrity precedes interpretation of model output.
- Online repair feedback and offline outcome measurement remain conceptually separate.
- Required verification infrastructure fails closed.
- Observation freshness and artifact provenance must be explicit.
- Transcript and structured event trace are stored separately.
- Generic model/CV capabilities stay in the core; task-specific DOM and rendering logic stays in
  task packages.
- The eventual RL path requires reconstructable verification episodes, not only final scores.

These are starting invariants, not a commitment to the V0.1 implementation shape.

## Reopened Design Decisions

- What exactly is the V0.2 experimental treatment and causal comparison?
- Do H/P remain useful axes, change meaning, or disappear?
- Who decides when verification occurs: agent policy, harness policy, task policy, or a mixture?
- What is one verifier responsible for, and when are multiple isolated calls useful?
- What constitutes admissible evidence for OCR, geometry, appearance, behavior, generation, and
  other future tasks?
- How should claim discovery, claim accumulation, repair epochs, stopping, and budgets work?
- Which outcomes belong to deterministic measurement, model judgment, or offline evaluation?
- Which trajectory fields are necessary for cold start and RL without biasing the agent?

## Current Boundary

V0.2 is currently a design-stage subproject. The accepted first slice is deliberately narrow:
`claude -p` plus one MCP tool whose first version accepts explicit text/images and returns text or
JSON with an optional schema. The tool is named `CallMLLM`; malformed-output and error behavior are
still under discussion. No V0.1 run,
score, prompt, or controller is silently treated as the V0.2 contract, and no new large experiment
should begin before the V0.2 design is explicitly accepted.

## v-harness Version Relationship

V0.2 has `no direct dependency` on any v-harness version. It inherits research
context from the frozen V0.1 discussion, but does not import or copy v-harness
prompt, configuration, code, data, or artifacts. The canonical project/version
mapping is
`../20260714-vharness-upstream-manager/VERSION_PROJECT_MATRIX.md`.

## Documents

- `GOAL_SPEC.md`: design-stage objective, scope, and readiness criteria.
- `docs/README.md`: current design tree, discussion archive, and reading order.
- `docs/design/00-overall-method.md`: the `claude -p` minimal-extension architecture.
- `docs/design/01-b1-model-tool/`: the general MLLM tool and detailed B1 prompt draft.
- `docs/context-snapshot-20260713.md`: compressed, self-contained baseline context.
- `docs/context-snapshot-20260714.md`: compressed context after the V0.2 architecture reset.
- `docs/decision-log.md`: accepted V0.2 decisions and their consequences.
- `SOURCE_LINEAGE.md`: what was copied conceptually and what has not been imported.

## Immediate Next

1. Define the first image-to-code B2 task input and final artifact contract.
2. Then resolve task-specific structure, asset, rendering, live-text, and positioning rules one at
   a time.
3. Keep all verification treatment out of B2 and reserve it for B3.
