COSMOGENESIS
ENTER THE STORY

Do you know what your systems actually do?

Which paths through your systems carry the numbers that matter?

Cosmogenesis reads the source code your organisation runs.

A system of proof for the people who answer for those systems.

Watch the film See how it reads your systems

Moments you may recognise

BOARD PACKFINANCEMonth-end resultsManagement reportMonth-end totalPrior monthVarianceSource extract? BOARD PACKFINANCEMonth-end resultsManagement reportMonth-end totalPrior monthVariance?
A finance controller

The auditors have asked how the month-end total is produced. The report has run for years. Nobody here can show the workings.

CHANGE TICKETCHG-0142SUBJECTMonth-end totalRELEASEThursdayIMPACTLowAPPROVED BY CHANGE TICKETCHG-0142SUBJECTMonth-end totalRELEASEThursdayAPPROVED BY
A change board member

The release touches the pricing tables. The team says the reach is small. I am the one approving it.

APRIL30ThursdayTHE LAST DAY APRIL30ThursdayTHE LAST DAY
A chief information officer

The engineer who built our settlement system leaves in four weeks. Nobody else knows how it works.

Why the code

The workings are in the code.

A data catalogue will tell you that a report reads a particular table, and that is useful as far as it goes. What it cannot tell you is what the code does to the numbers on the way through, whether a value is divided on one line, joined to last month's rate on another, or sent down a branch that only runs at year end. The figure on the report is decided in that code, and it is rare for anyone to have read it in full.

When a number is challenged, someone has to read that code. Cosmogenesis does that reading from the source, statement by statement, and draws the map from what the code actually does, with a grade on each relationship for how much the source could show. Where the source runs out, the reading says so.

What Cosmogenesis does

Cosmogenesis reads the source code your organisation runs.

That reading draws the map, which is the lineage, so you can see which systems feed which and what each figure depends on.

THE CODE, AS IT RUNS02_normalise.sql:4-5THE MAP, AS READ1-- Synthetic Theory fixture. No customer data.2CREATE TABLE calc.normalised AS3SELECT4 account_id,5 raw_value / 100.0 AS normalised_value6FROM stg.readings;Source valueSource extractExternal rate lookupNormalisationReport logicMonth-end totalManagement reportOUTSIDE THE CODE SUPPLIED THE CODE, AS IT RUNS02_normalise.sql:4-5THE MAP, AS READ1-- Synthetic Theory fixture. No customer data.2CREATE TABLE calc.normalised AS3SELECT4 account_id,5 raw_value / 100.0 AS normalised_value6FROM stg.readings;Source valueSource extractExternal rate lookupNormalisationReport logicMonth-end totalManagement reportOUTSIDE THE CODE SUPPLIED

What you get

The answers you can put in front of management.

FOLD-OUT MAPSource valueSource extractNormalisationReport logicMonth-end totalManagement reportExternal rate lookupsystemsfeeds FOLD-OUT MAPWhat dependson what
ONE PAGEWhere the month-endtotal comes fromIt is read from the source value.It is normalised: divided by a hundred.It is reported in the management report.The external rate lookup is outsidethe code supplied. ONE PAGEWhere the month-endtotal comes from
FINDINGSEVERITYSettlement logic sits in one procedure.HighA report rule has no name.MediumOne divisor reaches two reported figures.MediumA feed runs after its report.Low RISKREGISTER
BEFOREAFTERFrom the source value.Divided by ten.Into the month-end total.To the management report.From the source value.Divided by a hundred.Into the month-end total.To the management report. BEFOREAND AFTER
THE CODE SUPPLIEDTHE READINGSource valueNormalisationMonth-end totalRead from the code supplied THE READINGof the code supplied

A map of what depends on what

Which systems feed a result, and which results a system feeds.

A plain-English explanation of any number

Where a figure came from, step by step, in words management can read.

A list of where you are exposed

Where one procedure, one rule with no name or one divisor holds the rest up.

A way to test a change before it is made

Which reports and figures a proposed change can reach, before anyone approves it.

A record of what is really there

It is read from the code your systems actually run, so what it shows is established from the source. A model can read a map once it is given one, although it cannot establish the map itself.

Documentation comes from the same reading and is regenerated when the code changes. The reading works only from the code you give it.

A QUIET TUESDAYCHG-0142 MONTH-END TOTALTHE CITYTHE TICKETINSIDE THE BLOCKTHE READINGTHE RECORD THE CITYTHE TICKETINSIDE THE BLOCKTHE READINGTHE RECORD

Watch it, then check it

The story comes first and then the evidence.

The story follows one change through a company at night, and the evidence takes one reported result and shows the code behind it. The reading, written down with that code, is the record.

EVIDENCE RECORDMonth-end totalSource value → Normalisation → Report logic→ Month-end totalREAD FROMthe code suppliedCHANGEDone relationshipREGENERATE WHENthe code changesSOURCE-LINKED EVIDENCE RECORDMonth-end totalSource value → Normalisation → Report logic→ Month-end totalREAD FROMthe code suppliedCHANGEDone relationshipREGENERATE WHENthe code changesSOURCE-LINKED
The record behind one reading

Inspectable evidence record

Source-derived change evidence

Synthetic Theory fixture. No customer data.

Identity
field-edge:sha256:1825858b710bc509192def233bfcae2fff9a934df33944230e8015e6d207b47a
Scope
8 source artefacts
Source snapshots
  • frame-a site/lab/theory/fixtures/frame-a/02_normalise.sql sha256:2c66deeb8b98f630e2be7622f7001d2e542ab1864b196c350fa1a4d933ded586 bundle:77e28a8882dd399ee1973d2f3ea6baca03e12aa13bccf91a51c5fa270abb0e64
  • frame-b site/lab/theory/fixtures/frame-b/02_normalise.sql sha256:ec781e77cf8463b3f5f4fce74c535dca2e8f62bdbc69fd9b1d468d511947b5ef bundle:85efddd930af18c955cdedabd3ea92f5a577ead1ed1d1f9c774b3d9efb5d6426
Selected source span
site/lab/theory/fixtures/frame-b/02_normalise.sql106-122 · inclusive character offsetsraw_value / 100.0
Derivation
changed edge -> product resolver bridge -> typed operator -> checked source bytes
Changed relationship
01_read.raw_value -> 02_normalise.normalised_valueraw_value / 10.0 → raw_value / 100.0
Boundary
External path-grade liftdscp.lineage.provenance_semiring.lift["external"] → rejected · ValueError
Expiry
Regenerate when a named source snapshot, interpreter version, generator version, or reading condition changes.
Inspect the record

One system to begin.

Choose one system that matters, and its code decides the next step.