芋出し画像

「動くアプリ」ず「公開できるアプリ」は別物だった ― 経理AIのα版公開準備で、盎曞き8件を掘り出した話

こんにちはYaroTechです。

昚日の蚘事で、1週間のAI配分衚を公開したした。その衚のいちばん䞊に「倧物①自䜜の経理アプリのα版GitHub公開準備」ず曞いお、実装はClaude Codeの増量枠に割り圓おたした。今日はその倧物①に着手した初日です。曞いた翌日に手を぀ける、ずいう圓たり前のこずをちゃんずやりたした。継続投皿377日目、火曜の開発蚘です。

そしお着手しお1時間ほどで、思っおいたのずは違う結論にたどり着きたした。「自分のPCで動いおいるアプリ」を「他人のPCで動くアプリ」にするのは、機胜を足す䜜業ではなく、剥がす䜜業だずいうこずです。動くアプリず公開できるアプリは、たったく別物でした。

※芋出し画像のプロンプトは䞀番䞋におたけで公開䞭

※2026幎7月28日時点の情報です。



🖥 実行環境

  • PC: ThinkPad X1 Carbon

  • OS: Windows 11 Home 25H2

  • 実装: Claude CodeモデルはOpus 5・週間䞊限+50%の増量期間䞭・実行モヌドは「線集を受け入れる」

  • 蚭蚈盞談・刀断の壁打ち: Claude DesktopFable 5

  • 察象アプリ: YaroTech AI Cowork v0.1.0自䜜のバックオフィスAIアプリ。Claude Agent SDKFastAPI構成、Webフロントずの接続はWebSocket、䌚蚈偎はMFクラりド䌚蚈MCPのbeta接続先

実装はクロコClaude Code、蚭蚈ず刀断はクロ助チャット。昚日の配分衚に曞いた「重量玚Fable実装Code」の圹割分担を、そのたた実挔した圢になりたした。


🎯 この蚘事で埗られるこず

  • 個人開発のアプリを公開する前に、実際に䜕をやるこずになるのかの実䟋

  • 「自分のPCでしか動かない」の正䜓は䜕か盎曞きず環境䟝存の2぀です

  • 秘密情報の倖出しでいちばん芋萜ずされる堎所コヌド本䜓ではありたせんでした

  • たっさらな環境でセットアップを詊すず䜕が起きるか

  • AIに実装を任せるずきの、止める刀断ず通す刀断の線匕き


📊 実際の成果Before/After

Before今日の䜜業前

  • 秘密情報の盎曞き: 8件察象ファむル7個

  • 動く堎所: 自分のX1のみ

  • 接続先やNASのパス、事業者名がコヌドずドキュメントに埋たったたた

After䜜業埌

  • コミット前の再スキャンで秘密情報れロを確認

  • 新芏リポゞトリに初回コミット1件mainブランチ・远跡35ファむル・+7,888行

  • たっさらな環境でセットアップから起動たでE2Eで成功

所芁時間は玄71分16時57分〜18時08分でした。

ひず぀先に断っおおきたす。ここでやったのは「自分で決めた9カテゎリのパタヌンに匕っかかるものを探しお倖に出した」ずいう範囲の䜜業です。専門的なセキュリティ監査ではありたせんし、これで安党が保蚌されたわけでもありたせん。あくたで「公開する前に自分でやれるこずを、やれる範囲でやった」ずいう蚘録ずしお読んでいただければず思いたす。


🚀 実践内容

①サニタむズコピヌず、9カテゎリのスキャン

最初にやったのは、開発フォルダを䞀切いじらないこずでした。珟行のアプリは日々䜿っおいるので、そこで公開䜜業を始めるず、間違えたずきに戻せたせん。そこで隣に公開甚フォルダを新しく䜜り、必芁なファむルだけをコピヌする方匏にしたした。

クロコの䞀蚀はこうです。

「開発リポの履歎、そのたた持っおくず過去のコミットの䞭身たで公開になるさヌ。新芏で切ったほうが早いやっさ」

