粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

幼児の席を確保して東北新幹線に乗ると、えきねっとの仕様に詳しくなった話

結論フローチャート

幼児と新幹線に長時間乗るなら、個人的には子供料金を払ってでも1席確保する価値はかなり大きいと思っています。

JRでは1歳以上6歳未満は「幼児」で、原則として運賃は無料です。

ただし、幼児が指定席を1人で利用する場合には「こども」の運賃・料金が必要になります。

つまり今回は、

在来線では無料の幼児が、東北新幹線では有料の指定席を1席持つ

という少し特殊なケースです。

そしてこのケースで、えきねっとのチケットレスサービスをいろいろ試した結果、かなり仕様に詳しくなりました。

今回の条件は以下です。

  • 幼児にも東北新幹線の指定席を1席確保する
  • 神奈川県内からJRで東京駅へ向かう
  • 東京駅から東北新幹線へ乗り換える
  • できればチケットレスでスマートに乗りたい

結論からいうと、

子供用Suicaをすでに持っているなら新幹線eチケット。持っていないなら、新幹線eチケットを予約して紙で受け取る。

これが今のところ一番事故が少ないと思います。


まず3つの選択肢

方法 良いところ ハマりどころ 個人的評価
紙のきっぷ 改札処理が分かりやすい。幼児のICカード状態を気にしなくてよい 事前に発券する必要がある 一番安心
えきねっとQチケ ICカード不要。スマホ中心で利用できる 家族分のQR管理、東京駅での動線、紙へ変更できない 準備して使うならあり
新幹線eチケット Suica等でタッチするだけ 「こども」の席には小児用ICカードが必要 子供用Suicaがあれば有力

それぞれ単体では便利なのですが、

「在来線では無料の幼児に、新幹線だけ指定席を取る」

という条件を加えると急に話が複雑になります。


行き:Qチケで東京駅の罠にハマる

行きはえきねっとQチケを使いました。

QチケはQRコードで乗車できるため、

ICカードもいらないし、幼児連れならこれが一番簡単では?

と思ったのが選んだ理由です。

ところが、神奈川県内から在来線で東京駅へ入り、そのまま新幹線へ乗り換えようとすると、私の利用した動線ではそのままスムーズに乗換改札へ進めませんでした。

Qチケを利用するために、

東京駅で一度在来線改札の外へ出て、改めて新幹線改札から入る

という動きになりました。

幼児+荷物を抱えて東京駅でこれをやると、チケットレスにしたメリットがかなり薄れます。

そして発生した「紙にしてください → 紙にはできません」

今回、特に印象的だったのが駅員さんとのやり取りです。

改札でうまく処理できず駅員さんへ相談したところ、

「では紙のきっぷにしてください」

という案内を受けました。

そこで発券しようと別の場所へ移動すると、今度は、

「Qチケは紙にはできません」

という回答でした。

つまり、

「紙にしてください」 ↓ 「その商品は紙にはできません」

という、なかなかつらいたらい回しが発生しました。

これは個々の駅員さんを責めたいわけではありません。

実際、Qチケ、新幹線eチケット、通常のえきねっと予約、交通系ICカード、幼児運賃、在来線からの乗り換えなど、似ているようで細かな仕様の違う仕組みが重なっています。

現場側でも認識の齟齬が起きやすいシステムなのだと思います。

ただ利用者側からすると、

幼児と荷物を連れた状態で、案内された場所へ行ったら「それはできません」と言われて戻ってくる

のは、かなり厳しい体験でした。


Qチケは紙に変更できない

Qチケで重要なのは、

紙のきっぷとして受け取ることができない

という点です。

つまり現地で、

やっぱり面倒なので紙にしよう

という撤退ができません。

複数人利用では同行者ごとに乗車用QRコードが用意されます。

同行者分を別のスマートフォンへ渡すだけでなく、印刷して利用する方法もあります。

幼児の場合は、

子供分だけ事前に印刷して親が持っておく

という運用も現実的です。

とはいえ、幼児を連れながら、

  • 自分のQR
  • 配偶者のQR
  • 子供のQR
  • 在来線用のICカード

を改札前で管理するのは、個人的にはあまり「スマート」とは感じませんでした。


帰り:今度は新幹線eチケットを試す

そこで帰りは新幹線eチケットを試しました。

こちらはSuicaなどの交通系ICカードを座席に紐付けて、改札をタッチして利用する仕組みです。

大人は簡単です。

問題は幼児でした。

新幹線eチケットで「こども」として予約した座席をチケットレスで利用する場合、子供には小児用の交通系ICカードが必要になります。

つまり、

  • こども用Suica
  • 小児用PASMO

などです。

しかし幼児は普段の在来線では無料です。

我が家では当然、子供用Suicaを作っていませんでした。

そこで、

では紙で出せばいいのでは?

となります。


eチケットは紙にできる。ただし受け取り方が分かりにくかった

新幹線eチケットはQチケと違い、

指定席券売機や窓口で紙のきっぷとして受け取ることができます。

ところが、ここでも私は一度ハマりました。

通常のえきねっと予約と同じ感覚で、

発券用のQRコードがどこかに表示されるだろう

と思っていたのですが、新幹線eチケットの紙受け取りではその想定通りにはいきませんでした。

決済時に使用したクレジットカードなどを使って受け取る仕組みです。

私はこの仕様を十分理解しておらず、券売機でうまく発券できず、最終的にはみどりの窓口へ並ぶことになりました。

なので、ここは重要です。

「新幹線eチケットは券売機で発券できない」わけではありません。

正しくは、

紙にはできる。ただし、普通のえきねっと予約と同じ発券方法だと思っているとハマる。

です。


子供用Suicaを作れば全部解決……でもない

では、

先に子供用Suicaを作っておけばいいのでは?

となります。

これは半分正解です。

