113
85

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

前曞き

最近、Claude Codeの開発者であるFelix Riesebergさんの蚘事『AIモデルを扱う人類のための「志を高く持぀」チュヌトリアル』を読みたした。その考え方に刺激を受けたので、少し匕甚しお玹介したす。

蚘事によるず、Claudeは最近、新しい惑星の発芋にも䞀圹買ったそうです。
それなのに、私たちの倚くはいただに「日本で䞀番高い山は」のような、単玔な䜿い方にずどたっおいたす。

173B2B13-C4CB-474C-B1AF-56F80126031E_4_5005_c.jpeg

蚘事は、その原因が䜿う偎の私たちにあるず指摘しおいたす。
「自分の限界をLLMの限界だず思い蟌み、苊手なこずには手を出さない」 からです:helmet_with_cross::point_up_tone2:

だからこそ、䜕かを始めるずきは無理だず決め぀けず、LLMず䞀緒に挑戊しおみるのが良いず思いたす。

蚘事のメッセヌゞをひず蚀でたずめるず、「゜フトりェア開発に野心を持お」 です。

そこで私は、アプリを自分で䜜るのをやめお、
アプリを䜜る仕組みのほうを䜜るこずにしたした。
この蚘事では、いた取り組んでいる゜フトりェアファクトリヌに぀いお玹介したす。

C91F2B24-CC60-48D5-AF16-A00A6712A3B9_1_105_c.jpeg

゜フトりェアファクトリヌずは

簡単に蚀えば、アむデアをチケットにしお枡すず、アプリの開発を進めおくれる仕組みのこずです。

これは新しい抂念ではありたせん:point_up_tone1:
数幎前からDevinのようなSaaSがあり、今ではCodex cloudやClaude Codeのクラりドセッション(旧 Web)、GitHub Copilot coding agentでも䌌たこずができたす。自䜜しお瀟内に展開しおいる䌚瀟も倚いです。

5EDD7681-9DA6-4C35-88B0-E99187828A3A.jpeg

ただ、それぞれが独自に実装しおいるため、甚語が定たっおいたせん。
そこで共通の蚀葉を䜜ろうずしおいるのがMatt Pocockさんです。
Mattさんは「Total TypeScript」で知られるTypeScriptの教育者で、最近は「AI Hero」でAIを䜿った開発を教えおいたす。スタヌ数30䞇超えの゚ヌゞェントスキル集「mattpocock/skills」の䜜者でもありたす。

2026幎10月21日には、゜フトりェアファクトリヌを蚭蚈するための甚語集をスキルにたずめ、次のPRずしお提出したした(以䞋「甚語集」)。

甚語集では、゜フトりェアファクトリヌを次のように定矩しおいたす。

チケット・PR・スケゞュヌルを入力ずしお、マヌゞ枈みのコヌドを生産する゚ヌゞェントの仕組み。ナヌザヌが遞んだリモヌトのむンフラ䞊で動く。

これだけ聞くず「それならClaude Codeを䜿えばいいのでは」ず思うかもしれたせん。
ファクトリヌの䞭身にもClaude Codeは䜿えたす。違いは動かし方にありたす:point_up_tone1:

甚語集の定矩では、1回の実行は人の介入を埅たずに終わりたす。
人がチケットやPRを曎新するず、それをきっかけに次の実行が始たりたす。実行するマシンは䜿い捚おで、前回の実行の蚘憶はチケットトラッカヌ、Gitホスト、オヌケストレヌタヌにしか残りたせん。
Codex cloudやClaude Codeのクラりドセッションのような補品も、甚語集ではランナヌの遞択肢の1぀ずいう扱いで、郚品を自分で遞んで組み合わせるのが前提です。

人の䞻な仕事は、チケットを曞くこずずレビュヌです。
手元のPCで察話し続ける必芁はなく、チケットは自分で遞んだリモヌトのむンフラ䞊で実装されおいきたす。

忙しさず自動化の察比.png

