ふくふくHukuhuku LLC
EP.105Toolbox 13分公開:

Archwhere 0.2を試す:AIの変更を構成図へ。「チェック成功」と設計レビューの違い

AIが作った変更を認証・請求などの構成要素に割り当てるArchwhere。Macで未登録ファイル検出と自動修正を試し、チェック成功でも分類を見直す必要があることを確認しました。再現できる教材付きで使い方と条件を解説します。

#AI開発#コードレビュー#オープンソース#Archwhere
執筆 / 監修
松尾 亮合同会社ふくふく 代表社員

データ基盤・データパイプライン構築 / BI / 生成 AI 活用支援を専門とするエンジニア (28 年)。 本記事は AI 利用ポリシーに基づき、生成 AI の補助で執筆 → 人間が監修・編集して公開しています。

プロフィール詳細
シェア

AIに開発を任せると、コードを書く速さより「どこが変わったのかを確認する時間」が問題になりがちです。ファイル名だけの差分を、認証・請求・画面といった仕事の単位で見渡せたら、誰に何をレビューしてもらうかを決めやすくなります。

Archwhereは、リポジトリに構成要素と担当ファイルを宣言し、Gitの変更をその地図へ載せるオープンソースの開発ツールです。v0.2.0は2026年10月31日14時05分47秒JSTに公開されました。ふくふくでは同日、Mac上の架空の注文管理リポジトリでCLIを動かしました。

最初に知っておきたい実測結果

未登録ファイルは検出できました。しかし自動修正は、今回の教材の「請求」ファイルを「認証」へ追加しました。その後のcheckは成功します。成功が示すのはモデルの形式やファイル対応の整合性であり、業務上の分類が正しいという保証ではありません。

何をする道具か:ファイルの差分を、機能の言葉へ置き換える