子供用Suicaがあれば、新幹線eチケットの「こども」の座席へ紐付けて利用できます。

ただし、神奈川県内から在来線で東京駅へ来る場合には、もう一つ問題があります。

幼児は在来線では原則無料なので、神奈川県内の駅で子供用Suicaをタッチして入場しません。

すると、そのSuicaには、

在来線へ入場した記録がありません。

一方、大人は普通にSuica等で在来線へ入場しています。

つまり東京駅へ着いた時点で、

  • 大人:在来線の入場記録あり
  • 幼児:在来線の入場記録なし

という状態になります。

そのため、幼児だけ新幹線乗換改札で扱いが異なります。

JR東日本の案内でも、こうした乳幼児のケースでは、

一度在来線の改札外へ出て、新幹線改札から入り直す

という方法が案内されています。


問題の本質は「幼児だけ状態が違う」

ここまで試してようやく分かったのですが、問題の本質はかなり単純です。

大人は普通に通れるのに、幼児だけ運賃上の状態が違う。

幼児は、

在来線:無料

なのに、

新幹線:1席確保すると「こども」扱い

になります。

そのため東京駅で、

「無料でここまで来た人が、ここから突然有料になる」

という境界処理が発生します。

チケットレスシステムは、この境界ケースとあまり相性がよくありません。


では、どう乗るのがおすすめか

我が家なら、今後は次の優先順位にします。

1. 子供用Suicaがないなら、eチケットを予約して紙で受け取る

これが現状、一番おすすめです。

手順は次の通りです。

  1. 普段使っている物理クレジットカードで新幹線eチケットを予約
  2. そのクレジットカードを忘れず持参
  3. 乗車前に指定席券売機で紙のきっぷを受け取る
  4. 東京駅では紙のきっぷを使って乗車する

若干、

チケットレスサービスを予約して、結局紙にするのか……

という敗北感があります。

しかし幼児連れでは、

技術的に美しいことより、東京駅の改札で確実に通れること

の方が重要です。

特に神奈川県など、東京駅までJRで移動してくる人にはこの方法が安定していると思います。

東京駅から乗車を開始する人なら、そもそも在来線からの乗換問題が発生しないため、少し話が簡単になります。


2. 時間のある日に「こども用Suica」を作る

今後も新幹線を利用するなら、子供用Suicaを作っておく価値はあります。

一度作っておけば、新幹線eチケットの「こども」予約へ紐付けられます。

ただし、

「子供用Suicaを作れば、神奈川から完全シームレスになる」わけではありません。

在来線では幼児無料なので、東京駅までの在来線入場記録の問題は残ります。

それでも、毎回紙を発券する必要がなくなる点ではかなり楽です。


3. どうしてもQチケを使うなら、事前準備する

Qチケ自体が使えないわけではありません。

ただし、

  • 同行者QRを事前に用意する
  • 子供分は印刷も検討する
  • 東京駅でどの改札を使うのか確認しておく
  • 紙のきっぷには変更できないことを覚えておく

くらいは予習しておいた方がよいです。

特に、

現地で困ったら駅員さんに聞けばなんとかなるだろう

という考え方は、今回の経験上あまりおすすめしません。

駅員さんでも商品ごとの細かな仕様を即座に判断できるとは限らないからです。


結論:チケットレスにこだわらない方が楽

幼児連れで、

神奈川 → 東京駅 → 東北新幹線

というルートを使うなら、我が家のおすすめ順位は次のようになります。

子供用Suicaなし

新幹線eチケット予約 → 紙で発券

これが一番安心。

子供用Suicaあり

新幹線eチケット

ただし、東京駅まで在来線を使う場合は乗換方法を事前確認。

紙もSuicaも用意したくない

Qチケ

ただしQR管理と東京駅の動線をしっかり予習。

結局、

「チケットレスにすること」より、「幼児を連れて東京駅で困らないこと」を優先する

のが一番だと思います。


最後に、勝手に仕様改善案


改善案1:eチケットは幼児席にも大人用ICを登録できるようにしてほしい

現在、新幹線eチケットで「こども」の座席をチケットレス利用するには、小児用ICカードが必要です。

でも幼児の場合、このICカードは実質、

運賃を精算する道具というより、改札で予約を識別する認証トークン

として使っています。

ならば、

幼児用の予約については、大人用の別ICカードを認証媒体として登録できる

という仕様があってもよいのではないでしょうか。

実際、東海道・山陽新幹線のスマートEXには、条件付きながら「こども」の予約へ大人用の無記名交通系ICカードを設定できる仕組みがあります。

少なくとも、

技術的に絶対できない発想ではなさそう

です。


改善案2:Qチケは「ディズニー方式」にしてほしい

Qチケでは家族それぞれにQRコードがあります。

しかし幼児本人へスマートフォンを渡して、

はい、自分のQR出して

という運用は当然できません。

欲しいのはもっと単純で、

父 → 母 → 子

のように家族全員分をサクサク切り替えられるUIです。

例えば画面いっぱいにQRを表示して、

「次の人」

を押せば次の家族のQRが出る。

あるいはテーマパークのチケット画面のように、家族全員分がまとまって見える。

利用者単位でQRを「配布する」という発想ではなく、

親が家族全員を改札へ通すUI

があってもよいと思います。


改善案3:駅員さん向け「えきねっとAI」が欲しい

今回一番つらかったのは、サービスそのものよりも、

駅員さん同士でも仕様の認識に齟齬があったこと

でした。

実際に、

「紙にしてください」

と案内され、

別の場所へ移動すると、

「Qチケは紙にはできません」

と言われました。

しかし調べてみると、この制度はかなり複雑です。

条件だけでも、

  • 幼児
  • 指定席あり
  • 在来線では無料
  • 新幹線では「こども」
  • Qチケなのか
  • 新幹線eチケットなのか
  • 小児用Suicaがあるのか
  • 東京駅までJRで来たのか
  • 在来線の入場記録があるのか

