FrankenSuite research program · A shareable brief

FrankenOverlap A Search Engine With a Courtroom and No Trial

A shareable brief from the FrankenSuite research program. Every claim below traces to the assessed repository; sources are linked at the end. Assessment pinned September 22, 2026.

Assessment pinned September 22, 2026 (the assessed commit)·~1,275 words·5 sections·Every claim traceable to a source
Six definitions. NODUS is the program’s four-ring verdict scale (Invest, Pilot, Explore, Monitor) assigned per assessment packet. TRL is technology readiness level, scored 1 to 9 per packet. CI is continuous integration: the project’s automated test runs. The pin is the exact commit the assessment froze on; every claim is evaluated at the pin, not at HEAD. The rider is the license clause withholding all rights, including benchmarking and analysis, from OpenAI, Anthropic, their affiliates, and anyone acting for them. Bus factor is how many people can leave before the project stalls; it is 1 for every repo here.

01 · What it is

What the problem is, and why it matters

Keyword search answers one question: which documents are about this topic. A different question goes unanswered: where did this passage come from? Paste a paragraph into a search box and it will tell you the topic. It will not tell you the paragraph was lifted from a contract signed in 2021, edited in three places, chopped into pieces, and rearranged.

The second question matters in more places than you might think. Plagiarism investigators live on it. Publishers comparing editions of a book need it. Lawyers tracking how a clause evolved across contract versions need it. Archivists recovering scanned text with recognition errors need it. And in the last few years a new customer showed up: AI labs trying to answer "what was my model trained on," also known as training-data provenance. The academic version of this task has run for years as the PAN text-alignment competitions, scored by a metric called PlagDet that measures precision, recall, and how cleanly detected passages line up with the truth.

For all of this, today's tools are wrong tools used well. Keyword search (BM25) and embeddings answer "what's this about," not "which exact words survived." A similarity score is not evidence you can point at. FrankenOverlap's bet is that an engine returning exact source spans with a traceable chain of custody fills a lane that currently has no open occupant.

02 · Why build it

Why build it in Rust, from scratch

This is not a rewrite. There is no original product being ported. It is clean-room: no fork, no port, no inherited codebase. Jeffrey Emanuel, the solo developer behind the whole FrankenSuite, gives his reasons in the README and design docs. They come in three parts.

First, the problem is different. Lucene, Elasticsearch, and vector databases answer "which documents discuss this topic." Edited-passage retrieval needs "which exact source spans survived, what changed, and what evidence supports the answer." No general search library ships the alignment portfolio (fingerprinting, diagonal voting, anchor chaining, exact verification) that this task needs, so he built it.

Second, the safety posture fits the use case. The engine is built to take untrusted corpora (random documents, SEC filings, scanned archives), so its index format is fail-closed: malformed inputs get rejected rather than parsed. The workspace forbids unsafe code in all six crates.

Third, the auditability bet. The maintainer's wager is that exactness is not enough. Every match should carry its evidence, and every performance claim should carry its proof. So he built the proof machinery first.

The counter-argument comes from the README itself. General search is owned by Lucene and company. Commercial plagiarism detection is owned by Turnitin and iThenticate, whose moat is institutional contracts and proprietary databases, not algorithms. Semantic paraphrase is owned by embeddings. The README cedes all three lanes and declines to compete with any of them. What remains is a narrow unoccupied lane — auditable textual provenance — and nothing in the repository shows a buyer waiting in it. Twenty-two stars and three forks suggest there isn't one yet.

03 · What was built

What the project actually built

The raw facts: about 57,743 lines of Rust across six crates, written in 21 days (347 commits, mid-August to early September 2026), by one person, almost entirely by hand: only four commits in the history carry agent co-authorship trailers. The engine fingerprints text with 128-bit rolling fingerprints, keeps the rare ones (a technique called winnowing), votes along text diagonals to find candidate regions, chains the anchors together, and then verifies candidates with exact algorithms before accepting anything. A fielded BM25 keyword layer and an explainable hybrid fusion sit alongside it.

The codebase plays a joke on itself that is worth knowing. The word "unsafe" appears 18 times in 57,743 lines. Every occurrence is an error string like "unsafe corpus path," part of the path-traversal hardening. Zero unsafe blocks exist. In this project, "unsafe" is a filesystem concept, not a language one.

More interesting than the engine is the evidence machinery, which takes up nearly half the project's mass. A claim gate takes preregistered claim manifests and returns verdicts of supported, inconclusive, or unsupported, computed with paired bootstrap statistics. A natural-label adjudication module settles disagreements between label sources. An evidence suite emits immutable proof bundles: corpus, query, commit, compiler, hardware, baseline, quality, span, latency, and uncertainty receipts. The README's rule is explicit: no public speed or quality claim without a checked-in evidence bundle. Until those conditions are met, superiority claims are hypotheses, not project facts.

And the README says, in plain text, that the conditions have never been met: "this README does not claim that FrankenOverlap has already beaten BM25, exact search, Jaccard, SimHash, or exhaustive edit-distance retrieval by a particular margin." There is no benchmark table to disavow. The disavowal is pre-emptive, which is the point.

