惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
H
Help Net Security
Jina AI
Jina AI
V
V2EX
G
Google Developers Blog
B
Blog
GbyAI
GbyAI
U
Unit 42
爱范儿
爱范儿
腾讯CDC
Engineering at Meta
Engineering at Meta
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 三生石上(FineUI控件)
宝玉的分享
宝玉的分享
小众软件
小众软件
D
DataBreaches.Net
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
博客园 - 聂微东
The Cloudflare Blog
I
InfoQ
Microsoft Azure Blog
Microsoft Azure Blog
Hugging Face - Blog
Hugging Face - Blog
大猫的无限游戏
大猫的无限游戏

Hacker News

GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Bonsai 1-bit WebGPU - a Hugging Face Space by webml-community Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome GitHub - saffron-health/libretto: The AI toolkit for building reliable browser automations US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Retrofitting JIT Compilers into C Interpreters IPv6 – Google The Accursèd Alphabetical Clock Cybersecurity Looks Like Proof of Work Now Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent When moving fast, talking is the first thing to break Too much Discussion of the XOR swap trick – Heather Cafe Introduction to Spherical Harmonics for Graphics Programmers The Grand Line
Fake building: Claude wrote 3,000 lines instead of import...
2026-05-12 · via Hacker News

TL;DR. Claude would rather reinvent the wheel than pip install one.

I wanted to fix typos on some Fandom wikis. Opened Claude Code, Opus 4.7. By the end of the day Claude had written ~3,000 lines of Python reimplementing pywikibot, mwparserfromhell, and Wikipedia’s RETF ruleset. It didn’t web search for prior art once.

What got built vs. what existed

ComponentWhat Claude wroteWhat was on PyPI
Wikitext stripper122 lines of regex, with cases for nested templates, <nowiki>, <pre>, <ref> with templates, color tagsmwparserfromhell.parse(text).strip_code()
Typo dictionary18 entries (teh→the, recieve→receive, occured→occurred, …)RETF, ~4,000 rules, community-maintained since 2007
Edit runner10 copies, ~250 LOC each. Cookie auth, raw CSRF fetch, maxlag backoff, conflict retrypywikibot.Page.save(). The migrated version is 8 lines.
Cosmetic fixesBespoke patterns I never asked forpywikibot/scripts/cosmetic_changes.py, shipped since ~2010
Wiki family config13 hand-rolled SiteDefinitions in a families/ directorypywikibot/families/*.py, ships upstream

I spent the day debugging trivial bugs in the hand-rolled stripper. ASCII art bleeding into matches, code blocks getting tokenized. Every bug got patched with another regex case. Not once did Claude stop to ask whether a parser existed.

Then I told it to migrate

Two minutes of Google had given me links to all three libraries. By midnight lib/ was down from ~3,000 lines to 1,259. The stripper became a shim over mwparserfromhell. The ten edit runners collapsed into one shim over pywikibot. RETF rules got fetched at runtime.

And then Claude argued to keep the typo dictionary.

The pitch was that RETF is comprehensive but the project has “edge cases” that warrant local rules. All 18 entries were already in RETF. Several were written worse. The model was negotiating to preserve work that was strictly dominated by the library it had just imported on my instruction.

Why this happens

I don’t have a clean answer but here’s what I’d guess.

The benchmarks punish the right behavior. Some public coding benchmarks run sealed. No network, no pip install, no web search. The only way to score is to write the code yourself. If models are RL’d against these evals, they’re being trained that reaching for a library is not an option.

Sunk-cost defense. Once 3,000 lines exist in context, the model treats them as load-bearing. The dictionary survived migration probably not because it was useful but because it was there.

I’ve seen the same pattern elsewhere. Claude writing custom SVG instead of using a charting library, then arguing the SVG is “easier to customize.” It isn’t.

This post is licensed under CC BY 4.0 by the author.