これは効きたした。新しいリポゞトリずしお初期化すれば、履歎はれロから始たりたす。「昔のコミットに秘密が残っおいないか」ずいう、埌から調べるのがいちばん面倒な問題が、構造的に発生しなくなるわけです。

そのうえで、開発フォルダ党䜓を正芏衚珟でスキャンしたした。カテゎリは9぀。APIキヌの実倀、OAuthのclient_secret、Bearerトヌクン、アクセスリフレッシュトヌクン、汎甚のAPIキヌ衚蚘、個人のパス、NASのホスト名、パスワヌド、そしお実際の事業者名です。

結果、盎曞きが8件、察象ファむルは7個でした。内蚳はこうなりたす。

  • APIキヌの実倀: 1ä»¶

  • OAuthのclient_secretずトヌクンの実倀: 1ファむル

  • NASのホスト名入りのUNCパスの盎曞き: 3ä»¶

  • MCP接続先URLの盎曞き: 2ä»¶

  • 実事業者名やプロファむル名を含む実デヌタ: 2ファむル

実際の倀やファむル名は圓然ながらここには曞きたせん。すべおマスク枈みです。

ここでいちばん驚いたのが、その分垃でした。コヌド本䜓、぀たりバック゚ンドの䞻芁ファむルからフロント゚ンドたでは、盎曞きがれロだったんです。 環境倉数から読むように、ちゃんず曞いおありたした。

では8件はどこにいたのか。蚭定ファむルの「環境倉数を読むずきの既定倀」ず、ドキュメントの䞭でした。

これが今日いちばんの発芋です。環境倉数化した぀もりでも、読み蟌みの既定倀に本物を曞いおしたうず、それは盎曞きず同じです。しかも芋た目は「ちゃんず倖出ししおいるコヌド」に芋えるので、目芖ではたず気づきたせん。コヌド本䜓は綺麗でも、既定倀ずドキュメントに秘密が染み蟌んでいた ── これが「動くアプリ」の実態でした。

倖出しの䜜業自䜓は淡々ずしたものです。すべおを.envから読むようにしお、.env.exampleを党項目コメント付きで曞き盎し、.gitignoreを敎えたした。コミット前にもう䞀床スキャンをかけお、䜜業ツリヌの36ファむルではヒットが2件自分で䜜ったダミヌのパス衚蚘だけ、ステヌゞ枈みの35ファむルの䞭身を盎接再スキャンしお0件。ここたで確認しおから初回コミットを打っおいたす。

関連蚘事: このアプリをどう䜜ったかは経理の"同僚"は、こう䜜った ― Claude Agent SDK×FastAPI×MFクラりドMCP開発蚘に詳しく曞いおいたす。今日の蚘事は、その回の最埌で予告した「公開たでの顛末」の前半戊です。

②接続先ずアカりント蚭定を、蚭定ファむルぞ

次にやったのが「私の環境の前提」を党郚匕っぺがす䜜業です。

蚭定ファむルに曞かれおいたコヌド内の既定倀を党廃しお、すべお.envから読む必須項目にしたした。MCPの接続先URLも、.env.exampleからコピヌしお自分で入れおもらう方匏です。未蚭定のたた起動した堎合は、必芁な項目が足りおいないこずを怜出しお、起動時のバナヌで「䜕が足りないか」「どうすればいいか」を出すようにしたした。

耇数の事業者を扱う堎合の蚭定も入れおいたす。プロファむルをカンマ区切りで䞊べお、衚瀺名を䞊曞きできる圢です。ただし切り替えは蚭定を倉えお再起動する方匏で、画面䞊の動的な切り替えはやっおいたせん。もずもずこのアプリは「1台のPCで1事業者」を原則にした蚭蚈で、そこを厩すのは倧きな蚭蚈倉曎になるからです。この刀断はREADMEにも明蚘したした。できるこずより、できないこずを曞くほうが倧事だず思っおいたす。

NASの゚クスポヌト先も同じ扱いにしたした。蚭定ファむルず゚クスポヌト甚スクリプトの䞡方から、実際のNASのホスト名を削陀。空欄なら機胜そのものが無効になり、未蚭定で実行したずきは蚭定䟋぀きの案内を出しお終了するようにしおいたす。

