Skip to content
An independent codebase-assurance survey — not a CI scanner

Prove your code before you hand it over.

Your client, your buyer, your next customer can't read the code — they take your word for it. Watchdog is the independent surveyor for C#/.NET: one reproducible 0–100 Codebase Assurance Index, issued as a signed report you can share. A measurement, not an opinion.

Point us at your repo — nothing to install, no CI step, no SDK, no lock-in. Sign in with GitHub · no card · C#/.NET · the first full report on any repo is €0 — depth is never gated.

✓ Signed by Watchdog
checkout-serviceby acmeAdequate
CAI62 / 100
Trend: improving (up 17) over the last 8 scans.
4562↑ +17
Code health68
Architecture55
Maturity63
Readiness52
Security71
Measured1 July 2026 · 4.2M lines
Reproducible fingerprinta3f9…e021
Shared with3 parties

A sample evidence artifact — dated, signed, verifiable. Not editable by the party who shares it.

The boundary

What Watchdog is — and isn't.

What it is not

  • Not a CI scanner or linterNever scores a line or blocks a merge.
  • Not a SAST / dataflow engineReads their signal; doesn't out-depth one.
  • Not a coding agentNever edits, commits, pushes or opens a PR.
  • Not a certifierRecords the evidence; a named human signs.

What it is

  • An independent surveyorOne altitude above your scanners.
  • One reproducible CAISigned, commit-pinned — re-runs to the same number.
  • A read-only oracleServes every finding to your agent over MCP.
  • A whole-system surveyArchitecture, maturity, compliance & risk in one report.
100%
reproducible — same commit, same rubric, same number
€0
first full report on every repo
10
lenses — 5 always on, 5 light up with your architecture
repositories — we meter lines scanned, never seats
How we measure

Graded by the open CAI standard — across ten lenses.

Five are always on; five light up with your architecture. Every finding is located to file:line, every lens trended scan over scan — and the standard is open: each lens links to its dimensions on cai.canine.dev.

Always on

Code health

Complexity, duplication, code shape and naming — how maintainable the code itself is.

Dimensions →
Always on

Architecture

Module boundaries, coupling, cohesion and dependency direction — whether structure holds up as the repo grows.

Dimensions →
Always on

Maturity

Docs, ADRs, comments and process signals — how well the project explains and governs itself.

Dimensions →
Always on

Readiness

Tests, CI gates, observability, resilience and rollback — readiness to run in production.

Dimensions →
Always on

Security & Compliance

Secrets, dependency CVEs, SAST and licence/PII posture — the deep-scan security lens.

Dimensions →
Lights up with your architecture

Domain Modelling

DDD tactical health — aggregates, value objects and the invariants your business rules depend on.

Dimensions →
Lights up with your architecture

Event-Driven

Messaging and integration discipline — outbox, async handlers and contract coupling.

Dimensions →
Lights up with your architecture

Event Sourcing

Event-store correctness — immutable events, deterministic folds and PII-in-events.

Dimensions →
Lights up with your architecture

Accessibility

Text alternatives, labels, keyboard semantics, ARIA and a11y enforcement.

Dimensions →
Lights up with your architecture

Performance

Benchmarks, allocation-aware APIs and async hygiene.

Dimensions →

The full vocabulary — every dimension, its evaluator and rubric version — lives on the open standard. Browse the catalog →

What you get

The CAI plus the deductions — what's wrong, what it means, what to do.

A survey isn't a dashboard you log into. It's the number and the reading — handed over as artifacts a deal can stand on.

A reproducible report

The CAI and every finding in a content-addressed PDF + JSON, pinned to a commit and a frozen rubric hash — re-runnable by either side.

Evidence you can share

Every scan is an Ed25519-signed, tamper-evident CAI package. Share it with a client or buyer — they get a free copy they can verify, and it can't be edited by whoever shares it.

How sharing works →

An agent-ready fix list, over MCP

