Systems.
Disposition matters more than information. I built a four-door personal-OS to prove that pattern holds across very different kinds of evidence — heart-rate variability, macros, options chains, half-finished textbooks.
rx is a recommendation engine with exactly one user: me. That makes it the most honest artifact on this site — no team to impress, no reviewer to catch a lazy decision, just whether I keep using it.
I built it because of what I kept doing with good advice: following it for a while, then quietly stopping. The system's one job is to turn "quietly stopping" into a visible, recorded event.
If you've opened the fitness or investments projects, you've already seen two of its doors from the inside. Below, the sections get steadily more technical — the headings carry the argument, the cards hold the receipts.
Four doors.
Different kinds of signal — high-frequency vs slow, cheap vs expensive, measurable vs vibes. If one prescription pattern can produce useful next-actions across that spread, the pattern is the asset.
canonical steps
Hover any door · storage routing locked by decision (D-045)
Same eleven steps.
The shape underneath all four doors is what I call rx — a prescription. Pull evidence, compose a recommendation with its counter-thesis, persist it with a stable ID, wait for me to act, snooze, or dismiss. Three primitives are domain-agnostic by design.
The pipeline is eleven canonical steps, identical across all four doors. Drift detection → evidence retrieval → dedup against open rxs (auto under 48h, drift ±0.05) → compose → counter-thesis → persist → a closing Phase W reconciler that walks the markdown record of what I actually did and writes it back. Doing nothing produces no rxs, and doing something produces exactly one.
Technical layer.
Curated corpus, four-layer hybrid retrieval, slash-command CLI on top of Claude Code. The optimizations that make this run, not just exist.
1kb_Shossearch, bundle, node_chunks, traverse, graph_search, and read-only db_query against finance Postgres.bge-large-en-v1.5sqlite-vec. H2-section-aware chunking, ~600-word target, 80-word overlap — keeps semantic units intact instead of slicing mid-argument; oversize sections truncate at the encoder's 512-token window, an accepted trade-off./rx-* slash commands/rx-fitness, /rx-nutrition, /rx-finance, /rx-learning + history/status/digest variants. Same eleven-step pipeline wrapped around domain-specific drift inputs.ia-explainer as META artifact