Communitygithub.com

hasaneks/web-craft-init

新しいReactウェブプロジェクト、または大規模なウェブサーフェスを開始し、既存のプロジェクトを標準化された設計に移行するためのスキルです。製品のインテーク、レンダリングモデル、フレームワーク(Next.js App Router または React + Vite)、UIキット(shadcn/ui、Ant Design、Material UI または既存のシステム)、スタイリングアプローチ(Tailwind、CSS Modules、キットテーマ)、初日からの本格的なi18n(next-intl または i18next)、モーション基盤、テーマなどを公式ソースに基づいて選択します。

web-craft-init とは?

web-craft-init は、Reactウェブプロジェクトを体系的に開始・標準化するための包括的なAIエージェントスキルです。このスキルは、製品のインテークから技術プロファイルの決定、プロジェクトドキュメントの作成、フォルダ構造の設計、そして最小限の動作確認までを段階的にガイドします。主にClaude Code、Cursor、CodexなどのAIコーディングエージェント向けに設計されており、Next.js App Router または React + Vite をフレームワークとして選択し、shadcn/ui、Ant Design、Material UI などのUIキットとそれに対応するスタイリング手法(Tailwind、CSS Modules、キットテーマ)を決定します。また、初日から本格的な国際化(i18n)を next-intl または i18next で導入し、モーション基盤(CSS transitions + Motion for React)やフォーム・データ管理(react-hook-form + Zod、TanStack Query)、テーマ(Light/Dark/System)なども設定します。プロジェクトの既存の決定事項を優先し、変更が必要な場合のみ質問を行うことで、効率的かつ一貫性のある開発環境を構築します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hasaneks/web-craft/tree/HEAD/skills/web-craft-init

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

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

ドキュメント

Reactウェブプロジェクトの開始

まず web-craft を読んでください。そのルールがここでも適用されます。プロジェクトの既存の決定事項は、以下の全てのデフォルトよりも優先されます。

1. インテーク

既に与えられているものを読み取ってください:製品説明、既存のリポジトリ、ページ、デザインシステム、STACK.md、DESIGN.md、API契約。その後、references/intake.md で不足を補います:サーフェスタイプ(ランディング、エディトリアル、カタログ、コンシューマーアプリ、管理画面、カスタマーポータル、またはそれらの混合)、主要ユーザーとアクション、コンテンツまたは操作密度、デバイス、SEO要件、現在および将来の言語、RTL、認証、バックエンド(Node.js、サードパーティAPI、CMS、モック、静的)。

製品やアーキテクチャの決定を変更するものだけを質問してください。それ以外は前提として記述します。

2. 技術プロファイルの決定

各決定を一行の理由とともに記述してください。方向性が決まる前にすべての画面を生成しないでください。

決定デフォルトと根拠の所在
フレームワークとレンダリング公開、SEOまたはCMS重視、多言語 → Next.js App Router。ログインの背後にあり、インタラクティブ性が高い → React + Vite または既存のNext.js。シンプルな静的サーフェス → 最もシンプルな方法。references/framework-choice.md
UIキット特徴的なブランド製品 → shadcn/ui。テーブル/フォームが多い管理画面 → Ant Design。Materialスタイルの製品または既存のMUI → Material UI。既存のシステム → そのまま維持。アプリのサーフェスごとに1つのメインキット。references/kit-choice.md
スタイリングキットに従う:shadcn → Tailwind(shadcn必須);Ant Design または MUI → キットのテーマに加え、カスタム部分にはCSS Modules;カスタムまたはエディトリアル → CSS Modules。1つのサーフェスでTailwindとCSS Modulesを同等のシステムとして混在させない。references/styling-choice.md
i18nNext.js → next-intl;Vite → i18next + react-i18next。ロケールレジストリ、フォールバック、URLポリシー、カタログ読み込みは初日に決定。references/i18n-setup.md
モーションシンプルな状態変化にはCSS transitions;Reactでマウント/アンマウント、レイアウト、オーケストレーションが必要な場合はMotion for React。持続時間とイージングのトークン;動きの抑制は一箇所で処理。references/motion-setup.md
フォームとデータreact-hook-form + Zod;TanStack Query またはフレームワークのデータモデル;既存のものを維持。
テーマインタラクティブな製品にはLight/Dark/System;ブランド化されたマーケティングサイトでは単一テーマも製品決定として可。
テスト型チェック、リント(eslint-plugin-web-craft および eslint-plugin-jsx-a11y 使用)、動作が存在する場所でのユニット/コンポーネントテスト、重要なフローに対するPlaywright。
言語とツールStrict TypeScript、プロジェクトごとにYarn固定、ロックファイル1つ。

選択するすべてのパッケージの現在の安定バージョンを、その日のうちに公式ソースから確認し、連携して動作するバージョンを固定して STACK.md に記録してください。バージョン番号を記憶やこのスキルからコピーしないでください。

3. プロジェクトドキュメントの作成

  • STACK.md:フレームワーク、レンダリング、キット、スタイリング、i18nエンジン、データ・フォームツール、バージョン、環境、スクリプト。テンプレート:references/stack-template.md。
  • DESIGN.md:製品の特性、リファレンスから得た原則、レイアウト、トークン(色、タイポグラフィ、スペーシング、角丸、影、モーション)、コピールール、モーションマトリックス、i18nに関する注意事項。テンプレート:references/design-template.md。
  • ロケールリストと型はコード設定から生成します。ドキュメントはそれを説明するものであり、第二の真実の情報源ではありません。
  • 小さな変更ごとに4つも新しいドキュメントを作成しないでください。

4. プロジェクトのレイアウト

機能ベースの構造、サーバー/クライアントの境界を明確に、1つのAPIレイヤー、トークンとプロバイダーは1箇所に:references/structure.md。

5. スケルトンの検証

さらに画面を構築する前に、1つの小さなフローがエンドツーエンドで動作することを確認する必要があります:

  1. ロケールが最初のレンダリングで正しく解決される(言語フラッシュなし)、切り替えでルートが保持される。
  2. テーマがユーザーの選択とシステム設定に従い、読み込み時にフラッシュしない。
  3. フォームがblur時にバリデーションを行い、送信時に最初のエラーまでスクロールし、サーバーエラーを該当フィールドにマッピングする。
  4. ダイアログがアニメーションで出入りし、フォーカスをトラップして戻し、動きの抑制が大きな動きを削除する。
  5. リストまたはチャートがスケルトン、空の状態、エラーとリトライを表示する。
  6. キーボードのみの操作が機能し、コンソールやハイドレーションエラーがない。

その後、代表的な垂直スライス(実際のコンテンツ、第二言語、読み込み中とエラー状態)を1つ構築し、他の画面に展開する前にモバイルとデスクトップの幅でブラウザで確認します。

6. スクリプト

dev、build、start(Next.js)、typecheck、lint、test、test:e2e。バンドルサイズが重要な場合は analyze を追加します。

ソース

これらのデフォルトに使用した公式リンクと、それらを確認した日付:references/sources.md。インストールするバージョンについて再確認してください。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

関連スキル