I turn knowledge into machines that prove it.

Adam Shawa · independent engineer, Germany. Laws, tariffs, catalogues, procedures — read, compiled into rules and formulas, executed into results you can sign. The model reads. The code counts. You keep receipts.

SCROLL
№ 01 — THE MACHINE, DRAWN

Knowledge, operationalized.

Not “AI that reads documents”. The full loop: read the source, compile it into typed rules and formulas, execute them into results — and keep the proof. Law is the hardest case, so it’s home turf. The machine doesn’t care: tariffs, catalogues, safety codes, internal procedure.

READINTAKE

Prose, PDFs, photographed pages, mixed Arabic/Latin scripts. Cheapest method first — familiar formats never reach a model.

COMPILERULEWORKS
IF period ∈ FY26 rate = 2.5% REFUSE if input missing

Typed rules and formulas — versioned, cited back to their clause, tested against values hand-derived before the code exists.

EXECUTERESULTS
0123456789.0123456789%

Fixed-precision decimal, never floats. Deterministic: same checkpoint in, bit-identical result out. Or 4,412,809.00 — at ledger scale.

PROVERECEIPTS
REPLAY ✓ BIT-IDENTICAL

Every figure answers with its rule, its input and its run. Inputs are stored; conclusions can always be produced again.

IF THE KNOWLEDGE CHANGES, THE RULES RE-COMPILE. IF A RULE CAN’T FIRE SAFELY, THE MACHINE REFUSES. REFUSAL IS A FEATURE.

№ 02 — THE POSITION

Bolting a model onto your stack is a morning’s work.

Knowing where it must never go — that’s the job.

By architecture

The boundary isn’t a guideline. In my systems the computation engine has no network, no database, no import path to a model client.

Not discipline

Rules that live in people’s heads die under deadline pressure. Rules that live in the import graph don’t care about your deadline.

Speed is a by-product

Yes, the work ships faster than it used to. It shows up in the estimate, not in the marketing.

№ 03 — A GAME YOU CAN LOSE
SCORE 0/6 — CLICK A CARD

The sorting room

Every decision in a system is either model judgment or fixed code. Sort these six. Guess wrong and you’ll see how assessments happen.

⟵ The model may
Read the 400-page regulation
Write the number on the filing
Classify 5,000 ledger lines
Pick which product to quote
Draft the reply to the customer
Convert tonnes to metres
Code only ⟶
№ 04 — LIVE ANATOMY · STEEL DISTRIBUTOR · PUBLIC REPO, MIT

Email in. Quote out.

A real pipeline, station by station. The model touches exactly one station — it reads. Everything after that is ordinary code against real data. Drive it yourself:

TRIGGER

A purchase inquiry lands in the monitored mailbox. Attachments included. A run starts, keyed to the thread.

ON THE BENCH — RAW MAIL

Every station fails loudly. Unresolved lines are the normal case, not an error — they go to a person with the original text, the candidates, and the reason it stopped.

№ 05 — THE CAPABILITIES · WHAT TO HIRE ME FOR

Name the job.

Six shapes of work, in the words you would search for. All of them share one spine: deterministic where it counts, auditable always, models kept where they earn their place.

LLM integration

The model earns a seat, not the keys. Wired into your stack with a schema at every exit, a failure path for every call, and no route to a number anybody signs.

CLAUDE & GPT APIS · SCHEMA-LOCKED OUTPUTS · CIRCUIT BREAKERS · COST BUDGETS

RAG pipelines that stay true

Retrieval is easy to build once and hard to keep honest. Ingestion that tracks its sources, versioned indexes, every rebuild evaluated before promotion — rollback is a pointer change.

VECTOR SEARCH · EMBEDDINGS · FRESHNESS MONITORING · EVAL SETS

AI agents with boundaries

An agent that escalates is useful. An agent that guesses is a liability. Multi-step workflows where every consequential action is validated in code or lands on a human.

AGENT WORKFLOWS · TOOL DESIGN · HUMAN-IN-THE-LOOP · ESCALATION PATHS

Document extraction at scale

Real documents are photographs of paper: rotated, stamped, bilingual, Arabic beside Latin. Typed records where every field traces to a region on a page — cheapest method first, models last.

OCR + LAYOUT · MIXED SCRIPTS (AR/LAT) · RECONCILIATION · ZERO-TOKEN FAST PATHS

EU AI Act & audit readiness

The high-risk obligations apply since August 2026. What auditors want is what I build anyway: logging, traceability, human oversight, and a boundary you can show them.

