最近、AIエージェントに「次の最小タスクを選んで実装して」と頼むことが増えました。これ、かなり便利なんですが、Issueがあるだけだと意外とすぐには進みません。

大きいIssueをそのまま渡すと、調査、設計、実装、検証、記事化、PR作成が全部混ざります。進んでいる感じは出るけれど、あとから見ると「で、このPRは何を閉じるんだっけ?」となりやすいです。

なので自分は、AIエージェントに実装を頼む前に、まず すぐPRにできるIssueかどうか を見ます。ここで言う「すぐ」は、雑に作るという意味ではなく、変更範囲と検証方法が小さく閉じている、という意味です。

Issueだけ見て決めない

まず現在地を見る

最初に見るのは、Issue本文だけではありません。Issueには「やりたいこと」が書いてありますが、それが今の実装状態と合っているとは限らないからです。

自分はだいたい、この順番で見ます。

git status --short --branch
gh issue list --state open

そのうえで、対象になりそうなIssueを開いて、READMEや関連docs、今の実装ファイルも見ます。

gh issue view 123
rg -n "関連しそうな言葉" README.md docs src

Issue本文だけを読んで「これできそう」と判断すると、すでに実装済みだったり、別PRで前提が変わっていたりします。特に個人開発では、Issueを書いた日と実装する日がずれるので、現在地の確認を挟むのが大事です。

作業ブランチも見る

もう1つ、今どのブランチにいるかも見ます。

git status --short --branch
git log --oneline -5

前のPRブランチにいるまま次の作業を始めると、差分が混ざります。小さいPRにしたいなら、まずmainを最新化して、そこから作業ブランチを切るほうが安全です。

git switch main
git pull --ff-only origin main
git switch -c feature/small-task

ここを雑にすると、Issueの粒度以前にPRの差分が読みにくくなります。

すぐPRにできるIssueの条件

変更範囲が1つに閉じている

自分の中で一番分かりやすい条件は、変更範囲が1つの論点に閉じていることです。

たとえば、次のようなIssueはPRにしやすいです。

  • 記事を1本追加する
  • READMEに手順を1つ追記する
  • 診断表示を1箇所だけ増やす
  • 入力ガードを1つ追加する
  • CIの失敗ログから分かった原因をdocsへ残す

逆に、次のようなIssueは、そのままだと大きいことが多いです。

  • UIを全体的に改善する
  • AIエージェント運用を整える
  • ブログ設計を見直す
  • テストをちゃんとする
  • 使いやすくする

こういうIssueが悪いわけではありません。ただ、PRにする前に「どの画面」「どのファイル」「どの検証」まで切る必要があります。

検証コマンドが言える

次に見るのは、検証コマンドが言えるかです。

npm run test:content
npm run content:index:check
npm run lint:prose
npm run build

記事追加ならcontent checkとbuild。UI変更ならbuildに加えてスクリーンショット確認。CI修正なら該当jobの再実行。ここが言えないIssueは、まだ作業単位として粗いことが多いです。

実装前に完璧な検証計画を作る必要はないですが、「このPRは何が通ればOKか」を一言で言える状態にはしておきたいです。

PR本文で閉じ方が書ける

Issueを選ぶとき、PR本文を先に想像するのも効きます。

## 概要

Issue #123 対応です。

Closes #123

## 変更内容

- ...

## 確認

- ...

この形に入らないなら、まだIssueが大きいか、目的が曖昧です。PR本文を書ける粒度まで絞ると、実装中に寄り道しにくくなります。

大きいIssueは切り直す

分解はサボりではない

大きいIssueを見つけたとき、無理に全部やらないほうがいいです。AIエージェントは手が速いので、任せると一気に進めてくれます。でも、速く進むほど差分も大きくなります。

自分は、大きいIssueを見たら次のように分けます。

  • まず調査だけ
  • 次にdocs追記だけ
  • 次に小さい実装だけ
  • 最後に導線や整理

分解するとIssue数は増えます。ただ、これはサボりではなく、レビューできる形にするための準備です。

「あとでやる」をIssueに残す

小さいPRにすると、当然ながら残るものがあります。その残りを頭の中に置くと忘れます。

だから、残りはIssue本文や別Issueに書きます。

## 残タスク

- Windowsでの動作確認は別Issueで行う
- UI文言の整理は次PRに分ける
- 価格や仕様の最新確認は公開前に行う

ここまで書いておくと、今回のPRでやらないことが明確になります。やらないことが見えているPRは、かなりレビューしやすいです。

AIエージェントに渡す前のチェックリスト

自分用の基準

最近は、Issueを選ぶ前にこのあたりを見ています。

  • 変更範囲は1つの論点に閉じているか
  • 触るファイルはだいたい1〜2箇所に収まりそうか
  • 検証コマンドを先に言えるか
  • PR本文に Closes #... を入れられるか
  • やらないことを説明できるか
  • privateなログやsecretを本文や差分に持ち込まないか

全部に厳密である必要はありません。ただ、このうち半分以上が曖昧なら、いきなり実装に入らず、Issueを切り直したほうがいいです。

小さいPRは、あとから効く

小さいPRは、作っている最中は少し地味です。でも、あとから効きます。

どのIssueを閉じたか分かる。どの検証をしたか分かる。レビューで見ればいい差分が少ない。必要ならrevertもしやすい。AIエージェントに任せるなら、この「あとから追える」ことがかなり大事だと思っています。

速く作れるようになったからこそ、最初に少しだけ切る。IssueをPRに変える前の、この小さい棚卸しを入れるだけで、作業の見通しはかなり良くなります。