Back to skills
SKILL.md
Feasibility Check
ASecurity技術的な実現可能性を検証し、PoCの計画を立てる。ユースケース記述後、DDDモデリングや本格実装の前に技術リスクを洗い出す場合に使用。「技術的に実現できるか確認したい」「PoCを計画したい」「技術リスクを洗い出したい」「不確実性を検証したい」などのリクエストで起動。
- 666 stars
- 0 votes
- 0 copies
- 1 view
- Added September 2, 2026
Works with
Security analysis
100/100npx -y skills add majiayu000/claude-skill-registry --skill feasibility-check --agent claude-codeAre you the author of Feasibility Check?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-feasibility-check)---
name: feasibility-check
description: 技術的な実現可能性を検証し、PoCの計画を立てる。ユースケース記述後、DDDモデリングや本格実装の前に技術リスクを洗い出す場合に使用。「技術的に実現できるか確認したい」「PoCを計画したい」「技術リスクを洗い出したい」「不確実性を検証したい」などのリクエストで起動。
---
# 技術検証(Feasibility Check)
## 概要
技術的な実現可能性を評価し、以下を生成する:
1. 技術リスク一覧
2. 検証項目と成功基準
3. PoC計画
## ワークフロー
### フェーズ1: コンテキストの確認
対象機能と既存ドキュメントを確認する。
#### 1.1 前提ドキュメントの読み込み
```javascript
Read({ file_path: "docs/USECASES.md" })
Read({ file_path: "docs/PRODUCT_SPEC.md" })
```
#### 1.2 コンテキストの活用
**ファイルが存在する場合**:
- USECASES.md: 検証が必要な機能のフローを把握
- PRODUCT_SPEC.md: プロダクトの技術的制約を把握
これらの情報を元に、技術リスクを効率的に洗い出す。
```javascript
AskUserQuestion({
questions: [
{
question: "どの機能/ユースケースの技術検証を行いますか?",
header: "対象機能",
options: [
{ label: "機能を選択", description: "読み込んだユースケースから選択" }
],
multiSelect: true
}
]
})
```
**遷移条件**: フェーズ2へ
**ファイルが存在しない場合**:
AskUserQuestionで対象機能を確認。
```javascript
AskUserQuestion({
questions: [
{
question: "どの機能の技術検証を行いますか?",
header: "対象機能",
options: [
{ label: "機能を入力", description: "技術検証が必要な機能や領域" }
],
multiSelect: false
}
]
})
```
**遷移条件**: 対象機能が明確になったらフェーズ2へ
### フェーズ2: 技術的不確実性の洗い出し
実現可能かどうか分からない技術要素を特定する。
**質問パターン**:
- 「この機能で技術的に不安な部分は?」
- 「やったことがない技術はありますか?」
- 「パフォーマンス的に問題になりそうな箇所は?」
- 「外部サービスとの連携で不明点は?」
```javascript
AskUserQuestion({
questions: [
{
question: "この機能を実現する上で、技術的に不確実な点、不安な点は何ですか?",
header: "不確実性",
options: [
{ label: "不確実な点を入力", description: "例: 大量データの処理性能、API連携の可否" }
],
multiSelect: false
}
]
})
```
#### 不確実性の分類
| 種類 | 説明 | 例 |
|------|------|-----|
| **技術的実現性** | そもそもできるか | LLMでSQL改善が可能か |
| **パフォーマンス** | 速度・スケール | 1秒以内に応答できるか |
| **統合** | 外部サービス連携 | DBへの接続方法 |
| **セキュリティ** | 安全性の確保 | 認証情報の扱い |
| **コスト** | 費用対効果 | API利用料金 |
**遷移条件**: 不確実な点が3-5個特定できたらフェーズ3へ
### フェーズ3: リスク評価
各不確実性のリスクレベルを評価する。
```javascript
AskUserQuestion({
questions: [
{
question: "[不確実性]について、実現できなかった場合の影響度は?",
header: "影響度",
options: [
{ label: "致命的", description: "プロダクトが成り立たない" },
{ label: "重大", description: "主要機能が使えない" },
{ label: "中程度", description: "代替手段がある" },
{ label: "軽微", description: "なくても問題ない" }
],
multiSelect: false
}
]
})
```
#### リスクマトリクス
| 影響度\発生確率 | 高 | 中 | 低 |
|-----------------|-----|-----|-----|
| **致命的** | 🔴 最優先 | 🔴 最優先 | 🟡 優先 |
| **重大** | 🔴 最優先 | 🟡 優先 | 🟢 通常 |
| **中程度** | 🟡 優先 | 🟢 通常 | 🟢 通常 |
| **軽微** | 🟢 通常 | ⚪ 低 | ⚪ 低 |
**遷移条件**: リスク評価が完了したらフェーズ4へ
### フェーズ4: 検証項目の定義
各リスクに対する検証項目を定義する。
```javascript
AskUserQuestion({
questions: [
{
question: "[リスク]を検証するために、何を確認すればよいですか?",
header: "検証項目",
options: [
{ label: "検証項目を入力", description: "例: レスポンス時間を計測する" }
],
multiSelect: false
},
{
question: "成功と判断する基準は何ですか?",
header: "成功基準",
options: [
{ label: "基準を入力", description: "例: 95%タイルで1秒以内" }
],
multiSelect: false
}
]
})
```
#### 検証項目テンプレート
```
## 検証項目: [項目名]
**対象リスク**: [リスクの説明]
**検証内容**:
- 何を検証するか
- どのように検証するか
**成功基準**:
- 定量的な基準(数値)
- 定性的な基準(状態)
**失敗した場合の代替案**:
- プランB
- スコープ縮小案
```
**遷移条件**: 主要リスクの検証項目が定義できたらフェーズ5へ
### フェーズ5: PoC計画
検証のための実装計画を立てる。
```javascript
AskUserQuestion({
questions: [
{
question: "PoCの優先順位をつけてください。最もリスクが高いものから検証すべきです。",
header: "優先順位",
options: [
{ label: "優先順位を入力", description: "1. xxx 2. xxx" }
],
multiSelect: false
}
]
})
```
#### PoC計画テンプレート
```
## PoC: [名前]
**目的**: 何を検証するか
**スコープ**:
- 含むもの
- 含まないもの
**実装内容**:
1. ステップ1
2. ステップ2
3. ステップ3
**必要なリソース**:
- 技術: xxx
- 環境: xxx
- データ: xxx
**成功基準**:
- 基準1
- 基準2
**判断**:
- 成功 → 本実装へ
- 失敗 → 代替案を検討
```
**遷移条件**: PoC計画が完成したらフェーズ6へ
### フェーズ6: 技術選定の整理(オプション)
採用する技術スタックを整理する。
```javascript
AskUserQuestion({
questions: [
{
question: "この機能の実装に使用する技術(言語、フレームワーク、サービス)は決まっていますか?",
header: "技術スタック",
options: [
{ label: "決まっている", description: "技術スタックを入力" },
{ label: "検討中", description: "候補を入力" },
{ label: "未定", description: "PoCで決める" }
],
multiSelect: false
}
]
})
```
#### 技術選定の観点
| 観点 | 質問 |
|------|------|
| **実績** | チームに経験はあるか |
| **成熟度** | 安定しているか |
| **コミュニティ** | サポートは得られるか |
| **コスト** | ライセンス、運用コストは |
| **将来性** | 長期的にメンテできるか |
**遷移条件**: 技術選定が整理できたらフェーズ7へ
### フェーズ7: ドキュメント生成
テンプレートは [references/feasibility-template.md](references/feasibility-template.md) を参照。
### 出力ファイル
```javascript
Write({
file_path: "docs/FEASIBILITY.md",
content: feasibilityContent
})
```
### フェーズ8: セルフレビュー(サブエージェント)
生成したドキュメントのレビューをサブエージェントに委譲する。
```javascript
Task({
description: "技術検証レビュー",
subagent_type: "general-purpose",
prompt: `
以下の技術検証ドキュメントをレビューし、問題があれば修正してください。
## レビュー対象ファイル
- docs/FEASIBILITY.md
## レビュー観点
1. **不確実性の網羅性**: 技術的な不確実性が十分に洗い出されているか
2. **リスク評価の妥当性**: 影響度と発生確率の評価が適切か
3. **検証項目の具体性**: 何をどう検証するかが明確か
4. **成功基準の測定可能性**: 定量的で測定可能な基準か
5. **代替案の実現可能性**: 失敗時の代替案が現実的か
6. **PoC計画の実行可能性**: 必要なリソースと手順が明確か
## 出力形式
1. 発見した問題のリスト(問題がない場合は「問題なし」)
2. 各問題の修正内容
3. 修正後のファイル更新(Editツールで修正)
問題がなくなるまでレビューと修正を繰り返すこと。
`
})
```
## 完了条件
- [ ] 技術的不確実性が洗い出されている
- [ ] リスク評価が完了している
- [ ] 検証項目と成功基準が定義されている
- [ ] PoC計画が作成されている
- [ ] FEASIBILITY.mdが生成されている
- [ ] セルフレビューが完了し、問題が解消されている
## 関連スキル
- **usecase-description**: 技術検証の前にユースケースを整理する場合
- **ddd-modeling**: 技術検証後、ドメインモデリングに進む場合
- **analyzing-requirements**: 技術設計に進む場合
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.