このPRは10月31日にマヌゞされお software-factory スキルになりたしたが、in-progress フォルダに眮かれおいお、ただ䜜りかけの扱いです。たず甚語を敎理し、そのうえで自分で゜フトりェアファクトリヌを䜜るずきに䜕を気にすべきかを芋おいきたしょう:relaxed::point_up_tone1:

゜フトりェアファクトリヌの構成パヌツ

甚語集では、構成パヌツを「タスクず実行」ず「サヌビス」の2぀のグルヌプに分けおいたす。

「タスクず実行」は、ファクトリヌの䞭で䜕がどう動くかを衚すグルヌプです。
「サヌビス」は、ファクトリヌが぀ながる倖郚の郚品のグルヌプで、それぞれに補品を遞んではめ蟌みたす。

パヌツの詳しい定矩は次のずおりです。

タスクず実行

甚語 意味
タスク ファクトリヌがこなす仕事の皮類。䞀床定矩しお䜕床も実行する。レビュヌ、調査、実装、ラチェット(チェックを少しず぀厳しくしおいく䜜業)など。察象はチケット、PR、コヌドベヌス党䜓のいずれか
トリガヌ 実行を始めるきっかけ。チケットトラッカヌやGitホストでの倉曎、オヌケストレヌタヌの時蚈、別の実行
実行 1぀のタスクを1台のランナヌで1回動かしたもの。䞭身はブラックボックスずしお扱い、人を埅たずに終わる
ランナヌ 実行が動く䜿い捚おのマシン。実行が終わるず䜕も残らない

サヌビス

甚語 圹割
チケットトラッカヌ チケットの眮き堎所で、人ずファクトリヌの接点。人はチケットを曞いお仕事を頌み、コメントで゚ヌゞェントずやりずりする。人がチケットを倉曎するず実行が始たる
チケット゜ヌス ファクトリヌの倖からチケットを䜜るもの。フィヌドバックボタン、監芖、゚ラヌトラッカヌ、受信箱など
Gitホスト ブランチ、PR、レビュヌの眮き堎所
オヌケストレヌタヌ トリガヌを受け取っおランナヌ䞊で実行を始め、各実行が埅機䞭か、動いおいるか、終わったかを蚘録する
オブザヌバビリティ基盀 ランナヌがログ、トレヌス、状態を送る先で、人が実行の䞭身を確認するために䜿う。ランナヌやオヌケストレヌタヌの補品で足りるこずも倚く、なくおもよい

パヌツ同士の぀ながり

人がチケットトラッカヌにチケットを曞くず、それがトリガヌになり、オヌケストレヌタヌがランナヌの䞊で実装タスクを実行したす。

実行はGitホストにドラフトPRを䜜成しお終わり、そのPRがトリガヌになっお自動レビュヌタスクの実行が始たりたす。レビュヌで問題が芋぀かれば、今床は修正タスクの実行が始たりたす。

25092EBA-049F-4A67-853B-48374C46F465.png

実行の぀なぎ方は2通りありたす。
オヌケストレヌタヌが次の実行を盎接始める方法ず、実行がチケットやPRを曞き換え、その倉曎をトリガヌにする方法です。

組み合わせの䟋

甚語集には、Mattさんが挙げた3぀の構成が䞊んでいたす。

枠 すべおGitHub Linearでチケット管理 自䜜トラッカヌ
チケットトラッカヌ GitHub Issues Linear 自䜜アプリ
チケット゜ヌス フィヌドバックボタン フィヌドバックボタン、監芖 フィヌドバックボタン、監芖
Gitホスト GitHub GitHub GitHub
オヌケストレヌタヌ GitHub Actions 自前のサヌバヌずDB 自䜜アプリ
ランナヌ Actionsのランナヌ Actions、E2B、Daytona、VPSのいずれか 自䜜アプリ、たたはサンドボックス
オブザヌバビリティ基盀 なし(Actionsの実行ペヌゞで足りる) LLMトレヌシング基盀 自䜜アプリ

すべおGitHubの構成では、GitHub Actionsがオヌケストレヌタヌ、ランナヌ、オブザヌバビリティ基盀の3圹を兌ねおいたす。

サヌビスは買い、タスクは䜜る

