Skip to content
cccskills
FreePublished on GitHub

server-only-secrets

Use this skill when handling secrets, API keys, environment variables, or ensuring server-only code never reaches the client bundle. Trigger words: シークレット, 秘密鍵, API キー, 環境変数, env, server-only, クライアント漏洩, NEXT_PUBLIC, バンドル.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md2.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Server-only Secrets

いつ使うか

  • API キー・接続文字列・署名鍵など秘密情報を扱うとき。
  • 「このモジュールは絶対クライアントに送りたくない」とき。
  • env をクライアント/サーバーで切り分けるとき。

やること

  • 秘密を含むモジュール先頭に import 'server-only' を置く(誤って client に import されたらビルド失敗)。
  • 公開してよい値だけ NEXT_PUBLIC_ 接頭辞にする。それ以外は接頭辞を付けない。
  • env は Zod で検証(zod-validation 参照)し、server 設定オブジェクトとして集約。
  • 秘密は .env.local(git 管理外)。.env.example にはプレースホルダのみ。

守るルール

  • ✅ 秘密を扱うファイルに import 'server-only'。
  • ✅ クライアントに出してよい値だけ NEXT_PUBLIC_。
  • ✅ env は起動時に検証して型付きで公開。
  • ❌ 秘密を .env.example 以外に書かない/コミットしない。
  • ❌ 秘密を console.log やレスポンスに含めない。

典型例(コード片)

// lib/server/payments.ts
import 'server-only'; // client から import されたらビルドで弾く
import { env } from '@/lib/env';

export function chargeClient() {
  return new PaymentClient(env.PAYMENT_SECRET_KEY); // server 限定
}
# .env.example(プレースホルダのみ。実値は .env.local へ)
MONGODB_URI="mongodb+srv://USER:PASSWORD@CLUSTER/DB"
AUTH_SECRET="replace-with-32+chars-random"

アンチパターン

  • 秘密キーを NEXT_PUBLIC_ にして全クライアントへ配布する。
  • server-only を付けず、共有ユーティリティ経由で client バンドルに混入。
  • .env.local を誤ってコミット(.gitignore を確認)。

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use this skill when creating or reviewing Next.js Route Handlers (app/api), adding rate limiting, input validation, or auth to API endpoints. Trigger words: API ルート, Route Handler, app/api, エンドポイント, レート制限, 入力検証, CORS, ヘッダー, 認証付き API, hardening.

The English summary is being prepared. Showing the original description.

Akira-Papa/claude-code-nextjs-mongo-template-16Updated May 24, 2026

Use this skill when implementing full-text search, autocomplete, or vector/semantic search and RAG with MongoDB Atlas. Trigger words: 全文検索, あいまい検索, オートコンプリート, ベクトル検索, セマンティック検索, 類似検索, Atlas Search, $search, $vectorSearch, RAG, embedding.

The English summary is being prepared. Showing the original description.

Akira-Papa/claude-code-nextjs-mongo-template-16Updated May 24, 2026

Use this skill when implementing sign-in, sessions, authorization checks, or protecting routes and Server Actions. Trigger words: 認証, ログイン, サインイン, セッション, 認可, 権限チェック, Better Auth, Auth.js, 保護, ミドルウェア, getSession.

The English summary is being prepared. Showing the original description.

Akira-Papa/claude-code-nextjs-mongo-template-16Updated May 24, 2026

Use this skill when starting a new session, opening this project for the first time, or when you need to recall the project's tech stack, hard rules, and which other skills exist. Trigger words: セッション開始, このプロジェクト, 全体像, どのスキル, 何から, getting started, overview.

The English summary is being prepared. Showing the original description.

Akira-Papa/claude-code-nextjs-mongo-template-16Updated May 24, 2026

Use this skill when setting up or modifying CI pipelines, GitHub Actions workflows, or automated checks (lint, typecheck, test, build) for this project. Trigger words: CI, GitHub Actions, ワークフロー, パイプライン, 自動テスト, lint チェック, typecheck, ビルド検証, .github/workflows.

The English summary is being prepared. Showing the original description.

Akira-Papa/claude-code-nextjs-mongo-template-16Updated May 24, 2026

Use this skill when writing end-to-end tests, browser automation, or verifying user flows in a real browser. Trigger words: E2E, Playwright, ブラウザテスト, ユーザーフロー, 結合テスト, シナリオテスト, ログインテスト, getByRole, expect.

The English summary is being prepared. Showing the original description.

Akira-Papa/claude-code-nextjs-mongo-template-16Updated May 24, 2026

See all skills by Akira-Papa

Report a problem with this skill