などがあります。

これを駅員さんがすべて暗記して、目の前の利用者の状況に応じて即座に正しい案内を出すのは、かなり難しいのではないでしょうか。

だったら駅員さん向けに、

年齢区分:幼児 指定席:あり 利用商品:Qチケ 小児用Suica:なし 東京駅まで:JR在来線

と入力すると、

Qチケは紙のきっぷへ変更できません。 ○○改札から一度出場し、△△改札から再入場してください。

と一発で答えてくれるシステムがあればいいと思います。

名前はもう、

「えきねっとAI」

でいいでしょう。

窓口担当者が複雑な例外仕様を全部覚えるより、

人間は状況を聞き取り、システムが正しい手順を返す

方が、この手の定常処理には向いているはずです。

今回の体験で一番欲しかったのは、新しいチケットレスサービスより、

「その予約なら、あなたは今ここへ行ってください」

と一発で答えてくれる仕組みだったのかもしれません。

この記事をFAQ学習データ第1号として提供したいくらいです。


まとめ

幼児に1席確保して東北新幹線へ乗ること自体は難しくありません。

難しいのは、

「在来線では無料の幼児が、新幹線では有料の指定席を持つ」

という境界ケースを、複数のチケットシステムにまたがって処理することです。

個人的なおすすめは、

  1. 子供用Suicaがなければ、新幹線eチケットを予約して紙で受け取る
  2. 今後も使うなら、時間のある日に子供用Suicaを作る
  3. Qチケを使うなら、家族分QRと東京駅の動線を事前に準備する

です。

幼児連れの旅行では、

スマートさより、現場で迷わないこと。

これが今回いろいろ試して得た、一番実用的な結論でした。

那須高原に公共交通機関メインで行った話

⚠ 旅行時の手記を元にAIと共著した。本来人力できちんと書くべきだが最近なにをやるのも面倒になっているので知見だけを記す。

概要

2026年8月、幼児連れで那須高原へ1泊2日で行った。 移動は新幹線・路線バス・那須高原観光周遊バスが中心。必要な区間ではタクシーも利用した。 宿泊先はグランドメルキュール那須高原リゾート&スパ。

今回行った主な場所は以下。

  • トレジャーストーンパーク
  • 那須テディベア・ミュージアム
  • りんどう湖ファミリー牧場
  • 那須ガーデンアウトレット

ほかに、お菓子の城、南ヶ丘牧場、那須千本松牧場、那須どうぶつ王国なども候補として検討した。

実際の行程

1日目

10:30に新幹線で那須塩原駅に到着。

路線バスで那須高原方面へ移動し、トレジャーストーンパークへ向かった。

12:30に予約していた地下鉱山を体験。その後クリスタルリバーも利用した。

午後は那須テディベア・ミュージアムへ移動。

途中、トレジャーストーンパークに忘れ物をしたことに気づいたため、テディベア・ミュージアムから徒歩で取りに戻った。

その後、グランドメルキュール那須高原リゾート&スパへ移動して宿泊。

2日目

8:00からホテルで朝食。

チェックアウト後、荷物をホテルに預け、りんどう湖ファミリー牧場へ移動した。

昼過ぎまで牧場を回った後、ホテルへ戻って荷物を回収。

その後、友愛の森まで周遊バスで移動した。

帰りの新幹線まで時間があったため、友愛の森から配車アプリでタクシーを呼び、那須ガーデンアウトレットへ移動。

アウトレットから無料送迎バスで那須塩原駅へ向かい、18:00発の新幹線で帰宅した。


観光スポット

トレジャーストーンパーク

特徴

宝石探しは大きく分けて、事前予約が必要な「地下鉱山」と、当日受付の「クリスタルリバー」の2種類がある。

予約について

地下鉱山の予約が取れるなら取っておいた方がよい。

今回は地下鉱山を予約していたため、その後クリスタルリバーも待ち時間なしで利用できた。

訪問したお盆明けの時期でも、クリスタルリバーの通常待ち時間は約50分だった。

地下鉱山を予約して、

地下鉱山 → クリスタルリバー

の順に利用すると回りやすい。

予約が取れない場合は、クリスタルリバーの待ち時間を考えて予定を組む必要がある。

特に公共交通利用の場合、帰りのバスの本数が少ないため、予約の有無による影響が大きい。

荷物について

今回はスーツケースを持ったまま訪れたところ、施設のバックヤードで預かってもらえた。 ただし公式サービスにこの記述はなかったので期待はせず、基本的には車やホテルに置いてから来るべきだと思う。

公共交通

トレジャーストーンパーク自体には周遊バスの停留所があるが本数は1.5hに1本程度なので要注意。なお、バス停の位置がGoogleMap上でズレていたので見つからない場合は係員に聞くと良い(一敗)

テディベア・ミュージアムとは近く、徒歩でも15分くらい頑張れば移動できる距離だったが基本的に歩道が整備されてないのでオススメはしない。


那須テディベア・ミュージアム

特徴

名前はテディベア・ミュージアムだが、「となりのトトロ」の展示もかなり充実している。

フォトスポットが多く、トトロが好きなら楽しみやすい。

滞在時間

展示を見ることが中心なので、テディベアやトトロにあまり興味がない場合は比較的短時間で見終わると思う。

ワークショップ

ワークショップも有名だが事前予約が必要。

また、未就学児は参加できないので注意。

2歳児連れでは展示を見るのが中心になった。

アクセス

トレジャーストーンパークから近い。

実際に忘れ物を取りに戻った際も、テディベア・ミュージアムからトレジャーストーンパークまで徒歩で移動できた。

この2施設は同日に組み合わせやすい。


りんどう湖ファミリー牧場

特徴

グランドメルキュールから非常に近く、最悪徒歩でも行ける距離にある。

