STET

flux-pr-3850

Zod (TypeScript) · W2 · GPT-5.3 Codex

pass_with_warn

Tests passed. 3/3 commands passed. Strength: strong.

69.2% run pass rate
Tier 1
primary testspassedequivalentfail
yarn build
gold passagent pass
find . -name vitest.config.ts -exec sed -i 's/test: {/test: { testTimeout: 30000,/' {} +
gold passagent pass
yarn test
gold passagent pass

Partial score: 3/3

Publishable: yesCache: miss

Trajectory

unknown · partial order only

Canonical trajectory missing; showing coarse derived order only.

patch written
Patch captured
#1

Stet captured agent.patch for this trial.

validation
Tests passed
#2
equivalence
Equivalence judgment
#3

equivalent

code review
Code review judgment
#4

fail

decision
Final decision
#5

pass_with_warn

Quality

equivalence
equivalent
78% confidence
code review
fail
3 findings
footprint
low (0.25)
behavioral
100.0%
cost
$1.67 · 588K

Equivalence Reasoning

stylistic

The agent patch implements the core intent: schema types now expose `~standard` metadata (`version`, `vendor`) and a `validate` hook that returns standardized success/failure payloads (`value` or `issues`) with sync-first and async fallback behavior. It also wires this into both `src` and `deno` type implementations. Differences from the gold patch (extra exports, slightly different type definitions, and async-state handling details) do not materially miss the requested functionality.

Code Review

correctness: 2/4introduced bug risk: 2/4edge case handling: 2/4maintainability idioms: 2/4

The patch substantially implements the Standard Schema entry points, but it likely falls short of full intended behavior due to throwable `validate` paths, fragile async fallback mechanics, and spec-shape drift in the type definition.

3 findings
validate may throw instead of returning Standard Schema result
major

`~validate` rethrows any error that does not match the "encountered" message check, so callers can get exceptions rather than `{ issues }`/`Promise<{ issues }>` payloads expected from the standard interface.

src/types.ts:338
async capability flag is written but never used to skip sync path
major

The implementation sets `this["~standard"].async = true` after detecting async parsing, but each call still initializes `ctx.common.async` to `false` and always attempts `_parseSync` first, causing repeated exception-driven fallback for known async schemas.

src/types.ts:306
Local Standard Schema type deviates from expected shape
major

The custom `StandardSchemaV1` adds non-standard `async` metadata and narrows issue-path typing without `PathSegment` support, which can reduce compatibility with tools expecting the canonical shape.

src/standard-schema.ts:6