kickflow Tech Blog

株式会社kickflowのプロダクト開発本部によるブログ

2026-01-01から1年間の記事一覧

kickflow のシリアライザを Alba に移行しました

kickflow でエンジニアをしている川島です。 2026年7月、kickflow の全 API レスポンスを支えるシリアライザ約190ファイルを、ActiveModelSerializers(以下 AMS)から Alba へ一斉に切り替えました。 この記事では、大規模な置き換えを壊さずに進めるために…

Disk I/O Budget 枯渇と監視を作り直した話

新規事業本部でバックエンドエンジニアをしている渡辺です。 本記事では、検証用の Preview 環境で起きたDB障害の調査と、監視を作り直すまでの記録をまとめます。 ひとことで言えば、DB が急に詰まってログインなどが不安定になった障害です(本番の実ユー…

kickflow QAチームの「AI実行」

こんにちは、kickflow QAチームのNです。 kickflowのQAでは、機能変更ごとに用意したテストケースを、QAチームが内製したテスト管理ツール「KickRail」で管理しています。 KickRailを作った背景や仕組みについては、以前の記事「テスト管理ツール「KickRail…

TROCCOで開発生産性の指標を小さく始めてみた

こんにちは。CREチームの西山です。 kickflowでは開発チームの生産性の指標として、GitHub GraphQL API から取得したプルリクエスト(以下、PR)数などの計測・集計を今期から始めました。 開発チームのマネージャーからの依頼を受け、CREチームでTROCCOを使…

レビューもチケット管理もAIと仕組みに任せる ─ 開発チームから作業を減らす仕組みのつくり方|AI DevEx Conference 2026 登壇レポート

こんにちは。kickflowでエンジニアリングマネージャをしている森本です。 AIでコードを書く速度が上がっても、レビューやチケット管理といったコーディング以外の「作業」は自動では減りません。 kickflowの開発チームは、この作業をAIと仕組みに任せてきま…

Vitest 組み込みの VRT を kickflow で動かしてみた

Vitest で VRT をしている人のイメージ こんにちは、kickflow でエンジニアをしている芳賀です。 kickflow のフロントエンドは、Nuxt と Vuetify で構築しています。 コンポーネントテストは happy-dom の上で動かして挙動を検証していますが、スタイルはテ…

Metabase MCPの「たぶん」を減らすために、dbtの資産を活かしてセマンティックタイプを整備した

こんにちは。CREチームの西山です。 最近は業種や職種を問わず、AIが様々な業務で活用されるようになってきましたが、kickflowでは全社員にClaudeアカウントが付与されていることもあり、データ分析の現場でもAIを使う場面が増えてきました。 今回は、AIを使…

flakyを可視化してから潰す:E2Eテストの安定化と高速化を同時に進めた話

ミーアキャットは見張り役を立ててから群れ全体で採餌に専念する こんにちは、kickflow QAチームの川村です。 kickflowではおよそ1,200件のE2EテストをPlaywrightで実装し、深夜のnightly CIで並列実行しています。 テストの数が増えてくると、今度は「テス…

oRPC を調査したら、Rails + Nuxt の自分たちのスタックが思ったより型安全だと気づいた話

oRPC の調査イメージ こんにちは、kickflow でエンジニアをしている芳賀です。 最近、TypeScript 界隈で oRPC というフレームワークの名前をよく見かけるようになりました。「tRPC の開発体験そのままに、OpenAPI も一級市民として扱える」という触れ込みで…

鉄は熱いうちに打て、CI は Blacksmith で鍛えろ — runs-on 1行で1.76倍高速化

Blacksmith 氏が runs-on を打ち直す様子(イメージ) こんにちは、プロダクト開発本部でエンジニアをしている秋山です。 昨今のプロダクト開発では AI は切っても切れない存在となりました。kickflow でも掲げているバリューの一つに AI 1st があり、日々 C…

Asanaにたまるバグチケを、月一でAIに棚卸しさせる

Asanaにたまるバグチケを、月一でAIに棚卸しさせる こんにちは、kickflow QAチームのyanagiyaです。 今回は、Asanaにたまったバグチケットを月に一度AIがチェックし、すでに直っているかもしれないものをクローズ候補として提示するBotを作りました。 Asana…

入社2ヶ月で開発チームの振り返りを始めたら、改善のサイクルが回り出した話

こんにちは。kickflowでエンジニアをしている川島です。 2026年3月にエンジニアとして入社し、2ヶ月後の4月末から、開発チームの振り返り(レトロスペクティブ)を私主体で始めましたので、今回はそのお話をしたいと思います。 やりたいと思った理由は、大き…

Playwrightと内部APIでkickflowのテナント設定を丸ごとコピーするCLIツールを作った話

Playwrightと内部APIでkickflowのテナント設定を丸ごとコピーするCLIツールを作った話 こんにちは、kickflow QAチームのyanagiyaです。 今回は、kickflowテナントの設定を別のテナントへ丸ごとコピーするCLIツールを作りました。 ユーザー・組織図・経路・ワ…

AIコードレビューに最適なモデルを探す

こんにちは。CTOの小林です。 最近は実装だけでなくコードレビューもAIにやらせるチームが増えてきたと思います。今日は、そんなAIコードレビューに最適なモデルを探した話をします。 きっかけは料金改定 これまでkickflowでは長い間コードレビューに外部の…

AI Engineering Summit Tokyo 2026 に登壇しました

こんにちは。開発チームでエンジニアリングマネージャーをしている森本です。 6/8〜9 に開催された AI Engineering Summit Tokyo 2026 というイベントに登壇したのでレポートしたいと思います。

Claude Desktopでテスト設計を完全自動化する

アリの行列は個体の単純なルールの連鎖から、最適な食料輸送路を自律的に構築する こんにちは、kickflow QAチームの川村です。 PRが「QA可能」になったら、テスト項目書を作って、レビューして、テスト管理ツールに登録して、Slackでチームに共有する。 この…

毎朝の自動テスト結果をKickRailで確認する

自動テスト結果をKickrailに集約した話 こんにちは、QAチームのNです。 先日、社内テスト管理ツール「KickRail」についての記事が公開されました。 テスト管理ツール「KickRail」を内製した話 この記事では、川村さんがKickRailを立ち上げてくれた背景や、Qa…

テスト管理ツール「KickRail」を内製した話

クマノミは自分の住処にするイソギンチャクを選び、共生関係を育てる こんにちは、kickflow QAチームの川村です。 QAチームで使っていたテスト管理ツールを、Qaseから自作の KickRail に乗り換えました。 3日でアルファ版を立ち上げ、その10日ほど後にはQase…

実装から「仕組み」のパラダイムシフトへ。TSKaigi 2026で感じた TypeScript の現在地

TSKaigi 2026 プロダクト開発本部でエンジニアをしている秋山です。 去年に引き続き TSKaigi 2026 に参加してきました。 去年は個人で参加しましたが、今年は kickflow の福利厚生であるカンファレンス参加費補助制度をフル活用しました! 相も変わらず人気…

Supabase Storage のバックアップ基盤を Google Cloud + Pulumi で構築した

Supabase Storage backup to Google Cloud 新規事業本部でバックエンドエンジニアをしている渡辺です。 今回は、新規事業のエンタープライズ向け SaaS で実際に進めていた Supabase Storage のバックアップ整備についてまとめます。ユーザーのアップロードし…

RubyKaigi 2026参加レポート — 初めてのスポンサー出展

五稜郭タワーを望む夜景。RubyKaigi期間中はルビー色にライトアップされていた はじめに kickflowでバックエンドエンジニアをしているワイハナです。Rubyに関しては初心者で、本格的に触り始めたのは入社(2026年2月)してからです。 弊社は、2026年4月22日…

AI 時代を乗りこなすために Story Point を導入した話(試験中)

AI を使った Story Point の導入 こんにちは、kickflow開発チームの芳賀です。 AI コーディング、いいですよね。AI なくしてはもう作業が回らない時代まで来ちゃいましたね。体感では作業効率は約 2 倍に向上しました。 あと、ちょっと前までは「プロンプト…

深夜のE2Eテスト失敗をClaude Codeが自動修正してPRを作る仕組みの構築

フクロウは夜間に獲物の位置を音だけで正確に特定し、静かに仕留める こんにちは、kickflow QAチームの川村です。 E2Eテストの数が増えてくると、毎朝のCI失敗対応が地味に時間を取られます。 kickflowでは約900のPlaywrightテストを深夜のnightly CIで実行…

OpenAPIドキュメントツールScalarのすすめ

こんにちは、CTOの小林です。 新規事業で開発者向けAPIを提供することになり、APIドキュメントのツール選定をすることになりました。 kickflowではRedocly社が提供するOSS版のRedocをGitHub Pagesでホストして使っています。 developer.kickflow.com Redocに…

「なんとなく」でリリースしない。kickflowが定めたAI機能の品質基準と評価プロセス

「なんとなく」でリリースしない。kickflowが定めたAI機能の品質基準と評価プロセス こんにちは、kickflow QAチームのmakiです。 kickflowでは現在、複数のAI機能を提供しています。 以前、AI申請前レビュー機能の品質評価プロセスをご紹介しましたが、その…

PlaywrightのCIが80分→35分に:実行時間ベースのバランスドシャーディングを自作した話

渡り鳥はV字編隊の先頭を交代することで、群れ全体の消耗を均等にする こんにちは、kickflow QAチームの川村です。 今回は、PlaywrightのE2Eテストを12並列で実行しているにもかかわらず、特定のシャードだけが80分かかってボトルネックになっていた問題を、…

kickflow MCP サーバーのトークン数を97%削減しました。が、しかし…

こんにちは、プロダクト開発本部でエンジニアをしている秋山です。 みなさん、普段から MCP サーバーを活用していますか? 一時期、シェルコマンドのラッパーとして MCP サーバーを使っているケースも見受けられたものの、よりトークン消費数の少ない Agent …

Playwright CodegenとClaude CodeでE2Eテスト作成をノーコード化する

粘菌は複雑な迷路でも、最短経路を自然に見つけ出す こんにちは、kickflow QAチームの川村です。 「E2Eテストを書きたいけど、コードを書くのはハードルが高い」。 こうした悩みを持つQAメンバーは多いのではないでしょうか。 kickflowでは、Playwright Code…

開発からリリースまで「自動で流れる」チケット管理

ミツバチは巣の六角形構造により、最小の材料で最大の効率を実現する こんにちは、kickflow QAチームの川村です。 「開発チームからQAへの依頼がSlackで埋もれてしまう」「チケットのステータス管理が煩雑で、今どの段階にあるかわかりにくい」といった課題…

QA業務効率化:SlackリアクションをトリガーにAsanaの不具合をAI検索する

Slack絵文字でAsanaの不具合検索を自動化 こんにちは、kickflow QAチームのmakiです。 今回は、Slackで絵文字を押すだけでAsanaの既存不具合を検索できる仕組みを作ったので、その実装方法と効果をご紹介します。