Skip to content

The standard

Twelve rules the software is not allowed to break

A benefit is not falsifiable; a constraint is. You can take any rule on this page, try to make the software break it, and either it holds or we were wrong — which is the only kind of promise worth making about software that produces documents somebody signs.

  1. 01

    Nothing is dropped silently

    Parsed, rejected and duplicate counts must reconcile to the number of rows in the file, every time, for every format. The rows that could not be read are listed with a reason a person can act on.

    A finding the parser lost is a vulnerability the client never hears about. An unrecognised format therefore raises an error rather than returning an empty finding list — because an empty list renders as a clean report, and a clean report is the worst possible way for this to fail.

  2. 02

    An absent score is not a zero

    Severity is computed from the CVSS vector. Where a scanner supplied nothing to compute from, the finding is recorded as unscored and renders as “not scored by tool”.

    No number is ever back-filled from a word. A severity that was inferred and then presented as though it were calculated is a figure somebody will set a budget against, and omitting it is recoverable in a way that inventing it is not.

  3. 03

    Nothing renders on an unresolved reference

    Every CVE cited in a draft resolves against the national vulnerability database before the renderer runs. One that does not exist terminates the job and names itself.

    There is no bypass flag, because a bypass flag is the setting that will be switched on the week a deadline slips. A fabricated CVE in a client deliverable is the most reputation-destroying output this system could produce, and no deadline is worth it.

  4. 04

    Evidence or silence

    Every assertion the system makes resolves to something you can open and read: a scan row, a log line, a configuration, a response body.

    Where the system cannot show its evidence it says it does not know. An executive-summary claim with no finding behind it is blocked by a validator rather than published and quietly hoped over.

  5. 05

    “Manual” is not “pass”

    A compliance control the engine cannot evaluate from scan data returns “manual”, with an explanation of why, and the report states plainly what was assessed automatically and what was not.

    A document that counts what it could not check as satisfied reads beautifully and fails an audit. A shorter assessment with visible holes is worth more than a complete one you cannot trust.

  6. 06

    The output is a draft until a person signs it

    A report reaches final only on a lead’s sign-off, recorded against a named person and a timestamp. An analyst cannot approve their own work.

    An unapproved export carries an “AI-assisted draft — not reviewed” watermark, and the watermark is the default state rather than a setting somebody remembers. Investigation can be autonomous; consequences are approved by a human on the record.

  7. 07

    Tenancy is enforced below the API

    Scoping happens where the query is built, not in a route handler. No repository method is callable without an organisation scope.

    A cross-tenant read, list, search or download is denied — and denied with “not found” rather than “forbidden”, so the existence of another firm’s engagement does not leak either. This system holds several clients’ attack surfaces at once; a route handler somebody forgot to guard is not an acceptable single point of failure.

  8. 08

    Scan data is attacker-controlled

    A scan file was written by whatever was on the network. It is parsed on the server and rendered in the browser, and both sides treat it as hostile.

    XML external entity resolution is disabled and tested rather than assumed. Finding text renders inert in the console. A URL appearing in scan data is treated as a request-forgery vector before anything fetches it.

  9. 09

    Redact before you log

    No host, address, credential or payload reaches log storage. Redaction happens on the way in, not as a cleanup after somebody finds one.

    A day of production logs can be searched for hostnames, addresses and credentials and return nothing. A log aggregator holding a client’s estate in plain text is a second copy of the attack map, in the system with the loosest access controls you own.

  10. 10

    Your telemetry is not our training set

    Scans, findings, evidence and reports are the working corpus for your engagements and nothing else.

    Nothing you upload becomes training data, and nothing you upload improves anybody else’s output. Retrieval over a firm’s own past reports is scoped per organisation and never across clients — a request that attempts to cross that boundary returns nothing and raises an audit event.

  11. 11

    Inference goes where your data is allowed to be

    Model inference is deployed per jurisdiction rather than routed to whichever provider is cheapest that quarter.

    If your data cannot leave a region, the model comes to the region. A data residency commitment that depends on a vendor’s routing table is not a commitment.

  12. 12

    Proof is an artifact, not a checkmark

    No part of this counts as working because a test went green. It counts when it produces something a person can open.

    A job id. A rejected row carrying a reason. A finding traced to the scan line that produced it. A cross-tenant request that came back empty. An external pentest with nothing unresolved on it. A practising tester’s signature on a real report. Anything less is a claim, and this page is not for claims.

Hold us to any of these

If one of these turns out to be incompatible with something the product needs to do, the honest move is to change this page and say why — not to quietly exempt a feature from it. A rule that is true everywhere except in the one place it was inconvenient was never a rule.

Take any one of these and try to break it

That is what the list is for. If one of them turns out to be incompatible with something the product needs to do, this page changes in public and says why — the alternative is a rule that quietly stopped applying.

Get in touch

Talk to the people building it

No chatbot and no ticket queue. Tell us what your security reporting actually looks like — which tools you live in, how long a deliverable takes, what a client has sent back — and someone who works on the software will reply.

info@legosphere.com

Please keep live incident details, credentials and customer data out of this box — it is an ordinary enquiry form, not a secure channel.