牧場と遊園地の両方の機能がある施設。

良かった点

施設内には飲食物を販売する出店やカフェテリアが複数あり、食事には困らない。

入口付近のレストランで食べたハンバーガーは普通においしかった。

動物とふれあえるスポットも複数ある。

訪問時はそれほど混雑しておらず、2歳の子どもも楽しめた。

気になった点

施設がかなり広い。

小さい子どもを連れて歩くと疲れる。

特に牧場エリアは入口から見て奥側にあり、牧場目的の場合はかなり歩くことになる。

遊覧船を使えば移動を減らせるが、遊覧船の運航時刻と周遊バスの時刻が合わせづらかった。

公共交通利用で時間に制約がある場合は、牧場だけを目的にして効率よく回る施設としては少し使いづらい。


宿泊

グランドメルキュール那須高原リゾート&スパ

アクセス

専用送迎バスはない。

代わりに、宿泊者は那須線・那須高原観光周遊バスで使える1日乗車券相当のフリーパスを到着日・出発日分もらえる。

観光には便利だった。

一方、那須塩原駅からホテルまではバスを乗り継ぐ必要がある。

那須はバスの本数が少ないので、ホテルへのアクセスだけを考えると送迎バスがあった方が便利だと思った。

ホテルエピナール那須には那須塩原駅からの送迎バスがあるため、公共交通利用では比較ポイントになりそう。

那須の交通事情については別途まとめたい。

設備

屋内・屋外に未就学児向けの遊具やスペースがある。

プールもあり、ホテル内だけでもある程度遊べる。

観光を早めに切り上げても、ホテルに戻って子どもを遊ばせることができる。

ラウンジも便利に使えた。

部屋

普通の洋室ツインに宿泊。

部屋は広く、きちんと明るかった。

トイレやテレビなど一部設備は少し古め。

あまり使われなさそうな設備にはそこまでお金をかけていない印象だった。

空調は風量しか調整できなかった。

寒く感じる場合に備えて、薄手の羽織があるとよいと思う。

食事

夕食・朝食ともビュッフェ。

全体としては比較的ハイスタンダードなホテルビュッフェだと思う。

珍しい料理が多く、この点は好みが分かれそう。

子ども向けの料理が冷めているなど、調理内容とは別の部分で少し気になる点があった。

時期による可能性もある。


帰路で利用した場所

那須ガーデンアウトレット

帰宅日の時間調整先として利用した。

友愛の森から配車アプリでタクシーを呼び、アウトレットまで移動。

料金は6,000円弱だった。

アウトレットから那須塩原駅までは無料送迎バスがある。

今回は16:30発と17:00発を候補にして滞在時間を決めた。

そのため、

那須高原 → タクシーでアウトレット → 無料送迎バスで那須塩原駅

という帰路は選択肢になる。

アウトレット自体については、店舗構成や内容に他地域のアウトレットとの大きな違いは感じなかった。

那須観光の目的地として優先するというより、帰りの新幹線まで時間が余った場合の調整先として使いやすい。


候補に入れたが選ばなかった場所

お菓子の城 那須ハートランド

ホテルと那須塩原駅を結ぶバスの途中にあり、帰宅日に寄る候補にしていた。

屋内施設なので雨の日にも使いやすい。

今回はりんどう湖での滞在時間が予定より長くなり、その後ホテルで荷物を回収する必要もあったため見送った。

公共交通の場合は、その後の那須塩原駅行きバスとの接続を見て組み込む必要がある。

南ヶ丘牧場

りんどう湖以外の牧場として候補にした。

入場無料で、動物とのふれあいや食事を中心に楽しめる。

一方、今回のようにグランドメルキュールから10〜11時頃に出発する条件では直通バスの時刻が合わず、友愛の森での乗り換えが必要だった。

今回はホテルから数分で行けるりんどう湖を選んだ。

乳搾り体験は実施していない。

那須千本松牧場

牧場候補として調べた。

今回の那須高原エリアから離れており、グランドメルキュールを拠点に公共交通で1泊2日を回る場合は移動が大きい。

乳搾り体験も実施されていなかったため今回は候補から外した。

那須どうぶつ王国

動物系施設として候補にした。

今回宿泊したホテル周辺の周遊バスだけで簡単に回れる場所ではなく、移動に時間がかかるため見送った。

牧場というより動物園・ショーを含む大型施設なので、行く場合は半日以上を使う前提で旅程を組んだ方がよさそう。


公共交通で那須を回って感じたこと

バスの本数が少ない

那須高原の主要な観光地には路線バスや観光周遊バスで行ける。

ただし本数が少ない。

施設同士の距離は近くても、次のバスまで1時間以上空くことがある。

そのため、都市部のように「観光が終わったら次のバスに乗る」という使い方はしづらい。

基本的にはバスの時刻を先に見て、観光時間を決める必要がある。

施設同士が近くても移動しやすいとは限らない

地図上では数km以内に施設がまとまっている。

一方、徒歩移動に適した道路とは限らない。

トレジャーストーンパークとテディベア・ミュージアムのように徒歩で組み合わせやすい施設もあるが、距離だけを見て予定を組まない方がよい。

タクシーは選択肢になる

那須高原はタクシー配車アプリの対象地域だった。

今回は友愛の森から那須ガーデンアウトレットへの移動で配車アプリを利用できた。

バスだけで予定を組むよりも、必要な区間だけタクシーを使う前提にすると自由度はかなり上がる。

一方、タクシーの事前予約を依頼した際には、バスの到着時刻が不確定という理由で断られた。

予約できるとは限らないので、当日配車も含めて考えた方がよい。

荷物の扱いは先に考える

小さい子どもとスーツケースを持ちながら観光するのは大変だった。

ホテルに預けられるなら預けた方がよい。

ただし、ホテルへ寄ることで固定時刻の予約やバスに間に合わなくなる場合もある。

