cawplan-requirement-analyze について
cawplan-requirement-analyzeは、SQA向けに要件を整理するエージェントスキルです。チケット、文章、スクリーンショットを分析し、修正やCawPlanへのアーカイブ準備を支援します。
主な機能
- 01要件資料の収集
- 025項目での要件分析
- 03未確認事項の管理
- 04フィードバックに基づく草稿修正
- 05CawPlanアーカイブへの引き継ぎ
活用シーン
- 01チケット内容の構造化
- 02要件文とスクリーンショットの分析
- 03SQAフィードバックに基づく草稿修正
- 04CawPlanへの要件アーカイブ準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ cawcut/ skill-cawplan --skill cawplan-requirement-analyzeインストール後、Claude Code で/cawplan-requirement-analyzeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/output-confirmation.mdrules-global.mdterminology-en.mdworkflow-analysis.mdworkflow-archive.mdworkflow-revise.mdworkflow-save.mdworkflow-step1-material.md詳細
CawPlan 要件分析
出力言語
今回の出力言語は、以下の優先順位に従って決定します。以下の「ユーザーの主言語/会話言語」は、この結果を指します。
- ユーザーが出力言語を明示的に指定している → 指定された言語を使用します。
- ユーザーが自然言語で要件を示している → その要件の主言語に従います。
- ユーザーがリンク/チケット番号のみを提示し、自然言語の要件がない → チケットを読み取り、
descriptionと HTML を除去したremarksの主言語で出力します。 - それでも判断できない → 既存の会話言語を引き継ぎます。過去の会話言語がない場合は、英語を既定とします。
Skill の説明や例の言語、コマンド名、URL、チケット番号、Product info は、言語判定に含めません。五つのフィールドの見出しと本文、推論マーカー、表示用の要約、確認事項一覧、確認ボックス、案内/受領確認は、すべて選択した言語に統一します。同じ段落を中国語と英語の両方で書くことは禁止です。英語で出力する前に、references/workflow-analysis.md の step 3 に従って英語の用語集を読み取ってください。
Bootstrap
cawplan skill check
読み取りの規律(遅延読み込み)
コンテキストの判定:モデルはコンテキストが黙って切り詰められたことを確実には認識できません。ユーザーメッセージ(新しい invoke)をまたいで P4 / P1b / P2′ / P5 / P6 に進む場合、必要な reference はコンテキストにないものと常に仮定し、Read が必要です。「この会話の earlier で読んだ」ことを理由に、読み取りを省略することは禁止です。
唯一の例外:この agent の同じ応答内で、Read ツールを通じてそのファイルの全文を読み込んでおり、まだその応答が終了していない場合です。
コンテキストに残っているか判断できない場合は、残っていないものとして扱い、Read を実行します。
step 6(未バインドの草稿のみ)では、動作として常に steps 3–5(422 行)を再実行します。読み取りを省略できるのは Read ツールの使用のみであり、動作の再実行は省略できません。バインド済み(bound_requirement_id がある)の編集では step 6 を使用せず、P1b を参照してください。
作業パスを判定する前に references/ をまとめて読み取ることは禁止です。
Read の条件(上記の既定に沿った、パスごとの詳細):
- 新しい invoke で、パスが P3/P4/P1b/P2′/P5/P6 の場合 → パステーブルに記載されたファイルを Read します(P4 などでは、上記の「同じ応答内で直前に Read」を満たさない限り、analysis + rules を既定で必ず読み取ります)。
- 同じ会話内の同じ agent の応答内で直前に Read しており、全文がその応答のコンテキストに残っている場合 → Read を繰り返さなくてもかまいません。ただし、3–5 を再実行し、最初の言い回しを再利用する必要があります(159 行)。
「全文が現在のコンテキストに確実に残っているかどうかを Agent 自身が判断する」→ 削除。上記の「安全側を既定とする」に置き換えます。
| パス | 条件 | Read(ユーザーメッセージをまたぐ場合は既定で必須。「同じ応答内で直前に Read」の場合のみ省略可能) |
|---|---|---|
| P0 · 素材なしで即時終了 | step 1 で素材が一つもないと判定 | 読み取らない;stop |
| P1 · コールドハンドオフ(読み込みのみ) | アーカイブ済みの項目を引き継ぎ、このメッセージではフィールドを変更しない | workflow-archive.md |
| P1b · バインド後の編集(コールドハンドオフでのバインド後、または create 成功後) | bound_requirement_id があり、SQA が要件の内容/要約/チケットを変更する | archive + rules + confirmation;要件の内容は 11b-MD、要約/チケットは 11b-PATCH を使用;3–5 は再実行しない |
| P2 · 引き継いで直接アーカイブ | resume_intent があり、このメッセージでは草稿を変更しない | save + archive + rules + confirmation |
| P2′ · 引き継いだ後に草稿を変更 | resume_intent + フィールドを変更 | P4 と同じ(新しい invoke では analysis + rules を必ず読み取る) |
| P3 · 新規分析 | 素材があり、コールドハンドオフではない | step1-material → analysis → rules → Output |
| P4 · 修正 | 未バインドの草稿:保存ゲートが発動していない状態で、フィールド/要約を変更 | 新しい invoke では analysis + rules + revise + Output を必ず読み取る;同じ応答内なら Read の繰り返しを省略可能 |
| P5 · 保存 | 保存意図ゲート / resume_intent | save + archive + rules + confirmation |
| P6 · UNKNOWN | pending_write / UNKNOWN | archive + rules + confirmation;常に Read |
パスの再判定:各ユーザーメッセージの開始時にパスを再判定します。
アーカイブ後のテストポイントへのホットハンドオフ(step 1 より優先) — 今回のメッセージが「今すぐテストポイントを生成」(または同義の表現。cawplan-testpoint-generate の P2 を参照)であり、会話に有効なバインディング(product_id + requirement_id / bound_requirement_id)がある場合:
- はい →
cawplan-testpoint-generateスキルを読み取り、P2 のホットハンドオフに従って続行します(この skill の後続ステップを stop します)。 - いいえ → 以下の Workflow に進みます。
Workflow
1. 要件の素材を収集する
入口ルーティングの事前確認(素材を収集する前に、まずこれを判定) — SQA の意図は、アーカイブ済みの Requirement を引き継ぐ/変更することですか(requirement の id、REQ- 表示 ID、Requirement のリンクを提示する、または「前回の項目を続けて修正する」と述べる)?
- はい → step 10 の Cold handoff に進み、バインドのみを行います(五つのフィールドの草稿は読み込みません)。最初から再分析しないでください。理由:要件の内容はサーバー側の要件 Markdown を正とし、変更は全文置換です。最初から再分析すると、ユーザーが Markdown に直接加えた編集内容が失われます。変更には
workflow-archive.mdの 11b-MD を使用します。 - いいえ(新しい要件の分析)→ このステップで素材の収集を続けます。
REQ- + 数字のみの文字列、および /browse/product/{product_key}/qa/requirement/{display_id} は、アーカイブ済み Requirement の参照です。Cold handoff を優先し、step 1 の Ticket 表示 ID として扱わないでください。それ以外のプレフィックスのチケット番号は、引き続き Ticket material として扱います。
素材なしで即時終了(追加) — このメッセージにいずれか一つの素材が含まれているか判定します:ユーザーのテキスト、チケット(URL / 表示 ID / unique ID)、スクリーンショット。(Product info は素材に含みません — overview のみで、上記の三種類がない場合も、素材なしで即時終了します。)
- 一つもない → 下記の案内文だけを出力し、その後
stopします。step 2–5 に進むことは禁止です(進むと、すべて「(素材に記載なし)」の無意味な草稿が生成されます)。 - 一つ以上ある → 下記の
Accept any mix ofに進み、ポップアップは表示しません。
出力規律(素材なしの分岐) — 内部向けの手順であり、SQA には表示しません:
- 案内文ブロックだけを出力します。その前後に説明、つなぎの文、判定過程の言い換えを加えることは禁止です。
- 「入口ルーティングの確認によると…」「現在の会話には素材がありません…」「フローのルールに従い、まず素材をリクエストする必要があります…」「素材なしで即時終了」などの表現を出すことは禁止です。
- 何を確認しているのか、なぜ停止するのかを説明しないでください。SQA に表示するのは、以下の例と同じ案内文だけです。
案内文(ユーザーにはこのブロックだけをそのまま出力し、番号付きリストの形式を維持してください):
要件を分析しますか?以下のいずれかを送っていただければ開始できます:
- 要件のテキスト説明
- チケットのリンク/チケット番号
- 関連するスクリーンショット/モックアップ(複数可)
三つすべてをご提供いただくと、より詳しい情報を得られます。まず要件全体の草稿を作成し、確認していただきます。
要件を分析しますか?開始するには、以下のいずれかを送ってください:
- 要件のテキスト説明
- チケットのリンク/チケット番号
- 関連するスクリーンショット/モックアップ(複数可)
三つすべてをご提供いただくと、より詳しい情報が得られます。まず要件全体の草稿を作成し、確認していただきます。
(最後にアーカイブ/保存について触れないでください。プレーンテキストを使用し、AskUserQuestion は使いません。会話言語に従い、中国語版または英語版のどちらか一方だけを出力し、両方は出力しません。)
境界:チケットリンクだけが提示された場合も素材ありとして、以下のチケット解析に進みます。分析意図のない裸の issue URL の場合は、引き続き Rules の Trigger boundary(cawplan-ticket-context)に従い、素材なしの分岐には進みません。
ワークフロー一覧+Read フック
ステップ N の前:新しいユーザーメッセージごとに、同じエージェント応答内ですでに Read で読み込んでいない限り、references/<file>.md を読み、その後ステップ N のルールを適用します。
| ステップ | 概要 | Read フック |
|---|---|---|
| 1(素材あり) | 素材を収集 | 新しい invoke:references/workflow-step1-material.md を読む |
| 1 冷間引き継ぎ | アーカイブ済みの内容を紐付け(下書きは読み込まない) | 新しい invoke:references/workflow-archive.md を読む。その後、編集 → P1b |
| 2–5b | 原稿作成パイプライン | 新しい invoke:references/workflow-analysis.md + references/rules-global.md を読む |
| 6 | 改訂(未紐付けの下書きのみ。紐付け済みの場合は 11b) | 3–5 を必ず再実行。新しい invoke:analysis + rules + revise を読む |
| 7–8 | 保存準備 | 新しい invoke:references/workflow-save.md を読む |
| 10–11 | 紐付け/アーカイブ | 新しい invoke:references/workflow-archive.md を読む。P6 は常に読む |
| 出力 | 表示形式 | 新しい invoke:references/output-confirmation.md の該当セクションを読む |
ステップ → ファイル対応表(相互参照を補完し、原文の指示対象は変更しない)
| 文中の指示 | 参照先 |
|---|---|
| step 2 / Numeric cross-source check | references/workflow-analysis.md |
| step 3 / 固定表現一覧 / 表外の文型 | references/workflow-analysis.md |
| step 4 / 表示用サマリー | references/workflow-analysis.md |
| step 4b / テスト漏れのセルフチェック | references/workflow-analysis.md |
| step 5 / 判定基準 1 / 数値制限に関する疑義 / walkthrough | references/workflow-analysis.md |
| step 5b / 表示末尾 | references/workflow-analysis.md |
| step 6 改訂本文 | references/workflow-revise.md;保存意図ゲート → メインファイル |
| step 7–8 / §8 モジュールツリー | references/workflow-save.md |
| step 10–11 / Table A/B / Command outcomes | references/workflow-archive.md |
| Rules 総則 / レッドライン 0 / 列挙の完全性 / Failures / API scope | references/rules-global.md |
| Rules Trigger boundary / スキル間の引き継ぎ | メインファイル(ホットパス) |
| Output / Confirmation | references/output-confirmation.md |
ステップ 1 の前(素材あり分岐):新しいユーザーメッセージごとに、同じエージェント応答内ですでに Read で読み込んでいない限り、references/workflow-step1-material.md を読み、その後ステップ 1 の素材ルールを適用します。
ステップ 1 の前(冷間引き継ぎ分岐):新しいユーザーメッセージごとに、同じエージェント応答内ですでに Read で読み込んでいない限り、references/workflow-archive.md を読み、その後ステップ 10 の Cold handoff ルールを適用します。
2–5b. 分析パイプライン(ステップ 2–5b)
ステップ 2–5b の前:新しいユーザーメッセージごとに、同じエージェント応答内ですでに読み込んでいない限り、references/workflow-analysis.md と references/rules-global.md を読み、その後ステップ 2–5b のルールを適用します。
詳細:references/workflow-analysis.md — ソースのタグ付け(ステップ 2)、5 フィールドの下書き(ステップ 3)、表示用サマリー(ステップ 4)、テスト漏れのセルフチェック(ステップ 4b)、未解決の質問リスト(ステップ 5)、5 フィールドの表示末尾(ステップ 5b)。
分析結果を出力する前:新しいユーザーメッセージごとに、同じエージェント応答内ですでに読み込んでいない限り、references/output-confirmation.md の Output セクションを読みます。必須 — Output テキストを出力する前に、このファイルに対して Read ツールを呼び出してください。別の場所で見た、よく似た形式(例:workflow-analysis.md)では、Read の代わりになりません。
6. SQA フィードバックに基づく修正
まず、会話に bound_requirement_id があるか確認します:
- バインド済み → 手順 3~5b をスキップし、
references/workflow-archive.mdの 11b-MD(要件内容の変更)/11b-PATCH(summary/ticket_idの変更)に進みます。archive + rules + confirmation を読み、analysis は読みません。 - 未バインド(新しい要件、引き継ぎで受信した未保存のドラフト)→ 現行の5フィールドのドラフトパスをそのまま使用します。
手順 6 の前に、新しいユーザーメッセージごとに、同じエージェント応答内ですでに Read で読み込んでいない限り、references/workflow-analysis.md、references/rules-global.md、references/workflow-revise.md を読み込んでから、手順 6 のルールを適用します。修正を行うたびに、手順 3~5 と手順 5b の末尾を再実行します。
詳細:references/workflow-revise.md。
保存意図ゲート — 次のいずれかに該当する場合に限り、手順 7 以降に進みます。
| パス | 条件 |
|---|---|
| 口頭 | SQA が「CawPlan に保存」または同義の「CawPlan に格納」「要件を保存」と言った場合 |
| 認識の互換性(認識するが、SQA に発言を促さない) | 可以了、存吧、提交、归档 |
| 引き継ぎでの受信 | セッションに resume_intent(testpoint | testcase)がある — Rules スキル間の引き継ぎ。A1 の口頭トリガーではありません |
A1 の口頭トリガーとして 马上保存 を列挙しないでください — これは A2/A3 の枠2の選択肢ラベルです。単独の A1 発話ではなく、resume_intent の引き継ぎ経由で処理します。
保存意図がトリガーされるまでは、products list を呼び出さず、qa-insights module-tree get を実行せず、マウント先のノードを推奨しないでください。
表示レイヤー:5フィールドの末尾と案内では「CawPlan に保存」を使います。認識レイヤーでは、従来の表現も受け付ける場合があります。
7~8. 保存の準備(手順 7~8)
手順 7~8 の前に、新しいユーザーメッセージごとに、同じエージェント応答内ですでに Read で読み込んでいない限り、references/workflow-save.md を読み込んでから、手順 7~8 のルールを適用します。
詳細:references/workflow-save.md — 製品の解決(手順 7)、既存の module-tree からマウント位置を選択(手順 8)。
10~11. バインドとアーカイブ(手順 10~11)
手順 10~11 の前に、新しいユーザーメッセージごとに、同じエージェント応答内ですでに Read で読み込んでいない限り、references/workflow-archive.md を読み込んでから、手順 10~11 のルールを適用します。P6 UNKNOWN:必ず references/workflow-archive.md を読みます。
詳細:references/workflow-archive.md — 要件のコンテキストをバインド(手順 10)、整合(手順 10b)、アーカイブまたは更新(手順 11)、コマンドの実行結果、本文の記述ルール。
アーカイブの確認メッセージを出す前に、新しいユーザーメッセージごとに、同じエージェント応答内ですでに Read で読み込んでいない限り、references/output-confirmation.md の Confirmation セクションを読み込みます。必須 — Confirmation のテキストを出力する前に、このファイルに対して Read ツールを呼び出してください。成功または失敗の確認メッセージを記憶や即興で作成しないでください。
ルール(ホットパス — 全ルールは references/rules-global.md)
- トリガー境界:このスキルはSQA要件分析とQA Insightsへのアーカイブ用であり、チケットをコーディングセッションに読み込むためのものではありません。ユーザーが分析の意図を示さずにCawPlanの課題URLだけを貼り付けた場合は、処理を中止し、代わりに
cawplan-ticket-contextを使用してください。チケットリンクがここで対象となるのは、ユーザーが五項目分析またはアーカイブも希望している場合に限ります。 - スキル間の引き継ぎ(受け入れ/引き渡し):
- 受け入れ(「テストポイント生成」または「テストケース生成」欄からで、セッションに五項目の草稿がすでにある場合):step 1–6をスキップし、step 7(製品の解決)/アーカイブゲートstep 11から続行します。最初から再分析してはなりません(表現の揺れによりreconcile/snapshot diffが損なわれます)。受け入れ(
resume_intent)自体が保存意図を示しているため、受け入れ前にSQAへ五項目の末尾にある保存案内を繰り返してはなりません。 - 受け入れ時にノードが指定されている場合:引き継ぎに
module_tree_node_idが含まれている場合は、「指定済みのノードをそのまま使用し、再度尋ねない」という方針に従い、§8の場所選択フローをスキップしてstep 11へ進みます(§8での確認がないため、step 11の乙式確認ゲートは維持します)。 - 受け入れ時のコールドスタート(五項目の草稿がない場合):step 1から通常どおり素材を収集します。
- 引き渡し:アーカイブまたは更新が
outcome: SUCCESSになった後、セッションにresume_intent(testpoint|testcase)がある場合は、product_idとrequirement_id(=bound_requirement_id)を書き戻し、resume_intentを読み取ってクリアしてから、起点となったスキルに戻り、その §2 refresh から再開します。§6のテストポイント案内は追加しません(すでに自動的に戻っています)。次の指示を待つためにこのスキルに留まってはなりません。 - アーカイブ後のテストポイント案内:§6の成功応答の末尾に任意で一文を追加できます(
output-confirmation.mdの末尾にある§6の案内を参照)。ユーザーが「すぐにテストポイントを生成」と返信した場合は、cawplan-testpoint-generateスキルを読み込みます(P2のホット引き継ぎ)。反応がない場合は案内を繰り返しません。 - §8の場所確認後(
location_confirmed)→ step 11の保存/更新に関する乙式確認をスキップし、直接書き込みます。§8がスキップされた経路(引き継ぎ時にノードが指定済み、コールド引き継ぎで場所を再選択していない)→ step 11の乙式確認ゲートを維持します。
- 受け入れ(「テストポイント生成」または「テストケース生成」欄からで、セッションに五項目の草稿がすでにある場合):step 1–6をスキップし、step 7(製品の解決)/アーカイブゲートstep 11から続行します。最初から再分析してはなりません(表現の揺れによりreconcile/snapshot diffが損なわれます)。受け入れ(
受け入れ時の「step 1–6をスキップ」の範囲:引き継ぎを受け入れた後、最初の自動ルーティングでstep 7/step 11(保存)へ進む場合に限ります。step 6を禁止するものではありません。SQAが保存確認前に(草稿が未バインドの状態で)五項目/要約/疑問点の修正を求めた場合は、引き続き step 6(P2′) を実行し、
Re-run steps 3–5を行います。素材から再分析するのではありません(step 1の27行目、およびRules 920「最初から再分析してはならない」と照合してください)。
参考資料
スキルの参考資料(必読 — Read disciplineを参照)
references/workflow-step1-material.md— step 1の素材:ticket lookup、スクリーンショット、Product inforeferences/workflow-analysis.md— steps 2–5b:五項目、表示用要約、テスト漏れのセルフチェック、疑問点リスト、末尾の提示文、固定表現一覧references/workflow-revise.md— step 6:SQA修正ラウンド(analysisとrulesも合わせて読む必要があります)references/workflow-save.md— steps 7–8:製品の解決、既存のモジュールツリーの選択フローreferences/workflow-archive.md— steps 10–11、コマンドの結果、書き込み本文のルール、コールド引き継ぎ、P6 reconcilereferences/rules-global.md— 総則、レッドライン0、列挙の完全性、Failures、API scopeなど(全文889–924行)references/output-confirmation.md— 分析出力形式、アーカイブ確認文
リポジトリの参考資料
references/CAWPLAN_OPEN_API.md— §15 QA Insights APIs(フィールド/スキーマ参照のみ —cawplan qa-insightsCLI経由で呼び出し)。§2 Product APIs(Get Product Overview →cawplan products overview。保存時の製品解決)および§4 Ticket APIs(チケット素材用)。