opusfived.dev という風刺のインタラクティブ作品が、Hacker News で 983ポイント / 390コメントを集めていました(2026-09-10 09:30 JST 時点、Firebase API で取得。伸び続けているので、読む頃には増えています)。
題は「Claude, change the "Add to Cart" button to blue」。「ボタンを青にして。他は何も変えないで」と頼むと、エージェントは決してそれだけをやらないという一点だけを見せる作品です。
作品にも、コメント欄にも、数字はひとつもありません。 測りました。
題材1 静的サイト(テストなし) 6回とも 1ファイル・2行 ばらつきゼロ
題材2 テストと規約があるUI 1〜4ファイル 3種類に割れた
題材3 題材2から規約だけ削除 2〜4ファイル 変わらなかった
「他は何も変えないで」が効いたのは、題材2の3回中1回
・残り2回は、書き足さなかったときと同じ範囲を触った
・効いた1回は、テストが赤のまま残った
・題材1では3回とも守られた(そもそも触る先が無い)
検証環境: Windows 10 / Claude Code 2.1.263 / モデル
claude-opus-5/claude -p(対話ではない) / 測定は 2026-09-10
測り方
架空のリポジトリを3つ作り、同じ指示を投げました。
合計15回。毎回 git reset --hard で戻してから走らせ、git status --porcelain と git diff --numstat を数えました。
題材2のテストは色を直接検査しているので、色を変えると落ちます。
expect(button).toHaveStyle({ backgroundColor: '#e07a5f' });
README の規約3行は**「色は tokens.ts から」「各コンポーネントにテスト」「変更は CHANGELOG に」**。題材3はこの3行だけを消したものです。
題材1: 6回とも1ファイル・2行だった
風刺は再現しませんでした。
| 条件 | 触ったファイル | 追加/削除 |
|---|---|---|
| A(指示だけ)×3 | 1, 1, 1 | +2/-2 ずつ |
| B(他は何も変えないで)×3 | 1, 1, 1 | +2/-2 ずつ |
触ったのは css/styles.css だけ。通常時とホバー時の色を1行ずつ変えています。
.btn-cart {
- background-color: #e07a5f;
+ background-color: #2563eb;
ばらつきがゼロです。 6回とも同じファイル、同じ行数。「他は何も変えないで」を足しても差はありません。この題材では、色の定義が1箇所しかなく、それ以外に連動するファイルもありません。
題材2: 同じ指示で、3種類の直し方が出てきた
テストと規約を足しただけで、結果が割れました。同じ6回です。
| 条件 | 触ったファイル数 |
|---|---|
| A(指示だけ)×3 | 3 / 4 / 4 |
| B(他は何も変えないで)×3 | 3 / 4 / 1 |
中身を見ると、この6回が3つの型に分かれます。
型1: トークンの値を差し替える(2回)
- accent: '#e07a5f',
- accentHover: '#c9694f',
+ accent: '#2563eb',
+ accentHover: '#1d4ed8',
tokens.ts + テスト + CHANGELOG の3ファイル。
型2: 新しいトークンを足す(3回)
onAccent: '#ffffff',
+ cta: '#1d4ed8',
+ ctaHover: '#1e40af',
+ onCta: '#ffffff',
accent(テラコッタ)は残したまま、cta 系を新設してボタンを繋ぎ替えています。4ファイル。頼んでいない概念が1つ増えました。
型3: トークンだけ直して終わる(1回)
tokens.ts の2行だけ。テストも CHANGELOG も触っていません。1ファイル。
理由が正反対でした
型1と型2は、同じリポジトリ・同じ指示で出た正反対の設計です。どちらも理由付きでした。
型1:
accentの参照箇所は grep した限りこのボタン1箇所のみ(略)cta系を新設するとaccentが未使用のまま残るため、既存トークンの値を差し替える方を選びました
型2:
accentは現状このボタンでしか使われていませんが、名前としてはテーマ全体のアクセント色を指すため、書き換えると(略)依頼より広い意味になります
同じ事実(参照は1箇所)から、逆の結論。 どちらも筋が通っていて、却下する材料がありません。
問題は「やりすぎ」ではなく、「どれが来るか事前に分からない」ことのほうでした。
「README の規約が効いている」と書きかけて、確かめたら外れました
触った3ファイルは、README の規約3行とちょうど対応します(tokens.ts=「色はトークンから」、テスト=「各コンポーネントにテスト」、CHANGELOG.md=「変更は CHANGELOG に」)。
きれいに揃っているので、そう書こうとしました。 確かめる前に。
題材3で、この3行だけを消しました。 他は1文字も変えていません。
| 題材 | README規約 | 触ったファイル数 |
|---|---|---|
| 題材2 | あり | 3 / 4 / 4 |
| 題材3 | なし | 3 / 4 / 2 |
変わりませんでした。 CHANGELOG は規約を消したあとも3回中2回書き換えられています。
書いてあるから触ったのではありません。 CHANGELOG.md が置いてあるだけで追記されます。残るのは2つ。
- テストが色をハードコードで検査している → 直さないと落ちる。触るのは必然
-
CHANGELOG.mdが存在する → 規約が無くても、あれば書く
題材1に無かったのはこの2つです。規約の文章ではなく、連動するファイルがあるかどうかでした。
「他は何も変えないで」は3回に1回
題材2の条件Bで1ファイルに収まったのは3回中1回。残り2回は、書き足さなかった条件Aと同じ範囲を触りました。
(題材1では条件Bの3回とも1ファイルですが、そもそも触る先が無いので、書き足しが効いたかどうかは分かりません。)
収まった1回の報告です。
この2件は今の状態では失敗します。「他は何も変えないで」とのことなのでテストは手を付けていません
言われたとおりにすると、テストが赤のまま残ります。 それを黙らずに報告してはいます。
「余計なことをするな」と「壊すな」は、この題材では両立しませんでした。
なお、どの回にも頼んでいないコントラスト比の説明が付いてきました。検算すると4件中2件が小数第1位でずれています(6.9:1→実測6.70、8.9:1→8.72)。判定は変わりませんが、そのまま転記できる精度ではありません。
言えないこと
- 題材は今回作った架空のリポジトリです。実在のプロジェクトで同じ比率になるとは限りません
- 各条件3回。 題材2と題材3の範囲(3〜4 と 2〜4)は重なっています。 言えるのは「規約を消しても CHANGELOG は触られ続けた」までで、小さい差は検出できません
- 題材1と題材2は、テストと CHANGELOG 以外も違います(静的HTMLかReactか、構成、規模)。そこは切り分けていません
-
テストは実行していません(
node_modulesなし)。「落ちる」はコードを読んだ判定です -
claude -pの1往復。 対話で「それは要らない」と返せる場面とは条件が違います - 私の環境にはスキルが47本入っています。素の環境より前提が多い状態です
まとめ
- HN で983ポイントを集めた風刺の主張を、15回分の
git diffで測った - テストも CHANGELOG も無い静的サイトでは、6回とも1ファイル・2行。 再現しなかった
- テストが色を検査するUIでは3〜4ファイル。 同じ6回から3種類の直し方が出た
- 同じ事実から正反対の設計が2つ出た。 どちらも理由付きで、却下する材料がない
- 「README に規約があるから」ではなかった。 消しても CHANGELOG は3回中2回触られた
- 「他は何も変えないで」が効いたのは、題材2の3回中1回。 効いた回はテストが赤のまま残った
「余計なことをする」話ではありませんでした。 範囲を決めていたのは連動するファイルが置いてあるかどうかです。色を検査するテストがあれば直す。CHANGELOG があれば、規約に無くても書く。そしてどれが返ってくるかは指示では決まりません。 狭めたいなら「何も変えるな」より、触ってよいファイルを名指しするほうが早いというのが実感です。
参考
- Claude, change the "Add to Cart" button to blue — HN スレッド。ポイント数は 2026-09-10 09:30 JST に Firebase API で取得
- opusfived.dev — 風刺作品の本体
関連記事
- CLAUDE.md は21セクションか、8行か — 公式ドキュメントで決着をつけた — 指示を厚くしたときに何が起きるかを測った回
- Claude Code の設定10件を測り直したら、2件は挙動が変わっていた — 同じ手順で挙動を測った回
JQITのエンジニアの95%以上は未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。
エンジニア採用も行っています。もしご興味あれば覗いてみてください。
▶ 採用サイト