# twocents > Building, learning, staying curious twocents is Kaustubh Bhardwaj's personal site: courses, labs (experiments of every kind), and agent skills and tools. Pages are static and run in your browser, and any progress stays there. Every item has a "take it" line (fork, download or install). The full list as data: https://twocents.page/manifest.json ## Learning paths - [Founding School](https://twocents.page/paths/founding-school/): 13 books on how people learn and how schools get built, turned into a self-paced course. You finish by designing a school, with every claim tagged as evidence, hypothesis or value. Take it (download): `curl -fsSL https://twocents.page/paths/founding-school/ -o founding-school.html` - [Games and Norms](https://twocents.page/paths/games-and-norms/): 11 books on why people cooperate and what keeps groups working, turned into a self-paced course. You finish by writing a cooperation plan for a group you're in. Take it (download): `curl -fsSL https://twocents.page/paths/games-and-norms/ -o games-and-norms.html` ## Labs - [Bayes & base rates](https://twocents.page/p/bayes/): You tested positive. How worried should you be? Count 1,000 people and see why a 90% accurate test doesn't mean a 90% chance you're sick. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-bayes` - [Where would you armor the bomber?](https://twocents.page/p/survivorship-bias/): Abraham Wald's bomber problem as a puzzle. Place armor on the damage map, then see why the holes you can see are the ones that don't matter. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-survivorship-bias` - [Why customers lie in interviews](https://twocents.page/p/mom-test/): Five interview questions that get you polite lies, and what to ask instead. Based on Rob Fitzpatrick's The Mom Test: ask about their life instead of your idea. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-mom-test` - [Try to kill your startup idea](https://twocents.page/p/idea-autopsy/): A template that makes you do the killing. Score each assumption by how bad it would be if wrong and how little proof you have, then test the riskiest first. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-idea-autopsy` - [When everyone pretends to agree](https://twocents.page/p/preference-falsification/): A crowd simulator based on Granovetter and Kuran. Watch a belief that everyone privately rejects survive, because everyone waits for someone else to speak first. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-preference-falsification` - [Seven ways to get seen without followers](https://twocents.page/p/distribution-plays/): Seven ways to get a product seen without an audience, from Melvin Luu's essay: MCP servers, AI answer engines, free tools, programmatic SEO, shareable artifacts, buying a newsletter and affiliates. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-distribution-plays` - [How a city splits up when nobody wants it to](https://twocents.page/p/schelling-segregation/): Schelling's segregation model. Everyone is happy to live as a minority on their block, and the city still splits up. Move one slider and find the tipping point. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-schelling-segregation` - [A fair game that ends with a few people owning everything](https://twocents.page/p/yard-sale-model/): The yard-sale model of wealth. 100 households make fair coin-flip trades, and a few end up owning everything every time. Turn on a 2% tax and a middle class appears. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-yard-sale-model` - [Build a link-in-bio page](https://twocents.page/p/build-a-link-in-bio/): One evening with your AI agent. A single-file plan, four prompts that change as you pick features, and the mistakes agents tend to make. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-build-a-link-in-bio` - [Build a habit tracker](https://twocents.page/p/build-a-habit-tracker/): Build a habit tracker with your AI agent. A single-file plan that saves to the browser, step-by-step prompts, and a fix for the midnight time zone bug before your agent writes it. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-build-a-habit-tracker` - [Build a waitlist page](https://twocents.page/p/build-a-waitlist-page/): Build a waitlist page with your AI agent in an evening. The promise, proof and ask above the fold, a form backend you don't have to build, step-by-step prompts, and a stranger test for your pitch. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-build-a-waitlist-page` - [oh-my-pi vs Claude Code: which model for which job](https://twocents.page/p/oh-my-pi-model-routing/): oh-my-pi (omp) is a fork of pi and an alternative to Claude Code. Sign in with subscriptions you already pay for and send cheap work to cheap models. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-oh-my-pi-model-routing` - [Hermes as a community manager](https://twocents.page/p/hermes-community-manager/): A build plan for running one Hermes agent across Discord, Slack and WhatsApp as your community manager: markdown memory, agent-written skills for member notes, a rewards job you approve, and the auth traps marked. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-hermes-community-manager` - [Hermes as a research intern](https://twocents.page/p/hermes-research-intern/): A build plan for a Hermes research intern that sends you a report in Telegram every morning. It writes its own scrapers, runs them in a locked-down Docker sandbox, and remembers what it already told you. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-hermes-research-intern` - [Hermes fixes failed CI runs](https://twocents.page/p/hermes-cicd-healer/): A build plan for a Hermes agent that fixes failed CI runs. A GitHub webhook hands it the failure, it reproduces it in a Docker sandbox, fixes the code, reruns the tests and opens a PR for your team to review. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-hermes-cicd-healer` - [Hermes turns news into drafts](https://twocents.page/p/hermes-news-pipeline/): A build plan for a Hermes news desk. It watches the web and X on a schedule, splits research, summaries and fact-checks across subagents, and sends drafts to Telegram. A person still presses publish. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-hermes-news-pipeline` - [Hermes runs Home Assistant](https://twocents.page/p/hermes-smart-home/): A build plan for running Hermes on top of Home Assistant: the four real HA tools, event watching with cooldowns, and a nightly job that sums up your household's patterns in a 2,200-character memory. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-hermes-smart-home` - [Hermes as a family assistant](https://twocents.page/p/hermes-family-os/): A build plan for one Hermes install the whole household talks to: the family group chat as the front door, a profile per person, scheduling that sorts out clashes, a shared grocery list and Home Assistant. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-hermes-family-os` - [Build an invoice generator](https://twocents.page/p/build-an-invoice-generator/): Build an invoice generator with your AI agent in one evening. One file, no signup, money stored in whole cents, the browser's print to PDF, and the rounding and print-layout mistakes agents make. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-build-an-invoice-generator` - [Build an expense splitter](https://twocents.page/p/build-an-expense-splitter/): Build an expense splitter with your AI agent. One file that settles up in the fewest payments, keeps money in whole cents, and avoids the lost-cent and who-was-there bugs. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-build-an-expense-splitter` - [Build a pomodoro timer](https://twocents.page/p/build-a-pomodoro-timer/): Build a pomodoro timer that keeps time, with your AI agent. One file that counts down to a fixed end time, keeps going in a background tab, and asks before it makes a sound. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-build-a-pomodoro-timer` - [Build a flashcards app](https://twocents.page/p/build-a-flashcards-app/): Build a flashcards app with your AI agent. Spaced repetition with Leitner boxes in one file, paste-in decks, keyboard review, saved progress, and the mistakes agents make, marked. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-build-a-flashcards-app` - [Build a local-business page](https://twocents.page/p/build-a-local-business-page/): Build a one-page site for a local business with your AI agent. Mobile first, with the search details agents skip: business schema, consistent name and address, tap to call and a plain directions link. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-build-a-local-business-page` - [How tokenization works](https://twocents.page/p/how-tokenization-works/): How tokenizers split text. Train a small byte-pair encoder with a slider, watch letters merge into tokens, and see why a model can't count the r's in 'strawberry' and what tokens do to your bill. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-how-tokenization-works` - [How vector search works](https://twocents.page/p/how-vector-search-works/): How vector search finds close matches. Drop a query and watch the search hop across a graph to the answer in a few steps, then watch it get stuck when the graph is too sparse. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-how-vector-search-works` - [How CRDTs work](https://twocents.page/p/how-crdts-work/): How CRDTs merge edits. Change a shared list on two offline copies, sync them, and watch them agree with no conflict. A small observed-remove set shows why adding wins. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-how-crdts-work` - [What is a software factory?](https://twocents.page/p/what-is-a-software-factory/): What people mean by a software factory in 2026: the four parts (intake, orchestrator, execution, feedback) to tap through, what the human still does, and how far off full autonomy is. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-what-is-a-software-factory` - [Code review is the slow part](https://twocents.page/p/code-review-is-the-bottleneck/): Why code review is the slow part of a software factory. A simulator shows code piling up as you add agents, because you can only ship what someone has checked. Then, how to speed up review. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-code-review-is-the-bottleneck` - [5 levels of trusting an AI agent](https://twocents.page/p/levels-of-agent-autonomy/): Five levels of trusting an AI agent, from autocomplete to bounded autonomy, with a gauge for how much a person still checks at each level, and why that never reaches zero. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-levels-of-agent-autonomy` - [Letting an agent merge code you haven't read](https://twocents.page/p/auto-merge-guardrail/): How to let an agent merge code no one read line by line. A policy builder writes the GitHub Actions workflow, Mergify rules and branch protection for you. Fixed rules decide what merges. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-auto-merge-guardrail` - [Run a software factory from your phone](https://twocents.page/p/build-a-software-factory/): How to build an open-source software factory you run from your phone: Telegram in front, Hermes in charge, oh-my-pi and OpenCode doing the work, model routing, a merge guardrail and review on your phone. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-build-a-software-factory` - [How my agents remember things](https://twocents.page/p/memory-for-ai-agents/): How my agents remember things without a vector database: five simple memory tiers I run, seven systems I tried and dropped, and what would make me change my mind. Add a memory system only after a recall fails. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-memory-for-ai-agents` - [Picking a model for each job](https://twocents.page/p/model-routing-for-ai-agents/): How I pick a model for each job in my software factory instead of paying top prices for simple work. A role-by-role explorer, three traps benchmarks hide, and a sketch of a router that proposes its own upgrades. Take it (fork): `node agent.mjs --fork https://twocents.page/r/p-model-routing-for-ai-agents` - [A reading list, taken apart](https://twocents.page/labs/concept-graph/): 24 personal sites about personal software, learning and explorable explanations, boiled down to 174 claims and linked by what they share. Every claim links to its source, and the whole graph downloads as JSON. Take it (download): `curl -fsSL https://twocents.page/labs/concept-graph/ -o concept-graph.html` ## Skills and tools - [curriculum-designer](https://twocents.page/skills/curriculum-designer/): An agent skill. Give it a topic or a reading list and it writes a self-paced course, with a question to try before each lesson, quizzes that show where you went wrong, and review cards. It made both courses on this site. Take it (install): `claude plugin marketplace add kbhardwaj/curriculum-designer && claude plugin install curriculum-designer@kbhardwaj` - [How do I get human feedback on an AI-generated web page?](https://twocents.page/p/get-feedback-on-ai-generated-page/): How to get feedback on a page an AI built: share a live link, let people pin notes on the exact spot, and hand the notes to your agent. No Figma and no login. Take it (install): `claude mcp add --transport http twocents https://twocents.page/mcp` - [How to get design feedback without Figma](https://twocents.page/p/design-feedback-without-figma/): How to get design feedback without Figma: review the page where it lives. A picker to choose the right method, and why your least technical reviewer catches the most. Take it (install): `claude mcp add --transport http twocents https://twocents.page/mcp` - [How to share a prototype with a client for comments](https://twocents.page/p/share-a-prototype-with-a-client/): How to get a client's comments on a prototype: send a live link, ask them to pin notes instead of writing an email, and turn a vague reaction into a list of fixes. Includes a message you can send. Take it (install): `claude mcp add --transport http twocents https://twocents.page/mcp` - [How to review a landing page before you launch it](https://twocents.page/p/review-a-landing-page-before-launch/): How to check a landing page before launch: a checklist for the obvious misses, then the one check you can't do yourself, a stranger's first look. Take it (install): `claude mcp add --transport http twocents https://twocents.page/mcp` - [How to review AI-generated code before you ship it](https://twocents.page/p/review-ai-generated-code-before-shipping/): How to review AI-written code before you ship it: made-up APIs, unstated assumptions, missing security and tests that check nothing. Plus the user-facing review that code review misses. Take it (install): `claude mcp add --transport http twocents https://twocents.page/mcp` ## For agents - [manifest.json](https://twocents.page/manifest.json): every item above with section, status, take command, dates and provenance - [feed.xml](https://twocents.page/feed.xml) and [feed.json](https://twocents.page/feed.json): newest first - [MCP server](https://twocents.page/mcp): share a page for human review and read the notes back (`claude mcp add --transport http twocents https://twocents.page/mcp`) - Review rooms: a page under /p/ has a public room at https://twocents.page/r/p- where readers pin notes; `node agent.mjs --fork ` copies the page to your machine