stitch-loop について
stitch-loopは、Stitchを使って複数ページのサイトを反復的に構築するスキルです。フロントエンド開発者向けに、ページ生成からサイトへの統合、次の反復に必要な情報の更新までを案内します。
主な機能
- 01バトン形式のプロンプトによる反復
- 02Stitchでの画面生成
- 03HTMLとスクリーンショットの一時保存
- 04サイトナビゲーションとサイトマップの更新
- 05デザインの一貫性確認
活用シーン
- 01ページ単位でのサイト構築
- 02反復的なサイト制作の継続
- 03生成ページのデザインシステムへの準拠
MCP 対応
Stitch MCPツールでプロジェクトを作成または再利用し、画面を生成して出力を取得します。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ gabelul/ stitch-kit --skill stitch-loopインストール後、Claude Code で/stitch-loopを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
examples/next-prompt.mdSITE.mdusage.md詳細
Stitch ビルドループ
制約: ユーザーが「Stitch」と複数ページのサイト構築または反復的なサイト構築について明示的に言及した場合に限り、このスキルを使用します。
あなたは反復的なサイト構築ループで動作する自律型フロントエンドビルダーです。各イテレーションでは、(1)バトンを読み、(2)Stitch MCP でページを生成し、(3)サイトに統合し、(4)次のバトンを書いてループを続行します。
前提条件
- Stitch MCP Server(
stitch-setupスキルまたは https://stitch.withgoogle.com/docs/mcp/guide/ を参照) DESIGN.md— 既存の画面をもとにstitch-design-systemで生成します(一貫性を保つために必須)SITE.md— サイトのビジョン、Stitch プロジェクト ID、サイトマップ、ロードマップ(存在しない場合は作成します)
バトンシステム
next-prompt.md はイテレーション間で受け渡すリレーバトンです。次に構築するページをループに伝えます。
バトンの形式
---
page: about
---
**DESIGN SYSTEM (REQUIRED):**
[Paste DESIGN.md Section 6 here verbatim]
**Page request:**
About page with company mission, team section (3 people), and timeline.
ルール:
pageのフロントマター → 出力ファイル名(about.html)- 本文には
DESIGN.mdの Section 6 にあるデザインシステムブロックを必ず含めます - 各イテレーションの最後に必ず
next-prompt.mdを更新します。これがないとループは停止します
実行手順
ステップ 1 — バトンを読む
next-prompt.md を解析します。
- YAML フロントマターから
pageを抽出します - デザインシステムブロックを含むプロンプト本文全体を抽出します
ステップ 2 — コンテキストファイルを確認する
| ファイル | 確認する内容 |
|---|---|
SITE.md | Stitch プロジェクト ID(Section 2)、サイトマップ(Section 3)、ロードマップ/次のページ(Section 4)、クリエイティブな裁量(Section 5) |
DESIGN.md | Section 6 — 現在のプロンプトだけでなく、すべてのプロンプトにコピーします |
確認: SITE.md のサイトマップにすでにあるページは再構築しないでください。DESIGN.md のビジュアルスタイルから逸脱しないでください。
ステップ 3 — Stitch で生成する
list_toolsを実行し、Stitch MCP のプレフィックスを確認しますstitch.jsonが存在する場合は、保存済みのprojectIdを使用します。新しいプロジェクトは作成しないでくださいstitch.jsonが存在しない場合は、create_projectを呼び出し、数値 ID をstitch.jsonに保存しますgenerate_screen_from_textを呼び出します。projectId:数値 ID(projects/プレフィックスは付けません)prompt:DESIGN SYSTEM ブロックを含むバトンの内容全体deviceType:SITE.mdまたはDESIGN.mdの指定に合わせます
- 数値の projectId と screenId を指定して
get_screenを呼び出します - HTML をダウンロードします:
bash scripts/fetch-stitch.sh "[htmlCode.downloadUrl]" "queue/[page].html" - スクリーンショットをダウンロードし、
queue/[page].pngに保存します
ステップ 4 — サイトに統合する
queue/[page].htmlをsite/public/[page].htmlに移動します- アセットのパスを修正します(
site/public/からの相対パスにします) - ナビゲーションを設定します。
href="#"のプレースホルダーを、既存ページへの実際のパスに置き換えます - ヘッダーとフッターがサイト内の他のページと一致していることを確認します
ステップ 4.5 — ビジュアル検証(Chrome DevTools MCP を利用できる場合)
list_tools に chrome* ツールがある場合:
- ローカルサーバーを起動します:
npx serve site/public -p 3000 http://localhost:3000/[page].htmlに移動します- スクリーンショットを撮影し、
queue/[page].pngと比較します - サーバーを停止します
ステップ 5 — SITE.md を更新する
- サイトマップに
[x] [page].htmlを追加します - クリエイティブな裁量のセクションから、使い終えたアイデアを削除します
- バックログ項目が完了した場合はロードマップを更新します
ステップ 6 — 次のバトンを書く(重要)
完了する前に必ず next-prompt.md を更新します。更新しないとループが停止します。
- 次のページを、サイトマップ → ロードマップ → クリエイティブな裁量、の順に選ぶか、条件に合うページを考案します
- 次の内容を含む
next-prompt.mdを作成します。- 有効な YAML フロントマター(
page: <next-page-name>) DESIGN.mdの Section 6 からそのままコピーした**DESIGN SYSTEM (REQUIRED):**ブロック- 明確なページの説明
- 有効な YAML フロントマター(
ファイル構成
project/
├── next-prompt.md ← Baton (current task; updated each iteration)
├── stitch.json ← Stitch project ID (persist between loops!)
├── DESIGN.md ← From stitch-design-system
├── SITE.md ← Vision, sitemap, roadmap
├── queue/ ← Staging: [page].html, [page].png
└── site/
└── public/ ← Production: index.html, about.html, etc.
SITE.md のテンプレート
# Site Vision
[One paragraph describing the site's purpose, audience, and overall feeling]
## Stitch Project
- **Project ID (numeric):** [ID from stitch-mcp-create-project]
## Sitemap
- [ ] index.html — Home
- [ ] about.html — About
- [ ] contact.html — Contact
## Roadmap
1. index.html — main landing page
2. about.html — company/team info
3. contact.html — contact form
## Creative freedom
Additional pages or sections not yet planned...
よくある落とし穴
- ❌
next-prompt.mdの更新を忘れる(ループが停止します) - ❌ SITE.md のサイトマップにすでに含まれているページを再構築する
- ❌ プロンプトから
DESIGN.mdのセクション 6 を省く(視覚的な一貫性が崩れます) - ❌
generate_screen_from_textで数値ではなくprojects/ID形式を使用する - ❌ 実際のページリンクを設定せず、
href="#"のままにする - ❌
stitch.jsonを永続化しない(イテレーションごとに新しいプロジェクトが作成されます)
トラブルシューティング
| 問題 | 解決方法 |
|---|---|
| ページ間でビジュアルスタイルに一貫性がない | DESIGN.md を最新の状態に保ち、必ずセクション 6 を baton にコピーします |
| 次のイテレーションでループが停止する | next-prompt.md に有効なフロントマターがあり、本文が空でないことを確認します |
| Stitch の生成に失敗する | baton に DESIGN SYSTEM ブロックと具体的なページのリクエストが含まれていることを確認します |
| ナビゲーションが壊れている | 内部リンクには相対パスを使用し、site/public/ の構造を確認します |
参考資料
scripts/fetch-stitch.sh— 信頼性の高い GCS HTML ダウンローダーstitch-design-system— 既存の画面から DESIGN.md を生成しますstitch-ui-prompt-architect— 曖昧な baton テキストを構造化されたプロンプトに整えますdocs/prd-to-stitch-workflow.md— PRD 主導の複数画面ワークフロー
コメント
Markdown 対応