Foundation

Operating model.

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.

Use cases

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.

rx
eleven
canonical steps
Zeus
Fitness
Storage · Supabase
UI · Lovable (LIFTLOG)
Athena
Nutrition
Storage · Supabase
UI · None (markdown-only)
Lakshmi
Finance
Storage · Local Postgres
UI · TradingV FastAPI panel
Ganesh
Learning
Storage · Markdown only
UI · None

Hover any door · storage routing locked by decision (D-045)

System

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.

7d
Bounded snooze
At two consecutive snoozes the system forces a decision.
∀ rx
Mandatory counter-thesis
No rx ships without an explicit argument for why it might be wrong.
<30%
Action-rate kill-switch
Under 30% means the system is generating noise — paused until inputs are fixed.

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.

Optimizations

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.

Operator-curated corpus
Vault is hand-picked — newsletters, creators, books, papers I personally vet. Recommendations score against sources I trust, not whatever the web shouts loudest. The corpus shape is a decision, not a default.
Custom MCP 1kb_Shos
Semantic search over the vault, registered globally so every Claude session reaches the same index. Exposes search, bundle, node_chunks, traverse, graph_search, and read-only db_query against finance Postgres.
BAAI bge-large-en-v1.5
1024-d cosine via sqlite-vec. H2-section-aware chunking, 600-token target, 80-token overlap — keeps semantic units intact instead of slicing mid-argument.
Four-layer hybrid retrieval
Vector KNN ∥ BM25 → RRF fusion → ranked-grouped decay (finance only) → graph re-rank (0.6·vector + 0.25·PageRank + 0.15·centrality). Decay opt-in per domain — recency isn't always evidence.
/rx-* slash commands
CLI on top of Claude Code: /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
8-page Astro 5 + React Flow site documenting the architecture it doesn't run. Six interactive diagrams. 48-decision ledger pinned. 9-step audit checklist enforced before any change ships.
Fact-to-file-to-source mapping
Every claim on the explainer site has exactly one canonical source file. Updates are re-verification, not rewrite. This is what stops documentation drift from compounding.
Storage routing locked by decision
D-045 fixes which domain writes where. Code review enforces no cross-writes. A finance rx physically cannot touch Supabase.