#MyFirstVibeCodingProject...
This is a Telegram bot that helps you make difficult decisions in a principled way. It implements a minimax-optimal decision policy under multiple scientifically plausible models of how the world might behave:
- Neutral (Expected Value): choices play out probabilistically, mixing may cost you time or energy.
- Flat Exploitability: if you are predictable, you can be penalized by a fixed hit.
- Convex Exploitability: the more predictable you are, the more you can be exploited.
- Branch Fairness (Many-Worlds): all options happen in parallel branches; you may value fairness across your "copies".
- Sign Uncertainty (Deterministic): in a deterministic world, you may simply have mis-ranked the options.
The auto mode chooses a policy that maximizes the worst-case payoff across all these models simultaneously, so you do not need to know which model is correct. When randomness is required, the bot uses the ANU Quantum Random Number Generator (QRNG) to avoid predictability.
- Telegram bot interface
- Quick one-line decisions (
/d A:9 B:8) - Wizard mode (
/wizard) for step-by-step entry /settingsto configure parameters (L, C, lambda, B, mode, auto_worlds)/historyto list past decisions/explain <id>to see the math and QRNG audit for any past decision- Persistent SQLite database (stored in
./data)
Decision-making is often plagued by hesitation and fear of regret. This bot provides a structured, transparent way to commit:
- If your top choice is clearly superior, it commits deterministically.
- If not, it introduces just enough quantum randomness to protect against being wrong or being exploited.
- In auto mode, it balances across multiple world models, so you do not have to decide which philosophy of physics is true.
This bot is designed for medium-stakes decisions between reasonably similar, well-researched options where you're stuck in analysis paralysis. It works best when you:
- Have already done your research and gathered information
- Are choosing between 2-4 options that are relatively close in value
- Want protection against predictability and exploitation
- Need a systematic way to break decision deadlock
Good use cases: Job offers, car purchases, housing choices, investment allocations, restaurant selections Poor use cases: Major life changes needing deep reflection, decisions where you lack information, choices with completely unknown consequences
Let's say you're choosing between three cars after months of research:
Think about all factors important to you: price, reliability, features, fuel economy, resale value, insurance costs, etc.
- Honda Civic: Great reliability, good price, boring but practical → 8.5
- Toyota Camry: Excellent reliability, slightly more expensive, more space → 8.2
- BMW 320i: Fun to drive, premium feel, higher maintenance costs → 7.8
Quick decision:
/d Honda:8.5 Toyota:8.2 BMW:7.8
With specific parameters:
/d Honda:8.5 Toyota:8.2 BMW:7.8 mode=auto L=0.3 C=0.05 lambda=0.5 B=0.5
Step-by-step with wizard:
/wizard
The bot might respond with:
🧭 Decision ID: 42
Mode: auto
Worlds: neutral,flat,convex,fair,sign Steps: 5
Options:
• Honda: 8.5
• Toyota: 8.2
• BMW: 7.8
Δ=0.7000, q=0.6234, bias=0.1234
Chosen: Honda (QRNG=0.4523 < 0.6234 ?)
Source: https://qrng.anu.edu.au/API/jsonI.php?length=1&type=uint8
Why: auto picks q that maximizes the minimum value across the selected worlds
Scenario A - Without the bot: You might spend weeks agonizing, miss good deals, or pick based on the last review you read.
Scenario B - With deterministic choice: If Honda clearly scored highest, you'd get Honda every time. Predictable.
Scenario C - With this bot:
- If differences are large (Honda 9.0 vs Toyota 6.0), it picks Honda deterministically
- If differences are modest (like our example), it uses calibrated quantum randomness
- You get Honda ~62% of the time, Toyota ~25%, BMW ~13%
- The randomness protects you: Dealers can't predict your choice, you're hedged against ranking errors, and you avoid regret from "what if I chose differently"
Theoretical fate impact: In a deterministic universe, this quantum randomness might be the only truly unpredictable element in your decision. In a many-worlds universe, it ensures fairness across branches. Either way, it breaks you out of predictable patterns that others can exploit.
These control how the decision algorithm works:
Core Parameters:
- L (Loss threshold, default 0.3): How much worse an option needs to be before you definitely avoid it. Smaller L = more randomness between close options.
- C (Cost of mixing, default 0.05): How much you dislike uncertainty itself. Higher C = more deterministic choices.
Mode-Specific Parameters:
- lambda (λ, default 0.5): In
fairmode, how much you weight fairness across parallel universe branches vs. expected value. - B (Belief uncertainty, default 0.5): In
signmode, how uncertain you are about your rankings. Higher B = more 50/50 splits.
Auto Mode Settings:
- auto_worlds: Which world models to consider simultaneously (neutral, flat, convex, fair, sign)
- The algorithm finds the strategy that maximizes your worst-case payoff across all selected worlds
Example parameter effects:
L=0.1 C=0.1: Very random, lots of mixing between close optionsL=0.5 C=0.01: Only mix when options are very close, but when you do mix, embrace the randomnessmode=sign B=0.8: High uncertainty about your rankings, tends toward 50/50 splits
# Basic decision
/d OptionA:8.5 OptionB:7.2
# With parameters
/d A:8.5 B:7.2 mode=auto L=0.3 C=0.05
# Step-by-step wizard
/wizard
# View settings
/settings
# Change settings
/settings L=0.4 C=0.02 mode=convex
# See past decisions
/history
# Understand a decision
/explain 42
- Docker and docker-compose installed
- A Telegram bot token from BotFather
- Clone this repository.
- Add your bot token to the environment or a .env file:
export BOT_TOKEN=123456:ABC-DEF... - Build and run with Docker Compose:
docker compose up --build -d
Open Telegram, find your bot, and start a chat:
- /start — introduction and usage
- /d A:9 B:8 — quick decision with two options
- /wizard — guided mode
- /settings — show or set defaults, e.g.:
- /settings mode=auto L=0.3 C=0.05 lambda=0.5 B=0.5 auto_worlds=neutral,convex,sign
- /history — show your past decisions
- /explain — see detailed rationale and QRNG audit trail
The bot logs every decision, including the QRNG value and threshold, for transparency.