[01] Trust

Same diff, same answer.

Graphentra is built so that you can check its work. The evidence is deterministic, every reported surface has a path, and what it could not trace stays on the list.

[02] Five commitments

What we build to be checkable.

Each commitment shows the status of the capability behind it. Some exist in the prototype. Others are in development.

  1. The evidence is deterministic

    The same repository content, the same diff and the same engine version give byte-identical evidence. The analysis itself uses no language model.

    Built · prototype
  2. Every reported surface has a path

    Open the path and check it yourself: changed function, caller, component, route. A claim without a path is not reported.

    In development
  3. Unknown stays on the list

    Dynamic dispatch, reflection and runtime-only wiring are reported as unknown. They are never dropped and never counted as safe.

    In development
  4. A language model narrates, it never decides

    An LLM can turn the evidence into a plain-English checklist. It cannot add a surface, remove one or change a confidence tier.

    Built · prototype
  5. The analysis runs in your own CI

    The planned GitHub Action runs the analysis inside your workflow. Narration is optional, and a complete report that needs no LLM is in development.

    In development

[03] Run it twice

Ask twice. Compare the answers.

Give Graphentra the same inputs twice and the evidence carries the same fingerprint. Ask a language model the same question twice and the answers may differ.

Inputs, identical on both runs

  • Same repository content
  • Same diff
  • Same engine version

Graphentra evidence

Built · prototype
Run 1 fingerprint a91f…c3
  • /login/otp
  • /login
  • /guardian/children
  • 1 unknown, listed
Run 2 fingerprint a91f…c3
  • /login/otp
  • /login
  • /guardian/children
  • 1 unknown, listed

Identical. Same fingerprint, same list. Same diff, same answer.

LLM-only estimate

No fingerprint
Run 1 fingerprint none to compare
  • /login/otp
  • /login
  • Guardian access is not mentioned.
Run 2 fingerprint none to compare
  • /login/otp
  • /login
  • /guardian/children
  • Guardian access appears, without a path.

Different. Two runs, two lists, and nothing to check either against.

Illustrative example LLM-only estimates can differ between runs. Graphentra’s evidence, for the same inputs, does not.

[04] The limit of proof

A path is proof of reach. Silence is not.

A proof path shows how a change reaches a surface. It cannot show that a change reaches nothing else. Static analysis has blind spots, and we would rather name them than hide them.

That is why unknown is a first-class result. When Graphentra cannot follow a call, it says so and leaves the surface on the checklist for a person to check.

The limit of proof. Proof applies to the paths Graphentra reports. No path found is not proof of safety.

[05] Principles

Three rules we hold ourselves to.

Connections you can inspect

Every claim follows a traceable path through your code. An LLM may narrate the evidence in the language of your application. It never replaces the path itself.

Control stays with your team

The analysis runs in your own CI, and your team decides what to test. LLM narration is optional, and it never changes the evidence.

Unknown means unknown

Anything Graphentra cannot trace is listed as unknown and stays on the report. It is never quietly counted as safe.

[06] Privacy

Where the analysis runs, and what it sends.

The analysis runs in your own CI. The evidence includes excerpts of the changed lines. We are writing a precise statement of exactly what leaves your CI, and it is not published yet. Until it is, we will not summarise it.

Graphentra is pre-launch. It has no security certifications or audit reports to show yet, and we do not imply otherwise.

Read the evidence for yourself.

Early teams get hands-on onboarding and a direct line to the people building Graphentra.

Request early access