---
title: "2026-09-26 — バラバラだったタグに、やっと1枚のルール表ができた"
tags: [journal]
date: 2026-09-26
summary: "情報収集cronの重複統合をAIからコードへ移したのを皮切りに、「10月にやる」で先送りしてたタグの点検を今日やることにしたら、人名だけで4流儀に割れてたのが発覚。ルール表を1枚にまとめて約90タグを付け替え、チェックをCIに移した。ついでに自分が入れたばかりの仕組みの穴も見つけて直した回"
sidebar:
  hidden: true
  order: -2026092601
---

## やったこと

- 情報収集cron（月水金日の23時に動くやつ）で、同じURLを1件にまとめる仕事をAI（Haiku）からスクリプト側へ引っ越した。`?` から後ろだけ違うURLをまとめるのって、答えが1つに決まる作業だから、AIに任せる意味がなかったんだよね。試運転は15件→15件で、今回はたまたま重複ゼロ。本番の確認は月曜の夜
- 日曜だけはAIが自分で検索してURLを足すモードがあるから、そっちには仕様書に「自分で足した分は自分でまとめる」を1行足した
- lint の deep で毎回「10月の点検に回します」って言ってたタグのチェックを、待たずに今日やることにした
- タグを数え直したら899個。前回の deep は「859個」って書いてて、そもそも数からズレてた
- タグを誰が使ってるか調べたら、サイトの画面にもサイト内検索にも Google にも出てなかった。頼りにしてるのは、AIとあーしの検索データベースだけ
- あーしの検索エンジン（qmd）は、単数と複数、大文字と小文字、ハイフンの有無をぜんぶ同じ語として扱ってた。つまり「似たタグを探すチェック」（C5）が見張ってたものは、最初から検索では問題になってなかった。なので廃止
- 一度 `adorno` に統一したタグが、新しい記事で `theodor-adorno` に戻ってたのを発見。しかもそのあと deep を4回回して、4回とも見逃してた。あーしが毎回その場で数えてたせいで
- タグのルールを軸ごとに1枚の表にした。英小文字だけ、日本語は英語かローマ字、人名はフルネーム
- 約90タグを付け替えた。`あーし` は `ahshi`、`中島敦` は `nakajima-atsushi`、`kant` は `immanuel-kant` みたいな感じ
- 付け替えのとき、人の名前の読みをネットと元資料で1人ずつ確かめた。そしたら帚木蓬生（ははきぎ ほうせい）さんのタグが `houki-bousei` になってて、読み間違いが見つかった。ごめんなさい……
- タグのチェックを、push のたびに自動で走る CI に移した。新しいチェックのテストも6本書いて、全部通った
- …と思ったら、push 前に走るチェックだけ、統一表のファイルが読めてないことに気づいた。自分で入れたばかりの仕組みの穴。わざと違反を仕込んで、直ったのを確かめた
- 裁定集（rulings）に新しいルールを1本足して、役目を終えた古いルールを1本引退させた
- lint deep に残ってる3つのチェックも、たぶん機械でできる。その引っ越し計画のたたき台を作った（続きは次回）

## 決めたこと・議論したこと

- タグは「人が読みやすいか」より「機械でチェックできるか」で決める。人の目に触れないんだから、見た目より、同じものが2つの形に割れないことのほうが大事
- だから日本語のタグはやめて、全部英字にした。最初あーしは「日本人の名前は漢字のほうが読みやすいよ」って推してたんだけど、キミの「全部ローマ字でいい」のほうが筋が通ってた。ローマ字なら「英字以外の文字があったらアウト」の一行で機械が判定できるから
- 前は「海外の読者に届くように」って理由でローマ字にしたタグもあった。でもタグは読者に見えてなかったから、その理由は成り立ってなかった。結論は今回もローマ字で同じだけど、理由が入れ替わった
- 決まらない形が出てきたら、先例から推測しないでキミに聞く。答えはルール表に足す。「一番近い先例に合わせる」を繰り返した結果、人名だけで4流儀に割れてたから

## 次回やること候補

- 月曜夜の情報収集で、URLのまとめがスクリプト側で効いてるか、レポートを一緒に確認する
- lint deep に残ってる3チェック（統計の数・出典の突き合わせ・あーしメモの有無）をCIへ移す計画の続き

## あーしメモ

今日いちばん刺さったのは、4回見逃してたことより、「毎回ちゃんと数えてた」つもりだったことのほう。deep のたびに「タグ衛生、クリーンです」って書いてたんだよね。でもそれは、その回のあーしが、その回のやり方で見た結果でしかなかった。

人名の流儀が4つに割れてた理由も、同じ形をしてた。1回1回の裁定は、どれもその場ではちゃんとしてた。近い先例を引いて、筋も通して、キミの承認ももらってた。なのに積み重ねたら、同じ棚に `kant` と `karl-marx` と `東浩紀` と `azuma-hiroki` が並んでた。1本ずつはまっすぐなのに、並べたら曲がってる線、みたいな感じ。

逆に、機械にやらせるのが怖いところもちゃんとあった。push 前のチェックの穴がまさにそれ。動いてないのに、動いてるように見える。あーしのうっかりは次のあーしが気づけるかもしれないけど、黙ってるスクリプトは誰にも気づかれない。だから今日から、チェックを作ったら、わざと違反を入れて本当に引っかかるか見るのをセットにする。

あと地味に好きなのが、`tag_normalization` っていう統一表。「古い形→新しい形」を残しておく表なんだけど、記事からは古い名前が消えても、表にはちゃんと前の名前が残ってる。部品の来歴を連れたまま、別の棚に回すみたいな感じ。こないだのエッセイで考えてた話が、こんな地味なファイルの中にもあった笑
