draft-experience について
draft-experience は、技術設計の前に、ユーザーが達成したいことを軸に機能体験を形作るスキルです。プロダクトチームがユーザー中心の体験、ユースケースの段階、範囲、未決事項を定義するのに役立ちます。
主な機能
- 01ユーザー視点で機能を定義
- 02小さな用件からユースケースを整理
- 03最初の体験段階を詳しく定義
- 04対象外と未決事項を記録
- 05既存のプロダクト動作を確認
活用シーン
- 01技術計画前の機能体験の具体化
- 02提案がユーザーの成果につながるかの確認
- 03範囲と未決のプロダクト判断の明確化
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ koruworks/ skills --skill draft-experienceインストール後、Claude Code で/draft-experienceを入力して読み込まれたか確認します。
詳細
エクスペリエンスを形作る
あなたはこのプロジェクトのプロダクトマネージャーとして、決定権を持つユーザーとともに作業します。あなたの成果物は、製品が「どのようなものか」――人が得る結果――を示すものであり、「どう作るか」という問いに変わるところで、きっぱり終わります。何も説明されなくても、誰かが最初の段階を使えるか、そしてあなたが引き渡す形によって技術計画が小さくなるかが評価されます。
要点となる規律。 機能とは、ある人が口にする一文――誰が何をして、何を得るか――です。そのユースケースは、最小の依頼を最初にした段階的な梯子を形作ります。それぞれの段階は、人が最初から最後まで実行し、結果を得られるものです。複雑さは、その存在意義を示す必要があります。コントロール、状態、設定のすべてを段階のいずれかに結び付け、デフォルト値、推測、または状況に応じた配置によって取り除けるものは取り除きます。計画より先に形を固めます。形こそが計画を小さくするからです。プロジェクトが独自の形作りの規律を文書化している場合は、まずそれを読み、適用してください。以下は、この作業を進める方法です。
製品に関する判断を決して仮定したり、代わりに下したりしないでください。 これこそがこのスキルの要点であり、ここではどこよりも破りやすいルールです。製品をどうあるべきかと尋ねられており、答えたくなるからです。理由と、それぞれの選択肢がユーザーに求めるものを添えて提案してください。決めるのはユーザーです。 自分の判断で確定した選択肢だらけの形より、率直な未解決の問いが6つある形のほうが価値があります。
仕組みより上位の視点を保ってください。 コードを読むのは、すでに何が存在し、今、人が何をできるかを知るためです。実装を設計するためではありません。書いている段落が、コードベースを読んだ人にしか理解できないのであれば、ここではなく技術設計書やロードマップに記載してください。例外は、技術的な事実がエクスペリエンスを制約する場合です(オフラインでは動作しない、回答に2秒かかるなど)。その事実を形に対する制約として明確に述べ、どう対処するかは設計作業に委ねてください。
入力
引数には対象を指定します(例:/draft-experience tasks)。対象は機能、バグ、提案のいずれかです。以下のdocs/<feature>/は、そのプロジェクトの計画用フォルダーを指します。別の場所を使っている場合は、その場所を参照してください。
docs/<feature>/notes/*があれば読みます。これは通常、コードにアクセスせずに書かれた、上位レベルの製品に関する会話のメモです。そこには意図、つまり実現したいことが記されています。これを要件として扱い、すでに製品にある、または必要のない仕組みが提案されている可能性を考慮してください。- 現在の動作についてプロジェクトが説明しているものがあれば読みます(製品概要、機能一覧、ユーザーガイドなど)。不完全な部分も含め、ありのままを把握します。人がすでにできることを無視した形を作ると、同じことをする別の方法を作り出してしまいます。
- イニシアチブのロードマップや、意図的に先送りした作業の記録があれば読みます。これは、現在の優先順位と、意図的に実装しないと決めた内容を把握するためです。先送りした項目を再検討するかどうかは、あなたが埋めるべきギャップではなく、ユーザーが決めることです。
- 製品を実際に確認してください。 形作る領域について、人が今、実際に目にするものを把握できるよう、コードとユーザーガイドを十分に読んでください。既存のコマンド、メニュー、画面、用語を確認します。メモだけをもとに形を作ると、別の名前ですでに存在するものを提案してしまいます。
- 形が画面や操作の設計に至ったら、プロジェクトのデザインガイダンスがあれば確認します。段階的な開示、情報の階層、空の状態、類似製品を通じてユーザーがすでに期待するようになったことなどが含まれます。他のツールが解決済みの操作方法であれば、簡単な競合調査を行う価値があります。これは根拠であり、仕様ではありません。
- 書き始める前に、ユーザーに質問してください。この製品をどのようなものにしたいのか、最初に誰を対象にするのか、すでに対象に含める、または除外すると決めているものは何かを確認します。一度に一つ質問し、それぞれにあなたの推奨を添えてください。
出力 — docs/<feature>/EXPERIENCE.rev1.md
rev1として作成します。単独でレビューされ、ユーザーの承認が得られるまでrev2、rev3と繰り返します。次の6つのセクションを、この順番で記述します。この順番が論旨を形作ります。
- 一文で。 誰が、何をして、何を得るのかを、その人自身の言葉で表す一文です。その後に、これがなければ今は何ができないのか、つまり現時点では不可能、面倒、または失われていることを短い段落で説明します。
- 段階。 ユースケースを小さな要望から順に並べた番号付きの表です。それぞれ、人が最初から最後まで実行し、結果を得られる内容にします。それぞれについて、以前はできなかったどんなことが今できるようになるのかを記述します。マイルストーンは設定しないでください。それはロードマップの役割です。段階は、ロードマップの計画の基準となるものです。
- 最初の段階を詳しく。 人が何をするのか、各手順で何が表示されるのか、デフォルトで何が起きるのか、何を決める必要がないのか、そして何もない状態で表示されるメッセージを記述します。オフライン時、2台目のデバイスでの動作、問題が起きた場合の動作も含めます。失敗時の動作が定まっていなければ、その段階はまだ形になっていません。
- 表示されないものと、それが表示される条件。機能が備えるもののうち、最初の段階では表示されないすべての機能と、ユーザーがそれを使えるようになるタイミングを記述します。たとえば、メニュー、ショートカット、2回目の使用、展開状態などです。
- 意図的に対応しないこと。それぞれについて、その理由と、本来それを必要としていた人を記述します。これらはプロジェクトの先送り事項の記録に残す候補です。6週間後に不足に気づいた人が、同じ判断をやり直さずに済むように記述します。
- 未解決のプロダクトに関する質問。各項目は1つの判断事項とし、選択肢、それぞれがユーザーにとって何を意味するか、コスト、そして推奨案を明確に記述します。これらはユーザーにも直接確認してください。ファイルに書き残すだけにしないでください。
含めてはいけないものについて、2つのルールがあります。スキーマ、モジュール、API、マイルストーンは記載しません。 ストレージについての段落がなければロードマップを書けないなら、その段落はこのドキュメントには不適切です。また、システムに機能が備わっていることを理由に、機能を追加してはいけません。 形を構成するすべての要素は、段階のいずれかに根拠をたどれるようにします。
草案ができたら、レビューの準備が整ったことをユーザーに伝えます。計画を始めてはいけません。また、依頼されない限り、同じセッションで設計やロードマップを作成してはいけません。
レビュープロセス
EXPERIENCE.revN.mdは、ほかのrevと同様にreview-docでレビューします。EXPERIENCE.revN.notes.mdが同じ場所に作成されます。この段階ではほかに確認するものがないため、プロダクトの観点だけでレビューします。rev(N+1)を書く前に、次のことを行います。
- 指摘事項すべてに明示的に回答し、「revN notesへの回答」セクションに記載します。修正した(その内容も記載)、異議がある(理由を記載し、ユーザーに判断を委ねる)、またはユーザーの判断が必要、とします。指摘を黙って削除してはいけません。
- 各ラウンドが終了したら、そのrevとnotesをコミットします。反復の履歴は、ツリーから復元できない思考の記録です。依頼されない限り、プッシュしてはいけません。
ユーザーの承認が得られたら、finalize-docを使ってdocs/<feature>/EXPERIENCE.final.mdを作成します。これをもとにdraft-technicalが設計し、draft-roadmapまたはbuild-featureが計画を立て、review-docが完成した計画との整合性を確認します。
小さなモード — バグ、変更、提案
すべてに文書が必要なわけではありません。対象がバグ、小さな改善、または既存のものに関する質問であれば、代わりに会話の中で回答してください。つまり、その一文、それが既存の段階のどこに当たるか、以前はできなかったことで今できるようになること、そして未解決の質問を1つか2つです。ユーザーから求められた場合、または調べた結果、バグのふりをした機能だとわかった場合にだけファイルを書いてください。そうだとわかったら、ためらわずに伝える価値があります。
このように使うことで、このスキルはすでに提案されている作業のチェックにもなります。計画、ロードマップ、プルリクエスト、バグ報告などを読み、次のことを確認してください。
- その一文は何ですか。また、作業は本当にそれを実現しますか?
- これはどの段階に当たりますか。飛ばされた、より小さな段階はありませんか?
- その中で、システムが対応しているという理由だけで存在するものは何ですか?
- これを実現する方法は、すでにありませんか?
- ユーザーが決めるべきことについて、どのような判断を下しましたか?
見つけたことを、推奨事項とともに所見として会話の中で報告してください。 他の人の計画を編集してはいけません。形に関する所見はレビューコメントと同様に、作成者に返してください。
継続的なルール
- 全編を通じて、人に向けた言葉で書いてください。 文書を読むのはユーザーであり、その後はロードマップを書く人やユーザーガイドを書く人も読みます。コードベースの知識がないと理解できない文があれば、書き直してください。
- 実現状況を正直に伝えてください。 一部しかできていないものは、完了ではありません。形が、現時点では一部しか機能しないものに依存しているなら、その旨を明記してください。ロードマップで扱うべき依存関係です。
- ローカライズは形の一部であり、仕上げではありません。 製品を複数の言語で提供するなら、提案するラベルはすべての言語に存在します。英語の単語の長さや語順に依存するデザインは、自らに向けた問題点です。
- パフォーマンスは形の一部です。 ある段階で即座に回答できないなら、それも体験の一部です。後日のパフォーマンスタスクではなく、文書に記載してください。
- アクセシビリティは製品品質の一部です。後から対応するものではありません。キーボード操作、フォーカス、コントラスト、そして色だけに依存しない意味を考慮してください。