东北箭头的奇特案例
The curious case of the north-east arrow

原始链接: https://arsh.zip/posts/north-east-arrow/

新网页仓库中过度使用 ↗ 主要似乎由 AI 模型驱动,尤其是 OpenAI Codex。对约 4,000 个公共 GitHub 仓库的抽样发现,箭头占比从约 4.6%(2025 年 11 月–2026 年 3 月)上升到 18.1%(2026 年 9 月 3 日–11 月 7 日)。Claude 归属的 UI 提交在 Opus 4.8 时于 5 月达到峰值 9.7%,随后随 Opus 5.5 降至约 2%。Codex 归属的提交上升更多,从 3 月的 0% 到 9–11 月的约 26%,后续 GPT-6/Astra 时代最高。总体而言,约四分之一的 Codex UI 提交添加了箭头。在小样本中,Codex 箭头 63% 的时间指向内部链接,而 Claude 为 33%。结果来自公共 AI 归属提交和筛选后的 UI 相关变更,因此主要反映 LLM 编写的落地页。

一篇题为“The curious case of the north-east arrow”的 Hacker News 帖子讨论了 AI 生成链接中出现箭头的问题。一位评论者推测,OpenAI 模型可能在 Anthropic 模型之后增加了箭头使用,可能是因为奖励模型学会了将箭头与首选 UI 关联起来,形成自我强化循环,类似于 em dash 的过度使用。另一位评论者称其为“时尚”,将其与域名趋势作比较,并指出作者过时的个人资料仍引用 `.xyz`,而提交使用的是 `.zip`。
相关文章

原文

A few days ago I was scrolling through HN when I saw a landing page that gave me a little deja vu. It was for KetchUp, a SketchUp alternative. I remember playing with Sketchup back when it was still a Google-branded program running on my school’s Win7 machines, but that wasn’t the only reason the landing page looked familiar. It was the north-east arrow (↗) littered everywhere. 3 links to the /play/ page all had the arrow (“Try in browser ↗”, “Open the workspace ↗”, “Let’s make something ↗”).

KetchUp's landing page buttons: "GitHub ↗", "Try in browser ↗" and "Let's make something ↗"

I left a comment on HN:

My Hacker News comment on the KetchUp thread: "The landing page was made with Astra and not Claude or a Chinese model. How can I tell? It's got the north-east pointing arrows that Astra loves for some reason"

While building Timewarp, I noticed that Astra would sprinkle this Unicode character everywhere, and I would shout at it: “No! Arrows only for external links!” I had a hunch that Astra was the culprit here too, since I’ve mostly been using Opus, Sonnet and DeepSeek for the last few weeks and had forgotten about the arrows entirely.

So I did what any reasonable engineer would do: burn tokens and time to prove my hunch right.

Counting arrows

I could prompt every model a few hundred times to figure this out, which was what I initially set out to do. But then I realized I could do better by sampling public repos on GitHub. I had Claude sample about 4k repos created between November 2025 and last week.

All new public web repos containing a ↗, by month they were created

0% 5% 10% 15% 20% Opus 4.7 GPT-5.6 Astra Nov 2025: 3.0% of 100 repos 3% Nov2025 Dec 2025: 3.0% of 100 repos 3% Dec Jan 2026: 9.0% of 100 repos 9% Jan2026 Feb 2026: 5.1% of 99 repos 5% Feb Mar 2026: 3.0% of 100 repos 3% Mar Apr 2026: 10.0% of 100 repos 10% Apr May 2026: 16.0% of 100 repos 16% May Jun 2026: 13.0% of 100 repos 13% Jun Jul 2026: 16.0% of 100 repos 16% Jul Aug 2026: 13.0% of 100 repos 13% Aug Sep 2026: 17.2% of 99 repos 17% Sep Oct 2026: 15.3% of 98 repos 15% Oct Nov* 2026: 10.0% of 100 repos 10% Nov*

About 100 repos sampled per month (1,296 in total). *November 2026 covers the 1st–7th only. Dashed lines mark model releases.

Grouped into bigger windows:

New public web repos containing a ↗

Nov 2025 – Mar 2026

May – Aug 2026

Sep 3 – Nov 7 2026

The first two rows come from ~100 repos a month; the last from ~1,100 repos. Bars are scaled to 25%.

So it's real. About 1 in 20 new web repos had one at the start of the year. Since September it's closer to 1 in 6. But who's behind it?