中心となるのはarchitecture.jsonです。component(構成要素)ごとに名前、種類、担当パス、依存先などを書きます。たとえばsrc/auth/**を「認証」、src/web/**を「画面」と宣言します。**は配下のファイルをまとめて指定するパターンです。ArchwhereはGitの差分とこの宣言を照合し、触れた構成要素を表示します。

これはCLI自身がLLMでコードの意図を読み解く仕組みではありません。宣言したパスとの照合が基本です。構成図の矢印も、宣言した依存関係を表します。実行中の全通信や、コード内部の依存を網羅的に観測した図ではありません。v0.2.0のREADMEと実装で確認できます。

機能できること読み違えないための注意
変更のマッピング変更ファイルを構成要素に割り当て、security種別やwatchパターンに応じて注意を表示表示がないことは、安全性の証明ではない
check宣言の形式、参照先、Git管理対象ファイルの未登録などを検査まだGitに追加していない新規ファイルまで網羅する検査ではない
check --fix未登録ファイルの割り当てを推測してモデルを変更ディレクトリなどに基づく推測。意味の正しさは人が確認する
doc/Mermaid出力宣言した構成と関係を文書や図の記法にする自動的に最新の実設計を発見する機能とは異なる
heatGit履歴から変更の多い領域を示す本番の処理負荷や障害発生率ではない
mission構成図からGitHub上の会話やエージェントの作業につなぐUI今回は未試用。GitHubの権限や接続先AIの設定が別途必要

日本の開発現場で使うなら、まずレビューの振り分けに

国内でも、AIが作った変更を誰がどの深さまで確認するかが課題になっています。カウシェの開発記事では、決済や認証などのリスクと、人がレビューする範囲を整理しています。DMMの開発記事では、PRレビューの指摘をAI向けルールへ反映する取り組みを紹介しています。これらはArchwhereの導入事例ではありませんが、差分と責任範囲を結び付ける必要性を考える材料になります。

導入するなら、最初から全社の設計図を完成させる必要はありません。「認証」「請求」「利用者画面」などレビュー担当が異なる数領域から始めます。AIのPRが認証に触れたら認証担当が確認する、複数領域なら境界の入出力を確認する、といった運用です。これは本誌が提案する使い方であり、レビュー時間の削減を実測した結果ではありません。

利用条件:今回の再現手順はNode.jsとGitだけ

package.jsonのNode.js要件は18以上、ライセンスはMITです。今回のCLI試用はmacOS・arm64、Node.js v24.22.1、Gitを使用しました。追加のnpm依存パッケージやAI契約を入れず、公開ソースのv0.2.0を固定して実行しています。Windows/Linuxでの動作は本記事では未確認です。説明は英語中心ですが、モデルの日本語名はCLIとMermaidの出力に表示できました。

確認時点でnpmレジストリのarchwhereへの取得は404となり、npm経由の配布を確認できませんでした。そこで、以下は実際に試せたGitHubのタグ指定を使います。今後の最新コードと、ここで検証した0.2.0を混同しないでください。

CLIの試用と、AIをつないだ運用は分ける

MITライセンスのCLIと、接続先AIの利用料は別です。GitHub Actionsの利用枠や外部エージェントの契約も確認します。missionはGitHub認証を使ってIssueやコメント、マージなどを扱う実装を含むため、今回は起動していません。

教材で試す:まず3つの構成要素を登録する

Archwhere練習用リポジトリをダウンロードしてください。中身はarchitecture.json、説明書、文字列を定義するだけのJavaScriptです。実際の認証・請求処理も通信も実装していません。既存の業務リポジトリには入れず、新しい練習用フォルダで進めます。コマンドはmacOS向けです。

ローカルだけの教材用コミット。リモートへのpushはしません。
Bash
mkdir archwhere-labcd archwhere-labgit clone --depth 1 --branch v0.2.0 https://github.com/tapaskar/archwhere.git archwhere# ダウンロードしたZIPをこのフォルダへ置いてから展開unzip archwhere-02-demo.zipcd archwhere-demogit init -b maingit add .git -c user.name="Local Trial" -c user.email="trial@example.invalid" commit -m "initial sample"node ../archwhere/bin/archwhere.js check

初回は「3 components, 0 flows, every tracked file mapped」と表示されます。認証・画面・構成と説明の3要素に、すべてのGit管理対象ファイルが対応したという意味です。0 flowsは、業務フローをこの教材では宣言していないことを表します。

認証領域の文字列だけを変更し、差分の割り当てを見る。
Bash
printf 'export const policy = "token-required";\n' > src/auth/login.jsnode ../archwhere/bin/archwhere.js

この変更では「認証 [security]」「src/auth/login.js」と、設定した「認証ルールを人が確認」が表示されました。securityはモデルに付けた種類、watchは指定した文字列パターンへの注意です。この例のtokenという文字が、実際に安全な認証方式を実装しているわけではありません。

未登録の請求ファイルを追加すると、何が起きるか

新規ファイルをGitへ追加してから検査。ここではエラー終了が期待結果です。
Bash
mkdir -p src/billingprintf 'export const invoiceLabel = "請求デモ";\n' > src/billing/invoice.jsgit add src/billing/invoice.jsnode ../archwhere/bin/archwhere.js check

checkは終了コード1となり、未登録ファイルsrc/billing/invoice.jsを報告しました。ここまでは狙いどおりです。ところが修正候補は、components.auth.pathsへこのファイルを足す内容でした。今回の構成とパスでは、請求を独立した要素と判断せず、既存の認証へ寄せたのです。

1行目はモデルを変更した後も終了コード1。2行目で再検査します。
Bash
node ../archwhere/bin/archwhere.js check --fixnode ../archwhere/bin/archwhere.js check

実行後のarchitecture.jsonでは、authのpathsにsrc/billing/invoice.jsが追加されました。1行目は検出したエラーにより終了コード1を返し、再検査を案内します。2行目は終了コード0で「3 components」と表示されました。CLIが示すとおり、修正したパターンを人が確認する必要があります。checkの実装を含むソースも参照してください。

試した段階結果何を確認できたか
初期モデルをcheck成功・3要素宣言と管理対象ファイルが対応する
認証ファイルを変更認証と注意文を表示宣言した担当領域へ差分を割り当てられる
請求ファイルをGitへ追加失敗・未登録1件モデルの更新漏れを検出できる
--fix後に再検査成功・3要素誤った業務分類でも対応が付けば成功しうる
人が請求要素を追加成功・4要素意図した分類をモデルへ反映できる

直すときは、パスだけでなく「誰の責任か」を決める

この教材では請求を認証と別の責任範囲として扱います。architecture.jsonのauth.pathsからsrc/billing/invoice.jsを削除して、元の["src/auth/**"]へ戻します。そのうえでcomponentsの中に、次のbillingを追加します。JSONの既存要素との間にカンマが必要です。

componentsへ追加する要素。JSONファイル全体ではありません。
JSON
"billing": {  "name": "請求",  "kind": "feature",  "paths": ["src/billing/**"],  "deps": []}
修正後は4 components。docとMermaidは標準出力へ表示します。
Bash
node ../archwhere/bin/archwhere.js checknode ../archwhere/bin/archwhere.js docnode ../archwhere/bin/archwhere.js --format mermaid

ふくふくの再検査も4要素で成功しました。docでは構成の一覧とMermaid記法が出力され、宣言した「画面→認証」も確認できました。教材のdepsは練習用の宣言です。請求から認証への依存などを実システムに合わせて記述する判断は、別途必要です。

実務で価値が出るのは、未登録の変更を単に通すのではなく「新しい構成要素なのか」「既存要素へ入るのか」「どの担当が確認するか」をPRで決めるところです。CIのcheck成功だけで自動マージしてよい、と判断する使い方は避けます。

既存リポジトリへ広げる前の確認

v0.2.0のinitは、--inferを付けた場合に既存構成からの推定を行います。引数なしのinitはサンプルを使うため、自分のシステムが自動解析されたと解釈しないでください。またinitはGitHub Actions用のワークフローも作成します。今回の教材は、これらを使わずarchitecture.jsonを直接用意しています。

本番へ取り入れるなら、まず検証用のブランチで構成定義だけをレビューし、担当範囲と既存のCIに合うか確認します。エージェント連携やmissionは次の段階です。公式READMEのGitHub認証、Issue、Claude連携やWebhookの条件を読み、誰の権限でどの操作が行われるかを確かめます。今回、実PRへの接続やAIへの指示・応答、マージは試していません。

構成モデルの更新をAIへ依頼する指示文
変更したファイルとarchitecture.jsonの対応を確認してください。checkの成功を設計・セキュリティの正しさとは扱わないでください。
未登録ファイルがあれば、既存要素へ入れる案と新しい要素を作る案を、業務上の責任と依存関係から比較してください。パス名だけで結論を出さず、不明点は質問として残してください。
まず変更案とレビュー担当の候補を示し、承認前に--fixやモデルの書き換え、GitHubへの投稿、マージは行わないでください。修正後はcheckの結果と、人が確認すべき意味上の判断を分けて報告してください。

複数エージェント間の会話を扱うmurmurの記事と合わせて考えると、Archwhereは「どの領域の変更か」を整理する役割です。道具を増やす前に、見落としやレビューの迷いが減るかを、小さいリポジトリで確かめるのがよい出発点です。

仕様・試用確認:2026年10月31日JST、Archwhere v0.2.0、ソースコミット01e36f4ed7bef1442bba8928efc78d2ef689c9dd。MacのローカルCLIと架空教材を使用。Mermaid記法の出力は確認しましたが、missionのUI、実エージェント連携、Windows/Linux、レビュー時間や品質改善の比較は未実測です。

よくある質問

ArchwhereはLLMで設計を自動判定しますか?
今回試したCLIの中心は、宣言した担当パスとGitの変更の照合です。構成の意味や設計の正しさをLLMが保証するものではありません。
check --fixの後もエラー終了するのは失敗ですか?
v0.2.0の今回の教材では、修正後も終了コード1となり、再検査を案内しました。もう一度checkを実行し、書き換えられたパスの分類も人が確認します。
日本語名や無料の環境で試せますか?
MacのNode.jsとGitだけでCLIを試し、日本語の構成要素名を表示できました。接続先AIやGitHub Actionsの費用・条件は別です。WindowsとLinuxは本記事では未確認です。
シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp