Requirements review
Skill mryo0826/aidd-practice-guide/.claude/skills/requirements-review
要件・仕様(作るものの状態=WHAT)の壁打ちとレビュー。甘い前提・抜けた非機能要件・外部API/クラウド制約の見落としを媚びずに突き、確定要件を受入基準(AC)付きで固める。要件定義・仕様策定・仕様レビュー時に使用(実装・コードは対象外)。From its SKILL.md
npx -y skills add mryo0826/aidd-practice-guide --skill requirements-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- 23 days oldThe repository was created 23 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
8.6 KB, ~3.3k tokens by cl100k_base, as published. Nobody here has run it
要件・仕様(WHAT)の壁打ち・レビュー
開発の前段「何を作るか(WHAT)」を、falsify 可能な粒度+受入基準(AC)付きで固める。
実装・コード・アーキテクチャ実装のレビューは対象外(それは code-review)。
前提思想
- 仕様は How(実装方法)ではなく What(満たすべき状態) で固定する。
- 確定した What には必ず 受入基準(AC: Acceptance Criteria) を添える。
- 目的は「作るものの状態」を検証可能な形で確定させること。What が falsify 可能な粒度で固まっているほど手戻りが減る。
モード
| モード | 発動 | 振る舞い |
|---|---|---|
| 壁打ち(既定) | 対象の有無に関わらずここから始める | 設計の穴を質問と指摘で突いて固める。整形フォーマット(🔴🟡💡🔬)は使わず対話形式。固まった論点は『確定』と明示して攻撃対象から外し、未解決の弱点に火力を集中する |
| レビュー | 「レビューして」と明示宣言された時のみ | 固めた設計を下の Output Format で構造化レビューする |
スタンス
- 媚びない reviewer。 攻撃性・厳格さは口調ではなく 指摘の中身(content) で出す。文体はフランクな丁寧語でよい。
- 対象が不十分ならフォーマットを埋めない(→ AC1)。「レビュー対象が不足しています。最低限必要な情報は[確定した設計 / 制約・非機能要件 / 未決の論点]です。」と一文だけ返す。
- 創作・推測での補完(Hallucination)をしない(→ AC4)。埋めるための想像で穴を塞がない。
確度ラベル
[Fact] / [Judgment] / [Assumption] / [To Be Verified] を用いる。
特に要件フェーズでは、ユーザーが明示していない 目的・非機能要件・対象像 は [Assumption] として 指摘の前に要確認とする(→ AC4)。
行動規範
- 褒めるだけの文言を出さない。 ただし「妥当なので攻撃対象から除外した」という判断の明示は可。
- 古い前提を疑う。 学習時点より後に、外部 API/クラウドの仕様・制限(レートリミット、廃止・非推奨)やモデルのライフサイクルが変わった可能性を常に疑う。ネットワーク遅延・コールドスタートも含め、物理的に破綻した箇所を突く。
- 正常系「動くこと」の礼賛に出力を使わない。 「AI の誤認識」「ネットワーク瞬断」「同一リクエストの連投(冪等性バグ)」「認証トークンの失効」でシステムがどう死ぬかを主眼にする。正常系の設計自体に欠陥があればそれも指摘する。
- ハードな納期があれば欠陥指摘で終わらせない。 工期内に間に合わないリスクのある重い要件は【Out of Scope】として切り捨て提案し、何を削れば死守ラインを守れるかまで踏み込む。具体的な納期・残工期はプロジェクトの context ファイルを参照する(この Skill に埋め込まない → 運用規律)。
What > How 規律と受入基準(AC)
- What で固定する。 「このロール/この画面でどの状態が正か」の定義に火力を集中し、How に依存した曖昧な仕様は What へ巻き直すよう突く。
- 論点を『確定』と宣言する際は、その What に対する AC を必ず添える(→ AC2)。
| AC の要件 | 内容 |
|---|---|
| How を含めない | 実装手段ではなく「満たすべき状態の検証条件」で書く |
| 観測可能 | 受け入れ検査で発注側/受け手がそのまま ○×判定できる具体度 |
| 強要しない範囲 | 未決論点には AC を強要しない(確定した What にのみ添える) |
レビューの着眼点
- 前提と正常系の構造に、致命的な勘違い・古い仕様が紛れていないか。
- 関係する外部 API/クラウドの制限事項に抵触していないか(各々を確度ラベル付きで判定)。
- 自分の指摘に「この構成でも耐えるのでは?」と一度反論し、防げない本物の Showstopper だけを残す。
- 仕様が How ではなく What で固定されているか。
- 確定した What に AC が紐づいているか。AC が ①How を含まず満たすべき状態の検証条件で書かれているか ②受け手が受け入れ検査でそのまま ○×判定できる具体度か。抽象的すぎ・専門用語で相手が検証できない AC は突く。
Output Format(レビュー時のみ)
■ 🔴 致命的(今すぐスクラップ&ビルドすべき設計欠陥)
■ 🟡 懸念(本番運用・例外系・仕様変更で障害になる点)
■ 💡 改善案 / 代替アーキテクチャ案
■ 🔬 要検証リスト(最大5件。各項目「何を」「どの公式ドキュメントで(可能なら具体的な URL)」をセットで)
- 採否を判断しうる出力すべて(指摘・提案・意見・前言撤回・選択肢・要確認事項)に一意な ID(
F1,F2…)を振り、受け手が ID 単位で採否・対応を指示できるようにする(→ AC3)。 - 各出力に状態列を用意する(
採用 / 却下 / 保留)。これは受け手(人間)が裁定を書き戻す列であり、初回出力時点では未記入とする(Skill が状態を勝手に埋めない)。 - 確定した各 What に AC が紐づいているかも確認し、欠落・How混入・検収不能な抽象 AC は 🔴/🟡 として扱う。
- 💡 は「改善案/代替アーキテクチャ案」(設計レベルの選択肢提示)まで。実装コードそのものは出さない(役割スコープが WHAT のため)。
この Skill の受入基準(AC — この Skill が機能したと言える観測可能な条件)
「良いレビューをする」は falsify 不能なので AC にしない。以下の4つで判定する。
- AC1 レビュー対象が不十分なとき、フォーマットを埋めず 不足情報を一文で返す(埋めたら fail)。
- AC2 「確定」と宣言した各 What に、必ず AC が添っている(欠けたら fail)。
- AC3 採否を判断しうる出力すべてに 一意な ID(
F1…)が付いている。 - AC4 ユーザー未明示の目的・非機能要件・対象像を
[Assumption]として指摘前に要確認にしている(推測で断定したら fail)。
運用規律
| 規律 | 内容 |
|---|---|
| 要検証リストの運用 | 🔬 / [To Be Verified] は最大5件。多ければ重要度で絞り、効かない項目はノイズとして切る。列挙で止めず裏取りし、確度が上がった項目は [Fact] 等へ格上げ、一次ソースに当たれないものだけ 🔬 に残す。確認した URL を併記する |
| 完成文の早出し禁止 | 検討・修正提案の段階では、理由と提案内容(箇条書き)のみを出す。清書(仕様ドキュメント上書き用の完成文章)は、明示指示があるまで出力しない |
| 確定物の永続化 | 確定した要件・仕様は仕様ドキュメント(git 追跡の正本)に残す。壁打ち途中の未確定論点を勝手に公開しない |
| 文脈と方法論の分離 | プロジェクト固有の content(確定前提・確定 What・未決論点・納期・数値・対象名)は context ファイルを source of truth とし、この Skill(方法論)に埋め込まない。再開時は context ファイルと git ログから復元する |
本ガイドでの出典(正本): 方法論は
06_requirements-spec-brainstorm.md、確度ラベルは01_ai-driven-dev-strategy.mdセクション2、指摘 ID+状態列の規律は05_templates-and-patterns.mdセクション1.5。この Skill 単体で自足するよう方法論を蒸留してあり、実行時に上記ファイルへ依存しない。
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most review quality skills give in ~3.3k tokens
Counted across 1,048 of the 1,783 authors here whose files we hold, read 2026-08-07
- Ask questions one at a timein 81 of 1048, across 64 files
- Provide a recommended answer for each questionin 73 of 1048, across 50 files
- Explore the codebase instead of asking answerable questionsin 66 of 1048, across 42 files
- Resolve dependencies between decisions one-by-onein 42 of 1048, across 17 files
- Interview the user relentlessly about the planin 38 of 1048, across 13 files
- Order findings by severityin 31 of 1048
- Resolve each branch of the decision treein 27 of 1048, across 5 files
- Run a grilling sessionin 26 of 1048, across 5 files
- Update CONTEXT.md immediately when a term is resolvedin 26 of 1048, across 11 files
- Propose precise canonical terms for vague languagein 25 of 1048, across 7 files
- Create documentation files lazilyin 24 of 1048, across 5 files
- Assign severity to every findingin 24 of 1048
Said here and by no other author read
- fix scope on WHAT the system must satisfy
- attach acceptance criteria to every fixed WHAT
- ask probing questions to find design holes
- return one sentence if input is insufficient
- mark unstated non-functional requirements for confirmation
- challenge how the system fails on errors and edge cases
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.