Finding the culprit

Thanks to AI attribution that harnesses add in commits it was trivial to find out who was (mostly) littering the web with arrows. I ended up with 1,687 commits that added at least 30 lines of UI code.

At Anthropic's peak in May, about 1 in 10 Claude UI commits added an arrow, and Opus 4.8 was the most arrow-happy model at 9.7%. Then it went down. With Opus 5.5, only about 2% of commits have an arrow.

Claude-credited UI commits that add a ↗, by month

0% 2% 4% 6% 8% 9.5% Opus 4.7 Opus 4.8 Opus 5.5 Jan 2026: 2.2% of 90 commits 2.2% Jan2026 Feb 2026: 0% of 32 commits 0% Feb Mar 2026: 3.7% of 54 commits 3.7% Mar Apr 2026: 2.8% of 71 commits 2.8% Apr May 2026: 9.5% of 95 commits 9.5% May Jun 2026: 6% of 100 commits 6% Jun Jul 2026: 6.3% of 79 commits 6.3% Jul Aug 2026: 5.7% of 88 commits 5.7% Aug Sep 2026: 4.7% of 317 commits 4.7% Sep Oct 2026: 2.5% of 239 commits 2.5% Oct Nov 2026: 5.6% of 107 commits 5.6% Nov*

1,272 Claude-credited UI commits in total; months with fewer than 8 left out (Dec 2025 (6 commits)). *November covers the 1st–9th only. Y axis tops out at the highest month (9.5%).

And by model:

Claude-credited UI commits that add a ↗

Opus 4.5 Nov 2025

Opus 4.6 Feb

Sonnet 4.6 Feb

Opus 4.7 Apr

Opus 4.8 May

Fable 5 Jun

Sonnet 5 Jul

Opus 5 Jul

Fable 5.1 Sep

Opus 5.5 Sep

Sonnet 5.5 Sep

65–146 UI commits per model. Bars are scaled to 30%.

OpenAI went all in

Codex doesn't specify the model in the commit byline, so the best I could do was add model release dates to the graph.

Codex-credited UI commits that add a ↗, by month

0% 5% 10% 15% 20% 26.2% GPT-5.5 GPT-5.6 Astra Mar 2026: 0% of 22 commits 0% Mar2026 Apr 2026: 4.2% of 24 commits 4.2% Apr May 2026: 5.4% of 37 commits 5.4% May Jun 2026: 3% of 33 commits 3% Jun Jul 2026: 8.9% of 56 commits 8.9% Jul Aug 2026: 18.3% of 60 commits 18.3% Aug Sep 2026: 26.2% of 80 commits 26.2% Sep Oct 2026: 22.4% of 58 commits 22.4% Oct Nov 2026: 24.2% of 33 commits 24.2% Nov*

403 Codex-credited UI commits in total; months with fewer than 8 left out (Feb 2026 (6 commits)). *November covers the 1st–9th only. Y axis tops out at the highest month (26.2%).

Grouped by which OpenAI model was out at the time:

Codex-credited UI commits that add a ↗

Before GPT-5.5 Feb 1 – Apr 22

GPT-5.5 Apr 23 – Jul 8

GPT-5.6 Jul 9 – Sep 2

GPT-6 Astra Sep 3 – 21

Astra + GPT-6 Sol/Luna Sep 22 – Nov 8

43–119 UI commits per era. Bars are scaled to 30%.

About 1 in 4 UI related commits add an arrow! My gut was half right. Astra definitely loves the arrow, but the trend started in July with GPT 5.6.

Pointing inwards

What stood out about OpenAI's usage is that it seems to liberally slap the arrow on links that don't go to a different domain. I didn't have a lot of data to verify this, but in a very small sample of 57 commits where the arrow sat on a link, Codex's arrows pointed to an internal link 63% of the time (19 of 30), while Claude's pointed inwards only 33% of the time (9 of 27).

The caveats

I don't know where this tic comes from. I'd never seen anyone use that arrow for an internal link before LLMs were making websites, so it's interesting to think about why they use it so much. Maybe someone at OpenAI just likes arrows.

This is all based on public GitHub data from commits that have AI attribution. To filter UI-related commits, I had Claude search for terms like landing page | footer | hero, so this is mostly a small sample of LLM-authored landing pages. That said, around 4,000 public repos were sampled, and all the data is here: arshzip/arrows ↗

联系我们 contact @ memedata.com