FrankenSuite research program · A shareable brief

FrankenSnowflake A Warehouse Connector Built for Agents, Not Humans

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,196 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 Snowflake is, and why it matters

Snowflake is a cloud data warehouse: the place companies keep their analytical data and ask it questions with SQL. Almost everything a business measures, from revenue to churn to inventory, passes through a warehouse like this. To talk to one, you use a connector: software that authenticates, sends your SQL over HTTPS, and hands back the results.

Snowflake ships official connectors for Python, Java, .NET, Go, Node.js, ODBC, and more. It does not ship one for Rust. The community filled the gap with snowflake-connector-rs, a Tokio-based library for humans writing Rust services, with a few dozen stars on GitHub. source FrankenSnowflake is a second entrant into that small gap. But it is aimed at a different user entirely: the coding agent.

Its premise is that an AI agent querying a warehouse needs different things than a human does: deterministic answers, permission that must be explicitly armed before anything can change, and a receipt for everything it did.

02 · Why build it

Why build it — and why Tokio-free

The maintainer's stated reasons, from the README and design docs: no ODBC, no JDBC, no third-party Snowflake crate. The wire protocol is implemented clean-room, straight against Snowflake's SQL API v2 over HTTPS. Around that core sits the agent contract layer: deterministic versioned JSON envelopes with data-source provenance, a self-describing capability registry, a write-safety ladder (nothing mutates until the profile opts in), a compile-time gate that fails the build if a credential-shaped field could leak through debug output, and BLAKE3 content-addressed receipts with an append-only audit log. An MCP server exposes the same handlers the CLI uses, so the agent and the human run the same code paths.

The structural bet is the dependency diet. The HTTP and TLS transport is built on asupersync, the maintainer's own async runtime, instead of the mainstream Rust stack (Tokio, hyper, reqwest, rustls). The justification is "one audited foundation": a smaller, fully-owned dependency graph with fewer strangers in it. A cargo-tree admissibility gate fails the build if a forbidden crate appears in any feature lane. The lock file was grep-verified: zero forbidden crates across all 589 packages, including dev lanes. The no-Tokio policy is proven by the lock file, not promised in the README.

The counter-argument is threefold, and the assessment packet makes all three. First, the gap is tiny: the community crate already serves humans, and agents can already shell out to the Python connector. Second, the custom HTTP/TLS stack is the project's largest structural risk. Bespoke transport code gets far less adversarial review than the mainstream stack, and no comparison between the two has ever been published. Third, the license rider amputates the exact audience the project targets. Details below.

03 · What was built

What the project actually built

The facts: 62,062 lines of Rust across 14 crates, zero unsafe code, four authentication lanes (personal token, key-pair JWT, OAuth bearer, workload identity). The write ladder is the heart of the agent contract: set WRITE_ENABLED and writes execute directly; require a dry-run-then-confirm ceremony with WRITE_REQUIRE_CONFIRM; DDL stays behind its own separate opt-in. The point is not ceremony for its own sake. It is that an agent running on default settings cannot mutate anything by accident.

The proof-lane machinery is the project's best work. A mock SQL API server lets the entire suite run without credentials. A DPOR race suite checks cancellation interleavings under a deterministic runtime. A compile-time build script fails the build on secret-leak patterns. And the most original testing idea is the typed-skip contract: when credentials are absent, the live-proof lanes emit a structured skip event instead of silently passing. So "no credentials" can never be mistaken for "green."

It ships. Four releases, v0.0.1 to v0.0.4, with 16 checksummed multi-platform binaries, plus a crates.io publication that the registry itself flags as license "non-standard. source

Evidence · CI status

What the project’s own CI said at the pin

the pin = the commit the assessment was pinned to.

  • The project's own CI (continuous integration: automated checks that run on every change) agrees with the skeptics in places: the latest run was red, with the flagship live-plus-MCP feature lane failing on two platforms — exactly the combination a buyer evaluating this for agent use would run.
  • AGENTS.md says "this repository never uses GitHub Actions," and a previous workflow was deleted for violating that policy.

