SKIP TO CONTENT
MATTER TYPE / PATENT & ITC

Patent and ITC proceedings: what a repository proves, and what it only appears to

Software patent matters and Section 337 investigations put source code at the centre of the evidence and then wrap it in a protective order that governs where it may be read, on what machine, by whom, and for how long. The forensic questions are custody, completeness, correspondence and dating — and the last of those is where most of the overreach happens.

QUESTION
Is this the code, and can it be dated
CORE RECORDS
VCS history · build output · binaries
CLOCK
ITC target date, commonly 16–18 months
ACCESS
Stand-alone machine, no network
DELIVERABLE
Rule 26 report · ITC expert report
ROLES
Testifying · Consulting · Neutral
IN SHORT

In a patent or ITC matter the forensic record normally establishes what was produced, whether the production is internally consistent and complete on its face, whether a produced source tree corresponds to the shipped binary, and what the version history does and does not reliably record. It does not establish infringement, validity, when code was authored, or who wrote a given line — the last two because repository metadata is written by the client and can be set to anything.

What is actually in dispute

Two questions sit underneath a software patent case and neither is about the claims: whether the code in front of the expert is the code that matters, and whether the history attached to it means what everyone is assuming it means.

The first is a completeness and custody problem. Source is produced from a repository, or from an export, or from a build machine, by an engineer following instructions from counsel; branches are omitted, submodules do not come across, generated files arrive without their generators, and third-party dependencies are referenced rather than included. None of that is necessarily improper, and all of it changes what the production can support. An examiner establishes what is there, what the tree references that is not there, and whether the structure is consistent with the way the producing party says it builds software.

The second is a dating problem, and it is the one that produces excluded opinions. Version control looks like a ledger. It is not one. It is a content-addressed store whose date fields are supplied by whoever made the commit, and treating it as an authenticated timeline is the software equivalent of treating a file’s creation date as the moment a document was written.

Priority, conception and the temptation to date code

Invalidity and priority arguments create constant pressure to say when something existed. A prior-use or on-sale theory wants a date; a derivation or inventorship dispute wants to know who wrote what and when; a trade secret claim travelling alongside the patent claim wants to know when code appeared in a competitor’s product. Every one of those questions is legitimate, and every one of them is answered badly by reading the timestamp off a commit.

What answers them better is corroboration from systems the developer did not control. Build server records, issue tracker entries referencing a commit, release archives with their own publication dates, package registry publication records, cryptographically signed tags, and a copy of the repository held by a third party at a known date. Where those exist, a defensible interval can be stated. Where they do not, the honest finding is that the repository records a sequence and not a calendar.

Which records bear on it

The evidentiary centre of gravity moves off the operating system in this matter type and onto the development toolchain, which keeps records of a different character: rich, structured, and almost entirely under the control of the party that produced them.

The repository

A code repository supplies commit history— the sequence of changes, their parentage, their messages, and the two date fields each carries. The graph itself is cryptographically self-consistent: each commit’s identifier covers its content and its ancestry, so the ordering of a chain cannot be quietly altered without rewriting every descendant. That property is genuinely useful, and it says nothing about whether the dates are true. Blame maps lines to the commit that last touched them, which is an index rather than an attribution.

Builds and binaries

Compiled output carries its own evidence: symbol tables, string constants, embedded version resources, compiler and linker identifiers, debug records where they survive, and the structural layout the toolchain produced. Comparing those against what the produced tree compiles to is how correspondence between source and product is tested. Continuous integration systems, artifact repositories and package registries hold publication records with their own timestamps, and those are among the few dates in this matter type that a developer did not write by hand.

Custody of the production itself

How the code arrived matters as much as what it says. A production hashed at export, with SHA-256 values recorded per file and a chain of custody for the media, can be shown to be unchanged between review sessions and between experts. A production copied onto a review machine by hand, with no manifest, cannot — and in a matter where both sides will examine the same tree months apart, that becomes an argument nobody needs.

Limits of proof

What this evidence cannot establish

  • When the code was written. Author and commit dates are values the client wrote and any contributor can set. Rebasing and squashing rewrite them, an import from a prior system collapses history, and a repository created at migration has none. Dating requires corroboration from outside the repository.
  • Who wrote a given line. Commit identity fields are local configuration and are not verified unless the commit is signed. Blame records the last change, so a formatter run or a licence-header sweep reassigns whole files to whoever ran it.
  • That the production is complete. An examination sees what was produced. Missing branches, submodules, generated sources and vendored dependencies can often be detected as references to absent things, but absence from a production is not absence from the product.
  • That similarity means copying. Shared libraries, generated code, published interfaces, house style enforced by a linter and the small number of sensible ways to write a given routine all produce resemblance. Filtering those out before drawing any inference is the whole method, and skipping it is the classic defect.
  • Infringement, validity or priority. Claim construction and the mapping of accused functionality onto limitations belong to the technical expert and ultimately the tribunal. A forensic examiner supplies the foundation those rest on and does not step onto them.

