{"slug": "show-hn-atrophy-measure-whether-ai-is-eroding-your-unaided-coding-skill", "title": "Show HN: Atrophy – measure whether AI is eroding your unaided coding skill", "summary": "A developer released Atrophy, a command-line app that measures whether AI assistance is eroding users' unaided coding skills by regularly assigning coding exercises without AI help and tracking skill ratings over time. The tool grades solutions automatically, charts ratings like chess Elo, and highlights the gap between unaided and AI-assisted performance, aiming to reveal hidden skill decline before interviews or outages.", "body_md": "**Are you getting worse at coding without AI? Atrophy tells you - with a number.**\n\nAtrophy is a command-line app that regularly hands you a small coding exercise\nto solve **without any AI help** - no Copilot, no chat, just you and your\neditor. It grades your solution automatically, keeps a skill rating for you\n(like a chess Elo), and charts how that rating moves over the weeks. If AI\nassistance is quietly eroding your ability to code unaided, the chart shows\nyou - before an interview, an outage, or a day without wifi does.\n\n- once, ~25 minutes. Solve one exercise for each of five skills, AI off. This sets your starting ratings.`atrophy baseline`\n\n- 5-10 minutes, two or three times a week. One exercise, automatically picked from the skill you've neglected longest. Pass and your rating rises; fail and it falls.`atrophy drill`\n\n- your dashboard. One curve per skill, plus the chart this tool exists for (more below).`atrophy serve`\n\n**Once a month:**- take one drill`atrophy drill --ai-on`\n\n*with*your AI tools. Those scores are tracked separately, so the dashboard can show the gap between you-with-AI and you-alone.\n\n``` bash\n$ atrophy drill\n\nBinary search misses the edges  [debugging · python · tier 2]\n────────────────────────────────────────────────────────────\nbinary_search(items, target) should return the index of target in the\nsorted list items, or -1 if absent. It mysteriously fails for some\nvalues that are clearly in the list. Find and fix the bug.\n────────────────────────────────────────────────────────────\nEdit: /tmp/atrophy-k3XoP1/solution.py\n\nAI off. Soft limit 7 min - timer started.\n\n[Enter] submit · [q] abandon >\n\n✓ 6/6 tests passed in 214s\n\nScore 1.00 · debugging rating 1222 → 1241 (+19)\n```\n\nThe exercise opens in your own editor (`$EDITOR`\n\n). Grading runs your code\nagainst hidden tests in a sandboxed subprocess. There's a soft time limit -\ngoing over shrinks your score gradually, nothing explodes. If tests fail you\ncan keep fixing and resubmit; the clock just keeps running.\n\nNot every skill is \"write code against tests\" - see the table below.\n\n| Skill | The drill | Graded by |\n|---|---|---|\nSyntax recall |\nWrite a small function from a spec | Hidden tests |\nDebugging |\nWorking-looking code has one planted bug - find and fix it | Hidden tests |\nCode reading |\nRead a snippet, type exactly what it prints | Compared to the snippet's real output |\nAPI memory |\nFill in the blanked-out stdlib call | Answer match |\nDecomposition |\nOutline a design (rate limiter, folder sync…) in bullets | You score yourself against a revealed rubric |\n\nExercises come in Python and JavaScript across three difficulty tiers - a\nhand-written static bank plus **generator families that render endless fresh\nvariants** (randomized data, names, and twists; same seed always reproduces\nthe same exercise). Difficulty targets *you*: each drill picks the tier where\nyour predicted success is closest to ~65%, the point where a rep carries the\nmost information. Comfortable wins teach the rating nothing.\n\n```\natrophy serve   # http://127.0.0.1:4646\n```\n\n** Try the live demo →** (synthetic data)\n\nHow to read it:\n\n**The line** is your skill rating. It only moves when you actually take a drill - no evidence, no movement.**The shaded band** around the line is confidence. Skip practicing for a few weeks and the band visibly widens: the tool isn't claiming you got worse, it's admitting it no longer knows you're still good. One drill snaps it tight again.**\"Unaided vs AI-assisted\"** plots every drill score in two colors: your solo reps in blue, your monthly with-AI reps in green. If the blue line sinks while the green line stays perfect, that growing gap is your dependence, measured. This chart is the reason the tool exists.\n\nThe pattern is documented across professions, and it comes with no internal warning signal - people consistently feel fine while measurably declining:\n\n- Doctors' unaided polyp-detection rates fell\n**28% → 22%** within months of routine AI assistance ()*The Lancet*G&H, 2025 - Students with GPT-4 scored\n**17% worse** than peers once it was taken away ()*PNAS*, 2025 - Experienced developers using AI were\n**19% slower**- while believing they were 20% faster ([METR RCT, 2025](https://arxiv.org/abs/2507.09089)) - Engineers who used AI to write code scored\n**17% lower** on understanding that same code - debugging suffered most ([Anthropic, 2026](https://www.anthropic.com/research/AI-assistance-coding-skills))\n\nFull citations and an honest discussion of what this tool can and can't\nmeasure: [docs/research.md](/ashutosh-rath02/atrophy/blob/main/docs/research.md).\n\nRequires Node.js ≥ 22, plus Python 3 on `PATH`\n\nif you want the Python exercises.\n\n```\nnpm install -g atrophy\natrophy baseline\n```\n\n| Command | What it does |\n|---|---|\n`atrophy baseline` |\nFirst session: one drill per skill (~25 min) |\n`atrophy drill` |\nOne drill on your most-neglected skill |\n`atrophy drill --axis debugging` |\nDrill a specific skill (`syntax-recall` , `debugging` , `code-reading` , `api-memory` , `decomposition` ) |\n`atrophy drill --lang python` |\nOnly Python (or `javascript` ) exercises |\n`atrophy drill --ai-on` |\nMonthly comparison rep with AI allowed |\n`atrophy publish --handle you` |\nOpt in to the\n`--stop` opts out) |\n\n`atrophy stats`\n\n`atrophy serve`\n\n`127.0.0.1:4646`\n\n`atrophy export -o out.json`\n\nOne SQLite file at `~/.atrophy/atrophy.db`\n\n, owned by you. No account, no\nsync, no telemetry, nothing leaves your machine. `ATROPHY_DB`\n\noverrides the\nlocation if you want it in a dotfiles repo or synced folder.\n\n- Ten-minute drills are a\n**proxy** for real-world skill, not a clinical measurement - treat trends, not absolute numbers, as the signal. - Drilling makes you better at drills. That's fine - the drill\n*is*the maintenance - but it's another reason the interesting number is the unaided-vs-AI gap, not your raw rating. - \"AI off\" is an honor system, actively assisted: starting an unaided drill while a known AI assistant is running (Copilot, Cursor, Claude, Windsurf, Codeium, Tabnine, Ollama, LM Studio, ChatGPT, Aider) prints a warning that names it. Warned, never blocked - you'd only be cheating your own chart.\n\n```\ngit clone https://github.com/ashutosh-rath02/atrophy.git\ncd atrophy && npm install\nnpm run dev -- drill    # CLI from source\nnpm test                # 70 tests, incl. real grading subprocesses\n```\n\nNew exercises are the most welcome contribution: one JSON file under\n`bank/exercises/<skill>/`\n\n, validated by `bank/schema.ts`\n\n. CI proves every\nplanted bug actually fails a test and every code-reading snippet runs\ndeterministically, so a broken exercise can't merge.\n\nRoadmap: LLM-judged decomposition drills, more languages, spaced-repetition scheduling (FSRS), per-axis leaderboards.\n\n[MIT](/ashutosh-rath02/atrophy/blob/main/LICENSE) © 2026 Ashutosh Rath", "url": "https://wpnews.pro/news/show-hn-atrophy-measure-whether-ai-is-eroding-your-unaided-coding-skill", "canonical_source": "https://github.com/ashutosh-rath02/atrophy", "published_at": "2026-07-07 15:32:36+00:00", "updated_at": "2026-07-07 16:03:12.544155+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-ethics", "machine-learning"], "entities": ["Atrophy", "Copilot"], "alternates": {"html": "https://wpnews.pro/news/show-hn-atrophy-measure-whether-ai-is-eroding-your-unaided-coding-skill", "markdown": "https://wpnews.pro/news/show-hn-atrophy-measure-whether-ai-is-eroding-your-unaided-coding-skill.md", "text": "https://wpnews.pro/news/show-hn-atrophy-measure-whether-ai-is-eroding-your-unaided-coding-skill.txt", "jsonld": "https://wpnews.pro/news/show-hn-atrophy-measure-whether-ai-is-eroding-your-unaided-coding-skill.jsonld"}}