[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f14zvwsf5tv37b":3},{"code":4,"message":5,"data":6,"timestamp":50},10000,"success",{"full_name":7,"position":8,"description":9,"language":9,"stars":10,"forks":8,"stars_gained":10,"age_days":11,"hn_threads":12,"one_liner":13,"summary_md":14,"topic":15,"github_topics":18,"license":9,"homepage":9,"updated_at":19,"history":20,"related":21},"unclebob\u002Fub-mode",18,null,373,0,[],"An agent skill that pushes coding assistants through TDD, refactoring and measured quality gates instead of just producing code.","A coding agent that writes plausible code is not the same as one that follows a disciplined workflow. ub-mode is a skill you drop into an agent's skills directory so your assistant works through TDD, root-cause fixes and deterministic quality checks rather than stopping when tests pass.\n\n## The problem\n\nYou ask an agent to add a feature or refactor a module. It produces a diff, maybe some tests, and declares the job done. The friction is that nothing in that loop forces the assistant to question the premise, keep functions simple, remove duplication, or check whether tests actually exercise the code. With ub-mode installed, the same request is routed through a staged process: first make it work, then make it right with measurable gates, then leave a log and small ordered commits. The result you get is a change shaped by an explicit engineering procedure, plus numbers from companion tools you can inspect.\n\n## What's different\n\nThe README describes three phases. The first is a set of working principles: laziness protocol, foundational thinking, TDD, attacking the premise, subtracting before adding, and domain modelling with boundary and type discipline. The second phase turns those ideas into gates: each function must stay under a CRAP score of 10, duplication must stay below a 0.8 similarity threshold, and mutation testing must cover uncovered code and kill surviving mutants. The third is practice: keep a log, guard the context window, clean up worktrees, and commit and push in small ordered commits.\n\nThe distinguishing mechanism is that the quality gates are computed by separate tools rather than judged by the model. Crapper, Dryer and Mutator are linked companion repositories that produce complexity, coverage, duplication and mutation results, while uml-viewer visualizes components, coverage, CRAP, mutation scores and dependency directions. That makes 'make it right' a measured step, not a self-assessment. The trade-off is dependency: the skill's second phase is only as useful as your ability to install and run those companion tools against your project. The README shows the skill file and the thresholds but does not spell out a full end-to-end setup for every language or project layout.\n\n## Who should try it\n\nThis fits a developer already using Claude, Grok, Cursor or a similar agent who is tired of reviewing diffs that ignore complexity and test quality, and who wants the agent to follow a repeatable TDD-and-refactoring routine. It is also a reasonable fit if you already value mutation testing or CRAP metrics, since the skill points at concrete thresholds you can check. It is a poor fit if you want a single self-contained prompt with no extra tooling, or if your project has no straightforward way to run the companion analyzers. Developers who only want faster boilerplate generation will find the staged process adds overhead.\n\n## Requirements and limitations\n\nThe documented setup is manual: copy the skill file into an agent's skills directory, for example under `~\u002F.claude\u002Fskills\u002Fub-mode\u002F` or the equivalent for other assistants, then invoke `\u002Fub-mode` [project instructions](https:\u002F\u002Fgithub.com\u002Funclebob\u002Fub-mode\u002Fblob\u002Fmaster\u002FREADME.md). The README names several agent directories but does not provide a package manager or one-command install. The quality gates depend on Crapper, Dryer and Mutator [Crapper](https:\u002F\u002Fgithub.com\u002Funclebob\u002Fcrapper) [Dryer](https:\u002F\u002Fgithub.com\u002Funclebob\u002Fdryer) [Mutator](https:\u002F\u002Fgithub.com\u002Funclebob\u002Fmutator); if you do not run them, the second phase loses its measurable basis. There is no declared license in the repository metadata, which matters if you intend to redistribute or embed the skill. The README is also thin on practical details: it does not explain how the thresholds interact, what happens when a gate fails, or whether the skill adapts to languages where mutation testing is unavailable.\n\n## HotRepo's take\n\nOn the 2026-10-26 NEW-REPOSITORY board, ub-mode had 373 total stars and ranked #18 [project](https:\u002F\u002Fgithub.com\u002Funclebob\u002Fub-mode). That is a single dated snapshot on a new-project board, not a daily growth measurement, and HotRepo has no comparable daily history for it, so persistence cannot be judged. Treat the attention as a snapshot only. Before adopting, check whether the companion tools can run on your stack, since that determines whether the skill's quality-gate phase is usable or just rhetoric.",{"slug":16,"name":17},"developer-tools","Developer Tools",[],"2026-10-26T00:46:14Z",[],[22,27,32,36,41,45],{"full_name":23,"one_liner":24,"language":25,"stars":26},"wailsapp\u002Fwails","Wraps Go backends and web frontends into one desktop binary, for Go developers avoiding an embedded server.","Go",36690,{"full_name":28,"one_liner":29,"language":30,"stars":31},"zeldaret\u002Ftww","A community effort to turn The Wind Waker's GameCube machine code back into buildable, readable C++ source.","C++",1128,{"full_name":33,"one_liner":34,"language":25,"stars":35},"keploy\u002Fkeploy","Turns real API traffic into replayable tests and infra mocks, so teams get integration coverage without writing test code.",18739,{"full_name":37,"one_liner":38,"language":39,"stars":40},"NapNeko\u002FNapCatQQ","A OneBot 11 protocol bridge on NTQQ for developers building QQ chat bots in TypeScript or other languages.","TypeScript",11492,{"full_name":42,"one_liner":43,"language":39,"stars":44},"humanlayer\u002Fhumanlayer","Runs coding agents on your own machines and lets a team steer tasks, plans and reviews from one shared place.",12456,{"full_name":46,"one_liner":47,"language":48,"stars":49},"citrolabs\u002Fego-lite","A companion browser that gives Codex or Claude Code its own Space with your logged-in sessions, so agents can automate logged-in sites while you keep browsing.","JavaScript",19389,1792984266]