ForgeVision Engineer Blog

フォージビジョン エンジニア ブログ

AWS の Kiro で AI-DLC をやってみたら、おひとり様でも”非同期コラボ”が捗った話

どうも、佐渡島の半農半エンジニアです。

前回はスタンプラリーアプリの第二弾の話を書いたんですが、今回はちょっと毛色が違います。AWSが提唱しているAI-DLC(AI-Driven Development Life Cycle)を、本家AWS謹製のIDE「Kiro」でやってみた、という話です。

ネタにするのは、うちの宿(外海府ユースホステル)の常連さん向けに作ったクローズドSNS。ペルソナ3人想定、想定ユーザー50~100人、招待制、テキスト+画像+位置情報投稿、絵文字リアクションあり、という、まあ「内輪のための小さな場」をWebアプリとして立ち上げる、いつものやつです。

※画面は開発中のアレです。

これまではClaude CodeでAI-DLCをやっていた

正直に白状すると、AI-DLC自体は前々からClaude Codeでやっていました。要件定義 → ユーザーストーリー → ユニット分解 → 機能設計 → NFR設計 → インフラ設計 → コード生成 → ビルド&テスト、という流れを aidlc-docs/ 配下にどっさり吐き出しながら進めるアレです。Claude Codeでもまったく問題なく回っていたので、不満はなかったんです。

ただ、AI-DLCってそもそもAWSが言い出した方法論じゃないですか。

そりゃ本家ツールでやったらどうなるのか、気になるじゃないですか。という訳で今回はKiroを使ってみました。

使ってみたら、勝手はけっこう違った

最初に戸惑ったのは、Kiroのチャットがそのまま「AI-DLCの実行ログ」とは別物として残るところ。Claude Codeだとどうしても「会話 = 作業履歴」になりがちで、振り返りたいときに長大なターミナル出力をスクロールすることになります。Kiroはチャット履歴がIDE側に独立して残るので、 aidlc-docs/audit.md のような「AI-DLCとしての公式な作業ログ」と、雑談込みの「対話履歴」が分離されている。これが地味に効きます。後で「あの判断、どんな会話の流れで決めたんだっけ?」を追うのが楽。

もうひとつ良かったのがマルチモーダル。SNSのデザインシステム(うちの宿の世界観に合わせた「日本海ブルー」「佐渡グリーン」「和紙ホワイト」みたいなトーン)を作ったあと、画面のスクショをそのままチャットに貼って「この余白、ちょっと詰まりすぎでは?」とやると、ちゃんとUI上の問題点として把握してくれる。Claude Codeでこれをやろうとすると、いったんスクショを保存して、パスを指定して……となりがちなので、IDE組み込みの強さを感じました。(と、kiroもおっしゃっておられる)

カスタムエージェントを”再帰的”に育てられる

AI-DLCのカスタマイズの肝は、各フェーズの成果物を専門家チームレビューにかけて、合格点(うちでは90点)に達するまで修正 → 再レビューを回すところです。今回これを Kiro の steering( .kiro/steering/expert-review.md )として組み込みました。バックエンド/フロントエンド/インフラ/QA/法務/セキュリティ/CI-CD/言語エキスパートの計8名が並列で採点し、不合格の専門家のレビューだけを次サイクルで再実施する、という仕組みです。

これが Kiro だと カスタムエージェントとして再帰的に育てられる のが効きました。たとえば最初のレビューで「セキュリティ専門家、ちょっと観点が浅いな……」と感じたら、その場で steering を書き換えて「最新のサプライチェーン攻撃をWeb検索してから採点せよ」と縛りを足す。次のフェーズではもう改善版で動いてくれる。

実際、要件定義書の第1回レビューは8人中ほぼ全員が70点台で不合格でしたが、指摘を反映した第2回では全員90点超え。インフラのレビューだけはr3まで回りました。

「自分で作った専門家を、自分で鍛え直しながら使う」 という体験は、Claude Codeでサブエージェントを書いていた頃の延長ではあるんですが、Kiroだと steering の修正がそのまま次のチャットに反映されるテンポ感が良くて、改善のループが軽いです。

“おひとり様AI-DLC”でも、チェックリスト方式が効く

AI-DLCの本来の運用にはモブ・エラボレーション(ステークホルダー全員でワイワイ要件を詰める)があるんですが、今回はおひとり様。つまり「私が宿のオーナーで、私が開発者」という一人芝居なので、本来の旨味の半分くらいは諦めて始めました。

ところが、やってみて気づいたのが、AI-DLCの「確認事項を1つのファイルにチェックリストで並べて回答してもらう」スタイル、実はチーム作業でこそ無類に強いのでは? ということ。

たとえば要件確認は、こんなファイルが生成されます。

<b>## Question 3</b>
ユーザー登録・認証はどのような方式を希望しますか?

A) メールアドレスとパスワードによる登録
B) 招待制(オーナーが招待リンクを発行)
C) SNSアカウント連携(Google、LINEなど)
D) A + Bの組み合わせ

[Answer]:B

これ、[Answer]: の後ろに記号を書くだけ。回答者の認知負荷がほぼゼロ。

おひとり様だと「自分宛のセルフ問診」なんですが、これがチームやお客様への確認だったら??「確認事項っすよ! みんな時間あるときチェックしてね!」と非同期で投げ込めるフォーマットになっていることに気づきました。Slackで「決めなきゃいけないことが12個あります」と箇条書きしたところで、誰も全部に回答してくれない。でも、ファイルに [Answer]: タグが12個ぶら下がっていれば、お客様も「あ、ここに書けばいいのね」とコメントしやすい。

つまりAI-DLCのワークフローは、AI協働の枠を超えて「人間同士の非同期コラボの型」としても機能するんだなと。これは収穫でした。

まとめ:AI-DLC、イイネ

ふりかえると、

  • Kiro はAI-DLCとの相性が良い(チャット履歴と作業ログが分離、マルチモーダルでUIフィードバックがやりやすい)
  • 専門家レビューを 再帰的に鍛えられる ので、フェーズが進むほど採点品質が上がる
  • おひとり様運用でも、チェックリスト形式の確認ファイル が将来の非同期コラボへの布石になる

Claude Codeでやっていた頃の流儀をそのままKiroに持ち込んでも動きはしますが、Kiroの素直な使い方に寄せると、AI-DLC本来の旨味が一段引き出される 感覚があります。(素材の味)

次は、おひとり様じゃなくて、宿のお客様にも [Answer]: 方式で要望を投げてもらう実験をしてみたい。たぶんそのときは、AI-DLCが「開発手法」ではなく「地方の小さな事業者がお客様と一緒にものを作るための会話の型」になっている、というオチで、また一本書こうと思います。

(無保証・予定は未定ですがね)

それでは、また佐渡から。 ボチボチ田植えの準備をせねば・・・・。(といって稲刈り前の画像で〆る。あ、この写真の真ん中下部にオーブが見える方はラッキーです。佐渡においでください。そういう定めです、きっと。)