今回はトレジャーストーンパークでスーツケースを預かってもらえたが、公式サービスかどうかは確認していない。


次に行くなら

1日目

那須塩原駅到着後に固定時刻の予約がある場合は、その施設への到着を優先する。

ホテルへの荷物預けは、移動時間に余裕がある場合だけにする。

トレジャーストーンパークとテディベア・ミュージアムは近いので同日にまとめやすい。

2日目

朝はホテルでゆっくりする。

グランドメルキュールに泊まるなら、りんどう湖は近いので組み込みやすい。

荷物はホテルに預けて観光する。

帰路はバスの時刻次第で、

  • 友愛の森からそのまま那須塩原駅
  • お菓子の城に寄る
  • タクシーで那須ガーデンアウトレットへ移動して無料送迎バスで駅へ行く

などを選べる。

1日2施設程度を基本にした方が予定は組みやすいと思う。


総評

那須高原は、牧場、屋内施設、ホテル内の遊び場など選択肢が多く、子どもの年齢や天候に合わせていろいろなプランを組める。

また行きたいと思った。

一方、公共交通だけで回る場合はバスの本数の少なさがかなり制約になる。

観光施設同士はそれほど離れていなくても、次のバスまで1時間以上空くことがある。

バスを乗り継ぐ場合はさらに自由度が下がる。

那須塩原駅からの往復や主要な移動はバスを使いつつ、必要な区間だけタクシーを併用するのが現実的だと思う。

那須高原はタクシー配車アプリの対象地域でもあり、今回も実際に利用できた。

次回は、

  • バスの時刻を基準に大まかな行程を決める
  • タクシーを使う可能性を最初から考えておく
  • 固定時刻の予約を詰め込みすぎない
  • 徒歩で移動できる施設同士はまとめる

あたりを意識したい。

那須高原自体の観光先には困らないが、公共交通で行くなら現地での足はきちんと用意しておきたい。

GitHub PRをワンクリックでLLM向けテキスト化するChrome拡張を作った(Codex君が)

最近、Pull RequestをLLMに投げてレビューや要約を自動化する機会が増えてきました。 GithubのCopilotを使っても良いのですが自動でコメントするので汚れる上に自分の理解を整理するためになんだかんだ他のLLMと議論したいので変更をコピペして議論することが多いです。

ということでCodexでChrome拡張を作ってみました。このブログの後半も含めてすべて基本的にAgentに書いてもらってます。まだ慣れませんがたしかに面白い感覚です。

github.com

追記:リリースされました。 リリースするにはアイコン作ったり細かなスクショをとったり説明を書いたりなどこの機能を作るのと同程度の時間がかかりました。あと、不要な権限をmanifestに書いていると審査に速攻落ちるのでそのあたりはLLMを鵜呑みにせず一個一個確認していったほうがよい気がします。

GitHub PR Extractor - Chrome ウェブストア

GitHub PRをワンクリックでLLM向けテキスト化するChrome拡張を作った

ただ毎回、

  • PR Descriptionをコピー
  • diffを取得
  • プロンプト用に整形

という作業が地味に面倒でした。

そこで、PRページからワンクリックでLLM向けテキストを生成できるChrome拡張を作ってみました。


背景:なぜ作ったか

PRレビューをLLMに補助させると、

  • 変更内容の要約
  • リスク検出
  • テスト観点の洗い出し

などがかなり楽になります。

一方で、 「PR本文+diffを毎回整形して貼り付ける作業」がボトルネックになっていました。

この作業を完全自動化したいと思ったのがきっかけです。


できること(ざっくり仕様)

この拡張では以下が可能です。

  • PR Descriptionを自動取得
  • diff(patch形式)を自動取得
  • テンプレートで自由に整形
  • ワンクリックでクリップボードへコピー

さらに、

  • 出力サイズが大きすぎる場合は警告表示
  • LLM向けプロンプト形式にそのまま変換可能

という実用寄りの設計にしています。


使い方

  1. GitHubのPRページを開く
  2. 「Extract PR」ボタンを押す
  3. 整形済みテキストがクリップボードにコピーされる
  4. そのままLLMへ貼り付け

テンプレートは拡張の設定画面から自由に編集できます。


どんな人におすすめか

  • PRレビューをLLMで補助している人
  • 変更内容の要約を自動化したい人
  • 大規模リポジトリを扱っている人
  • コードレビューを効率化したい人

今後やりたいこと(予定)

  • 巨大PRの自動分割対応
  • ファイル単位抽出
  • ワンクリックでLLM送信

必要になったら順次追加予定です。


まとめ

PRをLLMで扱うときの「地味に面倒な前処理」をほぼゼロにできました。

もし同じような作業をしている方がいれば、ぜひ使ってみてください。

個人メモ:2025秋時点でLong useしたデバイス/使わなかったデバイス

ふと書きたくなったのでメモ。読み返したら「よいものはよい」みたいなことしか書けてない気がする。

Long use したデバイス

PC周辺機器

この年になって気付いたが高級品、フラグシップモデルは基本的に満足度が高い。

キーボード:HHKB TypeS

PFU キーボード HHKB Professional Classic Type-S 英語配列/雪 (静音 有線 USB コンパクト 押下圧45g)

当初無刻印を買ったので数字Keyを打つのにちょっと戸惑っていたが4年以上使っていると全然気にならなくなる。 正直他のキー配列が気に入らなくなるという呪いがかかるのでおすすめはしない。

最近HHKB Studioを買って更に沼にハマっている。助けてほしい。

PFU キーボード HHKB Studio 英語配列/墨 (ポインティングスティック メカニカルキーボード)

マウス:MX master

ロジクール アドバンスド ワイヤレスマウス MX Master 3 MX2200sGR Unifying Bluetooth 高速スクロールホイール 充電式 FLOW 7ボタン windows Mac iPad OS 無線 ワイヤレス マウス MX2200 グラファイト 国内正規品

