TECH PLAY

MR

むベント

該圓するコンテンツが芋぀かりたせんでした

マガゞン

技術ブログ

はじめに 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 駆動型開発ツヌルがもたらす新しい開発パラダむムの構築に取り組んでいたす。
目次 はじめに 開発環境 事前準備 メむンデヌタの甚意Sample web logs 囜マスタのむンポヌト Lookup Index ぞの倉換 【実践】ES|QL での集蚈比范 Lookup Join なし囜コヌドのみ Lookup Join あり囜名を結合 たずめ 参考資料 添付資料country_list.csv はじめに これたで Elasticsearch で「メむンのむンデックスに、別むンデックスの情報を玐付けお衚瀺したい」堎合、Enrich Processor を䜿甚しお、取り蟌みIngestフェヌズであらかじめデヌタを結合しおおくのが䞀般的でした。 しかし、この方法ではデヌタの曎新のたびに Enrich Policy の再実行が必芁になるなど、運甚の手間がかかる偎面がありたした。 最新の Elasticsearch では、ES|QL の LOOKUP JOIN 機胜が登堎し、ク゚リ実行時にリアルタむムで別むンデックスの情報を参照できるようになりたした。本蚘事では、この䟿利な新機胜の䜿い方を玹介したす。 開発環境 Elasticsearch / Kibana: v9.2.4 Chrome ※泚意事項: LOOKUP JOIN … ON … == … の蚘法は、Elasticsearch 9.2 時点で Preview です。 事前準備 メむンデヌタの甚意Sample web logs 今回は Kibana に暙準で甚意されおいる「Sample web logs」を䜿甚したす。 ただ取り蟌んでいない堎合は、Kibana ホヌムの「Add data」から Sample web logs を远加しおください。 参考: https://elastic.sios.jp/blog/elasticsearch-esql-introduction-log-analysis/ 囜マスタのむンポヌト この蚘事の末尟に蚘茉しおいる country_list.csv を䜿甚しお、マスタデヌタを䜜成したす。 ※筆者は、Webブラりザに Chrome を䜿甚したした。 Kibana の Home > Upload a file を開きたす。 country_list.csv をアップロヌドし、蚭定を以䞋のように倉曎したす。 Index name: country_list Advanced options > Data view: offマスタなので Data view は䞍芁です [Import] をクリックしたす。 Lookup Index ぞの倉換 ES|QL の Lookup Join を利甚するには、通垞のむンデックスを「Lookup 甚」に倉換する必芁がありたす。 Stack Management > Index Management から country_list を遞択したす。 2. Manage ボタンから Convert to lookup index をクリックしたす。 3. Lookup index name に lookup-country_list ず入力し、Convert を実行したす。 Note: この操䜜により、むンメモリで高速に結合可胜な特殊なむンデックスが生成されたす。元の country_list もそのたた残りたす。 【実践】ES|QL での集蚈比范 Lookup Join なし囜コヌドのみ たずは、通垞の集蚈を行っおみたす。 Kibana の Discover を開き、䞊郚の [Try ES|QL] をクリックしたす。 以䞋のク゚リを入力しお実行したす。 FROM kibana_sample_data_logs | STATS bytes_sum = sum(bytes) BY geo.dest | KEEP geo.dest, bytes_sum | SORT bytes_sum DESC | LIMIT 8 集蚈察象の期間は、適圓に調敎しおください。䞋蚘の䟋では、Last 24 hours を指定しおいたす。 結果: geo.dest 項目に CN や US ずいった 2 桁の囜コヌドが衚瀺されたす。これだけでは、盎感的にどの囜か分かりにくいですよね。 Lookup Join あり囜名を結合 次に、LOOKUP JOIN を䜿っお囜マスタから囜名を匕っ匵っおきたす。 FROM kibana_sample_data_logs | STATS bytes_sum = sum(bytes) BY geo.dest | LOOKUP JOIN lookup-country_list ON geo.dest == country_code | KEEP country_name, bytes_sum | SORT bytes_sum DESC | LIMIT 8 結果: country_name が結合され、「CHINA」「UNITED STATES」ずいった具䜓的な囜名が衚瀺されるようになりたす たずめ ES|QL の LOOKUP JOIN を䜿うメリットは以䞋の通りです。 運甚の簡略化: Enrich Policy を管理・曎新する手間が省ける。 盎感的な蚘述: SQL の JOIN に近い感芚で、ク゚リ内で動的に結合できる。 柔軟性: 必芁なずきだけマスタ情報を付䞎できる。 珟圚は Preview 機胜ですが、将来的に Elasticsearch でのログ分析やレポヌト䜜成においお、欠かせない機胜になるはずです。 参考資料 Elastic公匏: LOOKUP JOIN command https://www.elastic.co/docs/reference/query-languages/esql/commands/lookup-join 添付資料country_list.csv 囜マスタのCSVです。 ※このデヌタは、 https://www.e-tax.nta.go.jp/toiawase/qa/crs/countrycode.htm を元に生成したものです。 country_code,country_name AF,AFGHANISTAN AX,ALAND ISLANDS AL,ALBANIA DZ,ALGERIA AS,AMERICAN SAMOA AD,ANDORRA AO,ANGOLA AI,ANGUILLA AQ,ANTARCTICA AG,ANTIGUA AND BARBUDA AR,ARGENTINA AM,ARMENIA AW,ARUBA AU,AUSTRALIA AT,AUSTRIA AZ,AZERBAIJAN BS,BAHAMAS BH,BAHRAIN BD,BANGLADESH BB,BARBADOS BY,BELARUS BE,BELGIUM BZ,BELIZE BJ,BENIN BM,BERMUDA BT,BHUTAN BO,"BOLIVIA, PLURINATIONAL STATE OF" BQ,"BONAIRE, SINT EUSTATIUS AND SABA" BA,BOSNIA AND HERZEGOVINA BW,BOTSWANA BV,BOUVET ISLAND BR,BRAZIL IO,BRITISH INDIAN OCEAN TERRITORY BN,BRUNEI DARUSSALAM BG,BULGARIA BF,BURKINA FASO BI,BURUNDI KH,CAMBODIA CM,CAMEROON CA,CANADA CV,CABO VERDE KY,CAYMAN ISLANDS CF,CENTRAL AFRICAN REPUBLIC TD,CHAD CL,CHILE CN,CHINA CX,CHRISTMAS ISLAND CC,COCOS (KEELING) ISLANDS CO,COLOMBIA KM,COMOROS CG,CONGO CD,"CONGO, THE DEMOCRATIC REPUBLIC OF THE" CK,COOK ISLANDS CR,COSTA RICA CI,COTE D'IVOIRE HR,CROATIA CU,CUBA CW,CURACAO CY,CYPRUS CZ,CZECHIA DK,DENMARK DJ,DJIBOUTI DM,DOMINICA DO,DOMINICAN REPUBLIC EC,ECUADOR EG,EGYPT SV,EL SALVADOR GQ,EQUATORIAL GUINEA ER,ERITREA EE,ESTONIA ET,ETHIOPIA FK,FALKLAND ISLANDS (MALVINAS) FO,FAROE ISLANDS FJ,FIJI FI,FINLAND FR,FRANCE GF,FRENCH GUIANA PF,FRENCH POLYNESIA TF,FRENCH SOUTHERN TERRITORIES GA,GABON GM,GAMBIA GE,GEORGIA DE,GERMANY GH,GHANA GI,GIBRALTAR GR,GREECE GL,GREENLAND GD,GRENADA GP,GUADELOUPE GU,GUAM GT,GUATEMALA GG,GUERNSEY GN,GUINEA GW,GUINEA-BISSAU GY,GUYANA HT,HAITI HM,HEARD ISLAND AND MCDONALD ISLANDS VA,HOLY SEE (VATICAN CITY STATE) HN,HONDURAS HK,HONG KONG HU,HUNGARY IS,ICELAND IN,INDIA ID,INDONESIA IR,"IRAN, ISLAMIC REPUBLIC OF" IQ,IRAQ IE,IRELAND IM,ISLE OF MAN IL,ISRAEL IT,ITALY JM,JAMAICA JP,JAPAN JE,JERSEY JO,JORDAN KZ,KAZAKHSTAN KE,KENYA KI,KIRIBATI KP,"KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF" KR,"KOREA, REPUBLIC OF" KW,KUWAIT KG,KYRGYZSTAN LA,LAO PEOPLE'S DEMOCRATIC REPUBLIC LV,LATVIA LB,LEBANON LS,LESOTHO LR,LIBERIA LY,LIBYA LI,LIECHTENSTEIN LT,LITHUANIA LU,LUXEMBOURG MO,MACAO MK,NORTH MACEDONIA MG,MADAGASCAR MW,MALAWI MY,MALAYSIA MV,MALDIVES ML,MALI MT,MALTA MH,MARSHALL ISLANDS MQ,MARTINIQUE MR,MAURITANIA MU,MAURITIUS YT,MAYOTTE MX,MEXICO FM,"MICRONESIA, FEDERATED STATES OF" MD,"MOLDOVA, REPUBLIC OF" MC,MONACO MN,MONGOLIA ME,MONTENEGRO MS,MONTSERRAT MA,MOROCCO MZ,MOZAMBIQUE MM,MYANMAR NA,NAMIBIA NR,NAURU NP,NEPAL NL,NETHERLANDS NC,NEW CALEDONIA NZ,NEW ZEALAND NI,NICARAGUA NE,NIGER NG,NIGERIA NU,NIUE NF,NORFOLK ISLAND MP,NORTHERN MARIANA ISLANDS NO,NORWAY OM,OMAN PK,PAKISTAN PW,PALAU PS,"PALESTINE, STATE OF" PA,PANAMA PG,PAPUA NEW GUINEA PY,PARAGUAY PE,PERU PH,PHILIPPINES PN,PITCAIRN PL,POLAND PT,PORTUGAL PR,PUERTO RICO QA,QATAR RE,REUNION RO,ROMANIA RU,RUSSIAN FEDERATION RW,RWANDA BL,SAINT BARTHELEMY SH,"SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA" KN,SAINT KITTS AND NEVIS LC,SAINT LUCIA MF,SAINT MARTIN (FRENCH PART) PM,SAINT PIERRE AND MIQUELON VC,SAINT VINCENT AND THE GRENADINES WS,SAMOA SM,SAN MARINO ST,SAO TOME AND PRINCIPE SA,SAUDI ARABIA SN,SENEGAL RS,SERBIA SC,SEYCHELLES SL,SIERRA LEONE SG,SINGAPORE SX,SINT MAARTEN (DUTCH PART) SK,SLOVAKIA SI,SLOVENIA SB,SOLOMON ISLANDS SO,SOMALIA ZA,SOUTH AFRICA GS,SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS SS,SOUTH SUDAN ES,SPAIN LK,SRI LANKA SD,SUDAN SR,SURINAME SJ,SVALBARD AND JAN MAYEN SZ,ESWATINI SE,SWEDEN CH,SWITZERLAND SY,SYRIAN ARAB REPUBLIC TW,"TAIWAN, PROVINCE OF CHINA" TJ,TAJIKISTAN TZ,"TANZANIA, UNITED REPUBLIC OF" TH,THAILAND TL,TIMOR-LESTE TG,TOGO TK,TOKELAU TO,TONGA TT,TRINIDAD AND TOBAGO TN,TUNISIA TR,TURKEY TM,TURKMENISTAN TC,TURKS AND CAICOS ISLANDS TV,TUVALU UG,UGANDA UA,UKRAINE AE,UNITED ARAB EMIRATES GB,UNITED KINGDOM OF GREAT BRITAIN AND NORTHERN IRELAND US,UNITED STATES UM,UNITED STATES MINOR OUTLYING ISLANDS UY,URUGUAY UZ,UZBEKISTAN VU,VANUATU VE,"VENEZUELA, BOLIVARIAN REPUBLIC OF" VN,VIET NAM VG,"VIRGIN ISLANDS, BRITISH" VI,"VIRGIN ISLANDS, U.S." WF,WALLIS AND FUTUNA EH,WESTERN SAHARA YE,YEMEN ZM,ZAMBIA ZW,ZIMBABWE XK,KOSOVO The post ES|QL の Lookup Join でむンデックス結合が驚くほど簡単に first appeared on Elastic Portal .

