FrankenSuite research program · A shareable brief

FrankenGit A Git Forge in Zero-Unsafe Rust, Designed for Agents

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,193 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 Git is, and why it matters

Git is the version-control system underneath nearly all software: it records every change to a codebase, who made it, and how to get any past version back. A forge is what GitHub is: the hosted layer around Git, with pull requests, issues, code review, access control, and CI (continuous integration: automated checks that run on every change). The protocol is a commodity. The moat is ecosystem and network effects: your collaborators are there, your tooling plugs into it, and someone else gets paged at 3 AM.

It matters because everything runs on it. The trust model of modern software (that the code you build is the code that was reviewed) is implemented, in practice, by forges. And the newest actors on forges are not people: autonomous coding agents now push commits, open pull requests, and mutate repositories. No incumbent forge was designed with that in mind. Their agent story is bolted on: bots acting through human-shaped APIs, with no first-class notion of what an agent was authorized to do.

That is the gap FrankenGit points at: a forge whose authority model is built for agents from the start: evidence-carrying changes, intent runs with effect authorization, and a verifiable record of what each agent did and why.

02 · Why build it

Why rewrite it in Rust?

The maintainer, Jeffrey Emanuel, a solo developer building a whole suite of Rust reimplementations, makes the Rust case a constitutional matter. The project's negative-evidence ledger contains an entry rejecting the hypothesis that "unsafe or FFI shortcuts are required for world-class Git performance," with the escape hatch that any exception would need a public constitutional amendment. The tree backs it: 49 crates, 589,340 lines, an exhaustive grep finding no unsafe fn, no unsafe impl, no unsafe block anywhere in first-party code. The only acknowledged unsafe is one transitive dependency, documented in a comment. It never links or invokes libgit2 or C Git in production; upstream Git executables appear only as pinned, sandboxed conformance oracles.

The deeper case is the authority model. Instead of a mutable bare repository plus a product database as the source of truth, FrankenGit runs on one immutable decision stream plus a tiny conditional authority head: every change enters through sealed admission and lands at one exact-predecessor compare-and-swap, or it publishes nothing. That is a memory-safe substrate, yes. But the real bet is that a forge for agents needs authority you can audit, not just code that doesn't segfault.

The counter-argument: zero unsafe is not zero bugs. The failure modes that matter in a forge (a policy bypass, an authorization hole, a merge that loses intent) live in logic, not memory safety. Bus factor (the number of key contributors who could disappear before the project stalls) one at ~30 commits a day means review depth cannot cover 589,000 lines; the governance machinery is load-bearing precisely because human review is structurally insufficient. And GitHub's moat is ecosystem and trust, not protocol elegance: no team adopts a forge on implementation beauty.

03 · What was built

What the project actually built

The unglamorous core is real: owned implementations of Git objects, packs, deltas, the wire protocol, upload-pack and receive-pack, plus SHA-256 repository support rather than byte-aliasing tricks. A bounded one-node server was exercised against a real git client across 178 acceptance IDs: nonempty clone, raw push, historical state, incremental fetch.

The original contribution is claim governance as machinery. A machine-readable claims registry binds six verified claim rows to SHA-256 artifact digests, and any digest mismatch is an automatic demotion, not a reviewer-overridable status change. A checker refuses to leave the README's claims block stale. A 34-row negative-evidence ledger makes killing your own findings a first-class workflow: two entries record the maintainer rejecting his own latency and capacity results, one because the noise floor swallowed the spread, one because the saturation point moved between sweeps. Four theorems are machine-checked in Lean 4.32.0: narrow authority properties under three named boundary assumptions, with the registry explicitly noting this is not a proof that the Rust implementation refines the model. And the refusal pattern is applied everywhere: dormant verification lanes exit 3 instead of returning false greens, the receive-pack lane is disabled by default until bound to a principal, over-budget pushes get typed refusals rather than silent hangups. Fail-closed for evidence, transport, and capacity alike.

