Communitygithub.com

nachoorg/vercel-landing-pages-skill

ランディングページやシンプルなサイトを作成し、安全で再現性のあるフロー(Cowork端末での開発・テスト、ユーザー端末からのデプロイ、本番前プレビュー、バージョン履歴、ロールバック)でVercelに公開します。NIC Argentina経由の.ar/.com.arドメインもサポート。ランディングページ、簡単なWebサイト、公開、更新、再デプロイ、ロールバック、ドメイン接続を依頼されたときに使用します(Vercelが明示されていなくても可)。

vercel-landing-pages-skill とは?

このスキルは、非技術的な依頼からVercel上に公開されたランディングページやシンプルなWebサイトを作成するための、反復可能かつ安全なワークフローを提供します。開発とテストはエフェメラルなCowork端末(device_bash)で行い、`vercel login`や`deploy`、`rollback`、`promote`、`domains`といった本番環境に影響を与える操作はユーザーのローカル端末でのみ実行するよう、明確に役割を分離します。これにより、認証情報の漏洩やプロキシブロックを防止します。 ユーザーが「こういうサイトが欲しい」と簡単に要望を伝えたら、このスキルが短い仕様にまとめ、静的HTML/CSS/JS、Astro、Next.jsなどプロジェクトに最適なスタックを選択し、ガイドラインに従って実装します。デプロイ前には、`predeploy-check.mjs`による自動チェック、ビルドの成功確認、Playwrightによるビジュアル検証(1366pxと390pxのスクリーンショット)を必須とします。 デプロイは、スキルに含まれる`deploy.mjs`スクリプトを使って標準化されており、ユーザーはコマンドを実行するだけでプレビューURLを取得し、承認後に本番公開できます。.deployments.logに自動でバージョン履歴が記録され、`vercel rollback`や`vercel promote`による簡単なロールバックが可能です。また、NIC Argentina経由の.ar/.com.arドメイン接続や、環境変数、GitHub連携による自動デプロイ(CI)もサポートしています。 このスキルはClaude Code、Coder、CodexなどのAIエージェントと連携し、`device_request_folder_access`、`device_bash`、`device_stage_files`といったツールを使用して、ユーザーのファイルシステム上で安全に作業を実行します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/nachoorg/vercel-landing-pages-skill/tree/HEAD/vercel-landing-pages

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Vercel 上のランディングページ

非技術的な依頼を、素早くきれいなサイトに変換し、反復可能なフローで Vercel に公開します。ユーザーは 何が 欲しいかを伝え、あなたはスタック、コード、チェック、そして各デプロイの準備を担当します。ユーザーは必ずしも開発者ではありません。簡単に話し、あまり質問せず、中途半端なサイトを放置しないでください。ユーザーの言語(デフォルトはリオプラテンセスペイン語)で応答してください。

0. 各操作の実行場所(黄金律)

コマンドを実行する場所は3つあり、それぞれ固定の役割があります。

場所目的絶対にしないこと
ユーザーの端末(ユーザーのMac/PC、自身のVercelセッション)vercel login、link、deploy、rollback、promote、domains、env add — vercel.com や認証情報に触れるすべての操作—
Cowork のローカル端末(device_bash、接続されたフォルダ上のVM)ファイルの読み取り・編集、git add/commit、事前チェック、履歴の記録vercel login およびデプロイ
Cowork のクラウド端末(Bash)Playwright によるスクリーンショット、ローカルVMにないツールの使用ユーザーのファイルへの直接操作

理由: device_bash の呼び出しは毎回新しい使い捨てのサンドボックスです。バックグラウンドプロセス(承認待ちの vercel login など)はコマンド終了時に強制終了され、「ハングした」ように見えます。また、組織のプロキシが vercel.com をブロックする可能性もあります(403 from proxy after CONNECT、fetch failed)。ユーザーの端末には既にログインとネットワークがあります。トークンや認証情報を要求したり入力したりしないでください。ログインはユーザー自身が行います。

