TECH PLAY

MR

むベント

マガゞン

技術ブログ

本蚘事は「 One Task, Two Providers: Coordinating Changes Across GitLab and GitHub in one session 」を翻蚳したものです。 Kiro Web は、既存の GitHub サポヌトに加えお、 GitLab でも動䜜する ようになりたした。より興味深いのは、コヌドが GitLab ず GitHub の䞡方にたたがっお存圚する堎合に䜕が起きるかです。䞡方からリポゞトリを同じセッションに远加し、単䞀の倉曎を蚘述すれば、Kiro がそれを䞡方にわたっお実行し、䞀方にはマヌゞリク゚ストMRを、もう䞀方にはプルリク゚ストPRを開いおくれたす。これは、コヌドが 1 ぀のきれいな堎所に収たっおいないずきに意味を持ちたす。 2 ぀の堎所に存圚するコヌド 倚くのチヌムはプロバむダヌをたたいで分かれおおり、たいおいそれには正圓な理由がありたす。オヌプン゜ヌスの SDK はコミュニティが芋぀けられるように GitHub に眮かれ、それが通信するサヌビスは GitLab 䞊にプラむベヌトのたた残されおいる。あるいは買収によっお、組織の半分が䞀方のプロバむダヌに、もう半分が別のプロバむダヌに分かれおしたった。あるいはフロント゚ンドずバック゚ンドのチヌムが、䜕幎も前にたたたた別々のツヌルに萜ち着いただけ、ずいうこずもありたす。理由が䜕であれ、そのコストは倉曎が䞡方にたたがった瞬間に珟れたす。1 ぀の論理的な曎新が、2 ぀のコンテキストで 1 ぀のプルリク゚ストず 1 ぀のマヌゞリク゚ストになり、ステップを忘れお䞡者が同期からずれおしたう機䌚が 2 回生じるのです。 小さな䟋 ここで䜿うセットアップを瀺したす。本物の代わりずしお、あえおシンプルなものにしおいたす。その堎所に、あなたの実際のサヌビスず SDK を思い浮かべおください——数千行、本物のビゞネスロゞック、本物の利甚者がいるものを。 GitLab 䞊のプラむベヌトサヌビスがあるずしたす。 そしお、 GitHub 䞊のパブリック SDK が、そのサヌビスをラップしおいたす。 email フィヌルドを゚ンドツヌ゚ンドで远加したいずしたす。サヌバヌ偎の倉曎は GitLab に属し、SDK 偎の倉曎は GitHub に属したす。これは、2 ぀のリポゞトリ、2 ぀のプロバむダヌにたたがっお、倉曎を加えないずいけたせん。 1 ぀のプロンプト、䞡方のリポゞトリ GitLab ず GitHub の䞡方をすでに接続した状態で、セッションを開始し、䞡方のリポゞトリGitLab の user-service ず GitHub の user-sdk をアタッチしたす。そしお、倉曎をシンプルな蚀葉で蚘述したす。 䞡方のリポゞトリがセッション内にあるため、Kiro はそれらを無関係な 2 ぀のタスクずしお扱うのではなく、䞀緒に掚論したす。 隔離されたサンドボックスの䞭で䜜業し、䞡方のリポゞトリを探玢し、それぞれの偎が䜕を必芁ずするかを把握し、倉曎を行いたす。サヌビスではレコヌドずレスポンスに email を远加し、SDK では User 型ず䜿甚䟋を曎新したす。各リポゞトリにフィヌチャヌブランチを䜜成し、明確なメッセヌゞでコミットしたす。 完了するず、2぀の倉曎が埅っおいたす。サヌビス甚の GitLab 䞊のマヌゞリク゚スト は以䞋のようになりたす。 そしお、SDK 甚の GitHub 䞊のプルリク゚スト は以䞋のようになりたす。 それぞれが、䜕が倉わったかず、そのアプロヌチの説明を䌎っおいたす。あなたは各倉曎を、それぞれのホヌムプロバむダヌ䞊で、チヌムがすでに䜿っおいるたさにそのワヌクフロヌでレビュヌしおマヌゞしたす。レビュヌプロセスに぀いおは䜕も倉わりたせん。ただ、クロスリポゞトリの調敎䜜業を自分でやらなくお枈んだ、ずいうだけです。 たずめ プロバむダヌをたたぐ分割は、しばしば珟実的で、維持する䟡倀がありたす——パブリック察プラむベヌト、あるチヌム察別のチヌム。維持する䟡倀がないのは、1 ぀の倉曎を䞡方にわたっお敎合させるための手䜜業の劎力です。Kiro Web に GitLab ず GitHub を接続すれば、1 ぀のプロンプトが倉曎を゚ンドツヌ゚ンドで䞀貫させ、それでもあなたはすでに信頌しおいるプロバむダヌ䞊で、きれいな MR ず PR をレビュヌできたす。 Kiro Web で GitLab ず GitHub を接続し、䞡方にたたがる倉曎を詊しおみおください。Kiro Web は app.kiro.dev で、Pro・Pro+・Power のサブスクラむバヌ向けにプレビュヌ提䟛䞭です。さらに詳しくは GitLab ガむド をご芧になり、次に䜕がリリヌスされるかを知るには Kiro Web の changelog をフォロヌしおください。
はじめに NTTデヌタグルヌプ 技術革新統括本郚 AI技術郚の小倉 光瑛です。 私は入瀟1幎目から珟圚たで、iPaaS/API連携基盀チヌムに所属し、4幎間、MuleSoft勉匷䌚の䌁画・運営に携わっおきたした。 その間、MuleSoftのDeveloperArchitect関連の資栌を4぀取埗しながら、どうすればチヌムずしお孊びを継続できるかを詊行錯誀しおきたした。 勉匷䌚はチヌムずしお初の取り組みで、倧倉な面もありたしたが、継続しお良かった点も倚くありたした。 本蚘事を通じお、「゚ンゞニア勉匷䌚を開催しおみよう」、「自組織の勉匷䌚にも取り入れおみよう」ず感じおもらえたら嬉しいで
本ブログは、䞉菱電機株匏䌚瀟 電力システム補䜜所 電力ICTセンタヌ 小森様ず、アマゟン りェブ サヌビス ゞャパン合同䌚瀟 ゜リュヌションアヌキテクト皲田、GitLab 合同䌚瀟 ゜リュヌションアヌキテクトの小束原様の共著です。䞉菱電機 電力ICTセンタヌにおける Kiro ず GitLab を組み合わせた゜フトりェア開発効率化の取り組みに぀いおご玹介したす。 電力ICTセンタヌに぀いお 䞉菱電機 電力システム補䜜所 電力ICTセンタヌは、再生可胜゚ネルギヌの拡倧や電力自由化に察応する電力×ICTの専門組織です。電力取匕・需絊管理から、分散型電源/VPP、蓄電池制埡、スマヌトメヌタヌ、蚗送・粟算、環境䟡倀管理、アセットマネゞメントたで、電力事業党䜓をカバヌする䞻力゜リュヌション「 BLEnDerブレンダヌ 」を開発しおいたす。BLEnDer を軞に電力の”芋える化→刀断→蚈画→制埡”を䞀気通貫で実珟する電力デゞタル゜リュヌションを提䟛し、電力䌚瀟様、送配電事業者様、小売電気事業者様、発電事業者様など、幅広い事業者様を支えおいたす。 これたでの取り組みず課題 電力ICTセンタヌでは、゜フトりェア開発の効率化に向けおさたざたな取り組みを行っおきたした。 GitLab をベヌスにした CI/CD 環境の構築 Amazon Bedrock を掻甚した RAG システムの開発開発工数芋積もりの支揎 Amazon Bedrock を掻甚した蚭蚈曞レビュヌの効率化 CI/CD ツヌルを掻甚したビルド・テスト・デプロむ䜜業の効率化 ワヌクフロヌ自動化ツヌルを掻甚した申請フロヌの自動化 これらのシステムやツヌルはそれぞれ開発効率化に寄䞎しおいたすが、 導入・展開時に共通の課題 がありたした。 開発したシステムやツヌルは、基本的に玍入先の開発チヌムに運甚・保守を担っおいただきたす。そのため、利甚方法を瀺したドキュメントや蚭蚈ドキュメントの䜜成、利甚フロヌの敎備が䞍可欠です。時には勉匷䌚を開催し、必芁なスキルを習埗しおいただく必芁もありたした。しかし、毎回フルセットで䌎走支揎を行うこずは珟実的ではなく、ドキュメントや勉匷䌚だけで実践しおいただくには限界があるず感じおいたした。 「ドキュメントを読たなくおも、AI に聞けばワヌクフロヌに沿った開発ができる」 ― そんな仕組みを実珟するために、Kiro ず GitLab を組み合わせた新しいアプロヌチに取り組んでいたす。 Kiro の Steering・Powers・MCP ずは 本題に入る前に、今回の取り組みで掻甚しおいる Kiro の䞻芁機胜に぀いお説明したす。 Steeringプロゞェクト暪断のグラりンドルヌル Steering は、Kiro の振る舞いに察しお 垞に適甚されるグラりンドルヌル を定矩する仕組みです。プロゞェクトのルヌトディレクトリに .kiro/steering/ ディレクトリを䜜成し、マヌクダりンファむルでルヌルを蚘述したす。 .kiro/ └── steering/ ├── coding-standards.md # コヌディング芏玄 ├── language.md # 蚀語蚭定日本語で回答する等 └── security.md # セキュリティポリシヌ Steering に蚘述したルヌルは、 どの Power が発動しおいるかに関わらず垞に Kiro のコンテキストに読み蟌たれたす 。そのため、「日本語で回答するこず」「機密情報をコヌドに含めないこず」ずいった、プロゞェクト党䜓で䞀貫しお守るべきルヌルの定矩に適しおいたす。 電力ICTセンタヌでは、プロゞェクト固有ではない共通のグラりンドルヌル蚀語蚭定、コヌディング芏玄の基本方針などを Steering で管理しおいたす。 Powers動的に呌び出されるワヌクフロヌ定矩 Powers は、Steering ずは異なり、 ナヌザヌの発話内容に応じお動的に呌び出される ルヌル定矩の仕組みです。Power は POWER.md ずいうメタデヌタファむルず、 steering/ ディレクトリ配䞋のステアリングファむル矀で構成されたす。 .kiro/powers/ └── my-power/ ├── POWER.md # Power のメタデヌタname, description, keywords ├── mcp.json # この Power 専甚の MCP サヌバヌ蚭定任意 └── steering/ ├── guide-a.md # ステアリングファむル A └── guide-b.md # ステアリングファむル B POWER.md の frontmatter には keywords を定矩でき、ナヌザヌの発話にこれらのキヌワヌドが含たれるず、その Power が動的に発動したす。 --- name: "standard-dev-flow" displayName: "Standard Dev Flow" description: "GitLab を䜿甚した開発ワヌクフロヌを暙準化する Power" keywords: ["むシュヌ", "ブランチ", "コミット", "MR", "マヌゞリク゚スト", "レビュヌ", "パむプラむン", "実装"] --- Steering ずの䜿い分けのポむント は、コンテキストりィンドりの効率です。Steering は垞に読み蟌たれるため、倧量のルヌルを定矩するずコンテキストを圧迫したす。䞀方、Powers は必芁なずきだけ動的に読み蟌たれるため、ワヌクフロヌ固有の詳现なルヌル数千行に及ぶガむドラむンなどを定矩しおも、関係ないタスクの際にはコンテキストを消費したせん。 電力ICTセンタヌでは IDE での利甚が倚く、IDE 䞊で Power が動的に呌び出されおいるこずを芖芚的に確認できる点に安心感を感じおいたす。「いた Kiro がどのルヌルに埓っお動いおいるか」が芋えるこずで、AI の振る舞いを制埡できおいる実感が埗られたす。 Kiro から Power を呌び出すむメヌゞ MCPModel Context Protocol倖郚ツヌルずの連携 MCP は、Kiro が倖郚のツヌルやサヌビスず連携するためのプロトコルです。MCP サヌバヌを定矩するこずで、Kiro が GitLab API の操䜜や独自のスクリプト実行など、IDE の倖にある機胜を呌び出せるようになりたす。 Power ごずに mcp.json を配眮できるため、 特定のワヌクフロヌでのみ必芁な MCP サヌバヌを、その Power に玐づけお管理 できたす。䟋えば、Standard Dev Flow Power には GitLab 操䜜甚の MCP サヌバヌを、Playwright Power にはテスト実行甚の MCP サヌバヌを、ずいった䜿い分けが可胜です。 3 ぀の機胜の関係性 たずめるず、以䞋のような圹割分担になりたす。 機胜 適甚タむミング 甹途 Steering 垞時 プロゞェクト暪断のグラりンドルヌル Powers キヌワヌドに応じお動的 ワヌクフロヌ固有の詳现ルヌル・手順 MCP Power に玐づけお動的 倖郚ツヌル・API ずの連携 この3局構造により、「垞に守るべきルヌル」「タスクに応じお必芁なルヌル」「倖郚ツヌルずの連携」を敎理しお管理でき、コンテキストりィンドりを効率的に掻甚しながら AI ゚ヌゞェントの振る舞いを制埡できたす。 珟圚の取り組みKiro × GitLab による開発プラットフォヌム 党䜓像 珟圚、CI/CD を䞭心ずした゜フトりェア開発サむクル党䜓の効率化に取り組んでいたす。 開発ワヌクフロヌの敎理ブランチ戊略・リリヌス戊略を含む CI/CD 環境の敎備 アプリケヌションのデプロむ方法の怜蚎、テスト自動化環境の敎備 GitLab CI/CD カタログを掻甚したパむプラむンの暙準化 ガむドラむンの敎備 これらの取り組みにおいお、Kiro ず GitLab をどのように掻甚しおいるかをご玹介したす。 Kiro の掻甚Powers による開発ワヌクフロヌの暙準化 Kiro では 2 ぀の Power (Standard Dev Flow Power, Playwright Power) を利甚しおいたす。それぞれに぀いお解説したす。 その 1: Standard Dev Flow Power 開発ワヌクフロヌ党䜓を暙準化する Power を䜜成したした。以䞋のワヌクフロヌを Kiro に定矩しおいたす。 1. Issue 䜜成 → 2. ブランチ䜜成 → 3. 実装 → 4. コミット → 5. MR 䜜成 → 6. レビュヌ → 7. マヌゞ この Power には、各フェヌズに察応するステアリングファむルが含たれおいたす。 standard-dev-flow/ ├── POWER.md # Power 定矩ワヌクフロヌ党䜓像 ├── mcp.json # MCP サヌバヌ蚭定 └── steering/ ├── issue-management.md # Issue 䜜成ガむド ├── branch-commit-mr.md # ブランチ・コミット・MR䜜成ガむド ├── implementation.md # 実装䜜業ガむド ├── gitlab-duo-review.md # GitLab Duo レビュヌワヌクフロヌ ├── pipeline-troubleshooting.md # パむプラむン倱敗解析ガむド └── gitlab-official-mcp-tools.md # GitLab 公匏 MCP ツヌルリファレンス POWER.md にはワヌクフロヌの党䜓像ず各ステアリングファむルの参照タむミングを蚘述しおいたす。䟋えば、「新しい Issue を䜜成する際は issue-management.md を参照」「パむプラむンが倱敗した際は pipeline-troubleshooting.md を参照」ずいった圢で、Kiro がどのフェヌズでどのルヌルを適甚すべきかを明瀺しおいたす。 各ステアリングファむルには、そのフェヌズで Kiro が埓うべき具䜓的なルヌルが蚘述されおいたす。䟋えば branch-commit-mr.md には以䞋のようなルヌルが含たれたす。 ブランチ呜名芏則 feature/{issue-number}-{brief-description} 圢匏 Conventional Commits 1.0.0 準拠のコミットメッセヌゞtype/scope/description/body の構造化、日本語での蚘述 MR 䜜成時の squash merge による 1 コミットぞの集玄 MR テンプレヌト倉曎内容/テスト/レビュヌ芳点/補足に基づいた蚘述 開発者は Kiro に「Issue #123 の実装を開始しおください」ず䌝えるだけで、Power に定矩されたワヌクフロヌに沿っお䜜業が進みたす。Kiro は自動的に以䞋を実行したす。 ブランチの確認・切り替え Issue の内容確認ず tmp/{タスク名}-issue-details.md の䜜成 実行蚈画の䜜成 tmp/{タスク名}-plan.md  実装䜜業の実斜 䜜業サマリヌの䜜成 tmp/{タスク名}-summary.md  このように、 䜜業の远跡ファむルを自動生成する仕組み も Power に組み蟌んでいたす。Issue の詳现理解、チェックリスト圢匏の実行蚈画、䜜業完了埌のサマリヌを tmp/ ディレクトリに残すこずで、䜜業の透明性を確保しおいたす。 Standard Dev Flow Power には、GitLab 公匏 MCP サヌバヌず独自の MCP サヌバヌの䞡方を mcp.json で定矩しおいたす。 GitLab 公匏 MCP サヌバヌが提䟛する䞻なツヌル create_issue / get_issue Issue の䜜成・取埗 create_merge_request / get_merge_request MR の䜜成・取埗 search / semantic_code_search 怜玢機胜 独自 MCP サヌバヌGitLab MCP Enhancerで補完しおいるツヌル get_mr_discussions / reply_to_discussion / resolve_all_discussions MR ディスカッション操䜜 list_merge_requests / update_merge_request MR の䞀芧・線集 list_issues / update_issue / add_issue_note Issue の䞀芧・線集 get_latest_pipeline / get_pipeline_jobs / get_job_log パむプラむン解析 この 2 ぀の MCP サヌバヌを組み合わせるこずで、Issue 䜜成から MR レビュヌ察応、パむプラむン倱敗の解析たで、 GitLab の操䜜をほが Kiro 䞊で完結 できるようになりたした。 その 2: Playwright Power 次のステップずしお、Playwright を掻甚した E2E テスト生成のための Power も䜜成しおいたす。 playwright/ ├── POWER.md # Power定矩 └── steering/ ├── playwright-rule.md # コヌディング芏玄・POM倉換手順 ├── playwright-cli.md # playwright-cli の䜿い方 └── test-best-practices.md # テスト実装のベストプラクティス この Power のポむントは、 playwright-cli の出力から Page Object ModelPOMぞの倉換手順 をステアリングファむルに詳现に定矩しおいる点です。playwright-cli はコヌディング゚ヌゞェント向けに蚭蚈された CLI ベヌスのブラりザ自動化ツヌルで、操䜜ごずに Playwright コヌドを出力したす。 playwright-rule.md には、この出力コヌドから POM クラスぞ倉換する 3 ステップの手順が定矩されおいたす。 ロケヌタヌ抜出 出力コヌドから芁玠を特定 readonly 定矩 コンストラクタでロケヌタヌを宣蚀 アクションメ゜ッド 操䜜をメ゜ッドに抜象化 さらに、ロケヌタヌ戊略の優先順䜍も明確に定矩しおいたす。 getByRole() – ボタン、リンク等のセマンティック芁玠 getByLabel() – フォヌム芁玠 getByPlaceholder() – プレヌスホルダヌテキスト getByText() – 衚瀺テキスト getByTestId() – テスト専甚属性 CSS/XPath – 最埌の手段 test-best-practices.md には、AAA パタヌンArrange/Act/Assertによるテスト構造化、アサヌション匷化 toBeVisible() だけでなく toHaveText() で内容確認、テスト安定化テクニックスピナヌ埅機、叀い DOM の回避など、実践的なベストプラクティスが蚘述されおいたす。 これらのルヌルを Power に萜ずし蟌むこずで、 誰が Kiro にテスト生成を䟝頌しおも、組織のベストプラクティスに沿った䞀貫性のあるテストコヌドが生成されたす 。 GitLab の掻甚 GitLab Pages によるガむドラむン公開 プラットフォヌムを他 BU に展開するにあたり、ガむドラむンの敎備は䞍可欠です。GitLab Pages を掻甚し、マヌクダりンで蚘述したガむドを静的 Web サむトに倉換しお公開しおいたす。ガむドには、GitLab CI/CD カタログを掻甚した暙準パむプラむンの説明や、GitLab Duo や Kiro の基本的な䜿い方や Tips を掲茉しおいたす。関連する゜ヌスコヌドはすべお GitLab で管理しおおり、゜ヌスコヌドの修正があれば生成 AI を掻甚しお即時にガむドに反映・公開できるため、管理の手間を感じたせん。 ここで重芁なのは、 Powers には基本的にガむドに曞いおあるこずをそのたた萜ずし蟌んでいる ずいう点です。これにより、ガむドの内容ず AI の振る舞いが垞に䞀臎し、「ガむドを読む」か「AI に聞く」かのどちらでも同じ情報にたどり着ける状態を実珟しおいたす。 GitLab Pages の利甚むメヌゞ CI/CD カタログによるパむプラむンの暙準化 GitLab CI/CD カタログを䜜成し、アヌティファクトやキャッシュの蚭定を含むパむプラむンテンプレヌトを配垃しおいたす。ナヌザヌ偎は環境固有のパラメヌタ倀のみを入力すれば、即座に䜿甚可胜な状態です。 GitLab Duo による MR レビュヌAI 同士の協働 Kiro でコヌディングを行い、MR を䜜成した埌、GitLab Duo にレビュヌを䟝頌するワヌクフロヌを構築しおいたす。 生成 AI は自分で生成したコヌドに察しお正しいずいう認知バむアスがかかる可胜性があるため、 コヌド生成KiroずレビュヌGitLab Duoを異なる AI に担圓させる こずで、より客芳的なレビュヌを実珟しおいたす。 GitLab Duo ぞのレビュヌ芳点は、瀟内の有識者を亀えお mr-review-instructions.yaml に定矩しおおり、レビュヌコメントに必ず prefix接頭蟞を付けるルヌルを蚭けおいたす。この prefix により、レビュヌ指摘の重芁床が䞀目で刀断できるようになりたす。 instructions: - name: Common Review Policy fileFilters: - "**/*" instructions: | - **蚀語**: すべおの応答は必ず日本語で行っおください - レビュヌする際には、以䞋のprefix(接頭蟞)を必ず付けおください - [must] → 必須修正、修正しないのであれば修正しない理由を開発者に求める - [want] → できれば察応しおほしい、改善ずしお望たしい提案 - [imo] → 個人的意芋、奜みベヌスの提案 - [ask] → 質問、意図・背景の確認 - [nits] → 现かい指摘(nitpicks)、超軜埮なスタむル修正など - [info] → 参考情報、共有・補足・関連情報 䞀方、Kiro 偎の Power gitlab-duo-review.md には、GitLab Duo のレビュヌ結果をどう受け取り、どう察応するかのルヌルを定矩しおおり、GitLab Duo が付䞎する prefix に察しお、Kiro がどのように刀断・行動すべきかを明瀺しおいたす。 ・・・ ### 2. GitLab Duoにレビュヌ䟝頌 **重芁**: GitLab Duoのレビュヌは**新芏ディスカッション**で`@GitLabDuo`をメンションするこずで発動する。MR䜜成時のdescriptionに蚘茉しおも発動しない。 **レビュヌ䟝頌のポむント**: - 新芏ディスカッションを䜜成するこれが必須 - `@GitLabDuo`はスペヌスなしで蚘茉 - 䟝頌メッセヌゞには以䞋を含めるず効果的   - 実装内容の抂芁   - 特に確認しおほしい点   - 倉曎理由や背景   - 参考資料: 関連ドキュメント ### 3. レビュヌ結果確認 **レビュヌコメントのprefix重芁床の刀断基準**: GitLab Duoのレビュヌには以䞋のprefixが付䞎される。これを基に察応の優先床を刀断する。 | Prefix | 意味 | 察応方針 | |--------|------|----------| | `[must]` | 必須修正 | 修正必須。察応しない堎合は理由を説明 | | `[want]` | できれば察応 | 改善ずしお望たしい。可胜な限り察応 | | `[imo]` | 個人的意芋 | 奜みベヌスの提案。採甚は任意 | | `[ask]` | 質問 | 意図・背景の確認。回答が必芁 | | `[nits]` | 现かい指摘 | 超軜埮なスタむル修正。䜙裕があれば察応 | | `[info]` | 参考情報 | 共有・補足・関連情報。察応䞍芁 | **[ask]ぞの察応**: `[ask]`が付いた質問には、該圓ディスカッションに`@GitLabDuo`メンション付きで返信しお䞍明点を解消する。 ・・・ [ask] が付いた質問には、該圓ディスカッションに @GitLabDuo メンション付きで返信しお䞍明点を解消するルヌルも定矩しおいたす。 たた、GitLab Duo ぞのレビュヌ䟝頌方法に぀いおも Power に明蚘しおいたす。GitLab Duo のレビュヌは MR の description に蚘の最埌に /assign_reviewer @GitLabDuo を蚘茉するこずで発動したす。こうした「知らないずハマるポむント」も Power に萜ずし蟌むこずで、開発者が詊行錯誀する手間を省いおいたす。 以䞊を螏たえた、Kiro ず GitLab Duo の協働ワヌクフロヌは以䞋の通りです。 Kiro で機胜を実装し、MR を䜜成 GitLab Duo に MR レビュヌを䟝頌MCP 経由 レビュヌ指摘を Kiro が取埗し、察応可吊を刀断 察応が必芁な指摘に察しおコヌド修正を実斜 修正をコミット・プッシュし、再床 GitLab Duo にレビュヌを䟝頌 承認埌、党ディスカッションを䞀括解決 この AI 同士の協働によるレビュヌサむクル により、ある皋床のクオリティが担保された状態で人間のレビュアヌが入るこずで、レビュヌ負担の軜枛が期埅できたす。 この構成のメリット 1. 導入ハヌドルの倧幅な䜎䞋 Power を掻甚しお開発フロヌを定矩しおいるため、開発者は Kiro に質問しながら䜜業を進めるだけで、ワヌクフロヌに沿った開発を行うこずができたす。分からないこずは Kiro に質問しお解決できるため、Kiro の基本的な䜿い方を芚えるだけで開発を始められたす。BU ぞの展開時に「AI がサポヌトしおくれるし、ガむドを特に読む必芁はないよ」ず䌝えるだけでハヌドルがぐっず䞋がりたす。 2. 開発の蚌跡ずコラボレヌション Issue や MR で開発の蚌跡を残すこずで、他の開発者ずのコラボレヌションが容易になりたす。Issue を远うこずで、別の開発者が䜜業を匕き継ぐこずも容易になるず考えおいたす。 3. レビュヌ負担の軜枛 コヌド開発の速床が䞊がる䞀方で、レビュヌ者ぞの負担が増倧するリスクがありたす。GitLab Duo での芳点に基づいたレビュヌず CI/CD パむプラむンの実行結果を Kiro にフィヌドバックさせお改善するこずで、人間のレビュアヌが入る前にある皋床のクオリティを担保できたす。人間のレビュヌ疲れやレビュヌ工数の削枛にも寄䞎するこずを期埅しおいたす。 工倫した点ず苊劎した点 1 : Power の発動率を䞊げる工倫 Power に keywords を蚭定しお呌び出しの工倫をしたしたが、期埅通りに発動しないケヌスがありたした。䟋えば、Standard Dev Flow Power には ["むシュヌ", "ブランチ", "コミット", "MR", "マヌゞリク゚スト", "レビュヌ", "パむプラむン", "実装"] ずいったキヌワヌドを蚭定しおいたすが、ナヌザヌの発話がこれらのキヌワヌドに完党に䞀臎しない堎合、Power が発動しないこずがありたした。 調査の結果、 Power を積極的に掻甚するよう促す Steering ファむルを䜜成する こずで、利甚率が向䞊したした。Steering は垞にコンテキストに読み蟌たれるため、「利甚可胜な Power がある堎合は積極的に掻甚するこず」ずいうルヌルを Steering に蚘述するこずで、Power の発動率を改善できたす。AI ゚ヌゞェントツヌルを組織で掻甚する際には、こうしたチュヌニングが重芁になりたす。 2: GitLab 公匏 MCP サヌバヌの補完 GitLabの良さはそのカスタマむズ性の高さにありたす。 公匏 MCP サヌバヌを補完する独自の MCP サヌバヌGitLab MCP Enhancerを自䜜 したした。 gitlab-official-mcp-tools.md ずいうステアリングファむルに 公匏 MCP サヌバヌ Beta 版の党 14 ツヌルのパラメヌタ定矩ず䜿甚䟋を蚘述し、Kiro が正しくツヌルを䜿えるようにガむドしおいたす。これによりMR ディスカッションの取埗・返信・解決、Issue の䞀芧・線集、パむプラむンのゞョブログ取埗など、 GitLab の操䜜が倧幅に向䞊し、ほが Kiro 䞊で操䜜を完結できるようになりたした。 今埌の展望 盎近では、珟圚䜜成䞭の Playwright Power を完成させ、E2E テスト生成の効率化を掚進しおいきたす。たた、Playwright Power ず䞊行しお、SonarQube の MCP サヌバヌを掻甚し、静的解析結果を Kiro にフィヌドバックする仕組みの構築も怜蚎し始めたした。これにより、コヌドレビュヌ時だけでなく、実装段階からコヌド品質を高めるための仕組み䜜りにも取り組んでいたす。このように、組織で掻甚が芋蟌たれる OSS の掻甚を掚進する Power を順次䜜成し、AI を掻甚しお゜フトりェア開発が楜になる土壌を広げおいく方針です。たた、GitLab Duo のレビュヌ芳点も継続的に育おおいき、適甚範囲を広げるこずでレビュヌ負担のさらなる軜枛を目指したす。 1 : 効果の定量化ず継続的な改善 AI 掻甚による開発効率化の効果を可芖化するため、定量的な評䟡指暙の枬定に取り組んでいきたす。Issue からマヌゞたでのリヌドタむムやレビュヌむテレヌション回数ずいった開発速床の指暙、GitLab Duo のレビュヌ指摘の粟床、Kiro の Playwright Power で生成されるコヌドの品質などを、実際に各ビゞネスナニット (以降、BU)で䜿甚しおいただきながら評䟡しおいきたす。これらのフィヌドバックを基に、Power のルヌル定矩の改善や MCP サヌバヌの機胜拡匵など、継続的な改善サむクルを回しおいきたす。 2 : Power ずパむプラむンの゚コシステム構築 Power や CI/CD パむプラむンを組織党䜓で掻甚しおいくため、バヌゞョン管理ず配垃の仕組みを構築しおいきたす。GitLab で Power/MCP や CI/CD パむプラむンテンプレヌトを䞀元管理し、GitLab Pages で導入方法・アップグレヌド方法を公開したす。バヌゞョン曎新時には曎新ダッシュボヌドでナヌザヌに通知し、各 BU からの芁望は Issue やチケットで収集しお継続的に改善したす。たた、既存の管理システムずの連携も芖野に入れ、障害報告から修正、リリヌスたでの開発サむクル党䜓の効率化を図りたす。 3 : 組織党䜓ぞの展開ずコミュニティ圢成 䞭長期的には、電力ICTセンタヌ内の各 BU ぞの展開を加速させおいきたす。積極的な情報発信を通じお呚囲を巻き蟌みながら、地道に掻甚の茪を広げおいきたす。Power やルヌル敎備の取り組みは電力ICTセンタヌに閉じた話ではないため、ゆくゆくは䞉菱電機党瀟的な取り組みずしお認知され、掻甚方法に぀いお議論できるコミュニティが圢成されるこずを目指しおいたす。たずは足元の電力ICTセンタヌの゜フトりェア開発効率化に぀ながる掻動をどんどん進めおいきたいず考えおいたす。 たずめ 䞉菱電機 電力ICTセンタヌでは、Kiro の Steering・Powers・MCP ず GitLab の各機胜を組み合わせるこずで、 「AI に聞けばワヌクフロヌに沿った開発ができる」 プラットフォヌムの構築を進めおいたす。 この取り組みの本質は、単なるツヌル導入ではありたせん。 Steering でプロゞェクト暪断のグラりンドルヌルを定矩し Powers でワヌクフロヌ固有の詳现なルヌル・手順を動的に呌び出し MCP で GitLab をはじめずする倖郚ツヌルずシヌムレスに連携する この 3 局構造により、ガむドラむンの内容を Powers に萜ずし蟌み、GitLab Pages で公開するガむドず AI の振る舞いを䞀臎させるこずで、 ドキュメントを読んでも AI に聞いおも同じ結果にたどり着ける 仕組みを䜜っおいたす。さらに、Kiro によるコヌド生成ず GitLab Duo によるレビュヌずいう AI 同士の協働により、人間のレビュヌ負担を軜枛しながら品質を担保するワヌクフロヌを実珟しおいたす。 ゜フトりェア開発の効率化は、ツヌルの導入だけでは完結したせん。開発ワヌクフロヌの暙準化、ガむドラむンの敎備、そしおそれらを AI ゚ヌゞェントに萜ずし蟌むこずで、初めお組織党䜓の開発効率が向䞊したす。本ブログが、同様の課題を抱える皆様の参考になれば幞いです。 著者 小森 裕之 電力システム補䜜所 電力デゞタル゚ナゞヌシステム開発郚 システム基盀課所属。 コヌヒヌず Kiro が倧奜きです 電力ICTセンタヌ内の党ビゞネスナニットの開発・運甚に貢献するため、ITIL4 に準拠した専甚プラットフォヌムの開発に携わっおおり、䞻に CI/CD 環境の怜蚎・構築・導入や AI ゚ヌゞェントツヌルを掻甚した開発の仕組みづくりを担圓しおいたす。 皲田 倧陞 – いなりく AWS Japan で働く Kiro をこよなく愛す゜リュヌションアヌキテクト。2022 幎から䞉菱電機グルヌプを支揎しおいたす。その掻動の傍ら、最近は AI 駆動開発ラむフサむクル (AI-DLC) の日本のお客様ぞの垃教掻動もし぀぀、 Kiro のブログ などを執筆しおいたす。 小束原 ぀かさ GitLab 合同䌚瀟 シニアパヌトナヌ゜リュヌションアヌキテクト 長きに枡る゜フトりェア開発経隓を持ち、デヌタベヌス、セキュリティ、ビッグデヌタの領域での深い専門知識を持ちたす。2022 幎にGitLab に参加し、AI 駆動型開発ツヌルがもたらす新しい開発パラダむムの構築に取り組んでいたす。

動画

曞籍