テスト・QA関連ブログRSSというページを運用しています。

といっても自分でゼロから作ったものではなく、yamadashy/tech-blog-rss-feed: 企業のテックブログの更新をまとめたRSSフィードを配信をforkして作ったものです。

なので本来であればfork元の更新を追従する必要があるのですが、長いことサボっていました。基本的には登録したサイトの更新を取ってきて一覧化するだけなので、こまめに変更を取り込まなくとも大きな問題にはなっていなかったのです・・・

が、たまにGitHub Actionsで使うUbuntuのバージョンが古くなって使えなくなるなど、ちょっとした影響が出ていました。

なのでfork元の更新を取り込むことにしました。

サボっていた取り込みをやるのは大変→そうだCursorにやらせよう

イケてる開発者の皆さんであればちゃちゃっとやっちゃうのかもしれませんが、私はそうではないので「何をすればいいかはわかるがだいぶ面倒だな・・・」と思っていました。あまりにも放置しすぎて競合がたくさん発生するだろう、という予想でした。

そこで「これってCursor使ったら楽になるのでは?」と思って試してみたところ、かなり楽になりました。

最初に依頼したプロンプトはこれです。

このコードベースについて、fork元の変更を取り込んでいなかったせいで差分が多くなってしまいました。いまからfork元の変更を取り込みたいのですが、どうしたらいいですか?

やれ、ではなくどうすればいい?と聞くとステップバイステップに近いかたちでやってくれるので、このあとの回答に従ってfork元の変更を取ってきて、競合の解消を行いました。

競合しているファイルの一覧も出してくれて、かつ「これは元のままのほうがいい」とか「これは最新を取り込んだほうがいい」とか、そういったアドバイスもくれました。

マージの際にコンフリクトが発生しました。以下のファイルでコンフリクトが発生しています:
src/site/_includes/styles/main.css
src/resources/feed-info-list.ts
src/common/constants.ts
package.json
README.md
.github/workflows/generate-feed.yml
これらのコンフリクトを解決する必要があります。各ファイルのコンフリクトを確認して、適切に解決していきましょう。
main.cssのコンフリクトについて、以下の点を確認しました:
1. カラースキームの違い:
  - 現在のブランチ(HEAD): teal/cyanを使用
  - fork元(upstream): yellow/orangeを使用
  - どちらもMaterial Designのカラーパレットを使用していますが、異なる色を選択
2. `.ui-nav`クラスのスタイル:
  - 現在のブランチ: 空のブロック {}
  - fork元: 空のブロック { }(スペースあり)
  - 機能的には同じです

提案:
1. カラースキームについては、fork元のyellow/orangeを使用することを推奨します。理由:
  - より暖かみのある色合いで、QA/テスト関連のコンテンツに適している
  - fork元のメインリポジトリで使用されている標準的な配色
2. `.ui-nav`クラスについては、どちらでも機能的に同じなので、fork元のスタイル(スペースあり)を採用することを推奨します。

この変更を適用しますか?それとも他の選択肢を検討しますか?

このレベルで提案してくれます。コード書いてくれるのももちろんありがたいのですが、個人的にはこうした周辺作業のアドバイスや肩代わりをやってくれるのも助かりますね。

「何をすべきかはざっくりしっているが、具体的に手を動かそうと思うと大変」といったレベルのタスクをスイスイこなせるようになるので、確かにこれ仕事で活用できたら強力・・・。

最終的に、無事fork元の変更をすべて取り込んで無事に稼働する状態に

できました。

Image from Gyazo

当然見た目は何も変わらないのですが、内部(というかGitHub Actionsの設定まわり)が最新になって、無事動作しています。

Cursorがなかったらたぶん面倒でやらなかったのですが、Cursorのおかげでものの15分とかでやりきれたのは体験が良いですね。

技術書とかコツコツ読んでて、プログラミングや開発まわりのことをざっくりしっているけれども、自分でゼロから手を動かしてなにかを作るほどのスキル・情熱・時間がないよ~というQAエンジニアには本当にCursorは良い相棒になりそうです。