Skip to content

Lab

Small things built to understand a problem or because they ought to exist.

Experiment surface Every entry declares a status. Conceptual means exactly that: nothing is built.

"AI made me an app" is not an achievement any more. Anyone can produce one in an afternoon, and the artefact alone says nothing about the person who shipped it. What is worth publishing is the arc around it: why this problem, what was chosen and rejected, what it cost to get past localhost, what was measured, and what is still broken.

So each entry here carries the same things — the intent, the build story, the trade-off it exposes, an explicit split of what AI did and what I decided, the evidence, and the limits. Anything that cannot support that treatment does not go on the page.

Two rules keep this honest:

Each app is a working argument. It has to make a case about how systems should work — that metrics need governance, that retrieval architecture is empirical, that agents need reversibility. A generic wrapper demo argues nothing and dilutes everything around it.

Maturity is declared, never implied. "I do not intend to maintain this" is credible product communication, not an admission. Unsupported is a status, and so is conceptual.

Label Meaning
Active Being worked on now, and running
Maintained Running; changed only when it breaks or a fact goes stale
Prototype Works, deliberately incomplete, may be abandoned
Unsupported Real and usable, but no support and no roadmap
Conceptual Designed, not built. No code exists.
Archived Was real, no longer maintained

Built

Active · you are using it

The publishing pipeline behind this site

Everything I have built for years belongs to someone else. This is the machinery that publishes what generalises from it and structurally cannot publish what does not — a three-tier firewall enforced by a CI guard that was negative-tested before it was trusted.

Includes the guard job, generalised, for anyone with the same problem.

Read the build note →

Active · public source

A publishing platform for a family memoir

A memoir written for great-grandchildren has to outlive every platform it is published on. One source, four languages, three output formats, access gated at the edge — and two licences in one repository, so the tooling is reusable while the story stays the family's.

Its completeness checker is the fail-loud pattern in a content pipeline. Same argument as the enterprise work, no budget and no stakeholders.

Read the build note →

Prototype · in editorial review

Whitepaper: latent spaces and agentic RGM

A long-form piece on semantic architecture for agentic systems, held back through a sourcing pass and an original-contribution section. Not linked until it clears both.

Track it in Writing →

Designed, not built

Listed because they are real decisions on the roadmap and because publishing the shortlist is more honest than publishing a finished-looking page later. No code exists for any of these. Each is assessed against one question: does it argue something I already claim elsewhere on this site?

Semantic Metric Explorer — next

Status: conceptual. Nothing is built.

A business user sees a KPI and cannot establish what it means, what grain it has, which filters affect it, who owns it, or whether it is safe to compare across markets. Search a metric; get definition, formula, grain, dimensions, sources, certification status, owner, related metrics and caveats — plus a "why this number differs across markets" explanation derived from declared semantic rules, with relationships as navigation rather than decoration.

The argument: a semantic layer is not a metrics catalog. It is an interface for governed organisational meaning.

Why this one first: it needs no model calls, no secrets and no backend — a synthetic CPG metric model and a static front end. That makes it shippable rather than permanently deferred behind operational work, and it makes a claim this site already argues into something you can click.

Retrieval Evaluation Workbench

Status: conceptual. Nothing is built.

Teams assert that graph-enhanced retrieval beats vector retrieval without testing whether it improves the questions that matter. Pick a question set and a corpus; compare vector, hybrid and graph paths on answer quality, citation coverage, retrieval precision, latency, token cost and failure category; inspect the retrieved context, not only the scores.

The argument: retrieval architecture is an empirical design decision, not a branding choice.

Why not first: it needs model calls, and model calls need cost caps, rate limits and a kill switch before anything is public. The first version will publish pre-computed results over a fixed public corpus; interactive comes after the controls exist.

Zone Ontology — where invented story touches reality

Status: conceptual. Nothing is built. Being built with my son, who is twelve.

An ontology of the S.T.A.L.K.E.R. universe and its lineage: a 1972 novel, a 1979 film, a real catastrophe in 1986, a game series, and the works that followed. The subject is not the game — the subject is the graph of influence between invented story and physical reality, which runs in both directions and, in one case, backwards in time. The novel about a contaminated exclusion zone precedes the disaster that made one real, in the same country; the games then changed how people imagine the actual place.

So the edges are typed accordingly: adapted_from, depicts_real_place, fictionalises (carrying what changed), contradicts_reality, anticipates, shapes_perception, disputed_by. Every node and edge carries a source and a certainty — canon, interpretation, disputed, or real-world fact.

The argument: the machinery that governs enterprise meaning — typed entities, declared relationships, provenance on every claim, competency questions as the acceptance test — is not about enterprise software. It is about meaning. A domain a twelve-year-old cares about is the harder test, because nobody is paid to keep it tidy and every claim is contested by someone on the internet.

Why it earns a place here: it shares an engine with the metric explorer above. One explorer, two domains — enterprise metrics and a fictional world's lineage — is a stronger claim that the pattern generalises than either could make alone. He owns the entities, the categories and the competency questions; I own the schema, the provenance rules and the tooling.

Handled with care: Chernobyl is a real catastrophe with real victims, in Ukraine, with a live wartime history. Real-world nodes are factual and sourced. Where the fiction romanticises, that is recorded as a typed edge with the difference stated — which is the entire point of the model. Unofficial, non-commercial, no game assets, rights acknowledged.

Decision-Log Generator

Status: conceptual. Nothing is built.

Architecture decisions vanish into meetings, tickets and chat threads. Capture a proposed decision, answer guided questions on context, alternatives, constraints, risks, reversibility and evidence, and get an ADR draft with its links to other decisions — exportable as Markdown.

The argument: decision quality improves when rationale, alternatives, ownership and evidence are captured as first-class data.

What is not here, deliberately

Client and employer systems. The RGM knowledge platform and an internal pre-sales review platform are both substantial builds; neither is mine to publish. What generalises from them is in Methods.

A chatbot over this site. Core professional material does not go behind a chat interface. Navigation and source pages come first; an assistant would be a layer over them at best, and only once they are good enough to be worth querying.

If any of these ships with a live demo

The rules it will be held to, stated in advance so the claims stay matched to the validation:

  • Generated code is untrusted until reviewed line by line.
  • Secrets stay server-side — never in a repository, a browser bundle, logs, or a prompt.
  • Least-privilege credentials, and a demo environment separate from anything real.
  • Rate limits, abuse controls, logging, a hard cost cap on model calls, and a kill switch.
  • Human approval for any consequential action.
  • A stated data-retention and deletion policy.
  • No claim of "secure", "private" or "production-ready" without validation that supports it.

That last one is the whole discipline. Shipping fast is fine; shipping a claim the validation does not cover is not.