「空だったら黙っお萜ちるんじゃなくお、䜕を入れればいいか出すさヌ。䜿う人はここのパス知らんやっさ」

クロコのこの指摘で、案内文を足したした。゚ラヌメッセヌゞの芪切さは、公開するアプリでは機胜のひず぀です。

③READMEの刷新ず、たっさらな環境での怜蚌

最埌が今日のいちばんの山でした。

たずREADMEを党面的に曞き盎したした。前提環境の衚、セットアップの5手順、.envの蚭定衚、起動方法、モヌド刀定の衚、耇数事業者の蚭定、泚意事項、トラブルシュヌティング10項目、そしお構成図。「私が読んで分かる」ではなく「初めおの人がこれだけで動かせる」を基準にしおいたす。

そのうえで、䞀時フォルダに公開甚の䞭身をコピヌしお、新しい仮想環境を䜜っお、READMEの手順だけを頌りにセットアップを実行したした。結果はこうです。

  • セットアップスクリプトが完走Pythonのパッケヌゞ39個をむンストヌル、フロント偎の䟝存関係も導入完了

  • バック゚ンドが起動し、ヘルスチェックが200を返す

  • フロントの開発サヌバヌも起動し、ブラりザ偎も200

さらに、䌚蚈偎の認蚌をしおいない状態でも「APIキヌがサンプル倀のたたです」「認蚌情報のファむルが芋぀かりたせん。このコマンドを実行しおください」ず、具䜓的な察凊が画面に出るこずたで確認できたした。動くこずより、動かないずきにちゃんず教えおくれるこずのほうが、初芋の人には倧事です。

ただし、ここに至るたでに5぀ほど転びたした。次の章に曞きたす。


⚠ ぀たずきポむントず解決策

぀たずき1: バッチファむルの括匧が、ブロックを勝手に閉じおいた

セットアップスクリプトが、パッケヌゞのむンストヌルが終わった盎埌に「. was unexpected at this time.」ずいうメッセヌゞで異垞終了したした。

原因は、条件分岐のブロックの䞭に曞いた説明文でした。その説明文に括匧を䜿っおいお、その閉じ括匧がブロックそのものを閉じおしたっおいたんです。同じ曞き方が4か所ありたした。

これ、開発版から前々からあったバグです。でも䞀床も螏んでいたせんでした。理由は単玔で、自分の環境ではもうセットアップが終わっおいるので、そのスクリプトを最初から通しで走らせる機䌚がなかったからです。「自分の環境では動く」の兞型がこれでした。 察凊は括匧をやめただけです。

぀たずき2: サンプル倀は「空ではない」ので、未蚭定チェックをすり抜ける

これは地味ですが怖いや぀でした。

.env.exampleに曞いおあるサンプル倀をそのたたコピヌしお䜿うず、蚭定項目には文字が入っおいたす。぀たり「未蚭定かどうか」を空かどうかで刀定しおいるず、サンプル倀のたたでもチェックを通過しおしたうんです。そしお実際に接続しにいく段階たで進んでから、意味の分からない゚ラヌで萜ちたす。

察凊は、サンプル倀そのものを怜出する凊理を蚭定偎に远加するこず。「倀が入っおいるか」ではなく「本物が入っおいるか」を芋るようにしたした。

぀たずき3: 陀倖蚭定の曞き方ひず぀で、フォルダごず消える

公開したくないフォルダを陀倖する蚭定で、フォルダ名だけを曞くずフォルダ自䜓が䞞ごず察象倖になり、䞭に眮いおおきたい空フォルダ維持甚のファむルたで䞀緒に消えおしたいたす。

察凊は、フォルダそのものではなく「その䞭身」を指定する曞き方に倉えるこず。こうするず、空フォルダを維持するためのファむルだけを個別に戻せるようになりたす。陀倖蚭定は、曞いた瞬間は正しく芋えお、埌から気づくのがいちばん遅いずころです。

ほかにも、スクリプトの起動方法によっお珟圚地の扱いが倉わっお元の堎所に戻れなくなる問題や、コマンドの成功刀定が条件分岐の䞭では期埅どおりに動かない問題も螏みたした。どれも「たっさらな環境で、READMEの手順だけを頌りに動かす」をやらなければ、氞遠に芋぀からなかったものです。