Evidence · CI status

What the project’s own CI said at the pin

  • GitHub Actions is deliberately disabled ("validated on owner-controlled machines"), so no third party can observe whether the 173 counted tests are green.

The uncomfortable findings

Uncomfortable finding

A benchmark courtroom with no trial: no completed evidence run exists anywhere in the repository. No proof file, no results file, nothing to reproduce. The central thesis, that this engine beats the baselines on edited-passage retrieval, is explicitly unproven. The conformance suite is eight fixture-scale tests over five documents totaling 28 KB. There were no releases and no tags at the pin (the commit the assessment was pinned to), and the repository went fully quiet for 18 days before the assessment. The GitHub repo description still markets "ultra-fast" detection. The README retracted that word, but the front page still says it. And the license is MIT plus a rider barring OpenAI, Anthropic, and anyone acting for them from even analyzing the code. source That excludes the AI labs from the training-data-provenance application the README advertises as a use case.

04 · Where it stands

Where it stands

In our program's terms: TRL 4, NODUS ring Explore. In plain English: the components exist as real code with real test contracts, but the core claim has never been tested against a real corpus, and the comparative advantage is explicitly a hypothesis.

Technology readiness

TRL 4 on a 1-to-9 scale.

NODUS ring

MonitorExplorePilotInvest

The program’s adoption ring for this project.

Verdict key

NODUS ring
Explore: The default for substantive-but-unproven work.
TRL
Technology Readiness Level, a 1-to-9 scale of how proven a technology is. This brief rates the project at TRL 4.
CI
Continuous integration: the project’s automated checks, run on every change.
The pin
The exact commit the assessment was pinned to. “At the pin” means as of that commit.

Evidence tiers

  1. Tier 1 · Verified — Confirmed by direct inspection of a fresh clone, an API response, or a live page read by the analyst.
  2. Tier 2 · CI-observed — Observed executing on live CI pages. Attests the suite runs, not that it is green, unless pass/fail is legible.
  3. Tier 3 · Maintainer claim — Asserted in README or docs by the maintainer; not independently executed or reproduced.
  4. Tier 4 · External — Independent sources: APIs, papers, press, third-party benchmarks. Absence of coverage is reported as a finding.
  5. Tier 5 · Inference — The analyst’s judgment. Always labeled; never presented as fact.

What this verdict rests on. Tier labels are the assessment packet’s own annotations.

  • Tier 1 · Verified: Counts from the clone; GitHub API: 22 stars, 3 forks, 0 releases; CI is disabled.
  • Tier 3 · Maintainer claim: The 173 counted tests were never executed; the evidence suite was never run.
  • Tier 4 · External: Zero independent coverage.
  • Tier 5 · Inference: The Explore ring at TRL 4.

Should you use it?

No.

There is no evidence run, no release artifact, and no observable signal that the tests pass.

Should you learn from it?

Yes.

And the export is not the engine. It is the claim-gating machinery: preregistered claim manifests, bootstrap verdicts that can say unsupported, an adjudication discipline, and a written rule that unproven claims stay hypotheses. That is a portable standard of care for anyone publishing benchmark numbers.

What would change the verdict, in order

  1. one checked-in evidence run with real verdicts (an honest "unsupported" would be the strongest possible advertisement for the machinery)
  2. a PAN 2013 text-alignment score measured against the published results
  3. a tagged release
  4. an observable CI (continuous integration: automated checks that run on every change) signal
  5. a second maintainer.

05 · What it teaches

What this teaches about building with agents

Here is the transferable lesson, and it is not about search at all.

This repository was built in 21 days by one person. The natural failure mode of that kind of velocity (human or agent-assisted) is confident claims with no basis: benchmarks that flatter, tables that drift. The maintainer's answer was to build the referee before playing the game: the claim gate, the evidence bundle, the adjudication module, and the README rule that nothing is a fact until the bundle exists. source He wrote the disavowal before he had anything to disavow.

Most projects discover they need evidence machinery after a claim blows up in public. FrankenOverlap installed the machinery before making a single claim. The lesson for anyone building with agents: do not wait for a false claim to build your claim-gating. Write the rules for what counts as proof first, in code, with gates that are allowed to say "unsupported." Then let the machinery judge your own work before anyone else does. The engine is unproven. The discipline of refusing to claim it works is already proven by example.

Evidence

This page cites selected evidence. The full claim-by-claim audit is in the assessment packet.

Open a panel to see what each source evidences. Full claim-by-claim audit.

Full claim-by-claim audit with evidence tiers lives in the program's assessment packet.

The repositorygithub.com/Dicklesworthstone/franken_overlap
README

its README

LICENSE

LICENSE, VALIDATION.md

docs/EMPIRICAL_STATUS.md

docs/EMPIRICAL_STATUS.md at the assessed commit

the PAN plagiarism-detection overview papers (arXiv) ...

the PAN plagiarism-detection overview papers (arXiv) for background on the text-alignment competitions and the PlagDet metric.