特に言うことはない。長く使うとプラスチック部分がちょっと加水分解して汚れやすくなる点には注意(日常的に洗えよという話ではある) もしきちんとするなら次もこれを買うと思うが実際お絵かきをするとき以外マウスを必要としないのであまり高いものを買わなくてもいい説はある。

充電機器

Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)

充電ケーブルは圧倒的にAnkerのこれを気に入っていてたくさん買っている。長い事使っているがかなり頑丈でヘタレない。 流石にものを激突させたときには一本壊れたので過信はしないほうが良さそう。

Anker 737 Charger (GaNPrime 120W) (USB PD 充電器) (ブラック) 100WのPCも問題なく充電できる スグレモノだが重くて先にコンセントに刺す部分の接続があやしくなってしまった。ただ、今後もずっと使うと思う。

オーディオ

SHOKZの骨伝導のやつ Shokz (ショックス) OpenRun 骨伝導イヤホン ワイヤレス Bluetooth5.1 オープンイヤーヘッドホン 耳を塞がない 自動ペアリングヘッドフォン マイク付き 技適認証済み ランニング・スポーツイヤフォン IP67防塵防水 急速充電 8時間再生 ブラック

一番使っている。出かけることが多くなって周りの音は聞きつつなにか流したいときに使っている。つけっぱなしに耐えうるデザインと電池持ちなのが最高。没入感は無だが一番日常で役に立つと思う。おそらく壊れたら次も買う。

ソニー(SONY) ワイヤレスノイズキャンセリングヘッドホン WH-1000XM4 : LDAC/Amazon Alexa搭載/Bluetooth/ハイレゾ 最大30時間連続再生 密閉型 マイク付 2020年モデル 360 Reality Audio認定モデル ブラック WH-1000XM4 BM

真面目な会議や集中して浸りたいときはこちら。コスパがかなり良いと思う。 合皮の部分はすぐヘタれるが結構お安く互換品で替えられるのもGood.

それ以外

よく考えたらあんまり他に書きたいのないかも。思いついたら追記する。

使わなかったデバイス

有象無象を買っているので当初の期待感の割に活躍しなかったものを特に挙げる

キーボード

【最新型】Omikamo キーボード bluetooth 折り畳み式 ワイヤレス JIS標準日本語配列 ipad キーボード スマホ マルチペアリング タッチパッド付き iOS/Windows/Android/Mac/Google対応 無線 コンパクト 軽量 薄型 ipad mini パンタグラフ 充電式 (黒) 違った、違ったんだ。稀に役に立つことはあったがそこまでやるならPC持ち歩こうとなるのでなんか絶妙に役に立ってない。

Apple Magic Keyboard - 英語(US) ​​​​​​​ これ自体は悪くなかった。強いていうならこの価格でペアリング切り替えとかがないのが致命的。正直競合には価格面で負けていると思う。 HHKBの呪いにより結局あまり使っていないのでこちらに。

XPPen 左手デバイス ショートカットリモート 片手キーボード Bluetooth対応 ワイヤレス ペンタブ 液タブ用 ノートパソコン対応 作業効率向上 イラスト 画像 動画編集 ACK05 見た目もクリック感も最高と思ったが本当に何に使うかもわからないのでたまにカチカチする程度になっている。

オーディオ

ソニー(SONY)ワイヤレスノイズキャンセリングイヤホン WF-1000XM5 :【VGP2025金賞】 / 完全ワイヤレス/圧倒的ノイズキャンセリング性能/小型軽量設計/高性能マイク通話品質/Amazon Alexa搭載/Bluetooth/LDAC対応 / 最大8時間連続再生 / IPX4防滴性能 / マルチポイント対応/ブラック/WF-1000XM5 BC 何シリーズか持っていて2年ほどつかっていたが体感1−2年でバッテリがへたるのでやめた。上記のLong useしていたものたちは倍以上使ってて問題ないのでやはりこのセパレート型の構造的な欠陥な気がする。

スプレッドシートでGemini APIを使うテンプレ

自分用。APIの使い方というかリクエストのテンプレは変わっている可能性があるので公式を見たほうが良い。 GASの使い方は省略。

前準備

https://console.cloud.google.com/

にてProjectを作る

変数の設定

// --- 1. 設定 (ここを編集) ---

// Google AI Studio (Gemini API) で取得したAPIキー
const GEMINI_API_KEY = "YOUR_GEMINI_API_KEY_HERE";

// 使用するモデル名 (例: gemini-2.5-flash, gemini-1.5-pro)
const MODEL_NAME = "gemini-2.5-flash";

モデルの種類は利用料に直結する

項目,料金(米ドル)
インプット (入力),$0.30 / 100万トークン
アウトプット (出力),$2.50 / 100万トークン

API呼び出し

promptの部分を調整するのが良い。創造性とかのパラメタの設定は適当。

// --- 3. API呼び出し関数 (再利用の「肝」) ---

/**
 * Gemini APIを呼び出して、テキスト処理の結果を返します。
 * @param {string} text - APIに渡す入力テキスト。
 * @return {string} APIからの応答テキスト。
 */