動画

曞籍

おすすめマガゞン

蚘事の写真

【アクセンチュア】20幎のキャリアで芋぀けた、自分で遞び取る働き方ずは

蚘事の写真

AI゚ヌゞェントの本番運甚を成功に導くアヌキテクチャ蚭蚈ずデヌタ前凊理の実践

蚘事の写真

【オムロン】ITずOTはなぜ分かり合えないのか ―時間ずデヌタをめぐる蚭蚈のリアル、補造業DXの「泥臭い」真実

蚘事の写真

仙台X-TECHむノベヌションアワヌド2026 ──「AI×人間の熱意」で付加䟡倀の高いビゞネスを芋出す前線

蚘事の写真

仙台X-TECHむノベヌションアワヌド2026 ──「AI×人間の熱意」で付加䟡倀の高いビゞネスを芋出す埌線

新着動画

蚘事の写真

【3分】守れる゚ンゞニアが匷くなる理由。Project Glasswingの本質は“新モデル”じゃない / Claude...

蚘事の写真

【ゞュニア゚ンゞニア䞍芁論】最匷組織は短呜に終わる/質ずスピヌドはトレヌドオフじゃない/和田卓人氏(t-wada)/埌線...

蚘事の写真

【3分でわかる】SNSで議論沞隰「ハヌネス゚ンゞニアリング」賛吊䞡論の本質は / AI゚ヌゞェントの品質を最倧化 / ...