SchemaFlux mark

SchemaFlux

Structured AI that ships.

v1.1.0 · stable API

A Go library that makes a language model return a typed Go value instead of a wall of text you have to parse.

One public API of fluent builders over one execution path. Application code reads like Go — Extracting[Person](text).Strict().Run() — while retries, structured-output contracts, logging, metrics and cost tracking stay in one place instead of being re-implemented at every call site.

monstercameron/SchemaFlux — brand sheet
SchemaFlux brand poster — Structured AI that ships.

Brand artwork for SchemaFlux. The product is real and the code is linked above; the poster is a design exercise, not a claim.

~/projects/schemaflux · what it does

What you get.

Typed results, not string wrangling

Extract, transform, generate, classify, score, rank, cluster and compare — each returns the Go type you asked for, with generics doing the work.

Model claims and measured facts stay separate

The result envelope keeps what the model asserted apart from what the library actually observed, so a confident answer never gets promoted to a verified one by accident.

Cost is a first-class output

Retries, token accounting and spend tracking are centralized, so the price of a call is something you read rather than something you discover on the invoice.

An API surface that cannot drift quietly

The public API is captured in a snapshot test. Adding or removing anything fails the build, which makes every change a reviewed decision.

~/projects/schemaflux · built on

What it runs on.

Including the two libraries underneath it that are my own work — the framework the interface is written in, and the transport it talks over.

The builders are typed end to end — the return type is the type you named, not an any you assert.
OpenAI-compatible providers
OpenAI is the default; the provider layer is where a different backend plugs in.
Architecture decision records
The judgment calls, including the decision to ship 1.0 with known gaps, are written down as ADRs in the repository.
~/projects/schemaflux · hard parts

What was actually difficult.

The problems worth describing, and what the measurement said. Not the technology list — that is above.

Not letting a pattern matcher pose as a classifier

Redaction matches whole field names and validates card numbers with Luhn, so FirstName and APIKey are caught while Filename and a 16-digit order number are not. A bare nine-digit number is deliberately not treated as a social security number, because it is indistinguishable from an order ID. The README says plainly that it is a safety net under the fields you tag, not a substitute for tagging them.

Naming the cost of the convenient operation

Semantic deduplication asks the model about pairs, which is O(n²) calls in the worst case. The documentation leads with that rather than burying it, because the failure mode is a bill, not an exception.

Shipping 1.0 with twelve unmet criteria, on the record

Twelve of the project's own thirty-two acceptance criteria were not met when 1.0 shipped. They were listed with a reason each, and ADR 0005 argues why the version went out anyway. Writing down what a release does not do is a more useful artifact than a 0.9 that never ends — and it is why the gaps got closed in the open, across the ten commits that became 1.1.0.

~/projects/schemaflux · evidence

Counted, not estimated.

Figures taken from the repository itself. No line-of-code count — it rewards duplication and every reader knows it.

v1.1.0released, API-surface test guarding it
94.2%coverage floor, ratcheted
1execution path behind every builder
~/projects/schemaflux · honest status

Where this really is.

SchemaFlux today:v1.1.0 · stable API

The exception on this page: a library at a released 1.1.0 with an API-surface test guarding it, and every behaviour claim in its README backed by a test. It is still honest about the gaps — read "What 1.0 does not include" before depending on it for anything load-bearing.

These are personal projects, built on nights and weekends with AI agents in the loop — that is how one person ships this much surface area at once. Most of them are early: alpha or prototype, with polish that varies a lot by area. What is not early is the architecture, the test suites, and the measurements — every number on this page is counted from the repository and every claim is one you can check against the code.