function callGeminiApi(text) {
  
  // ★★★ プロンプトを編集 ★★★
  // ここでAPIにさせたいことを具体的に指示します。
  // 例1: 要約
  const prompt = `以下の文書を日本語で端的に目的手法がわかるように要約して:\n\n${text}`;
  // 例2: 翻訳 (英→日)
  // const prompt = `以下の英語のテキストを自然な日本語に翻訳してください:\n\n${text}`;
  // 例3: キーワード抽出
  // const prompt = `以下のテキストから重要なキーワードを5つ、カンマ区切りで抽出してください:\n\n${text}`;
  
  
  // APIに送信するリクエスト本体 (ペイロード)
  const payload = JSON.stringify({
    contents: [
      {
        parts: [{ text: prompt }]
      }
    ],
    // APIの挙動を調整する設定 (例: 出力長の制限、創造性の調整など)
    generationConfig: {
      maxOutputTokens: 2048, 
      temperature: 0.5 // 創造性の度合い (0.0〜1.0)
    }
  });

  // APIリクエストの設定
  const options = {
    method: "post",
    contentType: "application/json",
    payload: payload,
    muteHttpExceptions: true // エラー時に例外を投げず、応答を返す (詳細なログ用)
  };
  
  // APIキーをURLのクエリパラメータとして渡す
  const url = `https://generativelanguage.googleapis.com/v1beta/models/${MODEL_NAME}:generateContent?key=${GEMINI_API_KEY}`;
  
  const response = UrlFetchApp.fetch(url, options);
  const jsonResponse = JSON.parse(response.getContentText());

  // 応答からテキストを抽出 (エラーハンドリング)
  if (jsonResponse.candidates && jsonResponse.candidates[0].content.parts[0].text) {
    return jsonResponse.candidates[0].content.parts[0].text.trim();
  } else if (jsonResponse.error) {
    // APIからエラーが返ってきた場合
    Logger.log("APIエラー詳細: " + jsonResponse.error.message);
    throw new Error(jsonResponse.error.message);
  } else {
    // 予期せぬ応答形式の場合
    Logger.log("API応答 (予期せぬ形式): " + response.getContentText());
    throw new Error("APIからの応答形式が予期せぬものでした。");
  }
}

Loop文

実行する本体

// --- 2. メイン関数 (スプレッドシートの操作) ---

/**
 * A列のテキストをAPIで処理し、B列に結果を書き込みます。
 * GASエディタからこの関数を実行します。
 */
function processSheetData() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // A列のデータがある最終行を取得
  const lastRow = sheet.getLastRow();
  
  // 1. 読み込み (A1からA列の最終行までデータを取得)
  const dataRange = sheet.getRange("A1:A" + lastRow);
  const inputValues = dataRange.getValues();
  
  let outputValues = []; // B列に書き込むための結果を格納する配列

  // 2. ループ処理 (1行ずつAPIを呼び出す)
  for (let i = 0; i < inputValues.length; i++) {
    const inputText = String(inputValues[i][0]);
    
    // A列が空欄でなければAPI処理を実行
    if (inputText.trim() !== "") {
      try {
        // 3. CallAPI (API呼び出し関数を実行)
        const resultText = callGeminiApi(inputText);
        outputValues.push([resultText]); // 成功した結果を配列に追加
      } catch (e) {
        Logger.log("APIエラー (行 " + (i + 1) + "): " + e);
        outputValues.push(["[APIエラー]"]); // エラーメッセージをセルに書き込む
      }
    } else {
      outputValues.push([""]); // A列が空欄ならB列も空欄にする
    }
  }

  // 4. 書き込み (B列に結果を一括で書き込む)
  if (outputValues.length > 0) {
    sheet.getRange("B1:B" + lastRow).setValues(outputValues);
    Logger.log("処理が完了しました。");
  }
}

Google PatenetをPythonでパースして簡単にアウトラインを把握する

特許のアウトライン読み込みの効率化のためのメモ。Notebookに下記を貼り付けるだけでいい感じにParseできる。 Google Patentとパーサの仕様に依存するので動かなくなっても御愛嬌。

依存解決

!pip install googlepatentscraper

実行内容

# WidgetでGooglePatentをParseする
from googlepatentscraper.document import Document
from google.colab import widgets
import ipywidgets as widgets
from IPython.display import display, HTML, clear_output

url_box = widgets.Text(
    value='',
    placeholder='Google PatentのURLを入力してください',
    description='URL:',
    disabled=False
)
display(url_box)

# ボタンを押して実行
def on_button_clicked(b):
    with output:
        clear_output() # 過去の出力をクリア
        url = url_box.value
        number = url.split("/")[-1]
        patent = Document(number)
        text = patent.data["description_alt"]
        display(HTML(f"<textarea rows=20 cols=100>{text}</textarea>"))

button = widgets.Button(description="取得")
output = widgets.Output() # 出力ウィジェットを作成
button.on_click(on_button_clicked)
display(button, output) # ボタンと出力ウィジェットを表示

折りたたみスマホを買うまでに考えていたことについて

折りたたみスマホを買った。色々調べたのでここにメモする。

折りたたみスマホがほしい理由の整理

なにかが強烈に欲しくなったとき、大体理由は大したことがないことが多い。

自分も折りたたみスマホが一時期急に欲しくなって色々調べたが冷静にほしい理由を挙げていった結果、大した理由はひねり出せなかった。

  • ☆☆☆: でかい画面を手軽に持ち歩きたいから
  • ☆☆: ワクワクするから
  • ☆: 自撮りやマルチタスクなどに使えそう

基本的に通勤時にタブレットKindleを出すのが億劫なのでポケットから出せる大画面がほしいという理由以外は特になんてことのない欲求だ。自分が親になって子供にこんなプレゼンをされても多分買ってやらない。

でも色々考えた結果、うっかり買ってしまった。 買うに至っては買わない理由を潰す必要があるがその際に考えていたことについて記す。

買う理由・買わない理由

メリット・デメリットの列挙

一応一般的な折りたたみスマホのメリットデメリットについて下記に書く。メリットには実は大したことが書いていないので私が買う前に検討するのは基本的にデメリットの方だ。

  • メリット
    • 大画面を気軽に持ち運べるので読書・メモ・マルチタスクが捗る
    • 一画面に情報量を詰め込める
    • 折りたたんだ状態で安定して立たせられる
    • (単純にガジェットとしてカッコいい)
  • デメリット
    • 重い・電池持ちが悪い
    • 可動部分があって壊れやすい。画面の不具合もよくある。
    • 高い。そしてリセールが安い

