アップデート一覧に戻る
New releaseJul 21, 2026

preflight v0.19.4

GoベースのCLIツールで、コードベースをスキャンして起動準備状態を確認し、本番デプロイ前に設定漏れ、セキュリティ衛生問題、シークレット漏洩、統合ギャップを検出します。

共有

Preflight.sh

Agent skill on skills.sh

Preflight.sh は、コードベースを本番環境へのデプロイ前にスキャンして、起動準備が整っているかを確認するコマンドラインツールです。設定の欠落、統合の問題、セキュリティ上の懸念、SEOメタデータの欠落、その他のよくあるミスを検出します。

本番環境で恥をかかないように。コマンドを実行するだけです。

インストール

Homebrew (macOS/Linux)

brew install preflightsh/preflight/preflight

npm

npm install -g @preflightsh/preflight

Go

go install github.com/preflightsh/preflight@latest

Docker

docker pull ghcr.io/preflightsh/preflight

シェルスクリプト

curl -sSL https://preflight.sh/install.sh | sh

手動ダウンロード

GitHub Releases から最新リリースをダウンロードしてください。

クイックスタート

# プロジェクトディレクトリで初期化
cd your-project
preflight init

# すべてのチェックを実行
preflight scan

# 特定のディレクトリをスキャン
preflight scan /path/to/project

# 詳細出力で実行(各チェックに一致したファイルを表示)
preflight scan --verbose
preflight scan -v  # 短縮形

# CIモードでJSON出力を使用して実行
preflight scan --ci --format json

# 特定のチェックのみを実行、または一部をスキップして素早く反復
# (一時的な指定。`preflight ignore` とは異なり preflight.yml は変更されません)
preflight scan --only seo_meta,og_twitter
preflight scan --skip vulnerability,secrets

# チェックを無効化
preflight ignore sitemap

# チェックを再有効化
preflight unignore sitemap

# すべてのチェックIDを一覧表示
preflight checks

エージェントスキル

このリポジトリには、skills/preflight/SKILL.md に skills.sh 互換のエージェントスキルが含まれています。コーディングエージェントに再現可能な Preflight ワークフローを提供します: preflight.yml の検査、CI セーフなスキャンの実行、結果のトリアージ、安全でない ignore の回避、再検証の実行、残存する起動リスクの報告。

このリポジトリからスキルを一覧表示:

# Bun を使用
bunx --yes skills add preflightsh/preflight --list

# または npm を使用
npx --yes skills add preflightsh/preflight --list

Preflight スキルのみをインストール:

# Bun を使用
bunx --yes skills add preflightsh/preflight --skill preflight

# または npm を使用
npx --yes skills add preflightsh/preflight --skill preflight

ダッシュボードとAI提案

Preflight はアカウントなしでコマンドラインから完全に使用できます。app.preflight.sh のオプションのダッシュボードでは、スキャンのホスト型履歴と、各検出結果に対する AI 生成の修正提案が追加されます。コードがマシンの外に出ることはありません: スキャンはローカルで実行され、公開時に送信されるのは結果の編集済みサマリー(チェックID、ステータス、メッセージのみ。シークレット値やファイル内容は決して送信されません)のみです。

無料アカウントを作成し、CLI を接続します:

preflight auth login    # ブラウザを開いてこのCLIを認証
preflight auth status   # ログイン中のユーザーを表示
preflight auth logout   # 保存された認証情報を削除

--publish を使用してスキャンをダッシュボードに公開します。実行結果を表示するリンクが出力されます。公開はベストエフォート方式です: オフラインまたは未ログインの場合でも、スキャンは実行され、正常に終了します。

preflight scan --publish

ダッシュボードでは、各実行の pass/warn/fail の内訳、検出結果の完全なリスト、プロジェクトごとの履歴を確認でき、デプロイ間の変更点を把握できます。

また、preflight history を使用してターミナルからその履歴を読むこともできます:

preflight history                       # 全プロジェクトの最近の実行
preflight history --here                # 現在のプロジェクトの実行のみ
preflight history <run-id>              # 1回の実行の完全なチェック結果
preflight history --here --format json  # 機械可読形式(エージェント用)

preflight auth login が必要です。--here は git リモートを使用して実行を現在のリポジトリに一致させます。これは公開時と同じキーです。

公開された実行で失敗または警告のチェックを開くと、検出されたスタックに合わせたステップバイステップの修正が生成され、コピーしてすぐ使えるコマンドとコードが提供されます。

  • 無料 には月5回の公開実行が含まれます。
  • 独自キーの使用: ダッシュボード設定で OpenAI または Anthropic API キーを追加すると、公開は無料で無制限になります(プロバイダーに直接支払います)。
  • マネージド ($5/月): AI コストを当社が負担し、実行は無制限。API キーは不要です。

チェック内容

