15. 認証機能の実装

Guide読了目安 7分

ywc-auth-implement は、サインイン/サインアップ、OAuth、MFA、セッション管理、パスワードリセット、アカウント削除、同意フローなど、新しい認証機能をプロジェクトに追加したいとき、コードを書き始める前にポリシー判断を明示的に確定させたい場合に使います。ただし「認証に関わること全般」をカバーするわけではありません。

« 目次に戻る

15. 認証機能の実装

いつこの Skill を使うか

ywc-auth-implement は、サインイン/サインアップ、OAuth、MFA、セッション管理、パスワードリセット、アカウント削除、同意フローなど、新しい認証機能をプロジェクトに追加したいとき、コードを書き始める前にポリシー判断を明示的に確定させたい場合に使います。ただし「認証に関わること全般」をカバーするわけではありません。

  • 認証コードがすでに存在していて、それに対するセキュリティレビューをしたいだけなら ywc-security-audit を使ってください — この Skill は実装を駆動するものであり、事後レビューではありません。
  • 認証と無関係な一般的な機能計画には ywc-plan を使ってください — このポリシーインタビューは認証に特化しており、一般的な計画作業の代わりにはなりません。
  • 認証フロー以外の E2E テストを書くには 11. E2E テスト自動化戦略 を使ってください — この Skill が駆動するのは後述の認証フロー限定の E2E ゲートのみで、プロジェクト全体のテストスイートは対象外です。

フローの流れ

Step 1: Preflight gate

質問を始める前に、5 つの冪等なチェックを実行します:

  • 既存の feature/<auth-slug> ブランチがあれば再利用する(新規ブランチを切るのは long-lived ブランチから始める場合のみ)
  • .env.example には不足しているプレースホルダーだけを追加し、既存の値は上書き・露出させない
  • フレームワーク/データベースの根拠が不十分なら、先に ywc-tech-research へルーティングする
  • 既存の認証を検知した場合、new/extend/migrate のいずれかを選ぶまで NEEDS_CONTEXT として停止する
  • ToS/プライバシーポリシーのドラフトには、最初の行から「法的レビュー待ちのドラフト」というラベルを付ける

Step 2: 9 カテゴリのポリシーインタビュー

1 回の集中したラウンドで、以下を扱います:

  • サインイン方式と OAuth provider の準備状況
  • MFA の登録とリカバリー
  • セッションの保存/TTL/ローテーション/失効/デバイス管理
  • パスワードリセットとハッシュ化ライブラリの境界
  • プロフィール項目
  • アカウント削除と再認証
  • 簡易 RBAC(role・デフォルト・claims)
  • 同意のバージョニング/収集/撤回
  • 不正利用対策(レート制限・検証・リカバリー制御)

各回答は「承認」「明示的にリスクを認めた上で保留」「非該当」のいずれかとして記録されます。

Step 3: 動的なレコメンデーション

スタックの根拠と承認済みのポリシー回答から、実績のあるライブラリやマネージドサービスを推奨します — 固定の「サポート済みスタック」リストは使いません。根拠が薄い場合は ywc-tech-research によるリアルタイム調査にフォールバックします。

Step 4: 実装の dispatch

この Skill はオーケストレーションのみを行い、認証コード自体は書きません。Claude Code では、それぞれ ywc-tdd-ritual(RED → RED 確認 → GREEN → GREEN 確認 → REFACTOR → GREEN 確認)に従う 3 つの agent へ dispatch します:

  • ywc-backend-coder — 承認されたバックエンドポリシーを担当(パスワードハッシュ化・トークン署名・秘密情報の暗号化を自前実装しません)
  • ywc-frontend-coder — サインイン/サインアップフォーム・MFA 登録 UI・セッション対応ルーティングを担当
  • ywc-doc-writer — ToS/プライバシーポリシーのドラフトを担当

Codex では、同じ 3 つの役割を named agent への直接 dispatch ではなく、印字された skill-chain のルートを通じてカバーします — 正確な仕組みは下記「Claude Code と Codex の違い」を参照してください。

Step 5: セキュリティ・E2E・PR ゲート

dispatch された作業が反映されたら、その diff に対して ywc-security-audit を実行します:

監査結果次に起きること
Critical/High が 0 件承認済みのフロー(メール/パスワードを選んだ場合のみサインアップ/サインイン/リセット、有効な場合のみアカウント削除、設定した OAuth provider ごとに 1 フロー、承認されていれば MFA)だけを対象にした ywc-e2e-test-strategy によるポリシー条件付きの E2E に進む
Critical/High が 1 件でもあるDONE_WITH_CONCERNS を返し、是正されるまで E2E と PR 作成をスキップする

両方のゲートを通過して初めて、この Skill は ywc-create-pr を提案します — 自動実行はしません。

ywc-auth-implement

claude code
ywc-auth-implement

flag なしで実行します — インタビューとそれ以降のあらゆる判断は preflight gate からすべて対話的に進むため、事前に渡す「scope」や「flow」といった引数はありません。

Claude Code と Codex の違い

インタビュー内容、固定スタックを使わないレコメンデーションのルール、new/extend/migrate の hard stop、そしてセキュリティ/E2E ゲートは両方の tool で同一です。異なるのは dispatch の仕組みです。Claude Code は Task(subagent_type: ...) を使って ywc-backend-coderywc-frontend-coderywc-doc-writer へ直接 fan-out します。Codex は現在のセッション内でオーケストレーションを続け、代わりに(自動実行はせず)$ywc-plan → $ywc-spec-ready → $ywc-task-generator → $ywc-code-gen --tdd --review という skill-chain のルートを提示します — アプリケーション実装とそのセキュリティレビューは $ywc-code-gen が担います。ドキュメントのみの委譲であれば、Codex は named-agent の fan-out ではなく、1 つの境界が明確な general subagent を使います。


« 前: 14. クラウドインフラの管理 · 次: 16. Executor / Code-gen Prompt パターン →