このデメリットにどう向き合うかで買う機種を決めた。

重さや電池持ちの悪さ

自分はわけあって普段からスマホを2台持ち歩いているアホなので重さは対して気にならないはずと思った。また、メインではなくサブのスマホとして利用するつもりなので電池の持ちも許容できると信じている。

というかハイエンドのスマホが好きな人は重さに文句を言ってはいけないと思う。

壊れやすさ・傷つきやすさ

これに関してはどう頑張って調べても避けられないようである。自分は欲しい機種の前の機種がどのように中古市場で出回っているかで確認することが多い。

例えばsamsungのz foldの4や5の販売状況を見るにヘビーユースしていたと思われるユーザの出品はそこまで多くなく、ジャンクや瑕疵のあるスマホの数もそれなりに多い。新機種で大きく改善していることもあるが基本的に折りたたみスマホは可動部がある都合上どうしても壊れやすいのだと思われる。

ただ、流石にハイエンド機種だけあってメーカによっては保証やサポートはそれなりに厚い傾向にあるのでそのあたりで理由付けして納得することにした。

価格・リセールについて

これも中古市場(フリマアプリ系)を見るのがもっとも手っ取り早い

結論から言うと折りたたみスマホ、というかAndroidはリセールがとても安い。例えばサムスンのz foldの定価と価格ドットコムのAランクの中古価格のサンプルを書くと

  • Z Fold 5(1年前): 252,140円 → 178,002円
  • Z Fold 4(2年前): 240,000円 → 126,280円

となっている。1年で25%の減価となっているが元値が高いためかなり見た目には痛い額に見える。

z fold 4に関しては2年で12万円の減価になっている。12万円といえば一昔前のハイエンドを買えたし何なら円高の頃はmac book airすらも買えた。そのレベルの値下がりをするのだ。

しかもこれは買う側の話であって売値はもっと安い。

言っておくがiPhoneではそうはいかない。あえて2世代前を基準に書くがiPhoneは美品として使えるならば非常ににコストパフォマンスよく所持することが可能なのである。なので賢い皆さんはiPhone15や16を買うべきだ。

価格.com - 販売時期:2022年秋モデル iPhoneの中古スマートフォン(白ロム) 製品一覧 (2ページ目)

  • 2年前のiPhone14の場合
    • 119,800→89,980
  • 3年前のiPhone13の場合
    • 89,818→73,980

なおこれはA品レベルの美品の買い相場なのでメインスマホで使っていた人のリセールはもっと安くなるという点には注意されたい。しかし、折りたたみスマホは基本もっともっと安くなると思って良い。

以上のことからコスト面では正直全くおすすめできない。

一応コスパの悪さは下落率というより下落幅の絶対値に起因するので、稀に売っている基準値よりも低い値段の半年から1年くらいの中古品を買えれば多少マシにはなると思っている。

割高感はどうやっても拭えないので中古市場で相場よりオトクな掘り出し物を見つけるかストアクレジットや下取りなどを口実に買うことで納得させる方向になるだろう。

機種検討

折りたたみスマホメーカーは中国系を中心に以外とあるが上記の理由を考えるにあまり選択肢は広くない。

  • GooglePlayStoreが利用可能
  • 日本国内でサポートが受けやすいこと(あとFelicaの有無)
  • 様々なサイトでの評判

などを加味した結果自分は下記を検討していた。

最後のhonorは国内版がないためぶっちゃけサポートとかには期待できないのだがハードウェアがあまりに魅力的すぎて検討の候補に上がってきていた。機体の薄さや開閉後の画面の自然さ、デザインで見ると当代随一のスマホであると思っている。

詳しいレビューは下記の記事を参照するがめちゃくちゃ良さそうである。

Honor Magic V3 開封レビュー。薄くて軽いだけじゃなくマジでいい機種 - Gadget Leaker

もろもろの検討をした結果最終的には色々あってZ Fold 6を買った。

結局honorは20万するものを個人輸入して保証なしで使うのに日和ってしまったのとpixel foldは正直まだ技術が成熟してなさそうな印象を受けたので技術が枯れてそうな方をチョイスしてしまった。20万はまだ自分には大金である。

以下富裕層の皆様向けの新品のリンク

Galaxy Z Fold6|256GB|シルバーシャドウ|Galaxy AI対応|SIMフリー スマホ 本体 端末|Samsung純正 国内正規品|折りたたみAIフォン|FeliCa対応|メイン:7.6インチ カバー:6.3インチ|QXGA+|50.0 MP + 12.0 MP + 10.0 MP|バッテリー 4,400mAh|SM-F956QZSASJP

Google Pixel 9 Pro Fold 256GB SIMフリー Obsidian スマートフォン本体

honorはアリエクで個人輸入するのが良いだろう。 https://ja.aliexpress.com/item/1005007384082596.html?src=google&src=google&albch=shopping&acnt=708-803-3821&isdl=y&slnk=&plac=&mtctp=&albbt=Google_7_shopping&aff_platform=google&aff_short_key=UneMJZVf&gclsrc=aw.ds&&albagn=888888&&ds_e_adid=&ds_e_matchtype=&ds_e_device=m&ds_e_network=x&ds_e_product_group_id=&ds_e_product_id=ja1005007384082596&ds_e_product_merchant_id=107909567&ds_e_product_country=JP&ds_e_product_language=ja&ds_e_product_channel=online&ds_e_product_store_id=&ds_url_v=2&albcp=17542645841&albag=&isSmbAutoCall=false&needSmbHouyi=false&gad_source=1&gclid=CjwKCAjw0aS3BhA3EiwAKaD2ZWmSevlFUKaeXXHcKjBEWdnm_gu9izbrIM58aTaasl5QIR2TbhM1NRoC14cQAvD_BwE