DEV Community

Cover image for NoWreck Deterministic AI Verifier -v0.11.0
AstralXVoid
AstralXVoid

Posted on

NoWreck Deterministic AI Verifier -v0.11.0

GitHub logo AstralXVoid / NoWreck

A CLI tool that verifies AI coding assistant claims against actual structural changes — catching hallucinated functions, fake calls, and missed modifications before they ship.

NoWreck

Deterministic AI Verifier — v0.11.0

NoWreck is a deterministic structural verifier for AI-generated code-change claims. When an AI describes a code change, NoWreck compares the claims against structural evidence derived by its own scanners — the verifier never asks another AI for an opinion. Where the evidence comes from depends on the mode: in Pre/Post and Claims modes, from actual before/after repository snapshots; in Prompt Mode, from the model's own proposed diff.

ChatGPT Image Aug 24, 2026, 03_09_34 PM (1)
$ nowreck fix "Add email validation to auth.py"

  Summary
  ────────────────────
  ● 3 claims total
  ● 2 confirmed
  ● 1 contradicted

  CONFIRMED
  ─────────
  ✓ ADD_FUNCTION validate_email → auth.py  (conf: 100%)
    Evidence: Function 'validate_email' was added in auth.py

  CONTRADICTED
  ────────────
  ✗ CALLS_FUNCTION validate_email → auth.py  (conf: 100%)
    Evidence: Function 'validate_email' was added in auth.py

What it catches

  • Hallucinated functions or classes — a claim that something was added when it isn't there
  • Fake internal API calls — a claim…

What's New In v0.11.0-
NoWreck v0.11.0 — Multi-Provider Support (Anthropic + Gemini)

Release date: August 2026
Previous release: v0.10.0 (Independent Verification Architecture)
Focus: Extend NoWreck beyond the OpenAI-compatible format to two major
providers with different API shapes — Anthropic (Claude) and Google Gemini
via isolated provider adapters, with zero changes for existing
OpenAI-compatible users.

What's new in v0.11.0
Provider adapters ✅

Non-OpenAI providers get adapters, not rewrites. The existing
ModelProvider core logic (retries, parsing, failure saving) is untouched.
Adapters translate between the provider's native format and the internal
format:

ModelProvider
├── _detect_adapter(base_url) → adapter
├── OpenAIAdapter — passthrough (OpenAI, Groq, OpenRouter, Grok,
│ Kimi, Ollama, LM Studio, any compatible endpoint)
├── AnthropicAdapter — /v1/messages, x-api-key auth, top-level system
└── GeminiAdapter — /v1beta/models/{model}:generateContent,
x-goog-api-key auth, systemInstruction

Anthropic support ✅

Endpoint: POST /v1/messages
Auth: x-api-key header (+ required anthropic-version header)
System messages extracted from the messages array into the top-level
system field
Response parsed from the content block array
Enter fullscreen mode Exit fullscreen mode

nowreck config set base_url https://api.anthropic.com
nowreck config set api_key sk-ant-...
nowreck config set model claude-sonnet-4-20250514
nowreck fix "Add email validation to auth.py"

Gemini support ✅

Endpoint: POST /v1beta/models/{model}:generateContent (model in URL path)
Auth: x-goog-api-key header
Messages translated to contents with parts; system messages go to
systemInstruction; assistant role maps to model
Response parsed from candidates[0].content.parts[*].text
Enter fullscreen mode Exit fullscreen mode

nowreck config set base_url https://generativelanguage.googleapis.com
nowreck config set api_key AIza...
nowreck config set model gemini-2.0-flash
nowreck fix "Add email validation to auth.py"

Auto-detection + explicit override ✅

The adapter is inferred from base_url (api.anthropic.com → Anthropic,
generativelanguage.googleapis.com → Gemini, anything else → OpenAI).
An optional provider config key overrides auto-detection when needed:

nowreck config set provider anthropic # or: gemini, openai

No new CLI flags. The same commands work with every provider.
Phase 4 integration tests ✅

Six behavioral tests drive the real _default_http_call HTTP path
(urlopen patched) and prove per-provider request shape, auth headers,
and response round-trip through the correct adapter.

Top comments (0)