Principles

The rules are enforced in code. Here they are in public.

These are the working rules of Cartographer — published because you shouldn't have to take them on faith. They are not aspirations and they are not a policy PDF: each one is enforced in code and carries at least one test that fails if it is broken. When the repository opens, you will be able to read those tests yourself.

  1. Filters before weights.

    What must not be touched is decided before anything is scored, ranked, or retrieved. Ended relationships, sensitive contexts, explicit walls — the constraints are computed first, structurally, so relevance never gets the chance to outrun restraint. Not a filter applied after the results come back; a filter the results are born inside.

  2. Behavioral language only.

    Every stored sentence has to survive being read aloud to the person it describes. The map records what people did — replies within a day; asked twice about the timeline; went quiet after the estimate — never verdicts about what they are. A sentence that reads as judgment rather than fact is screened out twice: once when it's written down, and again at display.

  3. The never-scored list.

    Some things are never scored, full stop: no discretion or trustworthiness scores, no clinical or diagnostic labels, no protected attributes. The list is binding on the code itself — an attempt to compute a banned score doesn't return a warning, it raises an error and stops.

  4. Provisional until validated.

    Every observation carries a provisional flag, and the flag travels with it everywhere it's shown. Nothing lifts that flag today — validation rigorous enough to remove it is future work, and until it exists the system's confidence stays an admission, not a pose: when it hasn't seen enough, it says so on the record.

  5. Texture, never on facts.

    Voice is texture; the record is fact. The system may shape tone and phrasing; it may never embellish what happened, what was promised, or what was said. Where the evidence ends, the draft doesn't improvise past the edge — it asks.

  6. The operator owns every send.

    Nothing sends itself. There is no send path in the system to enable, misconfigure, or exploit — its live connections are read-only. Every message that leaves does so because a person read it and chose to send it.

How the rules stay rules

Tested, then attacked.

Passing tests wasn't the finish line. After the rule suite first went green, an adversarial audit was turned on it: automated red-team reviews, one per rule, hunting for real bypasses — and every claimed break then attacked in turn by separate refutation passes. This wasn't an outside firm; it was the build auditing itself, and it worked anyway: the breaks that survived refutation were real. Most were fixed on the spot, each fix pinned with a regression test that fails if the gap ever reopens. The few that remain are documented openly as version-one limits — and where they touch anything this site describes, the page says so in plain text.

That loop — enforce, attack, pin — is the maintenance plan for this page. If a rule here ever stops being true of the code, the honest move is to change this page, not the definition of true.

Next: what this means for your data