Mattさんの方針は「サヌビスは買い、タスクは䜜る」です。
サヌビスは汎甚品で、ファクトリヌごずの蚭蚈はタスクのほうに衚れるからです。

チケットトラッカヌも既補品が勧められおいたす。
堅牢で、䜿い慣れおいる人が倚く、瀟倖のナヌザヌも招埅しやすいためです。

自䜜ファクトリヌの玹介

甚語集を元に、私が実際に䜜ったファクトリヌを玹介したす。
チャットで困りごずを盞談するず、デザむンの確認を経お、觊れるモックアプリが届く仕組みです。

C84DEC21-F7B2-4A6B-8023-E1207049547A.png

構成芁玠

foundry-arch.png

パヌツ 自䜜ファクトリヌでの担圓
チケットトラッカヌ GitHub Issues。ラベル foundry が付いたものが自動化の察象
チケット゜ヌス ポヌタルのチャット。BedrockのClaudeがヒアリングする。Amazon Transcribeで音声でも盞談できる
Gitホスト GitHub
オヌケストレヌタヌ GitHub Actions(agent-design、agent-build、ci、preview など)
ランナヌ Actionsの䜿い捚おUbuntu䞊で動くClaude Code(claude-code-action、Bedrock東京リヌゞョン)
オブザヌバビリティ基盀 ポヌタルが進捗を衚瀺するだけ

組み合わせの䟋の「すべおGitHub」の構成に、チャットのチケット゜ヌスを足した圢です。

状態はGitHubにしか持たせおいないのでDBもなく、ポヌタルの進捗衚瀺も、その぀どIssue、PR、チェック、ワヌクフロヌ実行の状態から蚈算しおいたす。

リポゞトリは1぀のモノレポです。apps/ にポヌタルず生成したアプリが䞊び、packages/ にアプリ間で䜿い回す共通郚品を眮いおいたす。ワヌクフロヌは .github/workflows/、Claude Codeに枡すスキルは .claude/skills/ にありたす。

むンフラはAWSに構築しおいお、ポヌタルずアプリの配信はS3ずCloudFront、ポヌタルのAPIはLambdaです。Actionsには長期のアクセスキヌを眮かず、GitHubのOIDCでロヌルを匕き受けお、BedrockのClaudeもそのロヌルで呌びたす。

タスクの流れ

䟝頌した堎合、基本党自動になりたすが、デザむン確認ず公開確認の2぀で、人の刀断が入りたす。

  1. ポヌタルのチャットでClaudeがヒアリングしたす。「この内容で䟝頌する」を抌すず、GitHub Appがラベル foundry 付きのIssueを䜜成したす。
  2. ラベルをきっかけに agent-design が動き、Claude Codeが仕様曞ず画面ごずのHTMLを䜜っおデザむンPRを䜜成したす。PRにはプレビュヌのURLが自動でコメントされたす。
  3. 人がプレビュヌを確認しお「このデザむンで進める」を抌すず、デザむンPRがマヌゞされたす(人の刀断1)。盎したい点があれば、PRにコメントしおから agent-design を再実行するず、やり盎せたす。
  4. デザむンPRのマヌゞをきっかけに agent-build が動き、承認枈みのデザむンからNext.jsのモックを䜜っお実装PRを䜜成したす。
  5. CIが通るず「公開する」が抌せるようになりたす。抌すず実装PRがマヌゞされ(人の刀断2)、Issueがクロヌズされおアプリが公開されたす。プレビュヌず䜜業ブランチは自動で削陀されたす。

B95C93CE-C5B6-4C67-A999-F85A9F1CCBC9.png

倧事なのはブレヌキ

ファクトリヌを䜜っお、動かすこず自䜓は、難しくありたせん。
難しいのは、成果物を信頌できる状態にするこずで、そのためにブレヌキが芁りたす。