Where the same repository is also the subject of a misappropriation claim, the device-side question — how the code left, and by what route — is the trade secret examination, and the two are normally run together because neither answers the other’s question. The comparison methodology itself is set out on the source code review page.

The expert’s role and the deliverable

  1. Read the protective order before anything else. The protective order decides who may look, on what machine, with what tools, what may be printed, and whether a source code tier above attorneys’ eyes only applies. Expert disclosure and objection periods run on their own clock, and an expert who is not yet approved cannot be in the room.
  2. Specify the review environment in advance. A stand-alone, air-gapped machine with the searching, indexing and comparison tools already installed, adequate memory for the codebase, and a working printer with a page log. Every one of those is negotiated before the review, because none can be fixed on the day.
  3. Establish the production’s shape first. Directory structure, build configuration, what the tree references that it does not contain, what is generated, and what is third-party. That inventory is the finding that everything else in the report depends on, and it is often the finding that changes the case.
  4. Test dating claims against outside sources. Before any opinion rests on a commit date, check whether the history shows rewriting, whether an import boundary exists, and whether a build system, registry or signed tag corroborates the interval. Where nothing does, say so.
  5. Compare source to shipped product where the question requires it. Correspondence established through symbols, strings, structure and version resources, with the non-determinism that prevents a byte-identical rebuild stated rather than glossed.
  6. Report, deposition, and hearing. A Rule 26(a)(2)(B) report in district court, or an expert report on the administrative law judge’s schedule at the Commission — with exhibits prepared so that material designated at the source code tier is handled correctly at every step, including at the hearing itself.

Where Rule 702 pressure falls here

Under Rule 702 as amended on December 1, 2023, the proponent must show it is more likely than not that the opinion reflects a reliable application of the method to the facts of the case. At the Commission the administrative law judge looks to the federal rules of evidence rather than being bound by them in every particular, but the reliability arguments themselves travel across both forums largely unchanged.

  • Commit metadata offered as a date. An opinion that a feature existed by a certain date, resting on a timestamp the developer’s own client wrote, is the most exposed sentence in this matter type — and the exposure is complete, because the mechanism by which the field can be set is trivially demonstrable.
  • Similarity without filtration. A comparison that reports raw matching percentages, without first excluding third-party code, generated output, published interfaces and standard idiom, measures the language rather than the copying. Opposing experts rerun exactly that filtration.
  • Tool output presented as the analysis. A similarity detector produces a ranked list. The opinion is the reasoning that survives after each hit has been examined, and a report showing the list without that work invites the argument that no method was applied to the facts of the case.
  • Opinions on the ultimate technical issue. Infringement, validity, priority and the domestic industry requirement are not forensic findings. An examiner who reaches them has both a Rule 702 problem and a scope problem in front of a tribunal that will notice.
  • Protective order handling in the report itself. Quoting designated code into an exhibit that is not properly marked, or working from notes that left the review room, is not a reliability defect but it can end an expert’s usefulness in the matter faster than any Rule 702 motion.

The Daubert Docket collects rulings on digital forensic and software testimony, and the Daubert exposure check walks an opinion against the same failure modes before it is served.

RECORDWHAT IT ESTABLISHESWHAT IT DOES NOT ESTABLISH
Commit graph and parentageThe order of changes, and that the chain has not been altered without rewriting every descendantWhen any commit was made. The graph fixes sequence, not calendar dates
Author and commit date fieldsWhat the committing client recorded at the time it wrote the objectAnything verifiable. Both fields are settable, and rewriting history resets them wholesale
Blame outputWhich commit last modified each line, as an index into historyAuthorship. Formatting sweeps and header changes reassign whole files to one contributor
Signed tags and signed commitsThat a key holder attested to a specific tree state, which is the strongest dating evidence a repository holdsAnything about unsigned history, which in most repositories is nearly all of it
Build system and registry publication recordsThat an artifact was built or published at a time recorded by a system the developer did not controlThat the published artifact was built from the produced source, without comparison
Shipped binary structureSymbols, strings, version resources and layout, supporting correspondence with a produced treeByte-level identity. Ordinary build non-determinism defeats reproduction in most toolchains
Production manifest and hashesThat the tree examined is the tree produced, unchanged between sessions and between expertsThat the production is complete, which is a separate question about what was collected
The right-hand column is where Rule 702 motions land in this matter type, and the first two rows account for most of them. Terms in this table are defined in the glossary.

