new-static

star 0

Astro + Node.js で静的サイト(LP・PoC・画面モック)をセットアップする手順。/craft から静的サイトを選択したときに実行される。

agaemo By agaemo schedule Updated 6/6/2026

name: new-static description: Astro + Node.js で静的サイト(LP・PoC・画面モック)をセットアップする手順。/craft から静的サイトを選択したときに実行される。

new-static(静的サイトセットアップ)

Astro + Node.js で静的サイト(LP・PoC・管理画面モック等)プロジェクトをセットアップする。 プロジェクトディレクトリを作成して cd で移動した後に実行すること。

手順

ステップ 1: ヒアリング & デザインブリーフ作成(メインClaude自身が実行)

注意: サブエージェントはユーザーと対話できない。ヒアリングは必ずメインClaude自身が行うこと。

SKILL_DIR = このSKILL.mdが存在するディレクトリの絶対パス
  # 例: /Users/alice/.claude/skills/craft/flows/new-static
  # このファイルを Read ツールで読んだパスから導出すること
  # 注: 他フローファイル(new-project/new-app/consult)の SKILL_DIR は craft/ を指すが、
  #     このファイルの SKILL_DIR は craft/flows/new-static/ を指す

REQUIRE: カレントディレクトリがプロジェクトルートであること

IF NOT EXISTS(docs/):
  MKDIR docs/
ENDIF

IF NOT EXISTS(docs/design-brief.md):
  READ {SKILL_DIR}/design-brief-template.md
  WRITE docs/design-brief.md(内容: 上記テンプレートをそのまま。REQUIRE でカレントディレクトリ = プロジェクトルートが保証されているため相対パスで書く)
ENDIF

ASSERT EXISTS(docs/design-brief.md)

--- ヒアリング(SELF = メインClaudeがユーザーに直接質問する) ---

SELF: 以下を 1つのメッセージ でユーザーに質問する
  1. 業種・サービス内容とターゲットユーザー(誰に届けたいか)
  2. ページ構成(単一ページ / 複数ページ。複数の場合は画面名を列挙してもらう)
  3. 画面の明暗(ダーク系 / ライト系 / どちらでも)
  4. 色の方向性(使いたい色・避けたい色・ブランドカラーの有無)
  5. 文字の印象(A. 丸みがあって親しみやすい / B. きっちり直線的 / C. どちらでもない)
  6. 参考にしたいデザイン(サービス名 + 好きな部分を1〜3つ、なければ「なし」でOK)
  7. 感じてほしい印象(FEEL 3語)・感じてほしくない印象(ANTI-FEEL 3語)

WAIT_FOR: ユーザーの回答

--- デザインブリーフ作成(SELF = メインClaudeが記入する) ---

SELF: ヒアリング回答をもとに docs/design-brief.md の全TODOを埋める
  - ブランドアーキタイプはヒアリング結果から推定して選択する
  - 仮定で埋めた項目がある場合は、その旨をユーザーに明示すること

--- プロジェクト名・サービス名の決定 ---

ユーザーからサービス名・プロジェクト名の指定がない場合:
  RECOMMENDED: 「SAMPLE IMS」「DEMO SHOP」など、サンプルであることが一目でわかる名前を使う
  ALTERNATIVE: ユーザーに希望を確認する
  PROHIBITED: 実在するブランド・サービスの名前を流用すること
  理由: 後から名前変更が必要になると、レイアウト崩れ・文言の意味的不整合が連鎖して発生する

--- サンプルデータのルール ---

ユーザーから実際のデータの指定がない場合、プロジェクト種別に応じた架空データを使うこと:

  共通ルール:
    REQUIRED: サンプルであることが一目でわかる値にする
    PROHIBITED: 実在する個人名・会社名・住所・電話番号・URLを組み合わせること

  BtoC向けLP(住所・電話番号・SNSが必要な場合):
    住所: 郵便番号「〒000-0000」、都市名・区・町名はすべて架空(例: 架空都サンプル区見本町)
    電話番号: 市外局番「000」(例: 000-0000-0000)
    SNS・URL: href は「#」か「javascript:void(0)」。実在サービスのルートURLをリンク先に使わないこと
    アクセス案内: 架空の路線名・駅名(例: 架空線「サンプル駅」北口より徒歩5分)

  業務ツール・PoC(人名・組織名・インシデントデータ等が必要な場合):
    人名: 架空の日本人名(例: 田中 健、鈴木 理恵)
    組織名: 「サンプル株式会社」「架空チーム」など
    IDや数値: 実運用を想定した形式だが実在しない値(例: INC-001、#00000)

SELF: 埋めたデザインブリーフの内容をユーザーに簡潔に見せる

ステップ 2: 理解度チェック(Early Stop)& ユーザー確認

designer のヒアリング後でも、AI が仮定で埋めた部分が残っている可能性がある。 セットアップ前にここで潰す。

REPEAT:
  SELF_EVALUATE: 以下の5項目を 1〜5 で採点する
    スケール: 1=全く不明 / 2=断片的 / 3=概ね把握 / 4=ほぼ確信 / 5=完全に理解

    | # | 評価項目                                          | スコア |
    |---|---------------------------------------------------|--------|
    | 1 | 目的・ターゲット(誰に・何を伝えるLPか)            |        |
    | 2 | コンテンツ・訴求ポイント(何を見せるか・伝えるか)  |        |
    | 3 | デザイン方針(ビジュアルトーン・ブランド制約)      |        |
    | 4 | 技術的制約(アニメーション・フォーム・外部連携)    |        |
    | 5 | 完了条件(何をもって完成とするか・公開先・締め切り)|        |

  IF ANY(score < 4):
    ASK USER: スコアが4未満の項目について不明点を質問する
  ENDIF
UNTIL ALL(score >= 4)

GATE: ユーザー承認
  SHOW USER:
    "デザインブリーフが完成しました。この方針で実装を進めますか?"
  WAIT_FOR: ユーザーが明示的に承認する
  PROHIBITED: 承認を受け取る前にステップ3へ進むこと
  IF NOT CONFIRMED: STOP

ステップ 3: セットアップ(サブエージェントで実行)

Agent ツールでサブエージェントを起動し、以下のプロンプトを渡す。 WAIT_FOR: サブエージェントの完了報告("完了しました")を受け取ってから続きに進む。

IMPORTANT: プロンプト内のプレースホルダーを渡す前に実際の絶対パスへ展開すること。 = カレントディレクトリの絶対パス(Bash で pwd を実行して取得)