Assesment
npx -y skills add HikaruEgashira/agent-skills --skill assesmentAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 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.
What its author says it does
Copied from the file, not written here
設計・計画段階で自律的にリスクアセスメントを行うメタスキルです。 行動する前に自問自答し、浅い解決策を避け、根本的な問題を特定します。 Trigger: 設計, 計画, 実装前, アーキテクチャ決定, リスク, 懸念
SKILL.md
7.4 KB, as published. Nobody here has run it
目的
実装や行動に移る前に、自分自身に問いを投げかけ、深い思考を行う。
自問自答フレームワーク
1. 前提の検証
<example> <input> ユーザー: VPC Endpointを追加して </input> <thinking> - 本当にVPC Endpointは必要か? - Public Subnetで済む可能性は? - コスト対効果は見合うか? </thinking> <output> VPC Endpointを追加する前に確認させてください。 現在の構成ではPublic ALBでも要件を満たせる可能性があります。 セキュリティ要件とコストのトレードオフを考慮すると、どちらが適切でしょうか? </output> </example>2. なぜなぜ分析
<example> <input> 状況: undefinedエラーが発生している </input> <thinking> 問題: undefinedエラー ↓ なぜ? 値が設定されていない ↓ なぜ? 初期化処理が不完全 ↓ なぜ? 非同期処理の完了を待っていない ↓ 根本原因 async/awaitの設計不備 </thinking> <output> 表面的なnullチェックではなく、非同期処理のフロー自体を見直す必要があります。 根本原因は初期化の設計にあります。 </output> </example>3. 深さの検証
<example> <input> 提案: 「GitHub Actions連携機能を追加」 </input> <thinking> - 「連携」という表現は手段であり目的ではない - ユーザーが本当に得たい価値は何か? - もっと本質的なアプローチは? </thinking> <output> 「連携機能」ではなく、ユーザーが達成したいゴールから逆算しましょう。 - CIでの自動実行 → ワークフロー定義のテンプレート提供 - 結果の可視化 → PR Commentへの自動投稿 具体的な価値を軸に設計を進めます。 </output> </example>4. リスクの洗い出し
<example> <input> 状況: インフラをTerraformで構築完了 </input> <thinking> 潜在リスクを体系的に洗い出す: - 再現性: 手動操作が混在していないか - 状態管理: tfstateの保護は十分か - 権限: 最小権限原則を満たしているか - コスト: 想定外のリソース増加リスク </thinking> <output> 構築完了後のリスク評価: 1. tfstateがローカル管理 → S3 + DynamoDBに移行推奨 2. IAMロールが広すぎる → 最小権限に絞り込み必要 3. タグ付けが不完全 → コスト追跡が困難になる可能性 </output> </example>5. 設計判断の評価
<example> <input> 状況: debug, debugFlag, isDebugの3つが混在 </input> <thinking> - 一貫性がない設計は認知負荷を増やす - どれか1つに統一すべき - 既存のコードベースの慣習は? </thinking> <output> フラグの命名が統一されていません。 既存コードでは`isXxx`パターンが主流のため、`isDebug`に統一することを推奨します。 </output> </example>リスク対応戦略
リスクを特定したら、以下の4戦略から選択する:
| 戦略 | 意味 | 適用場面 |
|---|---|---|
| 回避 | リスクを発生させる活動をやめる | 影響が致命的で代替手段がある |
| 軽減 | 発生確率や影響度を下げる | コストと効果のバランスが取れる |
| 転嫁 | 第三者に移転する | 専門性が必要、保険で対応可能 |
| 受容 | 認識した上で受け入れる | 影響が軽微、対策コストが見合わない |
ADRへの記録
プロジェクト固有の重要な意思決定は ./docs/adr にADRとして記録する。
記録すべき意思決定
- 技術選定(フレームワーク、ライブラリ、インフラ)
- アーキテクチャ変更
- リスク対応で「回避」「転嫁」を選択した場合
- トレードオフを伴う設計判断
記録しないもの
- 一時的な対応、ワークアラウンド
- 自明な選択
- 実装詳細(設計書ではない)
文体ルール
ADRは時間経過で陳腐化しないストック情報とする。現在形で記述する。
| NG | OK |
|---|---|
| 〜した(過去形) | 〜する(現在形) |
| 現在〜している | 〜である |
| 今後〜する予定 | 〜する方針である |
| 最近〜が発生した | 〜という問題がある |
ステータス
採用
コンテキスト
VPC Endpoint + NLB構成はTeam Planでのみ利用可能である。
決定
Public ALBを採用する。
理由
- コスト: VPC Endpoint不要により月額コストを削減できる
- 複雑性: VPC設定が不要となる
- 要件: 内部通信の秘匿性は必須要件ではない
リスクと対応
- リスク: エンドポイントが公開される
- 対応(軽減): WAF + IP制限を適用する </output>
適用タイミング
| タイミング | 適用する問い |
|---|---|
| Plan Mode突入時 | 前提の検証、代替案の検討 |
| 実装開始前 | 深さの検証、設計判断 |
| PR作成前 | リスクの洗い出し → 対応戦略の選択 |
| エラー発生時 | なぜなぜ分析 |
| 重要な意思決定時 | ADRとして ./docs/adr に記録 |
アンチパターン
| 振る舞い | 問題 | 代わりに |
|---|---|---|
| 言われたことをそのまま実行 | 前提が間違っている可能性 | 「本当に必要か」を問う |
| 症状だけ治す | 再発する | 根本原因まで掘り下げる |
| 一つの方法だけ提案 | 最適解でない可能性 | 代替案を検討する |
| 「連携」「統合」で終わる | 手段が目的化 | 具体的な価値を明示 |