The uncomfortable findings

Uncomfortable finding

There are zero tagged releases. No product exists to adopt. The README opens by disclaiming exactly what the name promises: "not yet a general-purpose Git server, a production-ready forge, or a GitHub replacement." Smart HTTP and production SSH exist only as loopback-bound, refusal-heavy slices; the forge read models, web UI, TUI, and hosted backend are all explicitly still absent. The agent plane (the project's only genesis-stage idea, its headline wedge) is itself explicitly incomplete. The dated reality snapshot is fifteen days stale on a tree moving ~30 commits a day; even the integration-profile doc plans against asupersync 0.4.x while the lockfile already resolves 0.5.0. And the license: MIT plus a rider naming OpenAI and Anthropic, and anyone acting for them, as forbidden parties, barred from even benchmarking or analyzing the code. For a project whose mission is the agent-native forge, the two labs building the agent workforce are legally excluded. Independent validation is zero.

04 · Where it stands

Where it stands

In our program's terms: TRL 4, NODUS ring Explore. In plain English: the bounded one-node server is lab-validated against a real Git client; the integrated forge and the agent authority plane are genesis-stage designs, not running product. It is the definition of substantive-but-unproven: a real core, a self-auditing methodology, and no artifact anyone can adopt.

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: 49 first-party crates and 589,340 lines confirmed from a fresh clone; the releases API returns zero releases.
  • Tier: unassessed in packet: CI executes, but greenness is unknown.
  • Tier 3 · Maintainer claim: Nothing was compiled or executed; the Lean proofs were not run.
  • Tier 4 · External: Zero independent validation found.
  • Tier 5 · Inference: The Explore ring at TRL 4.

Should you use it?

No.

There is no release, and the README says plainly it is not a GitHub replacement.

Should you learn from it?

Yes.

The auto-demoting claims registry is the most transferable artifact in this packet, and the fail-closed refusal pattern is a genuine verification UX idea. Treat your own project's marketing as a demotable claim and watch how many of your README sentences survive.

What would change the verdict, in order

  1. a first tagged release of the bounded node, production transports landing, a second maintainer, an independent security review of the authority model, and a license the natural evaluators can sign
  2. Until then, for hosting code, Forgejo buys you the whole GitHub-compatible surface today, maintained by a community, under a real open-source license
source

05 · What it teaches

What this teaches about building with agents

The transferable lesson: make your claims machine-checkable, and let the machine demote them.

Most projects treat claims as prose: a README sentence that rots at thirty commits a day and nobody notices for two weeks. source FrankenGit binds each claim to the digest of the artifact that evidences it, and the binding is load-bearing: change the artifact without refreshing the claim and the registry demotes the row automatically. source The README's claims block is generated by a checker that refuses to leave it stale. Dormant verification lanes don't pretend to pass; they refuse with a typed exit code.

For anyone building with agents, the pattern is the point. Agents will write your docs, your tests, your benchmarks, and they will drift. Prose claims about agent-built systems rot faster than any human-written copy ever did, because the velocity is inhuman. The fix is not more careful writing; it is claims as data with expiry semantics: artifact-bound, machine-checked, auto-demoting. If a claim about your system cannot be checked by a machine, it is not a claim. It is a press release.

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/frankengit
README

its README

LICENSE

LICENSE

docs/LICENSING_DECISION.md

docs/LICENSING_DECISION.md

docs/NEGATIVE_EVIDENCE_LEDGER.md

docs/NEGATIVE_EVIDENCE_LEDGER.md

docs/REALITY_CHECK_AND_BRIDGE_PLAN.md

docs/REALITY_CHECK_AND_BRIDGE_PLAN.md

docs/GIT_COMPATIBILITY_MATRIX.md

docs/GIT_COMPATIBILITY_MATRIX.md

registries/claims.tsv

registries/claims.tsv, and VERIFY_SPEC.md at the assessed commit.