{"id":"765a66b6-bb3b-4294-a5a1-7c03bcf4f39a","shortId":"kEQCFs","kind":"skill","title":"ux-bar","tagline":"UX quality bar — Krug's three laws of usability, the eight DevEx first principles, time-to-hello-world tiers, the Goodwill Reservoir, the Pit of Success.","description":"# UX bar\n\nWhat \"good\" feels like for users. Use when reviewing flows, onboarding, error messages, and dev experience.\n\nSource: gstack `design-review/SKILL.md`, `devex-review/SKILL.md`, `qa/SKILL.md`.\n\n## Krug's three laws of usability\n\n1. **Don't make me think** — self-evident > self-explanatory > requires explanation\n2. **Clicks don't matter, thinking does** — three mindless clicks beat one puzzle\n3. **Omit, then omit again** — happy talk and instructions must die\n\nSupporting doctrine:\n- *\"Users scan, they don't read… designing billboards going by at 60 mph.\"*\n- *\"Users satisfice — pick first reasonable, not best.\"*\n- *\"Clarity trumps consistency.\"*\n\n## The Goodwill Reservoir\n\nEvery user starts with a finite reservoir of goodwill. Every friction point depletes it. When it hits zero, they leave.\n\nFriction points that drain it:\n- Error messages without fixes\n- Required fields with no explanation\n- \"Click here to continue\" buttons that lead to dead ends\n- Slow loads\n- Forms that lose state on error\n\nGoodwill restorers:\n- Errors that include the fix\n- Defaults that just work\n- Speed\n- Surprise-and-delight moments\n\n## Pit of Success\n\n> \"Make the right thing easy, the wrong thing hard.\"\n\nIf users keep doing the wrong thing, the design is wrong, not the users.\n\n## Eight DevEx first principles\n\nFor tools where your users are themselves builders:\n\n1. **Zero friction at T0** — first-run should require nothing the user doesn't already have\n2. **Decide for me, let me override** — opinionated defaults, escape hatches everywhere\n3. **Every error = problem + cause + fix** — never just \"something went wrong\"\n4. **Speed is a feature** — latency in dev tools compounds\n5. **Show, don't explain** — examples beat docs\n6. **Composability over completeness** — a sharp tool you combine beats a Swiss Army knife\n7. **Honest about state** — if the tool is in a weird mode, say so\n8. **Chef-for-chefs bar** — *\"your users build products for a living, the bar is higher\"*\n\n## Time-to-hello-world (TTHW) tiers\n\n| Time | Tier | What it means |\n|---|---|---|\n| <2 min | **Champion** | Best-in-class. Users will recommend. |\n| 2-5 min | **Competitive** | Acceptable. Most successful tools live here. |\n| 5-10 min | **Needs Work** | Friction is hurting conversion. |\n| **>10 min** | **Red Flag** | 50-70% abandonment. Fix this before anything else. |\n\nIf you can't measure TTHW for your product, you're flying blind on conversion.\n\n## The boomerang (DevEx review)\n\nAt plan stage, score predicted N/10 on each UX dimension.\n\nAfter ship, do a live audit and score actual.\n\n**Flag any dimension where `live < plan - 2`.**\n\nThis forces honesty about the gap between what you intended and what you shipped.\n\n## First Impression rule\n\nWhen designing for review:\n\n> \"A designer doesn't hedge, they react. The first impression is gut-reaction first.\"\n\nDon't ask reviewers what they think — watch them load the page and listen to the first thing they say.\n\n## Trunk test\n\nFor any nav: if a user lands on a sub-page from search, can they figure out where they are and where to go in 2 seconds?\n\nIf not, the nav is broken.\n\n## Errors are for AI agents now\n\n> \"Every error message must be actionable. The agent should be able to read the error and know what to do next without human intervention.\"\n\nIn an AI-first world, error messages aren't just for humans — they're inputs to a fix loop. \"Something went wrong\" wastes both human and agent time.\n\n## Reproduce or it didn't happen (QA)\n\n> \"Repro is everything. Every issue needs a screenshot. No exceptions.\"\n\n> \"Depth over breadth — 5-10 well-documented issues > 20 vague descriptions.\"\n\n> \"Test like a user. Never read source code.\"\n\n> \"Never refuse to use the browser.\" — even backend-only diffs ship through the browser\n\n## Three QA tiers\n\n| Tier | Time | Scope |\n|---|---|---|\n| **Quick** | ~30s | Smoke test, top 5 nav |\n| **Full** | 5-15 min | 5-10 well-evidenced issues |\n| **Exhaustive** | Open-ended | Cosmetic + edge cases |\n\nTriage tier dictates fix scope:\n- Quick fixes critical + high\n- Standard adds medium\n- Exhaustive does cosmetic too\n\n## Common UX anti-patterns\n\n- \"Click to continue\" with no preview of what's next\n- Errors without fixes\n- Required fields with no inline validation\n- Forms that clear on error\n- Modals that block primary actions\n- Onboarding that requires completing X steps before showing value\n- Default opt-in for things that should be opt-out (and vice versa)","tags":["bar","gstack","distilled","0xabrar","agent-skills","claude-code","claude-skill","decision-making","founder","garry-tan","skills","startup"],"capabilities":["skill","source-0xabrar","skill-ux-bar","topic-agent-skills","topic-claude-code","topic-claude-skill","topic-decision-making","topic-founder","topic-garry-tan","topic-gstack","topic-skills","topic-startup"],"categories":["gstack-distilled"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/0xabrar/gstack-distilled/ux-bar","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add 0xabrar/gstack-distilled","source_repo":"https://github.com/0xabrar/gstack-distilled","install_from":"skills.sh"}},"qualityScore":"0.455","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 11 github stars · SKILL.md body (4,438 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:08:05.164Z","embedding":null,"createdAt":"2026-05-09T01:05:24.290Z","updatedAt":"2026-05-18T19:08:05.164Z","lastSeenAt":"2026-05-18T19:08:05.164Z","tsv":"'-10':375,612,661 '-15':658 '-5':365 '-70':388 '/skill.md':54,58 '1':66,239 '10':383 '2':80,256,354,364,439,524 '20':617 '3':93,268 '30s':650 '4':279 '5':289,374,611,654,657,660 '50':387 '6':297 '60':117 '7':311 '8':325 'abandon':389 'abl':548 'accept':368 'action':543,722 'actual':432 'add':683 'agent':536,545,589 'ai':535,565 'ai-first':564 'alreadi':254 'anti':692 'anti-pattern':691 'anyth':393 'aren':570 'armi':309 'ask':478 'audit':429 'backend':636 'backend-on':635 'bar':3,6,32,330,339 'beat':90,295,306 'best':125,358 'best-in-class':357 'billboard':113 'blind':407 'block':720 'boomerang':411 'breadth':610 'broken':531 'browser':633,642 'build':333 'builder':238 'button':170 'case':672 'caus':272 'champion':356 'chef':327,329 'chef-for-chef':326 'clariti':126 'class':360 'clear':715 'click':81,89,166,694 'code':627 'combin':305 'common':689 'competit':367 'complet':300,726 'compos':298 'compound':288 'consist':128 'continu':169,696 'convers':382,409 'cosmet':670,687 'critic':680 'dead':174 'decid':257 'default':191,264,732 'delight':199 'deplet':144 'depth':608 'descript':619 'design':52,112,221,458,462 'design-review':51 'dev':47,286 'devex':15,56,228,412 'devex-review':55 'dictat':675 'didn':594 'die':103 'diff':638 'dimens':423,435 'doc':296 'doctrin':105 'document':615 'doesn':252,463 'drain':155 'easi':208 'edg':671 'eight':14,227 'els':394 'end':175,669 'error':44,157,183,186,270,532,539,552,568,704,717 'escap':265 'even':634 'everi':132,141,269,538,601 'everyth':600 'everywher':267 'evid':74 'evidenc':664 'exampl':294 'except':607 'exhaust':666,685 'experi':48 'explain':293 'explan':79,165 'explanatori':77 'featur':283 'feel':35 'field':162,708 'figur':514 'finit':137 'first':16,122,229,245,454,469,475,492,566 'first-run':244 'fix':160,190,273,390,580,676,679,706 'flag':386,433 'fli':406 'flow':42 'forc':441 'form':178,713 'friction':142,152,241,379 'full':656 'gap':445 'go':114,522 'good':34 'goodwil':25,130,140,184 'gstack':50 'gut':473 'gut-react':472 'happen':596 'happi':98 'hard':212 'hatch':266 'hedg':465 'hello':21,345 'high':681 'higher':341 'hit':148 'honest':312 'honesti':442 'human':560,574,587 'hurt':381 'impress':455,470 'includ':188 'inlin':711 'input':577 'instruct':101 'intend':449 'intervent':561 'issu':602,616,665 'keep':215 'knife':310 'know':554 'krug':7,60 'land':504 'latenc':284 'law':10,63 'lead':172 'leav':151 'let':260 'like':36,621 'listen':489 'live':337,372,428,437 'load':177,485 'loop':581 'lose':180 'make':69,204 'matter':84 'mean':353 'measur':399 'medium':684 'messag':45,158,540,569 'min':355,366,376,384,659 'mindless':88 'modal':718 'mode':322 'moment':200 'mph':118 'must':102,541 'n/10':419 'nav':500,529,655 'need':377,603 'never':274,624,628 'next':558,703 'noth':249 'omit':94,96 'onboard':43,723 'one':91 'open':668 'open-end':667 'opinion':263 'opt':734,742 'opt-in':733 'opt-out':741 'overrid':262 'page':487,509 'pattern':693 'pick':121 'pit':28,201 'plan':415,438 'point':143,153 'predict':418 'preview':699 'primari':721 'principl':17,230 'problem':271 'product':334,403 'puzzl':92 'qa':597,644 'qa/skill.md':59 'qualiti':5 'quick':649,678 're':405,576 'react':467 'reaction':474 'read':111,550,625 'reason':123 'recommend':363 'red':385 'refus':629 'repro':598 'reproduc':591 'requir':78,161,248,707,725 'reservoir':26,131,138 'restor':185 'review':41,53,57,413,460,479 'right':206 'rule':456 'run':246 'satisfic':120 'say':323,495 'scan':107 'scope':648,677 'score':417,431 'screenshot':605 'search':511 'second':525 'self':73,76 'self-evid':72 'self-explanatori':75 'sharp':302 'ship':425,453,639 'show':290,730 'skill' 'skill-ux-bar' 'slow':176 'smoke':651 'someth':276,582 'sourc':49,626 'source-0xabrar' 'speed':195,280 'stage':416 'standard':682 'start':134 'state':181,314 'step':728 'sub':508 'sub-pag':507 'success':30,203,370 'support':104 'surpris':197 'surprise-and-delight':196 'swiss':308 't0':243 'talk':99 'test':497,620,652 'thing':207,211,219,493,737 'think':71,85,482 'three':9,62,87,643 'tier':23,348,350,645,646,674 'time':19,343,349,590,647 'time-to-hello-world':18,342 'tool':232,287,303,317,371 'top':653 'topic-agent-skills' 'topic-claude-code' 'topic-claude-skill' 'topic-decision-making' 'topic-founder' 'topic-garry-tan' 'topic-gstack' 'topic-skills' 'topic-startup' 'triag':673 'trump':127 'trunk':496 'tthw':347,400 'usabl':12,65 'use':39,631 'user':38,106,119,133,214,226,235,251,332,361,503,623 'ux':2,4,31,422,690 'ux-bar':1 'vagu':618 'valid':712 'valu':731 'versa':746 'vice':745 'wast':585 'watch':483 'weird':321 'well':614,663 'well-docu':613 'well-evidenc':662 'went':277,583 'without':159,559,705 'work':194,378 'world':22,346,567 'wrong':210,218,223,278,584 'x':727 'zero':149,240","prices":[{"id":"41bee82d-7017-431c-babf-cce86fd59373","listingId":"765a66b6-bb3b-4294-a5a1-7c03bcf4f39a","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"0xabrar","category":"gstack-distilled","install_from":"skills.sh"},"createdAt":"2026-05-09T01:05:24.290Z"}],"sources":[{"listingId":"765a66b6-bb3b-4294-a5a1-7c03bcf4f39a","source":"github","sourceId":"0xabrar/gstack-distilled/ux-bar","sourceUrl":"https://github.com/0xabrar/gstack-distilled/tree/main/skills/ux-bar","isPrimary":false,"firstSeenAt":"2026-05-09T01:05:24.290Z","lastSeenAt":"2026-05-18T19:08:05.164Z"}],"details":{"listingId":"765a66b6-bb3b-4294-a5a1-7c03bcf4f39a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"0xabrar","slug":"ux-bar","github":{"repo":"0xabrar/gstack-distilled","stars":11,"topics":["agent-skills","claude-code","claude-skill","decision-making","founder","garry-tan","gstack","skills","startup","yc"],"license":"other","html_url":"https://github.com/0xabrar/gstack-distilled","pushed_at":"2026-04-26T16:34:12Z","description":"Distilled decision-making frameworks from Garry Tan's gstack, packaged as 7 focused Agent Skills.","skill_md_sha":"d927777c20fc139ca4e031e03b01a90a7f093050","skill_md_path":"skills/ux-bar/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/0xabrar/gstack-distilled/tree/main/skills/ux-bar"},"layout":"multi","source":"github","category":"gstack-distilled","frontmatter":{"name":"ux-bar","description":"UX quality bar — Krug's three laws of usability, the eight DevEx first principles, time-to-hello-world tiers, the Goodwill Reservoir, the Pit of Success."},"skills_sh_url":"https://skills.sh/0xabrar/gstack-distilled/ux-bar"},"updatedAt":"2026-05-18T19:08:05.164Z"}}