diff --git a/templates/landing.html b/templates/landing.html index 134397d..c67b62c 100644 --- a/templates/landing.html +++ b/templates/landing.html @@ -895,7 +895,7 @@
  • Manifesto
  • Primitives
  • Code
  • -
  • Phalanx
  • +
  • Resolution
  • Used by
  • GitHub ↗
  • @@ -962,7 +962,7 @@

    The premise, plainly stated.

    Most memory systems for AI either embed everything into a vector and lose the lineage, or they bolt on a database and surrender locality, ownership, and proof. Spiritwriter takes the older, harder route. Knowledge is broken into atoms with explicit fields. Atoms compose into shards. Shards are addressed by the hash of their contents, so identical content from different agents resolves to the same record — no duplicates, no drift.

    -

    Above the shards: traces. Every step an agent takes is appended to a hash-chained log; tampering with one entry breaks the chain after it. Entitlements let you delegate work to a sub-agent without surrendering master keys. Encryption comes in two postures, picked by who you don't trust. And Phalanx resolves entities by their defining fields, not their surface forms — so "Bear" the dog never silently merges with "Bear" the brand.

    +

    Above the shards: traces. Every step an agent takes is appended to a hash-chained log; tampering with one entry breaks the chain after it. Entitlements let you delegate work to a sub-agent without surrendering master keys. Encryption comes in two postures, picked by who you don't trust. And entity resolution works by defining fields, not surface forms — so "Bear" the dog never silently merges with "Bear" the brand.

    It is a library, not a service. One pip install, no daemon, no vector store to host, no GPU. The artifact is the registry — version-controlled, emailed, restored from a backup like any other file.

    @@ -1028,9 +1028,9 @@

    Delegated Jobs

    vi
    -

    Phalanx — entity resolution

    -

    Tell entities apart even when names collide ("Bear" the dog vs. "Bear" the brand) and merge them when surface forms diverge ("Carlos Martinez" vs. "MARTINEZ, CARLOS A"). Same primitive, both directions.

    -
    cmc-lite · ess digest · tiered
    +

    Entity resolution

    +

    Tell entities apart when names collide ("Bear" the dog vs. "Bear" the brand) and merge them when surface forms diverge ("Carlos Martinez" vs. "MARTINEZ, CARLOS A"). Same engine, both directions. No graph database to operate, no embedding service to call — define your identifying fields, hand in records, get canonical IDs back.

    +
    sqlite-backed · domain-agnostic · zero-infrastructure
    @@ -1051,6 +1051,15 @@

    Audit

    traced · witnessed · re-runnable
    + +
    +
    ix
    +
    +

    Shingled extraction

    +

    Turn long-form text into atoms without losing facts at chunk boundaries. Overlapping windows + multi-pass extraction; only atoms that appear across multiple passes survive. The result feeds the shard store and the entity-resolution engine: extract once, resolve continuously.

    +
    overlapping windows · n-of-k voting · checkpoint-resumable
    +
    +
    @@ -1121,7 +1130,7 @@

    Same content, same id. Always.

    IV.

    The Bear problem.

    -
    folio iv — phalanx
    +
    folio iv — resolution
    @@ -1130,7 +1139,7 @@

    The Bear problem.

    Each document gives partial defining-field coverage. Your extractor classifies Bear three different ways. Three identifiers for the same entity, and they don't align. A naive system keeps them separate; a sloppy one collapses by surface name and now Bear-the-dog merges with Bear-the-beer-brand from Document 4. Embedding-based systems hallucinate the boundaries — "Bear" the dog scores close to "Bear" the bear scores close to "Bear" the brand, and the merge decisions become unauditable.

    -

    Phalanx hashes the defining fields — name, entity type, owner, dob — into an Entity Sense Signature: a deterministic identity hash. As more documents land, the field set per entity grows. The growing field set produces a stable ESS the moment you have enough fields to disambiguate. Fields not yet known don't penalize — they're absent from the hash.

    +

    The resolver hashes the defining fields — name, entity type, owner, dob — into an Entity Sense Signature: a deterministic identity hash. As more documents land, the field set per entity grows. The growing field set produces a stable ESS the moment you have enough fields to disambiguate. Fields not yet known don't penalize — they're absent from the hash.

    The same primitive handles the inverse. "Carlos Martinez", "MARTINEZ, CARLOS A", and "C. Martinez" across three rosters dedupe into one entity, because their defining fields normalize to the same hash regardless of surface spelling.

    @@ -1150,8 +1159,8 @@

    Resolution tiers

    -
    ≥85 %
    -
    recall on semantic duplicates with ≤5% false-merge rate. No embeddings, no LLM in the merge path.
    +
    100 %
    +
    auto-merge precision across 5 benchmark corpora. 0 false merges. 12/12 hand-curated collision pairs correctly distinguished. No embeddings, no LLM in the merge path.