ユーザーにコマンドを渡す方法:

  • コードブロック。1行に1コマンド。cd で対象フォルダに移動してから記述してください。
  • 行末に # コメントを付けないでください(zsh が引数として渡し、Error: Can't deploy more than one path の原因になります)。説明はブロックの外に記述してください。
  • 常に --yes を付けて、インタラクティブなプロンプトが表示されないようにしてください。
  • ユーザーに出力全体を貼り付けてもらい、そこからURLとエラーを取得してください。
  • デプロイ後は、毎回あなたが(device_bash で)履歴を記録してください(セクション5参照)。

コンピューターの使用: macOS では、ターミナルやエディタをクリックすることのみ許可されており、キーボード入力はできません。コマンドを入力させるためにターミナルの制御を要求しないでください。機能しません。

1. まず状況を把握する

  • device_request_folder_access でフォルダへのアクセスを要求します(例:~/Downloads)。プロジェクトが .tar.gz/.zip で届いた場合は、device_bash で隣に解凍します。
  • .vercel/project.json が存在する → 更新(セクション5)。プロジェクトは既にリンクされています。
  • コードはあるが .vercel/ がない → 既存コードの初回デプロイ(セクション3~5)。
  • 空/新規 → 新規プロジェクト(セクション2~5)。
  • 独自ドメインの要求 → セクション6。

接続されたフォルダ内のGit: git は .lock ファイルを削除する必要があります。削除権限がないと unable to unlink ... Operation not permitted で失敗します。ルートフォルダに対して device_request_delete_permission を1回だけ要求し、git の一時ファイル用であることを説明します(セッション中、そのフォルダ全体の削除が有効になることを伝えます)。拒否された場合、コミットはユーザー自身の端末で行ってもらいます。各コマンドで作者を設定します: git -c user.name=... -c user.email=... commit。

ユーザーの端末で一度確認: node -v(≥18)、git --version、npx vercel whoami。whoami が Logged out と表示した場合、ユーザーはそこで npx vercel login を実行し、ブラウザでコードを承認します。絶対にユーザーの代わりに認証情報、トークン、または税務キーを入力しないでください。

2. 依頼 → 仕様(簡潔)

ユーザーが既に言ったことを採用し、不足していてブロッカーになるものだけを、1回のメッセージで最大約4つの質問に絞って尋ねます:

  • 目的(販売、問い合わせ獲得、情報提供、登録)と 1つの主要なアクション(CTA)
  • 対象読者とテキストの言語
  • コンテンツ: 名前、セクション、既存のテキスト/写真(または「サンプルテキストを考えて」)
  • ブランド: 色、ロゴ、スタイル(または「あなたが選んで」)
  • ニーズ: フォーム、WhatsApp ボタン、アナリティクス、独自ドメイン

5~10行の仕様を返し、異議がなければ先に進みます。架空のコンテンツは TODO でマークします。WhatsApp 用の電話番号が渡された場合、国際形式を検証します(アルゼンチンの携帯電話: 549 + 市外局番 + 番号、+ や 15 は付けない)。正しくない場合は警告します。間違った wa.me は無効なチャットを開きます。

スタイルの依頼に矛盾がある場合(「高級だけどワイルド」、ライバルチームのクラブカラー、登録商標)、あなたの判断で解決し、結果と2行程度の決定理由を示します。第三者のエンブレム、名前、ロゴは使用しないでください。

3. スタックを選ぶ(デフォルトで最もシンプルに)

ニーズスタック理由
単一のランディング/数ページの静的サイトHTML + CSS + 最小限のJS、ビルド無し依存関係ゼロ、壊れるものなし、デプロイ瞬時。デフォルト。
多数のページ、共通レイアウト、ブログAstro(静的出力)コンポーネント + Markdown、JS ほぼ無し
実際のアプリケーションロジック、ログイン、パネルNext.js本当に必要な場合のみ
問い合わせフォームのみ静的 + 関数 api/contact.js、またはフォームサービスフレームワークを使うまでもない