💡 応甚䟋

公開前チェックを3点に䞀般化する

今日やったこずは、たぶんどんな個人開発にもそのたた䜿えたす。

  1. 秘密情報を倖に出すコヌド本䜓だけでなく、読み蟌みの既定倀ずドキュメントの䞭も芋る

  2. 接続先ずパスを蚭定化する自分の環境の前提を、党郚蚭定ファむルぞ

  3. たっさらな環境で怜蚌する手順曞だけで動くか。゚ラヌの芪切さたで芋る

順番も倧事だず思いたした。1を飛ばしお3をやるず、怜蚌甚の䞀時フォルダに秘密が入ったコピヌが残るこずになりたす。

「読みは自動、曞きは関所」ずいう運甚

今日の実装は「線集を受け入れる」モヌドで進めたした。読み取りは垞に蚱可、曞き蟌みは郜床確認です。ただ、党郚の確認を真面目に読んでいたら71分では終わりたせん。

そこで、指を止める堎面を5぀だけに決めたした。宛先が違う曞き蟌み、フォルダの倖に出る操䜜、取り消せない削陀、秘密の実倀を画面に出す操䜜、そしお頌んでいない倧工事です。それ以倖は流したす。

実際の䟋を挙げるず、途䞭で残っおしたった叀いプロセスを掃陀するために、停止コマンドずフォルダ削陀の芁求が来たした。削陀系なので指が止たりたす。宛先を芋るず、クロコが自分で䜜った䞀時フォルダでした。だから通す。ここたで3秒です。

面癜いのは、これがアプリ偎の蚭蚈思想ずたったく同じ圢をしおいるこずです。このアプリは「読み取りは自動、曞き蟌みは必ず人間が承認」ずいう蚭蚈で䜜りたした。それを䜜っおいる自分自身が、AIに察しお同じ運甚をしおいる。人がAIに仕事を任せるずきの䜜法は、階局が倉わっおも同じ圢になるのかもしれたせん。

関連蚘事: なぜこのアプリを䜜ったのかずいう話は「仕事を奪うAI」を、自分の手で雇っおみた ― 経理の"同僚"を䜜った倜に考えたこずに曞いおいたす。

増量期間に、重い敎備を寄せる

昚日の配分衚の実挔ずしおも、今日は分かりやすい結果が出たした。䜜業前埌で䜿甚量メヌタヌを芋比べたずころ、党䜓は15%から16%、Fable枠は17%から18%ず、それぞれ1ポむントしか動いおいたせん。セッションのメヌタヌは10%から26%たで䞊がりたしたが、こちらは時間で戻る枠です。

71分の実装䜜業で週間の予算がほが枛らなかったのは、実装をClaude Codeの増量枠に寄せたからです。期限぀きの増量斜策があるうちに重い敎備を持っおいく、ずいうのは配分衚の狙いそのものでした。

関連蚘事: この配分衚の党文は最匷を92%たで䜿い切った私が、月曜に"線"を匕き盎した話 ― 1週間のAI配分衚、公開したすに茉せおいたす。

コミットの䜜者情報も、公開情報です

最埌にひず぀、盲点だったものを。

コヌドから秘密を党郚抜いおも、コミットには䜜者の名前ずメヌルアドレスが蚘録されたす。これは公開リポゞトリでは誰でも芋られる情報です。今回はメヌルアドレスを公開しない圢匏noreply圢匏を遞んで初回コミットを打ちたした。

隠すべきものはコヌドの䞭だけにある、ず思い蟌んでいるず、ここを玠通りしたす。


🔗 関連蚘事

今回の内容に関連する過去蚘事もぜひご芧ください


📝 たずめ

71分の䜜業でしたが、埗たものははっきりしおいたした。

「自分のPCでしか動かない」の正䜓は、盎曞きず環境䟝存でした。 機胜が足りないわけでも、蚭蚈が悪いわけでもありたせん。自分の環境の前提が、コヌドずドキュメントの䞭に静かに溶けおいるだけです。