AUDIT TRAILS · REPLAY · RISK DOCUMENTATION · AI GOVERNANCE

Rescue work

Already shipped an agent that scares you? I find every path where a model can touch a number, cut it, and make the architecture hold the line — without a rewrite.

BOUNDARY RETROFITS · EVAL HARNESSES · INCIDENT-DRIVEN HARDENING

IF YOUR JOB ISN’T ON THE LIST BUT SOUNDS LIKE THESE, WRITE ANYWAY. THE FILTER IS THE SPINE, NOT THE LABEL.

№ 06 — THREE SYSTEMS, ONE ARGUMENT

Case files

All three lean on language models. In none of them does a model produce a number anybody signs.

01 FLAGSHIP · RIYALPLUS.AI · FOUNDER & ARCHITECT
The filing engine

Saudi corporate filings — Zakat and income tax — computed from ledgers into submission-ready declarations, with the proof attached. Models are used heavily. The arithmetic is untouchable. That boundary is not a policy; it is the architecture.

The boundary

The computation core is a pure function: no network, no database, no import path to a model client — verified across the full transitive import graph, not promised in a README. The last model influence is a mapping suggestion a person approved; the engine’s parameter is literally named approved_mappings.

The checkpoint

Every input freezes into a versioned checkpoint before the engine runs; replay is asserted bit-identical, and expected values are hand-derived from the regulation before the code exists. Inputs are stored, not conclusions — a corrected rule should change the answer; what you need is to know that it did.

The controls

Nineteen controls in a flat sequence with no short-circuits — twelve blocking. Several re-derive the arithmetic by a second route and compare. One gate has teeth: a filing with failing blockers cannot be exported. All math in fixed-precision decimal, converted at the boundary so nothing inherits float imprecision at birth.

The ladder

Ingestion tries the cheapest thing first: known vendor formats, deterministic column maps, a cached layout fingerprint — a familiar file is processed with zero model tokens. Twelve model call sites in total, all behind one wrapper with retries, a circuit breaker and a hard budget abort.

“A control that is right most of the time is not a control.”

02 STEEL DISTRIBUTOR · PUBLIC REPO, MIT
Email → quote
▸ Inbox to ERP draft, six stations ▸ The model reads text. Nothing else. ▸ Every stage fails loudly, never silently

“If a model writes the price, nobody in the building can explain it.”

03 CUSTOMER ASSISTANT · PROPOSAL STAGE
The self-feeding knowledge base
▸ Second engine beside the product — reads source APIs, no write path back ▸ Ingest → embed → dedupe → retire: the index tends itself ▸ Every rebuild evaluated before promotion; rollback is a pointer change

“Freshness should not be hostage to a release cycle.”

№ 07 — NO RATE CARD, ONE FILTER

The terms

A published price has to assume your systems are a mess. The mechanism is fairer: pick the shape that matches how well the work is understood. One filter so nobody wastes an afternoon: minimum engagement €5,000 — regardless of duration.

Audits get shorter

Every figure arrives with its rule, its input and its replay. The auditor’s question is already answered.

New rules = config

A new filing type or tariff year is a rule set plus hand-derived tests — not a rewrite of the engine.

Small model bills

Cheapest method first: native text read as text, known layouts matched as templates. Models handle the leftovers only.

Survives my exit

Runbooks, reasoning, and a working setup on someone else’s machine before I stop. Replaceable by design.

Per deliverable

When the work is understood. Scope written down, price fixed against it, changes priced separately.

Hourly, ceilinged

When it isn’t. An agreed maximum you will not be billed past. Right for discovery and unmapped systems.

Long-term

When it doesn’t end. Retainers, embedded work, salaried roles — negotiated directly, outside the calendar.

ESTIMATES = RANGES, UPPER END NAMED DISCOVERY: PAID, YOU OWN THE DOC CHANGES PRICED BEFORE BUILT CODE IS YOURS FROM COMMIT ONE HANDOVER: RUNBOOKS + REASONS

I’d rather be replaceable than necessary. Every system is documented to the point where someone else can extend it without me.

№ 08 — DEPARTURES

When I can start

OPEN = new engagement can start · PART = reduced scope or late start · FULL = no new project work · — = beyond the horizon. Long-term arrangements ignore this board. Last reviewed recently.

ONE ACTION. TWO LINES: WHAT IT DOES NOW, WHAT MUST BE TRUE AFTER.
MAIL@ADAMSHAWA.COM

Every message gets an answer within two working days — including the noes, with the reason. Germany, CET · English & German.