詳細、コマンド、フォーム、アナリティクスは references/stacks.md を参照。

静的サイトの場合、assets/static-starter/ をベースとしてコピーし(index、スタイル、vercel.json、404、robots、.gitignore)、適応させます。ベースデザインを変更せずに公開しないでください。

4. 適切に構築する(Cowork内で)

references/landing-guidelines.md に従ってください。譲れない事項:

  • モバイルファースト、レスポンシブ、主要コンテンツはJSなしで動作
  • <title>、メタディスクリプション、Open Graph、ファビコン、lang 属性
  • 画像は圧縮、サイズ指定、スクロール圏外は loading="lazy"、alt 属性
  • 1つの明確な主要アクションを上部と下部に繰り返し
  • リポジトリに秘密情報を保存しない。キーは npx vercel env add で追加(ユーザーが実行)
  • .vercelignore は必須。.env*、.deployments.log、.git、.gitignore、.vercelignore を含める。ビルド無しの静的サイトでは Vercel はフォルダ内のすべてをアップロードし、vercel link は /.env.local にトークンを作成し、公開されてしまいます。
  • .gitignore に .vercel、node_modules、.env*、.deployments.log を含める。

device_bash での編集: sed -i または、読み取り→変更→書き込みの短い Python スクリプトで、各置換が正確に1回マッチすることを assert で確認します。ツールの出力からファイル全体を再入力することは絶対にしないでください。

デプロイ前のチェック:

  • フォルダに対して predeploy-check.mjs を実行: すべての ERROR を修正し、WARNING を評価します。スキルのスクリプトはクラウド上にあります。ローカルVMで実行するには、device_bash で base64 または heredoc を使って $HOME/tools/(mnt/ の外、ユーザーから見えない)に一度コピーします。
  • Astro/Next: npm run build が成功する必要があります。
  • クラウドでのビジュアル検証: device_stage_files でサイトファイルをステージング → python3 -m http.server → Playwright で chromium.launch({executablePath: '/opt/pw-browsers/chromium-*/chrome-linux/chrome'})(playwright install は実行しない)→ 1366px と 390px のページ全体のスクリーンショットを撮り、Read で確認します。Google Fonts は読み込まれないため、フォントは近似値で表示されます。変更がビジュアルな場合は、スクリーンショットをユーザーに送信してください。

各変更は git commit -m "<変更内容>" で終了します。コミットがバージョン履歴です。

5. デプロイ: 常に同じフロー

スクリプトをプロジェクトに1回だけインストール: スキルの scripts/deploy.mjs をプロジェクトルートに deploy.mjs としてコピーし(device_bash、heredoc、または base64)、コミットします。これがユーザーが実行するスクリプトで、macOS、Windows、Linux で動作し、依存関係はありません。

node deploy.mjs の動作: ログイン確認 → .vercel/project.json がなければプロジェクトを作成/リンク(vercel link --yes --project <名前>)→ コミットされていない変更を警告 → package.json に build がある場合は vercel pull + vercel build + vercel deploy --prebuilt、ない場合は vercel deploy --yes を直接実行 → URL を表示 → .deployments.log に行を追加(日付、宛先、コミット、URL)。--dry-run は計画のみ表示します。

フロー(常に):

  1. あなた: 変更、チェック、スクリーンショット、git commit(Cowork)。
  2. ユーザーが自身の端末で:
    cd ~/パス/プロジェクト
    node deploy.mjs --name プロジェクト名
    
    (--name は初回のみ。)ユーザーが出力を貼り付け、あなたが プレビュー のURLを返します。
  3. ユーザーがブラウザでプレビューを確認します。プレビューには通常 Deployment Protection(Vercel ログインが必要)がかかっています。検証に npx vercel curl は使用しないでください。プロジェクトに恒久的なバイパストークンが生成されます。自分で確認する必要がある場合は、request_access で *.vercel.app ドメインと vercel.com へのアクセスを要求し、統合ブラウザを使用します。それができない場合は、ユーザーの確認とあなたのローカルスクリーンショットを信頼します。
  4. 明示的な「はい」があった場合のみ、ユーザーは node deploy.mjs --prod を実行します。本番環境は公開されます。
  5. 本番環境を確認します(このURLは保護されていません): / が応答すること、CSS が読み込まれること、CTA リンクが正しいこと、/.env.local、/.git/HEAD、/.vercel/project.json が 404 を返すこと、存在しないパスがあなたの 404 ページを表示すること。
  6. 報告: 本番URL、変更内容、コミット、ロールバック方法。