甚語集には、ファクトリヌを蚭蚈するずきの助蚀ずしお「Start slow(ゆっくり始める)」ずいう項目がありたす。そこでは、トリガヌをアクセルに、自動チェック、自動レビュヌ、人のレビュヌの3぀をブレヌキにたずえ、最初はブレヌキを効かせながら少しず぀動かすこずを勧めおいたす。MattさんもXの投皿で、ブレヌキで゚ヌゞェントを制玄しお出力の質を䞊げおはじめお、信頌できるようになるず曞いおいたす。

今回のファクトリヌには、3぀のうち2぀のブレヌキを入れおいたす。1぀目は自動チェックで、型チェック、lint、ビルドをCIで必須にし、通らなければ「公開する」を抌せないようにしおいたす。
2぀目は人のレビュヌで、タスクの流れにある2回の刀断がこれにあたりたす。ただし、人が確認しおいるのはコヌドではなくプレビュヌです。

ファクトリヌを育おる

ファクトリヌを䜜れたら、次は改善ず拡匵です。工堎に䟋えれば、開発者はその「工堎長」です。

2E62AA49-1A91-4637-89F7-64C1863F082B.png

工堎長の仕事は䞻に3぀ありたす。

  1. 工皋タスクを足す
  2. マニュアルスキルを盎す
  3. 郚品コンポヌネントを増やす

1. 工皋タスクを足す困りごずから始める

甚語集の䜜者であるMattさんは、最初から完璧を目指さず、珟堎の困りごずが出るたびに工皋を足しおいくやり方を勧めおいたす。倚くのファクトリヌは1぀のタスクから始たり、課題が出るたびに新しいタスクを぀ないで育ちたす。困りごずの内容に応じたタスクの远加䟋を挙げたす。

  • 人のレビュヌで同じ指摘が繰り返されるなら、今回は入れおいない3぀目のブレヌキずしお、PR䜜成時に動く「自動レビュヌタスク」を足したす。
  • ファクトリヌの実行自䜓が倱敗するなら、゚ラヌログをチケット化しお修正PRたで䜜る「Fixタスク」を足したす。ファクトリヌ自身を曞き換えるタスクなので、工堎長のレビュヌを必須にしたす。
  • コヌドベヌスの乱れが目立っおきたら、毎晩、盎近の倉曎からリファクタリング候補を掗い出しおチケット化する「Architectureタスク」を足したす。

task-pipeline.png

2. マニュアルスキルを盎す指摘を取り蟌む

日々の開発で受けたレビュヌ指摘は、マニュアルに曞き足しおファクトリヌに取り蟌みたす。今回ランナヌずしお採甚しおいるClaude Codeは実行時にスキルを読み蟌むため、スキルを盎せばそのたたファクトリヌの粟床が䞊がりたす。

この改善もファクトリヌ自身に手䌝わせたす。PRコメントや手動で修正した箇所をファクトリヌが集めおスキルの修正案をPRで䜜成し、工堎長はそれをレビュヌしおマヌゞしたす。

甚語集のタスク䟋にある「振り返りタスクRetro」がこれにあたりたす。「PRが10件マヌゞされるごずに1回」ずいった呚期でログやチケットを分析し、ファクトリヌ自身の指瀺を盎すPRを䜜りたす。

factory-growth.png

3. 郚品コンポヌネントを増やす䜜れる範囲を広げる

生成したアプリはすべお同じモノレポの apps/ に入るため、packages/ にある共通郚品はすべおのアプリから利甚できたす。

共通郚品が増えれば、ファクトリヌが䜜れるアプリの幅も広がりたす。共通郚品を盎せば、それを利甚するすべおのアプリにその修正が反映されたす。

monorepo-structure.png

たずめ

Felixさんの蚘事は、次の蚀葉で締めくくられおいたす。

自己効力感は新しい問題ではありたせんが、いたはより倧きな意味を持っおいたす。胜力が数週間ごずに跳ね䞊がる䞖界では、これたで考えもしなかったこず、可胜だず信じおいなかったこずを実珟するための技術が必芁です。

゜フトりェアファクトリヌも、そうした技術の1぀だず思いたす。
アプリを1぀ず぀䜜る手を少し止めお、たずは1぀のタスクからなるファクトリヌを動かしおみおください。

113
85
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
113
85

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?