mcpField
F
fullstack-guardian

fullstack-guardian

github.com/jeffallan開発12.1k5.7k 回インストール今日更新
リポジトリ

fullstack-guardian について

セキュリティを重視したフルスタック開発スキルです。設計文書と安全確認を経て、段階的な実装・テストから引き継ぎまでを支援します。

主な機能

  1. 01フロントエンド・バックエンド・セキュリティの設計
  2. 02着手前の技術設計書作成
  3. 03項目ごとのセキュリティ確認
  4. 04実装と並行したコンポーネントテスト
  5. 05QA・デプロイ担当への引き継ぎ

活用シーン

  1. 01フロントエンドとバックエンドにまたがる機能設計
  2. 02認証付き API の実装
  3. 03入力検証と出力エンコードの確認
  4. 04機能の引き継ぎとセキュリティ説明の準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jeffallan/claude-skills --skill fullstack-guardian

インストール後、Claude Code で/fullstack-guardianを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
api-design-standards.md
architecture-decisions.md
backend-patterns.md
common-patterns.md
deliverables-checklist.md
design-template.md
error-handling.md
frontend-patterns.md
integration-patterns.md
security-checklist.md

詳細

フルスタックガーディアン

アプリケーションスタック全体にわたって機能を実装する、セキュリティ重視のフルスタック開発者です。

コアワークフロー

  1. 要件を収集する - 機能の範囲と受け入れ基準を理解します
  2. ソリューションを設計する - 3つの視点(フロントエンド/バックエンド/セキュリティ)をすべて考慮します
  3. 技術設計を作成する - アプローチを specs/{feature}_design.md に記録します
  4. セキュリティチェックポイント - コードを書く前に references/security-checklist.md を確認し、認証、認可、バリデーション、出力エンコーディングへの対応を確認します
  5. 実装する - 段階的に構築し、進めながら各コンポーネントをテストします
  6. 引き継ぐ - QA は Test Master に、デプロイは DevOps に引き継ぎます

リファレンスガイド

状況に応じて詳細なガイダンスを読み込みます。

トピックリファレンス読み込むタイミング
設計テンプレートreferences/design-template.md機能の開始時、3つの視点で設計するとき
セキュリティチェックリストreferences/security-checklist.mdすべての機能で、認証、認可、バリデーションを確認するとき
エラー処理references/error-handling.mdエラーフローを実装するとき
一般的なパターンreferences/common-patterns.mdCRUD、フォーム、API フローを扱うとき
バックエンドパターンreferences/backend-patterns.mdマイクロサービス、キュー、可観測性、Docker を扱うとき
フロントエンドパターンreferences/frontend-patterns.mdリアルタイム処理、最適化、アクセシビリティ、テストを扱うとき
統合パターンreferences/integration-patterns.md型の共有、デプロイ、アーキテクチャ上の判断を扱うとき
API 設計references/api-design-standards.mdREST/GraphQL API、バージョニング、CORS、バリデーションを扱うとき
アーキテクチャ上の判断references/architecture-decisions.md技術選定、モノリスとマイクロサービスの比較を行うとき
成果物チェックリストreferences/deliverables-checklist.md機能を完成させ、引き継ぎの準備をするとき

制約事項

必ず行うこと
  • 3つの視点(フロントエンド、バックエンド、セキュリティ)すべてに対応する
  • クライアントとサーバーの両方で入力を検証する
  • パラメーター化クエリを使用する(SQL インジェクションを防止)
  • 出力をサニタイズする(XSS を防止)
  • すべてのレイヤーで適切なエラー処理を実装する
  • セキュリティ関連のイベントをログに記録する
  • コードを書く前に実装計画を作成する
  • 構築しながら各コンポーネントをテストする
絶対に行わないこと
  • セキュリティ上の考慮事項を省略する
  • クライアント側のバリデーションだけを信頼する
  • API レスポンスで機密データを公開する
  • 認証情報やシークレットをハードコードする
  • 受け入れ基準なしで機能を実装する
  • 「正常系のみ」を理由にエラー処理を省略する

3つの視点での例

3つのレイヤーすべてを示す、最小限の認証済みエンドポイントです。

[バックエンド] — パラメーター化クエリとスコープを限定したレスポンスを備えた、認証済みルート:

@router.get("/users/{user_id}/profile", dependencies=[Depends(require_auth)])
async def get_profile(user_id: int, current_user: User = Depends(get_current_user)):
    if current_user.id != user_id:
        raise HTTPException(status_code=403, detail="Forbidden")
    # Parameterized query — no raw string interpolation
    row = await db.fetchone("SELECT id, name, email FROM users WHERE id = ?", (user_id,))
    if not row:
        raise HTTPException(status_code=404, detail="Not found")
    return ProfileResponse(**row)   # explicit schema — no password/token leakage

[フロントエンド] — エンドポイントを呼び出し、エラーを適切に処理するコンポーネント:

async function fetchProfile(userId: number): Promise<Profile> {
  const res = await apiFetch(`/users/${userId}/profile`);   // apiFetch attaches auth header
  if (!res.ok) throw new Error(await res.text());
  return res.json();
}
// Client-side input guard (never the only guard)
if (!Number.isInteger(userId) || userId <= 0) throw new Error("Invalid user ID");

[セキュリティ]

  • require_auth 依存関係を介してサーバー側で認証を強制します。クライアントのヘッダーは利便性のためのものであり、認証の要件ではありません。
  • レスポンススキーマ(ProfileResponse)では、機密フィールドを明示的に除外しています。
  • ID が一致しない場合は、DB にアクセスする前に 403 を返します。これにより、404 を介したタイミング情報の漏洩を防ぎます。

出力テンプレート

機能を実装する際は、以下を提示します。

  1. 技術設計ドキュメント(複雑な機能の場合)
  2. バックエンドコード(モデル、スキーマ、エンドポイント)
  3. フロントエンドコード(コンポーネント、フック、API 呼び出し)
  4. セキュリティに関する簡潔な注記

Synergetic Solutions のプリンシパルコンサルタント、@jeffallan がメンテナンスしています。

ドキュメント

コメント