チェック説明
ENV Parity.env と .env.example を比較して欠落している変数を検出
Health Endpointサイトに到達可能か検証。/health、/healthz、/api/health を自動検出し、見つからない場合はルートにフォールバック
Vulnerability Scan依存関係の脆弱性をチェック(bundle audit、npm audit など)
SEO Metadatatitle、description、Open Graph タグをチェック
OG & Twitter Cardsog:image、twitter:card、ソーシャル共有メタデータを検証
Canonical URLcanonical リンクタグの存在を検証
Viewportモバイル用の適切な viewport メタタグをチェック
Lang Attributeアクセシビリティ用の html lang 属性を検証
Structured DataJSON-LD Schema.org マークアップをチェック
Security Headers本番環境とステージング環境の両方で HSTS、CSP、X-Content-Type-Options を検証
SSL CertificateSSL の有効性をチェックし、期限切れ前に警告
WWW Redirectwww/non-www が canonical URL にリダイレクトされるか検証
Email Authメール配信性のための SPF/DMARC DNS レコードをチェック(オプトイン)
Secret Scanningコード内の漏洩した API キーと認証情報を検出
Debug Statementsコードに残された console.log、var_dump、debugger を検出
Error Pagesカスタム 404/500 エラーページをチェック
Image Optimization読み込み時間に悪影響を与える大きな画像(>500KB)を検出
Legal Pagesプライバシーポリシーと利用規約のページをチェック
Cookie ConsentCookie 同意ソリューションを検出(GDPR/CCPA 準拠)
Favicon & Iconsfavicon、apple-touch-icon(.png、.webp、.svg)、web manifest をチェック
robots.txtrobots.txt が存在し、コンテンツがあるか検証
sitemap.xmlsitemap の存在またはジェネレーターをチェック
llms.txtLLM クローラーガイダンスファイルをチェック
ads.txt広告サポートサイト用の ads.txt を検証(オプトイン)
humans.txtチームへのクレジット用の humans.txt をチェック(オプトイン)
IndexNow検索インデックス高速化用の IndexNow キーファイルを検証(オプトイン)
LICENSEライセンスファイルをチェック(オプトイン、オープンソースプロジェクト用)

サポート対象サービス (72)

Preflight は以下のサービスの設定を自動検出して検証します:

決済

  • Stripe、PayPal、Braintree、Paddle、LemonSqueezy

エラー追跡と監視

  • Sentry、Bugsnag、Rollbar、Honeybadger、Datadog、New Relic、LogRocket

メールとニュースレター

  • Postmark、SendGrid、Mailgun、AWS SES、Resend、Mailchimp、Kit、Beehiiv、AWeber、ActiveCampaign、Campaign Monitor、Drip、Klaviyo、Buttondown

アナリティクス

  • Plausible、Fathom、Umami、Fullres Analytics、Datafa.st Analytics、Google Analytics、PostHog、Mixpanel、Amplitude、Segment、Hotjar

認証

  • Auth0、Clerk、WorkOS

チャット

  • Intercom、Crisp

通知

  • Slack、Discord、Twilio

インフラストラクチャ

  • Firebase、Supabase、Redis、Sidekiq、RabbitMQ、Elasticsearch、Convex

ストレージとCDN

  • AWS S3、Cloudinary、Cloudflare

検索

  • Algolia

SEO

  • IndexNow

AI / LLM

  • OpenAI、Anthropic Claude、Google AI (Gemini)、Mistral、Cohere、Replicate、Hugging Face、Grok (X/Twitter)、Perplexity、Together AI

設定

Preflight はプロジェクトルートの preflight.yml ファイルを使用します:

projectName: my-app
stack: rails  # rails, next, react, vite, laravel, etc.

urls:
  staging: "https://staging.example.com"
  production: "https://example.com"

services:
  stripe:
    declared: true
  sentry:
    declared: true

checks:
  envParity:
    enabled: true
    envFile: ".env"
    exampleFile: ".env.example"

  healthEndpoint:
    enabled: true
    path: "/health"  # オプション - 未設定の場合は一般的なパスを自動検出

  stripeWebhook:
    enabled: true
    url: "https://api.example.com/webhooks/stripe"  # オプション - GETでプローブ。404または応答なしが報告されます

  seoMeta:
    enabled: true
    mainLayout: "app/views/layouts/application.html.erb"

  security:
    enabled: true

  secrets:
    enabled: true
    # シークレットスキャン用のファイル単位の許可リスト。チェック全体を
    # 無効にせずに個別の検出結果(例: リファラー制限付き公開キー)を
    # 抑制するために使用します。
    allowlist:
      - path: web/js/golden-hour.js
        fingerprint: "sha256:<hex>"   # 推奨 - 正確なシークレットに固定
        reason: "HTTPリファラー制限付きGoogle Timezoneキー"
      - path: "web/tools/**/*.php"    # doublestar グロブがサポートされています

  indexNow:
    enabled: true
    key: "your32characterhexkeyhere00000"

  emailAuth:
    enabled: true  # オプトイン、本番ドメインのSPF/DMARCをチェック

  humansTxt:
    enabled: false  # オプトイン、チームへのクレジット

  license:
    enabled: false  # オプトイン、オープンソースプロジェクト用

# IDで特定のチェックまたはサービスを無効化
ignore:
  - sitemap
  - llms_txt
  - google_analytics

チェックとサービスの無効化

preflight ignore <id> を使用して特定のチェックまたはサービスを無効化します:

preflight ignore sitemap        # sitemapチェックを無効化
preflight ignore sentry         # Sentryサービスの検証を無効化
preflight unignore sitemap      # sitemapチェックを再有効化
preflight checks                # 無効化可能なすべてのIDを一覧表示

単一のシークレット検出結果の許可リスト登録

secrets チェック全体を無効化するよりも、個別の検出結果を許可リストに登録することをお勧めします。コマンドラインから一時的な例外を追加します:

preflight ignore secrets web/js/golden-hour.js

これにより、preflight.yml の checks.secrets.allowlist にパスエントリが追加されます。path フィールドは doublestar グロブ(** はディレクトリをまたいで一致)で、プロジェクト相対ファイルパスに対して解決されます。

カテゴリ