ユーザーがスクリプトを使いたくない場合、手動での同等操作は npx vercel link --yes --project <名前>、npx vercel deploy --yes、npx vercel deploy --prod --yes です。その場合、あなたがユーザーから貼られた出力をもとに device_bash で .deployments.log に行を追加します(ISO日付<TAB>preview|production<TAB>短縮sha<TAB>URL)。

プロジェクト名: 小文字とハイフン、事業に由来する名前(panaderia-la-espiga)。サブドメイン *.vercel.app を定義します。

ロールバック

  • npx vercel rollback → 1つ前の本番環境に戻す(即時、再ビルド不要。初回デプロイでは存在しない)。
  • npx vercel promote <deploy-url> → 特定のデプロイを公開する。
  • npx vercel ls <プロジェクト> → デプロイ一覧。.deployments.log がコミットと関連付けます。

オンデマンド追加機能

  • 環境変数: npx vercel env add NOMBRE production(値はユーザーが入力)。
  • git push 時の自動デプロイ: references/ci-github.md。複数人で編集する場合や頻繁に変更がある場合に推奨。手動デプロイの手順を省きます。

CLI フラグは変更される可能性があります。コマンドがフラグで失敗した場合、npx vercel <cmd> --help で確認し、適応してください。一般的なエラー: references/troubleshooting.md と、実際に発生した以下のエラー:

症状原因 / 解決策
Error: Can't deploy more than one pathzsh で貼り付けた行末の # コメント。コメントなしでブロックを書き直す。
Cowork で vercel login が「ハング」使い捨てサンドボックス。ログインはユーザーの端末で行う。
vercel.com への 403 from proxy after CONNECT / fetch failed組織のネットワークが Vercel をブロック。ユーザーの端末を使うか、管理者が vercel.com と *.vercel.app を許可ドメインに追加する。
vercel link 後に .env.local が出現正常(OIDC トークン)。.gitignore と .vercelignore に含める必要がある。削除して問題ない。
unable to unlink .git/...lock: Operation not permitted接続フォルダに削除権限がない。一度権限を要求するか、ユーザーにコミットを任せる。
プレビューが Vercel ログインを要求プレビューの Deployment Protection。ログイン済みユーザーが確認する。

6. 独自ドメイン

  • .com.ar / .ar → references/dominio-nic-ar.md に従う(CUIT + Clave Fiscal で NIC Argentina で購入し、Vercel に委任)。Clave Fiscal を使った手続きと支払いはユーザーが行います。あなたはステップバイステップでガイドします。
  • .com など → 任意のレジストラ(または Vercel)で購入し、同じガイドの DNS 手順を適用します。
  • どちらの場合も、ユーザーの端末で: npx vercel domains add <ドメイン> <プロジェクト>、DNS を設定し、npx vercel domains inspect <ドメイン> で確認します。Vercel は HTTPS 証明書のみを発行します。

7. クロージングメッセージ(常に)

簡潔かつシンプルに:

  • 公開されたURL(該当する場合はプレビューも)とコミット
  • 行ったこと/変更したこと(2~4箇条)
  • ユーザーに確認を推奨するデザインやコンテンツの決定(トーン、色、サンプルデータ)
  • 「何か変更したい場合は、内容を教えてください。公開前にプレビューをお見せします。」
  • 未処理の TODO と、.ar ドメインがある場合は年間更新のリマインダー

関連スキル