MENU

発注ツールを“配れる形”に仕上げる(Claude Code・配布編)

第5回で、発注ツールは多チームと汚れたデータに耐えるところまで来ました。道具としては、もう動く。でも、使うたびに引っかかる「毎回やり直し」が残っています。そしてもう一つ──この道具、まだ私のPCの中だけのものなんです。今回はそこを片づけて、設定を外に出し、別のPCでも動くところまで仕上げます。

目次

1. 修正点の概要

困りごとは2つです。1つめは、緊急度のしきい値(危険・注意・安全とみなす日数)も、読み込むファイルも、起動するたびに最初から指定し直しになること。しかもその値はプログラムの中に書き込まれていて、プログラムを触れない人には変えられません。2つめは、この道具が私のPC専用なこと。現場の別の人に渡そうとすると、準備の段階でたいてい止まります。

そこで、今回のゴールはこの2つです。

ポイント
  • 設定を外に出す… しきい値や前回のファイルを、プログラムの外側の設定ファイルで持つ。メモ帳で書き換えられる。
  • 別PCで動かす… 何も準備していないPCでも、ダブルクリックで起動できる形にする。

今回も計算のコアは変えません。やるのは「設定の出し方」と「配り方」だけです。

2. 修正プラン:設定の外部化と、配布の道筋

変更は2つに分かれます。設定の外部化では、しきい値と前回使ったファイルを、プログラムの外側にある設定ファイルに置きます。起動時にそれを読み、無ければ既定の値で動く。配布では、まず自分のPCで一発起動できるようにし、次にその先へ──プログラムを入れていない別のPCでも動く形に固めます。

どちらもコアには触らない範囲の変更です。だからまず段取りだけ立ててもらい、「コアは変えず、その上に乗せる」計画になっていることを確認してから、実装に入ります。仕様は変更仕様書にまとめました。

3. 実装:ハードコードをやめ、設定を外に出す

実装すると、こう変わりました。これまでプログラムの中にあった数字が、外の設定ファイルに出てきます。形式はINI(メモ帳で開ける、よくある設定ファイルの形)。読み書きにはPython標準のconfigparserを使うので、追加で何かを入れる必要はありません。現場の人が「危険は3日だと早すぎる、5日にしたい」と思ったら、そのファイルをメモ帳で開いて数字を直すだけ。プログラムは一行も触りません。前回読み込んだファイルも覚えているので、起動のたびの選び直しも消えました。

設定が、プログラムを触れない人の手に渡った──これが今回いちばんの変化です。道具を使う人が、自分で「効き具合」を調整できるようになりました。

設定ファイルの中身を見る(コード)
[thresholds]
danger_days = 3
warn_days = 7
safety_days = 7

[last_files]
inventory = data/inventory.csv
plan = data/production_plan.csv
recipe = data/recipe.csv

テストは、今回は観点だけ挙げておきます(結果は割愛)。設定ファイルが無いときに既定値で動くかおかしな値(危険が注意以上など)をはじくか前回のファイルが消えていても落ちないか。この3つを押さえておけば、設定を外に出したことで増える事故は、だいたい防げます。

4. 配布:別PCで動かす

一発起動までは、すぐ届く

まず、ダブルクリックで起動できるようにします。毎回コマンドを打つ手間は、これで消えます。ただしこれは準備のできた自分のPCでの話。同じものを同僚のまっさらなPCにコピーしても、動きません。動かすための土台が、その人のPCには無いからです。

実行ファイルに固めれば、別PCでも動く

そこで、PyInstallerという道具を使って、プログラムをまるごと一つの実行ファイル(.exe)に固めます。土台ごと中に抱えてしまうので、受け取った人は何も準備せず、ダブルクリックで起動できる。これが「別PCに持っていっても動く」の正体です。一人で作った道具が、ようやく一人の外へ出ていけるようになります。

MATSU

自分のアプリ、ほかのPCでも動かしたいですよね。一発起動だけだと、実は自分のPCから出られないんです。

ただ、配るときに知っておくべき注意もあります。受け取った人の画面に最初だけ警告が出ること、ファイルが少し大きくなること。このあたりは、知っていれば慌てません。技術的な詳細は、読みたい方向けに畳んでおきます。

実行ファイル化の技術メモ(読みたい人向け)
  • 署名していない実行ファイルは、受け取り側で「発行元不明」の警告が出る。進めるには一手間かかる(署名は有料)。
  • 土台ごと抱えるぶん、ファイルは数百MBと大きめ。起動も少し遅くなる。
  • ヒートマップの描画に使っているmatplotlibは、そのまま固めると日本語が□(豆腐)に化けることがある。日本語フォントを一緒に同梱して防ぐ。
  • 固める作業は、配布先と同じWindows上で行う。

5. プロンプト設計:どう指示したか

AIへの指示で外したくないのは、2点でした。コアは変えないという制約と、設定ファイルの形と既定値は、こちらで決めて渡すこと。任せきりにすると、計算の中身に手を入れにいったり、設定の形が思わぬものになったりします。「何を・なぜ・どこまで」を先に固めて渡すほど、出てくるものは安定します。

実行ファイル化も、丸投げにはしません。「別PCで配る」「日本語が化けないようにする」という目的を伝えるのが要点です。目的さえ渡せば、手段はAIが埋めてくれます。

変更依頼のプロンプト

変更仕様書を参照して、まず計画だけ立ててください(実装前に確認します)。
- 計算のコアは変更しない。その外側に「設定の読み込み」を足す。
- 設定はプログラムの外のファイルに出す。
  項目:危険・注意・安全の日数、前回の入力ファイル。
  ファイルが無ければ既定値で起動。おかしな値ははじく。
- 起動のたびに選び直さずに済むよう、前回の設定を覚える。
方針を3点だけ先に出してください。[確認後]実装に進んでください。

[配布]別PCで配れる実行ファイルにしてください。
- 受け取った人が準備なしで起動できる形に。
- 画面の日本語が化けないよう、日本語フォントを同梱する。

指示を出し、PlanモードにおけるClaude Codeの計画が大丈夫そうであったので実行します。

6. 実行結果:実行ファイルの起動と設定値の保存機能の確認

仕上げた実行ファイルを、何も準備していない別のPCにコピーして、ダブルクリック。起動しました。設定ファイルの数字を書き換えれば、判定もちゃんと変わる。プログラムを触らず、特別な準備もなく、設定も持ち運べる──道具が「自分専用」から「人に渡せる」に変わった瞬間です。

起動後、操作をして危険、注意、安全在庫、ファイルが記憶されるか設定しました。

アプリを再起動しましたが、設定した値がそのまま残っている状態になっていることを確認しました。意図した通り変更されていました。

7. まとめ

まとめ
  • 設定を外のファイルに出し、プログラムを触らず変えられるように(前回のファイルも記憶)
  • 配布は2段:自分のPCでの一発起動 → 実行ファイル化で、準備のない別PCでも動く
  • 配るときの注意=最初の警告・ファイルの大きさ・日本語の化け(フォント同梱で回避)
  • AIへの指示の要:コアを変えない/設定の形と既定値は自分で決めて渡す

これで、発注ツールは「現場の誰かに渡して、その人の手元で動かしてもらえる」ところまで来ました。一人で作った道具が、一人の外へ出ていく。連載としては、ここがひとつの到達点です。

使用しているデータ・製品名・取引先名はすべて架空のものです。コードは解説用の実装例で、各ツールの仕様・料金は記事公開時点のものです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次