to-tickets-agentic について
計画、仕様、会話を、個別に検証できる縦割りスライスのチケットに分解するスキルです。設定済みのローカルまたは実際の課題管理ツールに登録する前に、ブロッカー、作業レーン、テストの接点を整理します。
主な機能
- 01縦割りスライスのチケットを作成
- 02ブロッカーとテストの接点を特定
- 03有人または AFK レーンを割り当て
- 04作業範囲の重複を考慮
- 05依存順にチケットを登録
活用シーン
- 01仕様をチケットに分解
- 02エージェントの並行実装を準備
- 03チケットの依存関係とラベルを整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nstaab1/ nathan-agent-skills --skill to-tickets-agenticインストール後、Claude Code で/to-tickets-agenticを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
To Tickets Agentic
計画、仕様、会話を、トレーサーバレット方式の垂直スライスに分割します。各チケットには、ブロッカー、実装レーン、テスト対象のシームを明記します。
課題トラッカーとトリアージ用ラベルの語彙を設定してください。設定されていない場合は、/setup-agent-skills を実行します。
1. コンテキストを収集する
現在の会話を使用します。ユーザーから仕様、課題、URLが提示された場合は、その本文とコメントをすべて読みます。関連するドメインドキュメントと ADR も読みます。
2. 必要に応じて調査する
既存のシーム、重複する可能性のある箇所、先行リファクタリングの機会を把握できるだけのコードを調査します。簡単な変更に着手する前に、変更を簡単にできる方法を優先します。
3. 垂直スライスを作成する
各チケットは、次の条件を満たす必要があります。
- 影響を受けるすべてのレイヤーを通る、範囲の狭い完全な経路を切り出す。
- 単独でデモまたは検証できる。
- 新しいエージェントコンテキスト1つで完了できる。
- ブロッカーとなる依存関係を明記する。
- 前提となるリファクタリングを、先行チケットとして分離する。
垂直スライスとしてグリーンのまま取り込めない大規模な機械的リファクタリングには、拡張・縮小チケットを使います。新しい形式を追加し、影響範囲に応じた単位で呼び出し元を移行してから、すべての移行が完了した後に古い形式を削除します。
4. ユーザーとレーンを割り当てる
番号付きのドラフトを提示します。各チケットについて、タイトル、ブロッカー、実現する動作、提案するレーン、テスト対象のシームを示します。以下を確認します。
- 粒度とブロッカーとなる依存関係。
- 統合または追加の分割。
- AFK レーンと attended レーンのどちらにするか。
- 同じ実行フロンティアを共有するチケット間のファイルまたはモジュールの重複。
レーンの判断基準はシームです。
- AFK。 パブリックシームがすでに存在するか、今の段階で確定しているため、チケットに明記できます。
- Attended。 シームやインターフェースの設計に、人間の判断を要する未解決の問題が残っています。
同じフロンティアにあるチケットは、互いに異なる領域を変更する必要があります。重複するチケット間には、どちらも論理上もう一方を妨げない場合でも、ブロッカーとなる依存関係を追加します。共有ファイルを並行して自律実行すると、回避可能なマージ競合が発生するためです。
ユーザーがすべてのチケットとレーンを承認するまで、内容を調整します。
5. 公開する
すべてのタイトルの先頭に、[Ticket] を正確に1回付けます。
- ローカルトラッカー。 依存関係の順に、チケットごとに1つのファイルを
.scratch/<feature>/issues/<NN>-<slug>.mdに書き込みます。 - 実際のトラッカー。 依存関係の順にチケットを作成します。親チケットへのネイティブな子チケット機能がある場合はそれを使用し、次に2回目の処理でネイティブなブロッカー関係を設定します。親チケットにすべての子チケットが表示されていることを確認します。
AFK チケットには設定済みの ready-for-agent ラベルを、attended チケットには ready-for-human ラベルを適用します。親の仕様は変更せず、オープンのままにします。
サブ課題とブロッカーの関係は別物です。前者は作業を親チケットの配下にまとめ、後者は実行順序を制御します。
チケットテンプレート
# [Ticket] <title>
## Parent
<parent reference, when one exists>
## What to build
<the end-to-end behavior this ticket delivers>
## Acceptance criteria
- [ ] <observable criterion>
## Seams under test
- <public interface and behavior, or "Attended. Seams to be agreed at the keyboard">
## Blocked by
- <blocking ticket, or "None. Can start immediately">
ファイルパスではなく、インターフェースと動作を明記します。プロトタイプのスニペットは、確定した判断を文章よりも正確に記録できる場合に限り含められます。
承認されたすべてのチケットが作成され、正しいレーンラベルとシームが設定され、該当する場合は親チケットに紐付けられ、すべてのブロッカー関係が反映された時点で公開完了です。