Skunkworkz

Project M&M · the maverick moonshot · started 28 October 2026

Train an open frontier-class model on a year of our own intelligence. Run it on one card we own.

Operation M&M is the next chapter of Ninja Cortex. The frontier open-weights model gpt-oss read our threat graph untrained and scored 195 of 200. The plan is to teach it our dialect, our analyst roles and our conversation on a single 96 GB card, serve it inside our own rack, and let it write the first draft of everything the estate publishes, with Claude as the editor. Every number on this page comes from a measured run and carries its date.

The scoreboard

The same 200 hand-written analyst questions, the same dossier path, the same judge. The set and every miss are on the 200.

171
our 3B, trained, on four CPU cores we own
live fallback
185
our 14B, trained on the same set, on a rented 32 GB card (184 through the live path)
live reader
185
gpt-oss-20b, untrained, 0.56 s a question, measured 27 Oct 23:48 UTC. Equal to our trained 14B before any training.
new, 27 Oct
195
gpt-oss-120b, untrained, on a rented 96 GB card
showcase
run 4
the 14B on run 1's set plus the multi-turn family, 73,688 pairs, training overnight
training
5.7 s
a training step for gpt-oss-20b in 16-bit on one 96 GB card, 73 GB used, measured 28 Oct 00:10 UTC. A full run on our set is about three hours. The 120B in 4-bit ran out of memory on the same card tonight: it needs a leaner recipe or two cards.
new, 28 Oct
run 5
gpt-oss-20b training on run 1's exact set, 65,843 pairs, with the 200 and the probes at the end
training

updated by hand as results land · nothing here is a forecast

Why this is the moonshot

Eleven training runs since 23 October taught us one thing above the rest: the score on the 200 never moved with another family of training data, at either size. It moved with the size of the model that reads the graph: 170, 185, 195. The remaining misses are reasoning, dates and long dossiers, and more of the same pairs cannot fix them. A frontier open model that reads at 195 untrained changes what training is for. It is no longer the first year of work, it is the last five percent: our dialect, our roles, our conversation.

Tonight's untrained 20b at 185 is the first proof. It equals the 14B we spent a week training, on a smaller card, faster.

Four tiers, one card

In orbitwhat becomes possible

The card running day and night with no cap. Continuous agents, private-model pilots inside a customer's wall, a channel bot that never touches a third party, the big model teaching the small ones, synthetic data at scale.

Abovethe editor

Claude. Judgement and voice: the Daily's final pass, adversarial review, synthesis, the analyst's take, anything under the byline, code changes. The big boss.

Adjacentthe workhorse

gpt-oss on our card, as NIKO full time. Every grounded, structured, high-volume job across the estate: reading the graph, drafting from facts, proposing read-only queries, triage, detection rules, the agents' structured output. Zero cost per token.

Belowthe floor

Deterministic code and the small models. The 34-million-parameter Cortex for surprise scores and ranking, the 3B on CPU as the fallback reader. Free, always on.

What moves to the card, and what never does

Moves

reading
the Cortex reader, the graph's briefs and reports, explain-a-change, ask-the-graph
drafting
first drafts of the Daily and Weekly, SITREPs, briefings, comms templates, architecture passes
queries
plain-English to read-only query proposals, behind the same double guard
extraction
entities and relationships from feed text, reviewed by a human before the graph
agents
triage, rules, the scheduled ops agents with tools off and schema-checked output
bots
the Telegram, Slack and Teams agent, answering without a third party

Never moves

voice
the Daily's voice pass and verify; the ScottG voice
judgement
the Scientist's adversarial review, Deep Read synthesis, the analyst's take
byline
anything published under a name
code
code changes, and every big-red-button decision: live products, auth, infrastructure, deletes
numbers
no model, large or small, is ever the source of a number. Numbers come from the graph.

Two front doors, one engine

Ask

Public, free, the funnel. A plain answer box over the whole graph: conversational, allowed to paraphrase, sources folded under the answer, rate-limited, signal only. Built now, public in 2027.

Investigate

The console. Forensic: quotes, never paraphrases, every query shown, receipts, second look, hunts, briefings, drill-down into every name. Live for testers.

The order of work

  1. Run 4's verdict. The 14B plus the multi-turn family. Its gate is the dialogue set, because that is what multi-turn is for.
  2. gpt-oss-20b untrained on the 200. Done: 185. The 20b is the student unless the 120B spike changes the picture.
  3. The training spike. One 96 GB card: the 20b in 16-bit, the 120B in 4-bit. Seconds per step, memory, and whether an adapter serves over the quantised base without a lossy merge.
  4. Run 5: train gpt-oss on the clean set plus the fixed roles. Gate: not below the untrained score, dialogues at or above 85 of 90, roles at or above their baselines, invented at or below 0.6 percent.
  5. Local-first routing, one app at a time, each job class with its own small hand set.
  6. The card comes home. Rented by the week first; owned when the numbers and the price agree.

If we started again

The story line

A graph we built. A model that reads it, trained on our own intelligence, running on one card in our own rack, writing the first draft of everything we publish, with Claude as the editor and every number from the graph. Nothing leaves the building.

The deck

Ninja Cortex, plainly

Twelve slides in plain language for anyone: the library, the librarian, the recipe, the apprentice, the newsroom and the receipt, with the scorecard. Free to share.

Download the deck (PDF, 1.7 MB)