20 pixel agents
run my life.

This could have been a bunch of Claude chats.

20+ Markdown agents
10 Candidate cities
21 Weighted factors
1 Git repo
00

Hi, I’m Xinni

A Sr UX Designer (and engineer? PM? researcher? I don’t know anymore) who’s lived in Singapore, the USA and Japan.

Xinni's journey timeline: 0 years a bebe in Singapore, 13 years on DeviantArt/Neopets/Flash games, 18 years computing and game dev, 24 years at Google Translate in the USA, now YouTube and Google in Tokyo. Passion for art and gaming.
A few things I score cities on —
Tax efficiency
Seasons
Identity
Bidets non-negotiable
… plus 17 more. The Synthesizer weighs them all.
01

Three main functions

01

Automated reports

monday morning, no prompt: “How is my investment portfolio doing?”

Every Monday the routine runs every agent.

runs weekly
02

Consult

I open Claude Code in the repo: “Plan me a trip to see wisteria.”

The whole system loads as context. Travel, Finance and Beauty agents all weigh in.

on demand
03

Intake

I paste into INTAKE.md from my phone: “Saw this article on Taiwan tech scene.”

The Triage agent reads it on the next run, files it under the right city or domain.

drop a file
02

The harness

life-os/
├── CLAUDE.mdrules every agent reads first
├── GLOBAL-DATA.mdfacts every agent shares
├── os/
│ ├── registry.jsonthe list of every agent
│ ├── INTAKE.mddrop anything in here
│ ├── cities/
│ ├── strategic/
│ │ ├── data.mdwhat the agent remembers about me
│ │ ├── updater.mdscans the web for fresh evidence
│ │ └── agent.mdwrites the weekly brief
│ ├── synthesizers/
│ ├── triage/routes inbox items on each run
│ └── harness-improver/
├── scoring/
│ ├── engine.py
│ ├── weights.json100-point budget across factors
│ └── scores.jsononly the Synthesizer writes here
└── dashboard/the pixel world, no private data

FOUR KINDS OF AGENTS

Strategic

Own a long-running domain. File a weekly brief.

City champions

Defend their candidate city with fresh evidence each week.

Contentment

Reads my therapy notes. Gates everything before scores update.

Synthesizer

Only thing in the repo allowed to write scores.json.

AUTOMATED BY CLAUDE ROUTINES

DAILY 06:00

Scan for time-sensitive items. File each into the right domain.

WEEKLY MON AM

Every agent fires → Contentment gates → Synthesizer recomputes → dashboard renders. I read the diff with coffee.

THE AGENT PIPELINE

Full Life OS agent pipeline — inputs, state, reporters, contentment gate, synthesizer, dashboard INPUTS STATE REPORTERS GATE OUTPUT INTAKE I drop news + updates SCANNERS scan + refresh Data and findings what reporters read Strategic agents finance, career, fitness City champions Tokyo, KL, Taipei Scan agents beauty, travel, shopping Contentment audit values check Synthesizer writes scores Dashboard renders everything
03

10 cities debate!!!

Transit is 10/10
Community is here
TOKYO
But cost of living!
Tax efficiency wins
KL
SYNTH

Each city has its own champion agent that defends its case every week with fresh evidence. The Synthesizer ranks them.

CITY RANKINGS · WEIGHTED COMPOSITE SCORING/SCORES.JSON · 2026-05-25
● weighted score 0–100 21 factors · 4 tiers Δ vs. previous week illustrative numbers, system is real
04

HARNESS IMPROVEMENTS

memory

data.md · learnings.md

What each agent remembers about me

skills

/CREATE-AGENT, /DOCS, ETC

Custom agent skills

self‑improvement

/harness-improver

Should I use paperclip, GSD, gstack? Scans the system for gaps and gives tool proposals for me to review.

future work

Connect to Hermes + GOAL SETTING

Hook the routine up so agents can ping my phone the moment something changes.