← 一覧に戻る

不動産相場分析プラグイン 品質チェック結果

2026年2月28日 13:29 更新

📌 一言でいうと

品質チェックで4件指摘あり。1件は誤検知、3件は修正完了。

🎯 なぜこれが必要なのか

前回、「/price-check 住所」と打つだけで土地の坪単価(1坪=約3.3㎡あたりの価格)を自動算出するプラグイン(Claude Code に機能を追加する拡張パック)を作った。

作った直後に品質チェック(コードレビュー)を実施した。コードレビューとは、別のAIに「この実装におかしいところない?」とチェックさせる工程のこと。人間の目だけでは見落とすバグやセキュリティの穴を、機械的に洗い出す目的でやる。

🏗️ 何をしたのか(おさらい)

① バグ修正

横浜市・川崎市などの政令指定都市(区がある大きな市)で不動産取引データが取れないバグがあった。

原因は、国交省のシステム内部でのデータの持ち方のズレ。「住所の名前を調べるデータベース」と「取引データのデータベース」で、同じ場所なのに名前の書き方が違っていた:

住所マスタ(名前を調べるデータベース)
「緑区」とだけ返す
取引データ(実際の売買情報)
「横浜市緑区」と市名付きで記録されている

「緑区」と「横浜市緑区」を照合しても一致しないため、全データが弾かれていた。修正後は「緑区で終わる名前なら一致とみなす」ようにして解決した。

② プラグイン作成

Claude Code に /price-check 住所 と入力するだけで、そのエリアの相場レポートが自動で出る機能を追加した。国交省のAPI(プログラム同士がデータをやりとりする窓口)から過去3年分の取引データを取得し、坪単価のレンジ(最安〜最高の幅)を算出する。

📊 品質チェック結果(4件の指摘)

指摘①「同じ県に同名の区があったらデータが混ざるのでは?」

チェックAIの心配: 神奈川県には「横浜市緑区」と「相模原市緑区」がある。「緑区で終わるならOK」にしたから、相模原市のデータまで混ざるのでは?

結論: 誤検知(実際は問題なし)。

なぜかというと、国交省にデータを問い合わせるとき、住所の「名前」ではなく固有の「番号」(横浜市緑区 = 14113、相模原市緑区 = 14153)を指定して送っている。返ってくるデータには最初から横浜市緑区の分しか入っていない。だから名前が同じでも混ざりようがない。チェックAIが「番号で事前に絞り込んでいる」ことを見落とした誤検知だった。

指摘②「市区町村名が取れなかったとき、黙って何もしない」

住所の番号から市区町村名を調べる処理で、もしデータが取れなかった場合に、エラーも出さず黙って「データなし」と返していた。これだとトラブルが起きたとき原因がまったくわからない。

BEFORE
市区町村名が取れなくても、そのまま処理を続行。結果が空っぽになるだけで原因不明
AFTER
市区町村名が取れなかったら「取得失敗」と記録を残して、すぐ処理を中断する。原因が追える

指摘③「容積率がゼロだと計算が壊れる」

一種単価(容積率を加味した坪単価の指標。同じ坪単価でも容積率が高い土地の方がたくさん建てられるので、それを考慮した単価)を計算するとき、「坪単価 ÷ 容積率」という割り算をする。

もし容積率のデータが取得できず 0 だった場合、ゼロで割り算しようとしてプログラムが停止する。数学的にゼロで割ることはできないため。

BEFORE
容積率が 0 でもそのまま割り算を実行 → プログラムが停止
AFTER
容積率が 0 の場合は一種単価を「計算不能」として扱い、割り算自体をスキップする

指摘④「住所の送り方にセキュリティの穴」

入力された住所を国土地理院(住所を緯度経度に変換してくれる国のサービス)に送るとき、日本語の住所をそのままインターネットに送っていた。

URL(ウェブアドレス)には使える文字に制限があり、日本語をそのまま入れると文字化けしたり不具合が起きる可能性がある。安全な形式に変換する処理(URLエンコード)を追加して対応した。

BEFORE
日本語の住所をそのままURLに埋め込んで送信
AFTER
送信前に日本語を安全な形式に自動変換してから送信

📊 テスト結果

修正前

  • 横浜市緑区: データ取得できず
  • 鎌倉市: 正常に取得

修正後

  • 横浜市緑区: 正常に取得できた
  • 鎌倉市: 引き続き正常(壊れてない)

まだ終わってない検証: 作業中に国交省との接続が切れたため、/price-check 横浜市緑区中山4丁目 の実動作テストは次回セッションで実施する。坪単価が事前に調べたレンジ(第1種低層住居専用地域: 55〜90万円/坪 など)と合っているかも確認予定。

💡 ポイント

AIの品質チェックも万能ではない。 今回の指摘①のように、チェックAIは「名前の一致ロジック」だけを見て「混ざる!」と警告したが、その手前で「番号で既に絞り込んでいる」というシステム全体の流れを見落としていた。AIの指摘は鵜呑みにせず、人間が全体像を踏まえて最終判断する必要がある。

残作業: 次回セッションで /price-check の実動作テスト、設定ファイルのバックアップ。

📝 質問モード — テキストを選択してね
✓ 質問を送信しました