ub-mode
Skill7.3k starsChanged 17 days agoMITView on GitHub
Follow the reduced principles when writing or changing code. Every change follows First Make it Work, then Then Make it Right, then Follow Practice. Use when the user runs /ub-mode or asks for the reduced principles.
3 other projects use a version of this; 1 new project in the last 4 weeks, against 0 the 4 before.
Adopted by
Surging: 1 new project took it in the last 4 weeks, none the 4 weeks before.thin data
Most recently taken up by
- oott123/skillsword for word, first seen Nov 8, 2026
- bepaldes/heimdall-agentword for word, first seen Nov 8, 2026
- OpenThrottle/monorepoword for word, first seen Nov 1, 2026
Who's talking about unclebob/ub-mode
- Matheus Battisti“O criador do Clean Code fez uma skill para o Claude Code e é ABSURDO! (ub-mode)”YouTube · Oct 30, 2026 · 26k views
- GitNova“ub-mode by Uncle Bob: Claude Code skill for TDD, root-cause fixes and mutation testing #Shorts”YouTube · Oct 27, 2026 · 1.2k views
- AITOZ“AI 코딩, 망가지지 않게 하는 규칙 5가지 | 밥 아저씨 ub-mode 활용법”YouTube · Nov 4, 2026 · 332 views
- Alex Hitt“ub-mode GitHub Overview: Deterministic Quality Gates for AI Coding”YouTube · Oct 27, 2026 · 303 views
- 비치콤버스“클린 코드 저자 밥 아저씨가 만든 AI 코딩 스킬, ub-mode”YouTube · Nov 3, 2026 · 135 views
The biggest 5 of 60 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 60
Talked about on GitHub, YouTube and Hacker News (60 times).
On GitHub · 47
- Oct 27, 2026chore(vendor): vendor ub-mode at 57a8bdd into reference/ub-mode — pratik-saptarshi/autonomous-engineering-platform1 reaction · 1 comment
- Oct 25, 2026Add ub-mode and poteto-mode as project skills — bigbellypenguin/bigbellypenguin.github.io1 reaction · 1 comment
- Nov 7, 2026README: diagram, AWS mapping, eval numbers, demo, next steps — LorexGitHub/guarded-rag0 reactions · 1 comment
- Nov 7, 2026UI: wire the Hallmark workbench to the API and host it from S3 — LorexGitHub/guarded-rag0 reactions · 1 comment
- Nov 7, 2026CI gates: e2e smoke on every push, full eval per cadence — LorexGitHub/guarded-rag0 reactions · 1 comment
42 more on GitHub
- Nov 7, 2026Eval runner: cases, metrics, leak gate, calibration — LorexGitHub/guarded-rag0 reactions · 1 comment
- Nov 7, 2026Corpus generator, ground-truth manifest and consistency tests — LorexGitHub/guarded-rag0 reactions · 1 comment
- Nov 7, 2026CI: lint, unit, terraform checks, caches, and the stack measurement — LorexGitHub/guarded-rag0 reactions · 2 comments
- Nov 7, 2026Thin end-to-end slice: make up, e2e test through the API — LorexGitHub/guarded-rag0 reactions · 1 comment
- Nov 7, 2026Terraform: Floci provider, S3, OpenSearch, IAM, Lambdas, API Gateway, CORS — LorexGitHub/guarded-rag0 reactions · 1 comment
- Nov 7, 2026Lambda image and handlers: ingest, query, uploads, documents — LorexGitHub/guarded-rag0 reactions · 1 comment
- Nov 7, 2026OllamaEmbedder and OpenSearchStore with a shared contract suite — LorexGitHub/guarded-rag0 reactions · 1 comment
- Nov 7, 2026Presidio guardrail: registry, YAML recognizers, placeholders, fail closed — LorexGitHub/guarded-rag0 reactions · 1 comment
- Nov 7, 2026Pipeline: chunking, prompt building, answer_question and ingest_document — LorexGitHub/guarded-rag0 reactions · 1 comment
- Nov 7, 2026Scaffold: uv project, Makefile, Compose, config, seam Protocols and fakes — LorexGitHub/guarded-rag0 reactions · 1 comment
- Nov 6, 2026backlog: verification and steering practices for the agent stamp — kaiverse-io/chassis0 reactions · 2 comments
- Nov 6, 2026Upstream candidate repos: unclebob/ub-mode, emilkowalski/skills, and pstack architecture — fuzoh/skill-curator0 reactions · 1 comment
- Nov 5, 2026Vendor emil-kowalski and ub-mode skills; SDLC routing guide for all skills — Tyler-R-Kendrick/tkstack0 reactions · 1 comment
- Nov 2, 2026agent-skills.github.unclebob.ub-mode: 0-unstable-2026-10-25 → 0-unstable-2026-11-02 — sudosubin/agents.nix0 reactions
- Oct 31, 2026ub-mode: paros-wasm — PierreZ/paros0 reactions · 1 comment
- Oct 31, 2026ub-mode: the simulation harness — PierreZ/paros0 reactions · 1 comment
- Oct 31, 2026ub-mode: parosd, parosctl and bench binaries — PierreZ/paros0 reactions
- Oct 31, 2026ub-mode: observe, tunables and biscuit authz — PierreZ/paros0 reactions
- Oct 31, 2026ub-mode: storage, net and wire layers — PierreZ/paros0 reactions
- Oct 31, 2026ub-mode: paros-machine — PierreZ/paros0 reactions
- Oct 31, 2026ub-mode: paros-coordinator — PierreZ/paros0 reactions
- Oct 31, 2026ub-mode: paros-model — PierreZ/paros0 reactions
- Oct 31, 2026ub-mode: paros-client — PierreZ/paros0 reactions
- Oct 31, 2026ub-mode: paros-roles — PierreZ/paros0 reactions
- Oct 31, 2026Harden the server for a live event, and adopt ub-mode — Liquidkourage/Quizz-em0 reactions
- Oct 31, 2026Add a process/tooling skill from ub-mode's non-design principles — sycamore-hq/crossr-skills0 reactions · 1 comment
- Oct 30, 2026整洁回路提速|度量、依赖图、覆盖率、差分变异与测试结果缓存 — nemori-ai/omne-harness-lite0 reactions · 11 comments
- Oct 29, 2026[Claude5.5][Feature] Разбор unclebob/ub-mode: лицензия не позволяет перенос, практики уже в каталоге (вывод: не берём) — dex-it/ai-kit0 reactions
- Oct 28, 2026M1.5 线协作精简:门槛减到四条不变量,补线会话方法上手 — nemori-ai/omne-harness-lite0 reactions · 20 comments
- Oct 28, 2026docs(agents): add five agent rules from Uncle Bob's ub-mode — bsamsonov/payment-service-poc0 reactions · 2 comments
- Oct 28, 2026X bookmark: Uncle Bob's ub-mode skill for Claude Code (RoundtableSpace) — winnr-dotcom/claude-inbox0 reactions · 1 comment
- Oct 28, 2026Evaluate and import the ub-mode outside coding skill — Acervator-LLC/ACERVATOR0 reactions · 5 comments
- Oct 27, 2026harness: требование следовать режиму ub-mode — r-eliseev/studious-goggles0 reactions
- Oct 27, 2026agent-skills.github.unclebob.ub-mode: init at 0-unstable-2026-10-25 — sudosubin/agents.nix0 reactions
- Oct 27, 2026Sync reviewer agent, refresh multiphase panels, vendor ub-mode skill — koraybostanci/devbox0 reactions
- Oct 27, 2026R&D / UPSTREAM: unclebob/ub-mode — правила ИИ-разработки, Crapper, Dryer и Mutator — saymer-alt/keenetic-knowledge-base0 reactions
- Oct 27, 2026unclebob 'ub-mode' — 『Clean Code』 저자의 에이전트 코딩 규칙 스킬, poteto pstack 축소판 + 품질 게이트 도구 (10/26, X) — roomedia/ax-trend0 reactions
- Oct 27, 2026下午班自动 2026-10-27:工具 OpenAgentCore + ub-mode + Unlimited OCR 2;专题 Manus 组织改造 — ruiyaoe-hash/ai-radar0 reactions
- Oct 27, 2026docs(decisions): record ub-mode evaluation — adopt only CRAP gate (#1387) — aleksandradovgopolova-boop/ai-ops-kit0 reactions
- Oct 27, 2026Let teams that run agents their own way work on one repository through one shared layer — tuannd9288/factory0 reactions · 12 comments
- Oct 27, 2026Flag vacuous tests: a test that passes against a do-nothing implementation verifies no behavior — azalio/map-framework0 reactions
- Sep 29, 2026oct 2026 — kimtth/azure-openai-llm-notes0 reactions
On YouTube · 12
- Oct 30, 2026O criador do Clean Code fez uma skill para o Claude Code e é ABSURDO! (ub-mode) — Matheus Battisti - Hora de Codar26k views · 13 comments
- Oct 27, 2026ub-mode by Uncle Bob: Claude Code skill for TDD, root-cause fixes and mutation testing #Shorts — GitNovasays it tested it1.2k views · 1 comment
- Nov 4, 2026AI 코딩, 망가지지 않게 하는 규칙 5가지 | 밥 아저씨 ub-mode 활용법 — AITOZ332 views · 4 comments
- Oct 27, 2026ub-mode GitHub Overview: Deterministic Quality Gates for AI Coding — Alex Hitt303 views
- Nov 3, 2026클린 코드 저자 밥 아저씨가 만든 AI 코딩 스킬, ub-mode — 비치콤버스135 views · 1 comment
7 more on YouTube
- Nov 3, 2026GitHub's top 10 new AI repos of October 2026: DeepSeek DeepInfer, Claude skills, GPU Unlock — RepoCast106 views
- Oct 28, 2026Uncle Bob's Skill Grades Your Agent's Code With Math, Not Taste — ub-mode — Dev Tools daily102 views
- Oct 29, 2026Uncle Bob ki AI Skill: Claude Code ab Clean Code likhega | ub-mode, tstack, Beautiful Rust (Hindi) — tech how it works57 views · 1 comment
- Oct 28, 2026【ub-mode】Uncle Bob 本人のスキルを Codex に入れて 27 回試したら、名指しなしは 0/9・呼ぶと 9/9 で読まれた — さつきのOSS研究室43 views · 1 comment
- Oct 27, 2026Force your AI agent to write clean code using... — LookOnThisGit42 views · 1 comment
- Nov 4, 2026Uncle Bob just wrote rules for AI agents #shorts — Launch Radar36 views
- Nov 4, 2026ub-mode: disciplina de engenharia para o agente de código — Madruga Sabia9 views
On Hacker News · 1
- Nov 4, 2026Uncle Bob's Agent Skill3 points
Other versions3 projects use a version of this.
Word for word · 3
- oott123/skills★ 9100% same
- bepaldes/heimdall-agent★ 2100% same
- OpenThrottle/monorepo★ 2100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
26 rules. About 0 are common, 26 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈26
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 11
Every time you are asked to make a change follow:
- Distinctive: line 26
Do first whatever helps every later phase.
- Distinctive: line 27
If a concurrent writer would matter, do not share state.
- Distinctive: line 31
Write the failing test before you change the code.
- Distinctive: line 34
If an honest test is impractical, do not write a bad one.
- Distinctive: line 38
Do not bolt a new requirement onto the old design.
- Distinctive: line 39
Ask what you would have built if it had been there from the start, think that through, and deliver it in pieces.
- Distinctive: line 43
When two fixes that share one premise fail the same gate, write that premise in one sentence and count which actors hold the imbalance.
- Distinctive: line 45
Do not start another fix until you have done that.
- Distinctive: line 58
If the work is not obvious at a glance, build the tool that does it.
- Distinctive: line 59
Do one unit by hand, then make the tool match that unit.
- Distinctive: line 65
Put the domain in a structure that makes the illegal states impossible.
- Distinctive: line 67
If the code is already clear and local, leave it.
- Distinctive: line 71
Check the data where it enters.
- Distinctive: line 73
Keep the business logic in a pure function.
- Distinctive: line 79
Do not silence the compiler.
- Distinctive: line 87
If they do not need the same mutable thing, give each its own.
- Distinctive: line 88
If they do, allow one writer, and enforce that in the structure.
- Distinctive: line 106
If the test would still pass when every function returned nothing, throw it out.
- Distinctive: line 110
Use the crapper tool
- Distinctive: line 112
Consider whether case statements are worth reducing.
- Distinctive: line 116
Use the dryer tool to eliminate duplication that rank 0.8 or above.
- Distinctive: line 120
Use the mutator tool
- Distinctive: line 135
Keep a log of every action you take and the reason you took it.
- Distinctive: line 140
Keep the main thread small.
- Distinctive: line 150
Commit often, in small ordered commits.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
ub-mode
Every time you are asked to make a change follow:
- First Make it Work.
- Then Make it Right.
- Follow Practice
First Make it Work
Laziness Protocol
- One decision lives in one place.
- Ship the smallest edit that solves the problem.
Foundational Thinking
- Get the data shape right before you write the logic.
- Do first whatever helps every later phase.
- If a concurrent writer would matter, do not share state.
TDD
- Write the failing test before you change the code.
- See it fail for the reason you expect.
- Make the smallest change that makes it pass.
- If an honest test is impractical, do not write a bad one.
Redesign From First Principles
- Do not bolt a new requirement onto the old design.
- Ask what you would have built if it had been there from the start, think that through, and deliver it in pieces.
Attack the Premise
- When two fixes that share one premise fail the same gate, write that premise in one sentence and count which actors hold the imbalance.
- Remove the assignment.
- Do not start another fix until you have done that.
Subtract Before You Add
- Take complexity out before you add anything.
Outcome-Oriented Execution
- Aim at the end state you can check.
- A break in the middle is allowed when you planned it and can undo it.
Build the Lever
- If the work is not obvious at a glance, build the tool that does it.
- Do one unit by hand, then make the tool match that unit.
Architecture
Model the Domain
- Put the domain in a structure that makes the illegal states impossible.
- Maintain a glossary of domain terms.
- If the code is already clear and local, leave it.
Boundary Discipline
- Check the data where it enters.
- Inside, trust it.
- Keep the business logic in a pure function.
Type System Discipline
- Make the illegal value impossible to write.
- Parse outside data once, where it comes in.
- Do not silence the compiler.
Make Operations Idempotent
- Running it twice, or running it after a crash halfway through, ends in the same state.
Separate Before Serializing Shared State
- If they do not need the same mutable thing, give each its own.
- If they do, allow one writer, and enforce that in the structure.
Then Make it Right
Fix Root Causes
- Reproduce it.
- Fix the cause.
- A guard that only hides the crash is not a fix.
Sequence work into verifiable units
- Finish one small unit and check it.
- Then start the next.
Test Behavior, Not Implementation
- The test calls the code the way its user does and checks the result that user would see.
- If the test would still pass when every function returned nothing, throw it out.
Crapper
- Use the crapper tool
- Reduce each function under CRAP 10 by splitting it, by testing it, or both.
- Consider whether case statements are worth reducing.
Dryer
- Use the dryer tool to eliminate duplication that rank 0.8 or above.
Mutator
- Use the mutator tool
- Cover the uncovered.
- Kill the survivors.
- Delete dead code.
Refactoring
- Pin what the code does.
- Change the structure.
- Prove the behavior did not change.
Practice
Keep a Log
- Keep a log of every action you take and the reason you took it.
- Report that log upon completion.
Guard the Context Window
- Keep the main thread small.
- Send the bulk elsewhere, and keep the summary.
Worktree Cleanup
- Find what is safe to remove, confirm nothing still in use needs it, then reclaim the disk.
- Uncommitted work waits for a decision.
Commit and Push
- Commit often, in small ordered commits.
- Each commit says why, what changed, and how you proved it.
- Push to the main line at the end.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