Questions counsel ask

Can the repository tell us when this code was written?

It tells you when a commit was recorded in that repository, which is a different fact. Distributed version control stores an author date and a commit date, both of which are values the client wrote and both of which any contributor can set to anything. Rebasing, squashing and history rewriting change them wholesale, an import from an older system usually collapses years of development into a single initial commit, and a repository created at a migration has no history before the migration at all. Dating development reliably means corroborating the repository against something outside it — build servers, issue trackers, release archives, signed tags, or a copy held by a third party.

Does git blame tell us who wrote a line?

It attributes a line to the commit that last touched it, and that commit carries a name and address the committer configured on their own machine. Those fields are freely settable and are not verified by anything unless the commit is cryptographically signed. Blame is also a record of the last change, not of authorship: a whitespace normalisation or a formatter run reassigns every line in a file to whoever ran it. It is a good index into history and a weak basis for attributing work to a person.

Can you prove the produced source is what actually shipped?

You can usually establish correspondence and rarely establish identity. A byte-identical rebuild is defeated by ordinary non-determinism — embedded build timestamps, absolute paths, compiler and linker versions, optimisation settings, and ordering that varies between runs. What can be compared is structure: symbol tables, string constants, function boundaries, resource sections and version metadata in the shipped binary against what the produced tree compiles to. Consistent correspondence across those is a strong finding. It is not proof that no other code was in the product.

How does source code review actually work under a protective order?

Typically the producing party makes the code available on a stand-alone computer, without network access, in a controlled room, with the examining expert named and approved in advance and often subject to a prosecution bar. Printing is limited, paginated and logged; no recordable media leaves the room; and notes may themselves be treated as protected material. The practical consequence is that everything an expert wants to search for has to be planned before arriving, because a review day cannot be repeated cheaply and a tool that was not installed on the machine is not available.

What is different about the ITC schedule?

Section 337 investigations run to a target date set shortly after institution, commonly in the region of sixteen to eighteen months, with the evidentiary hearing well before that and expert discovery compressed accordingly. The effect on forensic work is that source code review, expert reports and rebuttal all land inside a window that in district court would still be fact discovery. Scope has to be decided early and held, and an examination plan that assumes a second look usually does not get one.

Are you offering an infringement opinion?

No. Mapping accused functionality onto construed claim limitations is the technical expert's task in the case and is a different assignment. What a forensic examiner supplies is the evidentiary foundation underneath it: that this production is complete and internally consistent, that this version corresponds to what shipped on this date, that this history is or is not reliable, and that these files are what the producing party says they are. Those findings support an infringement analysis; they are not one.
  • Source code review

    Comparison methodology, filtration, the protective-order review environment, and what a similarity finding is worth once the noise is removed.

  • Trade secret litigation

    The device side of the same dispute — how code left a machine, by what route, and the gap between access and exfiltration.

  • Version control terms in the glossary

    Commit history, blame, repositories and protective-order tiers, defined the way they are used in evidence rather than in engineering.

  • Daubert challenges to digital evidence

    Rule 702 as amended in December 2023, the reliability factors, and the ways technical opinions actually get excluded.

ENGAGE AN EXPERT ON A PATENT OR ITC MATTER

Review days are scheduled weeks ahead, expert disclosure and objection periods run on the protective order’s own clock, and a Commission target date does not move for anyone. Send the matter, the forum, the entered protective order, and the production format — a conflicts check and a scoping call follow.

A conflicts check and scoping call follow, normally within one business day. Please do not send privileged or case-sensitive material until conflicts have cleared.

WEEKLY BRIEFING

Digital evidence, explained for litigators.

One email a week on forensic method, digital evidence, and expert testimony — written for counsel, not for technicians. No pitches.

DOUBLE OPT-IN · UNSUBSCRIBE ANY TIME · PRIVACY POLICY

Attorney advertising / expert services. This page describes forensic practice and the procedural rules that govern expert evidence in general terms. It is not legal advice, and it is not a substitute for checking the rules, standing orders, and case law of your own forum. Prior results do not guarantee a similar outcome.