Every finding is a briefed task — the rule that fired, the file and line, the score-impact — served to your coding agent over Watchdog's Model Context Protocol server, ranked by impact ÷ effort. The next survey proves the number moved.

Agents & MCP →

A standing inspection

Weekly full surveys plus a daily security watch, on a calendar — your code rots even when nobody commits; the quiet months are watched, not skipped.

For teams →

A changelog every survey

What moved since last time — CAI & per-lens deltas, findings resolved vs raised, features & fixes landed, added and removed API endpoints. A sprint-ready record, derived facts only.

Living documentation

A C4 architecture map, a CycloneDX SBOM + licence inventory, and ADR-conformance — derived from the code on every survey, current by construction.

Independent — and you don't have to trust us

Commissioned by one side. Trusted by both — because the method is open.

A survey is only worth something because the surveyor is independent and paid the same either way, *and* because you can check the work.

Structurally neutral

The same versioned rubric scores you whoever pays; pin it frozen for a contract. Watchdog builds nobody's software, never touches yours — and there are no success fees. We're paid to measure, never to make the number go up.

Open verdict, calibrated instrument

The CAI *verdict* is an open, reproducible standard — algorithm, lenses and rubric public, reference scorer open source. The *evidence engine* that feeds it is ours: calibrated against a real .NET corpus to fire truly and rarely falsely.

What we measure →

Verify any number yourself

We publish the evidence behind a score. Take a survey, run the open scorer over its evidence, and you get the same number — or you've found a discrepancy.

Reproduce a survey →
The public record

Real reports, fully open — not a logo wall.

Every card below is a real repository whose owner chose to publish — the entire survey is open to read: every lens, every finding, and the exact rule each number was scored by. No cherry-picked mock-ups.

CAIby CanineCCStrong
CAI89 / 100
4989↑ +40
Code health98
Architecture89
Maturity90
Readiness86
Security100
Rebuild cost~€5,600
Bus factor2 of 4 devs
Lines of code1,635
EasyEventSourcingby SneakyPeetStrong
CAI89 / 100
5189↑ +38
Code health95
Architecture100
Maturity79
Readiness100
Security100
Rebuild cost~€3,900
Bus factor1 of 3 devs
Lines of code1,347
ContinuumStrong
CAI82 / 100
7382↑ +9
Code health90
Architecture83
Maturity83
Readiness83
Security87
Domain79
Event-driven73
Event sourcing73
Rebuild cost~€4,000,000
Bus factor1 of 3 devs
Lines of code355,480

Every number above is from a real, opted-in published survey — and the first → best arc is the anti-slop ratchet at work. Browse the public record →

Trust

Your code never leaves your control.

EU data residency

Processed only on hardware we own in Denmark — no cloud provider in the path.

No third-party AI

The language model is self-hosted; your code is never sent to OpenAI, Anthropic or Google.

Source never persisted

Each scan clones, analyses, then deletes the working copy — and we never train on your code.

Read-only by doctrine

We measure and advise; we never commit, push, or edit your code.

Read the full security & data statement →

How we operate

Read-only by doctrine. Honest about what a tool can claim.

Evidence you declare — certificates we don't sell

Compliance evidence with a gate you can't quietly pass.

A catalog of ten frameworks (WCAG 2.2, NIS2, DORA, SSDF, SLSA, OWASP ASVS and more). We measure the automatable slice and gate it: a control we caught failing can't be silently passed — overriding it is recorded, in full, in the artifact. You declare the rest, and a named person signs. We measure; you declare; we never certify.

Enterprise & regulated environments

Run the whole survey inside your own network.

Watchdog deploys self-hosted: your code never leaves your perimeter, the language model runs on your hardware, and the SOC 2 / data-residency question goes away. EU data residency, no third-party AI, source never persisted — on infrastructure you control.

Put a number on your code. The first full report on any repo is €0.

Depth is never gated — every survey computes the full CAI, all dimensions, all lenses.

Sign in with GitHub · no card · C#/.NET native.