We're accepting pilot partners — apply for early access
SYSTEM STATUS: ONLINEv2.4.0

Forensic
Code Analysis.

R&D tax credits are based on uncertainty, not success. Our engine parses your git history to identify the struggle, failures, and iterations that prove your claim.

Local Ingestion
Read-Only Access
evidencestack-cli — bash — 80x24
~/projectgit log --stat --since="1 year ago" | evidencestack analyze
Initializing engine v2.4.0...
ANALYSIS TARGETSTATUS
> Ingesting commits...14,205 OK
> Building cognitive graph...Done
> Detecting struggle patterns...Processing
High Uncertainty
12 Clusters
Concurrency, Latency
Qualifying Expenditure
Est. £145k
Based on time tracking
> Generating narrative for "Payment Gateway Migration"...
> Linking evidence [PR-402, PR-405, Jira-842]...

Compatible with your existing toolchain

GitHub
GitLab
Bitbucket
Azure DevOps
Jira
Linear

The Analysis Pipeline

We convert raw engineering data into a defensible tax narrative through a rigorous 3-step process.

STEP 01

Cognitive Diff Analysis

We analyze the logic change in the diff to understand intent—distinguishing simple refactors from complex concurrency fixes.

STEP 02

Contextual Graphing

We map the relationship between tickets, PRs, and commits to build a timeline of the feature's lifecycle and struggle.

STEP 03

Narrative Construction

We synthesize the struggle found in the code graph into a coherent AIF-ready narrative, linking goals to evidence.

Code volume ≠ R&D.

Most developers write thousands of lines of "routine" code for every one line of "innovative" code. Merging them creates audit risk. We separate them using semantic analysis.

Routine Work (Ignored)

Standard patterns, CRUD operations, UI tweaks.

Qualifying R&D (Flagged)

Uncertainty, novel algorithms, performance optimization.

split_brain_resolver.tsTypeScript
4243444546474849
// Previous approach: Standard Quorum (Failed under partition)
-const isQuorum = nodes.filter(n => n.active).length > TOTAL / 2;
-if (!isQuorum) throw new SplitBrainError();
// New approach: Vector Clocks + CRDT Merge
+const localVector = await this.getVectorClock();
+const mergedState = CRDT.merge(localVector, remoteState);
+return this.reconcile(mergedState);

Audit Defense Ready

Every claim is backed by a digital paper trail linked directly to the source code. We don't just tell HMRC what you did; we show them.

Traceability Matrix

To address the latency issues in the payment gateway, we initially attempted a synchronous processing model.

Linked Evidence
Jira-842: Timeout at 500 RPS

We resolved this by re-architecting the service to use an event-driven pattern with a dead-letter queue.

Linked Evidence
PR #405: feat: SQS + DLQ
Balanced Workflow

The AI is the Analyst.
You are the Judge.

Evidencestack is not a black box that auto-submits to HMRC. That would be reckless. We act as a forensic researcher—digging up facts and presenting a cited draft.

Full Edit Control: You can rewrite, delete, or expand any part of the generated narrative.

Advisor Collaboration: Invite your R&D tax advisor to review the evidence before downloading.

Forensic Extraction

COMPLETED

Engine analyzed 14k commits and identified 3 key technical uncertainties.

Duration: 42s

Engineer Review

ACTION REQUIRED

Review the generated claims. Does this accurately reflect the technical difficulty?

Compliance Sign-off

Final check by tax advisor or finance team.

Technical Superiority

Why LLMs fail at
code analysis.

Generic LLMs hallucinate code, forget context, and pose security risks. Evidencestack is a specialized graph database coupled with forensic agents, built specifically for this task.

Infinite Context Window

We analyze the entire repository history. An LLM sees a file; we see how Feature A in January caused Bug B in March.

Zero-Knowledge Training

We do not train our models on your code. Your IP remains your IP. Analysis runs in ephemeral sandboxes.

Stop guessing. Start measuring.

Connect your repository for a free R&D eligibility heat map.