The uncomfortable findings

Uncomfortable finding

The README wears a badge claiming live read-and-write success. source But the repository's own issue tracker says the end-to-end live proof is still in progress, the empirical wire-format golden is still open, and the docs say the credentialed evidence run "remains," because the June trial account expired. The badge is ahead of the proof. And there is a sustained contradiction at the project's heart. Yet a new workflow file has executed 140 runs while the prohibition stayed on the page.

Uncomfortable finding

Then the license. It is MIT plus a rider naming OpenAI and Anthropic — and anyone acting for them — as Restricted Parties, barred from even benchmarking, testing, or analyzing the code. The rider withholds "benchmarking" as a named right, which chills the independent validation the project most needs. Meanwhile the README says outside code reviews are done "by Claude or Codex." The project is built with, and for, the tools of a party it legally excludes. source

04 · Where it stands

Where it stands

In our program's terms: TRL 6, NODUS ring Explore. In plain English: a working system with real releases and real binaries, whose headline claim (live reads and writes) rests on the maintainer's word while his own tracker says the proof is not closed — which is why it stays in Explore instead of Pilot.

Technology readiness

TRL 6 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 6.
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: 14 crates and 62,062 lines verified from a fresh clone; the lock-file grep confirms a tokio-free dependency graph.
  • Tier 2 · CI-observed: Latest CI run (#140) red; no run covers the HEAD commit.
  • Tier 3 · Maintainer claim: Nothing was compiled, run, or contacted; the “live operation” claim is the maintainer’s release-note assertion.
  • Tier 4 · External: Zero independent benchmarks, reviews, or production deployments found.
  • Tier 5 · Inference: The Explore ring at TRL 6.

Should you use it?

Not yet.

Version 0.0.4, a nightly-only toolchain, a bus factor (the number of key contributors who could disappear before the project stalls) of one (contributions are explicitly refused by policy), a red flagship CI lane, and a license no enterprise lawyer can sign.

Should you learn from it?

Yes, and more than from most.

The dependency-admissibility gate, the typed-skip proof lanes, and the compile-time secret-leak gate are exportable methods. They would survive the product.

What would change the verdict, in order

  1. close the live-proof bead with a credentialed run against a fresh account
  2. a green CI run at the current commit
  3. the license rider narrowed or removed (the necessary condition: nothing else matters for adoption without it)
  4. a contribution policy that allows a second maintainer.

The distance to Pilot is short and concrete, which is exactly why each missing piece matters. source

05 · What it teaches

What this teaches about building with agents

Here is the transferable lesson.

Anyone can promise a dependency diet. FrankenSnowflake machine-checked one: a script runs cargo tree across every feature lane, production and dev, and fails the build if a forbidden crate appears. The principle is not documented. It is enforced. The lock file is the receipt.

The same instinct runs through the whole project. The write ladder does not trust the agent's judgment about when mutation is safe. It makes unintended mutation structurally difficult and intended mutation explicit. The typed-skip contract does not trust a green test suite. It distinguishes "tested" from "untested for lack of credentials" in the output itself. The issue tracker publicly reopened its own falsely-closed proof bead.

The lesson for anyone building with agents: principles that live only in documentation are wishes. source Put them in the build. If your project has a rule that matters — about dependencies, about secrets, about when an agent may change things — write the gate that enforces it. Then make the gate louder than the rule. The connector may or may not survive. The habit of machine-checking your own principles will.

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_snowflake
README

its README

LICENSE

LICENSE

CHANGELOG

CHANGELOG

docs/live_proof.md

docs/live_proof.md

AGENTS.md

AGENTS.md at the assessed commit

franken-snowflake-sqlapi

the crates.io API record for franken-snowflake-sqlapi

GitHub Actions run data

GitHub Actions run data (latest run red, 2026-09-13)

snowflake-connector-rssnowflake-connector-rs

the community snowflake-connector-rs repository for the adjacent-facts comparison.