This repository has no description
Rust 99%
JavaScript 1%

README.md

Ideonomics #

An instrument for inferring the hidden structure of personal ideology — not by projecting agreement scores onto axes, but by detecting the nodal points (Lacan's points de capiton, via Žižek and Laclau–Mouffe) that quilt a person's floating signifiers into a field of meaning.

The data primitive is the analogical square: the system presents a : b :: c : ? with three terms fixed, the user completes the fourth in free text, and the process iterates — chaining the user's own completions back into subsequent squares. What is measured is not the surface token but the relation the user was forced to abduce. The reward for participation is an interactive constellation: a rendered sky of the user's semantic graph, honest enough to show a bright pole star, a diffuse static field, or a dimensional smear, depending on what the data actually supports.

Storage is the AT Protocol: users author their completions into their own PDS under the app.ideonomics.* lexicon namespace; the app maintains an AppView index; anyone may build a rival analysis on the same public corpus.

Document map #

Doc Contents
docs/01-philosophy.md Theoretical foundation: from the political compass to quilting theory; what the instrument claims and refuses to claim
docs/02-instrument.md The analogical square, item design, chaining, refusals, the resonance channel
docs/03-data.md atproto architecture: lexicons, repo division, AppView, snapshots as speech acts
docs/04-inference.md The three inference loops: glossing, canonicalization, hierarchical mixture model, adaptive square selection
docs/05-falsifiability.md What the geometry and topology of the data should look like if the theory is true, false, or beside the point
docs/06-constellation.md End-user visualization: layout as hypothesis test, the dark star, comparison, the atlas
docs/07-stack.md Implementation: Rust, axum, HTMX, jacquard; routes; deployment shape
docs/08-implementation-notes.md Where the running code simplifies or defers 01–07; environment variables; degraded modes

Reading order #

Engineers can start at 03 and 07 and work inward. But 01 and 05 are load-bearing: nearly every architectural choice (why relations not tokens, why refusals are data, why the layout algorithm is constrained, why the deflationary outcome must render beautifully) is downstream of them. The philosophy is not garnish; it is the spec.

Quickstart #

cargo run          # http://127.0.0.1:8080 — zero config: local mode, SQLite, heuristic interpreter
cargo test

Log in with any atproto handle; completions are written to your own PDS via OAuth. For real interpreter LLMs, an app account that owns square/gloss records, and a real embedding model, see the environment table in docs/08-implementation-notes.md. Lexicon JSON schemas live in lexicons/; the seed square bank in bank/seed_squares.json.

One-sentence commitments #

The instrument measures articulation, not agreement. Derived state lives in the AppView, never in the user's repo, except as an explicit, user-initiated snapshot. The interpreter has a quilt too, so interpretation is ensembled, versioned, and auditable. The instrument must be able to return the answer "you have no stable center" — and render it as carefully as any constellation.