年金サイトを本番公開し、Search Console に載せるまでの一日

開発eurekapu

朝の6時には第3号被保険者の資格をどう置くかで考え込んでいた。

7時半には本番ドメインが応答していた。

8時半には Search Console が「成功しました(検出ページ 1)」を返していた。

論を詰める話と、公開の手続きを進める話が、同じ日の中で地続きになった。

骨格は本論に、設計案は補論へ

出発点は引っかかりだった。

税と社会保険料の算定基準が、扶養する子の数を見ていない。

そこに気づいてから、第3号被保険者の資格を「子の有無 × 子の数」で決める案を考えていた。

子がいなければ対象外、1人なら10歳まで、2人なら18歳まで、3人以上なら期間を切らない。

この案をそのまま本論に載せるつもりで Claude Code に投げたところ、骨格と設計案を分けたほうがいい、と返ってきた。

骨格のほうは裏が取れる。

賦課方式のもとでは次世代を育てること自体が実質の拠出にあたるのに、制度の側はそれを書いていない。

一方で設計案は、このサイトで決めた方針である「解決策は提示しない」とぶつかる。

読んで、たしかにそうだと思った。

自分で引いた線を、自分の思いつきで越えるわけにはいかない。

骨格は本論に問題定義として置き、設計案は補論と memo 側へ回すことにした。

10歳と18歳をどう根拠づけるか

切り分けたうえで、数字の置き方は詰めておきたかった。

10歳や18歳をどこから持ってきたのか説明できなければ、案として置く意味がない。

18歳は成年の年齢である。

その半分をとって、切りのいいところで10歳にする。

子が2人なら2人とも18歳まで、1人ならその半分の10歳まで、という対応にする。

3人以上は置換水準を超えているので、人口の維持に貢献したとみなして期間を切らない。

半分、半分の半分、という構造で並べると、数字そのものより置き方の筋が見える。

細かい値の当否とは別に、こういう仮定を置くとどう見えるか、という形にはできた。

1985年の記録に「育児」はなかった

もうひとつ、確かめておきたいことがあった。

1985年に第3号が入ったとき、育児を理由に挙げた記録はあるのか。

あるなら、制度は次世代を育てることと負担を暗黙のうちに釣り合わせていた、という読みがそのまま成立する。

調べさせた範囲では、育児を理由に挙げた記録は見つからなかった。

そうなると、暗黙の釣り合いという読みを本論の前提には置けない。

補論に仮説として置き、そう読めるがそれを裏づける記録はない、と書くほうへ変えた。

裏が取れなかったという事実そのものは、本文に書き残せた。

本論に、第3号の資格、1985年の説明、負担の算定、保険料総額の推定を足した。

補論「問いと、一つの置き方」を新しく立てて、設計案はそちらへ収めた。

計画書のほうは Codex でレビューし、指摘を第9版として記録に残した。

本文が画面の中央に来ていなかった

出来上がったページを開いて読んでいると、文字の塊が左に寄って見える。

本文と目次をひとつの塊として扱い、その塊をまとめて中央寄せしていた。

塊の中心は画面の中央にある。

しかし本文の中心は、目次のぶんだけ左へずれる。

読んでいるのは本文なので、画面の中央に置くべきものも本文のほうだった。

本文を画面の中央に置き、目次は右の余白列へ移した。

中心のずれが 0px になったことを確かめて直しを終えた。

同じ流れで、引用の出典を引用のすぐ下にリンク付きで出すようにした。

引用を読んだ直後に出どころを確かめられる。

設定を入れたのに meta robots が出ていなかった

論の側に区切りがついたので、公開の作業に移った。

Cloudflare Pages へデプロイし、独自ドメイン nenkin.eurekapu.com を接続した。

ここまでは手順どおりに進んだ。

公開前なのでインデックスはされない状態にしてあるつもりだった。

runtimeConfig.public.noindex を持たせてあったからである。

ところが実際のページを見ると、meta robots が出ていない。

値を持っているだけで、head に渡していなかった。

設定を書いた時点で満足して、出力されているかを確かめていなかったことになる。

app.vue で受け取って head に流す数行を足した。

const { noindex } = useRuntimeConfig().public
useHead({
  meta: noindex ? [{ name: 'robots', content: 'noindex' }] : [],
})

出ていることを確かめてから、次の判断に進んだ。

サイト名は仮の「年金の構造」のままにして、noindex のほうだけ解除した。

あわせて favicon を生成スクリプトつきで3点足し、private リポジトリへ push した。

→ 年金の構造(nenkin.eurekapu.com)

sitemap.xml を作って Search Console に送る

公開状態にしたので、検索エンジンに拾ってもらう手続きを進めた。

sitemap.xml はサーバールートで生成して、静的書き出しの結果に含まれるようにした。

robots.txt には Sitemap の行を足した。

そのうえで Search Console に https://nenkin.eurekapu.com/ のプロパティを追加し、サイトマップを送信した。

ステータスは「成功しました(検出ページ 1)」になった。

検出ページが1なのは、いまのサイトが1ページだからである。

論の切り分けをやっていた6時の時点では、同じ朝のうちにここまで来るとは思っていなかった。

残っているもの

  • サイト名は仮のまま。公開してから決め直す
  • 設計案は補論と memo 側に置いたまま。本論に戻すかどうかは別途考える
  • ページが1枚しかないので、検出ページ数が増えるのはこれから

論のほうは、自分で引いた方針とぶつかる部分をどこに置くかで一度止まった。

止まったおかげで、本論と補論の境目がはっきりした。

デプロイのほうは、設定を書いただけで出力を確かめていなかった一点に尽きる。

書いたものが画面に出ているかどうかは、毎回自分の目で見るしかない。

#Cloudflare Pages#Nuxt#Search Console#sitemap#デプロイ