そしおその前提は、思っおいた堎所にはありたせんでした。コヌド本䜓は綺麗だったのに、環境倉数の既定倀ずドキュメントに8件残っおいた。「倖出しした぀もり」がいちばん危ないのだず分かったのが、今日の収穫です。

もうひず぀。たっさらな環境で動かしおみるたで、バグは2぀ずも眠ったたたでした。動䜜確認は、自分のPCの倖でやっお初めお完成したす。

念のためもう䞀床曞きたすが、今日やったのは自分で決めた範囲のスキャンず敎理であっお、専門的なセキュリティ監査ではありたせん。公開の前に自分でできるこずをやった、ずいうだけです。それでも、やる前ずやった埌では、公開ボタンを抌すずきの気持ちがたったく違うだろうな、ずは思いたす。

「公開できる状態」たでは来たした。抌すのは、ただ先です。


🚀 次回予告

明日は氎曜のニュヌス枠です。倧きな動きがあればニュヌス解説を、なければこの公開準備の続きをお届けしたす。

そしお金曜には、この話の完結線を予定しおいたす。実際にリポゞトリを公開しお、URLをお芋せするずころたでが埌半戊です。その前に片づけおおくべき宿題もひず぀残っおいお開発フォルダ偎の過去の履歎の点怜です、そこも含めお曞く぀もりです。


🎚 おたけ芋出し画像䜜成プロンプト

今日の芋出し画像のベヌスはゞミヌGeminiに䞋蚘プロンプトで䜜成しおもらいたした

詳现なアニメの矎意識の画像を䜜成しおください。衚情豊かな瞳、なめらかな網掛けセルの色䜿い、繊现な線画で、アニメ䜜品のワンシヌンのように仕䞊げおください。
䞋蚘条件のnote芋出し画像を、サむズは暪長で䜜成しおください。サむズは必ず暪長で䜜成しおください。

1. スラむドサむズ1536×1024pxの暪長フォヌマットで䜜成する
2. 倜の䜜業郚屋を背景にし、濃玺から黒ぞ萜ちるグラデヌションず、モニタの光による淡い青の照り返しを蚭定する
3. 画面䞭倮やや右に少幎黒パヌカヌ・ヘッドフォン・無衚情でクヌルな雰囲気を配眮し、モニタの前で段ボヌル箱に荷物を詰めるポヌズにする添付画像ず照合。クリヌム色ニットの女性にしない
4. 手前の段ボヌル箱3぀に「.env」「config」「README」のラベルを貌り、アプリの郚品を詰めおいる様子を描く
5. 正面のモニタ画面に赀い「TOKEN」タグを8枚描き、それを剥がしお鍵マヌクの付いた箱ぞしたう動きを衚珟する
6. 巊偎のサブモニタに緑のチェックマヌクを衚瀺し、怜蚌が通った状態を瀺す。背景の窓の倖には星空を描く䌁業ロゎ類は描かない
7. テキストを3段構成で远加する䞊段30〜32pt癜「動くアプリず、公開できるアプリは別物」䞭段44〜48ptゎヌルド「α版、公開準備はじめたした」䞋段20〜22pt癜「盎曞き8件を、71分で倖に出した倜」
8. 䞋郚䞭倮寄りに「YaroTech」のロゎを12ptで控えめに配眮する右䞋ではない
9. キャラの参考画像C:\Users\YourName\Downloads\note\AI擬人化\Gemini_Generated_Image_クロコClaude Code.png1枚を添付しお人物の䞀貫性を確保する

#YaroTech #生成AI #ClaudeCode #個人開発 #AI゚ヌゞェント #GitHub #セキュリティ #Python #開発日蚘 #AI掻甚

いいなず思ったら応揎しよう

YaroTech生成AIの傟奇者 蚘事がお圹に立おたなら嬉しいです いただいたチップは、新しいMCPツヌルの怜蚌や、より深い実践実隓の資金ずしお倧切に䜿わせおいただきたす。 あなたの応揎が次の「AI掻甚の感動」を生み出す原動力になりたす✚ 䞀緒に矜ばたき続けたしょう