[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GD0SYG64A268RWAF8PSK1Z":3,"skill-same:01M6GD0SYG64A268RWAF8PSK1Z":64},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":46,"ownerHtmlUrl":47,"ownerBlogUrl":6,"ownerDescription":48,"updatedAt":49,"install":50,"resources":63},"01M6GD0SYG64A268RWAF8PSK1Z","stitch-loop",null,"Teaches agents to iteratively build websites using Stitch with an autonomous baton-passing loop pattern","Sam-06060\u002Fjarvis-assistant","Sam-06060","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F208600848?v=4","01M6CRKT7C7FXD21V6HXF293S0","Samson Frank Ganta","01M6CRKTBEKYFD8YX5Z1GT99EE",6,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fstitch-loop\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30],"loop","stitch loop","stitch","chrome","Bash","read","write","autonomous","build","community","pattern","with","2026-11-10 10:12:30",false,"---\nname: stitch-loop\ndescription: Teaches agents to iteratively build websites using Stitch with an autonomous baton-passing loop pattern\nallowed-tools:\n  - \"stitch*:*\"\n  - \"chrome*:*\"\n  - \"Read\"\n  - \"Write\"\n  - \"Bash\"\nrisk: unknown\nsource: community\n---\n\n# Stitch Build Loop\n\nYou are an **autonomous frontend builder** participating in an iterative site-building loop. Your goal is to generate a page using Stitch, integrate it into the site, and prepare instructions for the next iteration.\n\n## When to Use\n\n- You are iteratively building a website with Stitch using a baton-based loop across runs or agents.\n- Each pass should read the next prompt, generate or integrate a page, and hand off the next task.\n- You need a disciplined autonomous loop for multi-step frontend site construction.\n\n## Overview\n\nThe Build Loop pattern enables continuous, autonomous website development through a \"baton\" system. Each iteration:\n1. Reads the current task from a baton file (`.stitch\u002Fnext-prompt.md`)\n2. Generates a page using Stitch MCP tools\n3. Integrates the page into the site structure\n4. Writes the next task to the baton file for the next iteration\n\n## Prerequisites\n\n**Required:**\n- Access to the Stitch MCP Server\n- A Stitch project (existing or will be created)\n- A `.stitch\u002FDESIGN.md` file (generate one using the `design-md` skill if needed)\n- A `.stitch\u002FSITE.md` file documenting the site vision and roadmap\n\n**Optional:**\n- Chrome DevTools MCP Server — enables visual verification of generated pages\n\n## The Baton System\n\nThe `.stitch\u002Fnext-prompt.md` file acts as a relay baton between iterations:\n\n```markdown\n---\npage: about\n---\nA page describing how jules.top tracking works.\n\n**DESIGN SYSTEM (REQUIRED):**\n[Copy from .stitch\u002FDESIGN.md Section 6]\n\n**Page Structure:**\n1. Header with navigation\n2. Explanation of tracking methodology\n3. Footer with links\n```\n\n**Critical rules:**\n- The `page` field in YAML frontmatter determines the output filename\n- The prompt content must include the design system block from `.stitch\u002FDESIGN.md`\n- You MUST update this file before completing your work to continue the loop\n\n## Execution Protocol\n\n### Step 1: Read the Baton\n\nParse `.stitch\u002Fnext-prompt.md` to extract:\n- **Page name** from the `page` frontmatter field\n- **Prompt content** from the markdown body\n\n### Step 2: Consult Context Files\n\nBefore generating, read these files:\n\n| File | Purpose |\n|------|---------|\n| `.stitch\u002FSITE.md` | Site vision, **Stitch Project ID**, existing pages (sitemap), roadmap |\n| `.stitch\u002FDESIGN.md` | Required visual style for Stitch prompts |\n\n**Important checks:**\n- Section 4 (Sitemap) — Do NOT recreate pages that already exist\n- Section 5 (Roadmap) — Pick tasks from here if backlog exists\n- Section 6 (Creative Freedom) — Ideas for new pages if roadmap is empty\n\n### Step 3: Generate with Stitch\n\nUse the Stitch MCP tools to generate the page:\n\n1. **Discover namespace**: Run `list_tools` to find the Stitch MCP prefix\n2. **Get or create project**: \n   - If `.stitch\u002Fmetadata.json` exists, use the `projectId` from it\n   - Otherwise, call `[prefix]:create_project`, then call `[prefix]:get_project` to retrieve full project details, and save them to `.stitch\u002Fmetadata.json` (see schema below)\n   - After generating each screen, call `[prefix]:get_project` again and update the `screens` map in `.stitch\u002Fmetadata.json` with each screen's full metadata (id, sourceScreen, dimensions, canvas position)\n3. **Generate screen**: Call `[prefix]:generate_screen_from_text` with:\n   - `projectId`: The project ID\n   - `prompt`: The full prompt from the baton (including design system block)\n   - `deviceType`: `DESKTOP` (or as specified)\n4. **Retrieve assets**: Before downloading, check if `.stitch\u002Fdesigns\u002F{page}.html` and `.stitch\u002Fdesigns\u002F{page}.png` already exist:\n   - **If files exist**: Ask the user whether to refresh the designs from the Stitch project or reuse the existing local files. Only re-download if the user confirms.\n   - **If files do not exist**: Proceed with download:\n     - `htmlCode.downloadUrl` — Download and save as `.stitch\u002Fdesigns\u002F{page}.html`\n      - `screenshot.downloadUrl` — Append `=w{width}` to the URL before downloading, where `{width}` is the `width` value from the screen metadata (Google CDN serves low-res thumbnails by default). Save as `.stitch\u002Fdesigns\u002F{page}.png`\n\n### Step 4: Integrate into Site\n\n1. Move generated HTML from `.stitch\u002Fdesigns\u002F{page}.html` to `site\u002Fpublic\u002F{page}.html`\n2. Fix any asset paths to be relative to the public folder\n3. Update navigation:\n   - Find existing placeholder links (e.g., `href=\"#\"`) and wire them to the new page\n   - Add the new page to the global navigation if appropriate\n4. Ensure consistent headers\u002Ffooters across all pages\n\n### Step 4.5: Visual Verification (Optional)\n\nIf the **Chrome DevTools MCP Server** is available, verify the generated page:\n\n1. **Check availability**: Run `list_tools` to see if `chrome*` tools are present\n2. **Start dev server**: Use Bash to start a local server (e.g., `npx serve site\u002Fpublic`)\n3. **Navigate to page**: Call `[chrome_prefix]:navigate` to open `http:\u002F\u002Flocalhost:3000\u002F{page}.html`\n4. **Capture screenshot**: Call `[chrome_prefix]:screenshot` to capture the rendered page\n5. **Visual comparison**: Compare against the Stitch screenshot (`.stitch\u002Fdesigns\u002F{page}.png`) for fidelity\n6. **Stop server**: Terminate the dev server process\n\n> **Note:** This step is optional. If Chrome DevTools MCP is not installed, skip to Step 5.\n\n### Step 5: Update Site Documentation\n\nModify `.stitch\u002FSITE.md`:\n- Add the new page to Section 4 (Sitemap) with `[x]`\n- Remove any idea you consumed from Section 6 (Creative Freedom)\n- Update Section 5 (Roadmap) if you completed a backlog item\n\n### Step 6: Prepare the Next Baton (Critical)\n\n**You MUST update `.stitch\u002Fnext-prompt.md` before completing.** This keeps the loop alive.\n\n1. **Decide the next page**: \n   - Check `.stitch\u002FSITE.md` Section 5 (Roadmap) for pending items\n   - If empty, pick from Section 6 (Creative Freedom)\n   - Or invent something new that fits the site vision\n2. **Write the baton** with proper YAML frontmatter:\n\n```markdown\n---\npage: achievements\n---\nA competitive achievements page showing developer badges and milestones.\n\n**DESIGN SYSTEM (REQUIRED):**\n[Copy the entire design system block from .stitch\u002FDESIGN.md]\n\n**Page Structure:**\n1. Header with title and navigation\n2. Badge grid showing unlocked\u002Flocked states\n3. Progress bars for milestone tracking\n```\n\n## File Structure Reference\n\n```\nproject\u002F\n├── .stitch\u002F\n│   ├── metadata.json   # Stitch project & screen IDs (persist this!)\n│   ├── DESIGN.md       # Visual design system (from design-md skill)\n│   ├── SITE.md         # Site vision, sitemap, roadmap\n│   ├── next-prompt.md  # The baton — current task\n│   └── designs\u002F        # Staging area for Stitch output\n│       ├── {page}.html\n│       └── {page}.png\n└── site\u002Fpublic\u002F        # Production pages\n    ├── index.html\n    └── {page}.html\n```\n\n### `.stitch\u002Fmetadata.json` Schema\n\nThis file persists all Stitch identifiers so future iterations can reference them for edits or variants. Populate it by calling `[prefix]:get_project` after creating a project or generating screens.\n\n```json\n{\n  \"name\": \"projects\u002F6139132077804554844\",\n  \"projectId\": \"6139132077804554844\",\n  \"title\": \"My App\",\n  \"visibility\": \"PRIVATE\",\n  \"createTime\": \"2026-03-04T23:11:25.514932Z\",\n  \"updateTime\": \"2026-03-04T23:34:40.400007Z\",\n  \"projectType\": \"PROJECT_DESIGN\",\n  \"origin\": \"STITCH\",\n  \"deviceType\": \"MOBILE\",\n  \"designTheme\": {\n    \"colorMode\": \"DARK\",\n    \"font\": \"INTER\",\n    \"roundness\": \"ROUND_EIGHT\",\n    \"customColor\": \"#40baf7\",\n    \"saturation\": 3\n  },\n  \"screens\": {\n    \"index\": {\n      \"id\": \"d7237c7d78f44befa4f60afb17c818c1\",\n      \"sourceScreen\": \"projects\u002F6139132077804554844\u002Fscreens\u002Fd7237c7d78f44befa4f60afb17c818c1\",\n      \"x\": 0,\n      \"y\": 0,\n      \"width\": 390,\n      \"height\": 1249\n    },\n    \"about\": {\n      \"id\": \"bf6a3fe5c75348e58cf21fc7a9ddeafb\",\n      \"sourceScreen\": \"projects\u002F6139132077804554844\u002Fscreens\u002Fbf6a3fe5c75348e58cf21fc7a9ddeafb\",\n      \"x\": 549,\n      \"y\": 0,\n      \"width\": 390,\n      \"height\": 1159\n    }\n  },\n  \"metadata\": {\n    \"userRole\": \"OWNER\"\n  }\n}\n```\n\n| Field | Description |\n|-------|-------------|\n| `name` | Full resource name (`projects\u002F{id}`) |\n| `projectId` | Stitch project ID (from `create_project` or `get_project`) |\n| `title` | Human-readable project title |\n| `designTheme` | Design system tokens: color mode, font, roundness, custom color, saturation |\n| `deviceType` | Target device: `MOBILE`, `DESKTOP`, `TABLET` |\n| `screens` | Map of page name → screen object. Each screen includes `id`, `sourceScreen` (resource path for MCP calls), canvas position (`x`, `y`), and dimensions (`width`, `height`) |\n| `metadata.userRole` | User's role on the project (`OWNER`, `EDITOR`, `VIEWER`) |\n\n## Orchestration Options\n\nThe loop can be driven by different orchestration layers:\n\n| Method | How it works |\n|--------|--------------|\n| **CI\u002FCD** | GitHub Actions triggers on `.stitch\u002Fnext-prompt.md` changes |\n| **Human-in-loop** | Developer reviews each iteration before continuing |\n| **Agent chains** | One agent dispatches to another (e.g., Jules API) |\n| **Manual** | Developer runs the agent repeatedly with the same repo |\n\nThe skill is orchestration-agnostic — focus on the pattern, not the trigger mechanism.\n\n## Design System Integration\n\nThis skill works best with the `design-md` skill:\n\n1. **First time setup**: Generate `.stitch\u002FDESIGN.md` using the `design-md` skill from an existing Stitch screen\n2. **Every iteration**: Copy Section 6 (\"Design System Notes for Stitch Generation\") into your baton prompt\n3. **Consistency**: All generated pages will share the same visual language\n\n## Common Pitfalls\n\n- ❌ Forgetting to update `.stitch\u002Fnext-prompt.md` (breaks the loop)\n- ❌ Recreating a page that already exists in the sitemap\n- ❌ Not including the design system block from `.stitch\u002FDESIGN.md` in the prompt\n- ❌ Leaving placeholder links (`href=\"#\"`) instead of wiring real navigation\n- ❌ Forgetting to persist `.stitch\u002Fmetadata.json` after creating a new project\n\n## Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| Stitch generation fails | Check that the prompt includes the design system block |\n| Inconsistent styles | Ensure `.stitch\u002FDESIGN.md` is up-to-date and copied correctly |\n| Loop stalls | Verify `.stitch\u002Fnext-prompt.md` was updated with valid frontmatter |\n| Navigation broken | Check all internal links use correct relative paths |\n","# Stitch Build Loop\n\nYou are an **autonomous frontend builder** participating in an iterative site-building loop. Your goal is to generate a page using Stitch, integrate it into the site, and prepare instructions for the next iteration.\n\n## When to Use\n\n- You are iteratively building a website with Stitch using a baton-based loop across runs or agents.\n- Each pass should read the next prompt, generate or integrate a page, and hand off the next task.\n- You need a disciplined autonomous loop for multi-step frontend site construction.\n\n## Overview\n\nThe Build Loop pattern enables continuous, autonomous website development through a \"baton\" system. Each iteration:\n1. Reads the current task from a baton file (`.stitch\u002Fnext-prompt.md`)\n2. Generates a page using Stitch MCP tools\n3. Integrates the page into the site structure\n4. Writes the next task to the baton file for the next iteration\n\n## Prerequisites\n\n**Required:**\n- Access to the Stitch MCP Server\n- A Stitch project (existing or will be created)\n- A `.stitch\u002FDESIGN.md` file (generate one using the `design-md` skill if needed)\n- A `.stitch\u002FSITE.md` file documenting the site vision and roadmap\n\n**Optional:**\n- Chrome DevTools MCP Server — enables visual verification of generated pages\n\n## The Baton System\n\nThe `.stitch\u002Fnext-prompt.md` file acts as a relay baton between iterations:\n\n```markdown\n---\npage: about\n---\nA page describing how jules.top tracking works.\n\n**DESIGN SYSTEM (REQUIRED):**\n[Copy from .stitch\u002FDESIGN.md Section 6]\n\n**Page Structure:**\n1. Header with navigation\n2. Explanation of tracking methodology\n3. Footer with links\n```\n\n**Critical rules:**\n- The `page` field in YAML frontmatter determines the output filename\n- The prompt content must include the design system block from `.stitch\u002FDESIGN.md`\n- You MUST update this file before completing your work to continue the loop\n\n## Execution Protocol\n\n### Step 1: Read the Baton\n\nParse `.stitch\u002Fnext-prompt.md` to extract:\n- **Page name** from the `page` frontmatter field\n- **Prompt content** from the markdown body\n\n### Step 2: Consult Context Files\n\nBefore generating, read these files:\n\n| File | Purpose |\n|------|---------|\n| `.stitch\u002FSITE.md` | Site vision, **Stitch Project ID**, existing pages (sitemap), roadmap |\n| `.stitch\u002FDESIGN.md` | Required visual style for Stitch prompts |\n\n**Important checks:**\n- Section 4 (Sitemap) — Do NOT recreate pages that already exist\n- Section 5 (Roadmap) — Pick tasks from here if backlog exists\n- Section 6 (Creative Freedom) — Ideas for new pages if roadmap is empty\n\n### Step 3: Generate with Stitch\n\nUse the Stitch MCP tools to generate the page:\n\n1. **Discover namespace**: Run `list_tools` to find the Stitch MCP prefix\n2. **Get or create project**: \n   - If `.stitch\u002Fmetadata.json` exists, use the `projectId` from it\n   - Otherwise, call `[prefix]:create_project`, then call `[prefix]:get_project` to retrieve full project details, and save them to `.stitch\u002Fmetadata.json` (see schema below)\n   - After generating each screen, call `[prefix]:get_project` again and update the `screens` map in `.stitch\u002Fmetadata.json` with each screen's full metadata (id, sourceScreen, dimensions, canvas position)\n3. **Generate screen**: Call `[prefix]:generate_screen_from_text` with:\n   - `projectId`: The project ID\n   - `prompt`: The full prompt from the baton (including design system block)\n   - `deviceType`: `DESKTOP` (or as specified)\n4. **Retrieve assets**: Before downloading, check if `.stitch\u002Fdesigns\u002F{page}.html` and `.stitch\u002Fdesigns\u002F{page}.png` already exist:\n   - **If files exist**: Ask the user whether to refresh the designs from the Stitch project or reuse the existing local files. Only re-download if the user confirms.\n   - **If files do not exist**: Proceed with download:\n     - `htmlCode.downloadUrl` — Download and save as `.stitch\u002Fdesigns\u002F{page}.html`\n      - `screenshot.downloadUrl` — Append `=w{width}` to the URL before downloading, where `{width}` is the `width` value from the screen metadata (Google CDN serves low-res thumbnails by default). Save as `.stitch\u002Fdesigns\u002F{page}.png`\n\n### Step 4: Integrate into Site\n\n1. Move generated HTML from `.stitch\u002Fdesigns\u002F{page}.html` to `site\u002Fpublic\u002F{page}.html`\n2. Fix any asset paths to be relative to the public folder\n3. Update navigation:\n   - Find existing placeholder links (e.g., `href=\"#\"`) and wire them to the new page\n   - Add the new page to the global navigation if appropriate\n4. Ensure consistent headers\u002Ffooters across all pages\n\n### Step 4.5: Visual Verification (Optional)\n\nIf the **Chrome DevTools MCP Server** is available, verify the generated page:\n\n1. **Check availability**: Run `list_tools` to see if `chrome*` tools are present\n2. **Start dev server**: Use Bash to start a local server (e.g., `npx serve site\u002Fpublic`)\n3. **Navigate to page**: Call `[chrome_prefix]:navigate` to open `http:\u002F\u002Flocalhost:3000\u002F{page}.html`\n4. **Capture screenshot**: Call `[chrome_prefix]:screenshot` to capture the rendered page\n5. **Visual comparison**: Compare against the Stitch screenshot (`.stitch\u002Fdesigns\u002F{page}.png`) for fidelity\n6. **Stop server**: Terminate the dev server process\n\n> **Note:** This step is optional. If Chrome DevTools MCP is not installed, skip to Step 5.\n\n### Step 5: Update Site Documentation\n\nModify `.stitch\u002FSITE.md`:\n- Add the new page to Section 4 (Sitemap) with `[x]`\n- Remove any idea you consumed from Section 6 (Creative Freedom)\n- Update Section 5 (Roadmap) if you completed a backlog item\n\n### Step 6: Prepare the Next Baton (Critical)\n\n**You MUST update `.stitch\u002Fnext-prompt.md` before completing.** This keeps the loop alive.\n\n1. **Decide the next page**: \n   - Check `.stitch\u002FSITE.md` Section 5 (Roadmap) for pending items\n   - If empty, pick from Section 6 (Creative Freedom)\n   - Or invent something new that fits the site vision\n2. **Write the baton** with proper YAML frontmatter:\n\n```markdown\n---\npage: achievements\n---\nA competitive achievements page showing developer badges and milestones.\n\n**DESIGN SYSTEM (REQUIRED):**\n[Copy the entire design system block from .stitch\u002FDESIGN.md]\n\n**Page Structure:**\n1. Header with title and navigation\n2. Badge grid showing unlocked\u002Flocked states\n3. Progress bars for milestone tracking\n```\n\n## File Structure Reference\n\n```\nproject\u002F\n├── .stitch\u002F\n│   ├── metadata.json   # Stitch project & screen IDs (persist this!)\n│   ├── DESIGN.md       # Visual design system (from design-md skill)\n│   ├── SITE.md         # Site vision, sitemap, roadmap\n│   ├── next-prompt.md  # The baton — current task\n│   └── designs\u002F        # Staging area for Stitch output\n│       ├── {page}.html\n│       └── {page}.png\n└── site\u002Fpublic\u002F        # Production pages\n    ├── index.html\n    └── {page}.html\n```\n\n### `.stitch\u002Fmetadata.json` Schema\n\nThis file persists all Stitch identifiers so future iterations can reference them for edits or variants. Populate it by calling `[prefix]:get_project` after creating a project or generating screens.\n\n```json\n{\n  \"name\": \"projects\u002F6139132077804554844\",\n  \"projectId\": \"6139132077804554844\",\n  \"title\": \"My App\",\n  \"visibility\": \"PRIVATE\",\n  \"createTime\": \"2026-03-04T23:11:25.514932Z\",\n  \"updateTime\": \"2026-03-04T23:34:40.400007Z\",\n  \"projectType\": \"PROJECT_DESIGN\",\n  \"origin\": \"STITCH\",\n  \"deviceType\": \"MOBILE\",\n  \"designTheme\": {\n    \"colorMode\": \"DARK\",\n    \"font\": \"INTER\",\n    \"roundness\": \"ROUND_EIGHT\",\n    \"customColor\": \"#40baf7\",\n    \"saturation\": 3\n  },\n  \"screens\": {\n    \"index\": {\n      \"id\": \"d7237c7d78f44befa4f60afb17c818c1\",\n      \"sourceScreen\": \"projects\u002F6139132077804554844\u002Fscreens\u002Fd7237c7d78f44befa4f60afb17c818c1\",\n      \"x\": 0,\n      \"y\": 0,\n      \"width\": 390,\n      \"height\": 1249\n    },\n    \"about\": {\n      \"id\": \"bf6a3fe5c75348e58cf21fc7a9ddeafb\",\n      \"sourceScreen\": \"projects\u002F6139132077804554844\u002Fscreens\u002Fbf6a3fe5c75348e58cf21fc7a9ddeafb\",\n      \"x\": 549,\n      \"y\": 0,\n      \"width\": 390,\n      \"height\": 1159\n    }\n  },\n  \"metadata\": {\n    \"userRole\": \"OWNER\"\n  }\n}\n```\n\n| Field | Description |\n|-------|-------------|\n| `name` | Full resource name (`projects\u002F{id}`) |\n| `projectId` | Stitch project ID (from `create_project` or `get_project`) |\n| `title` | Human-readable project title |\n| `designTheme` | Design system tokens: color mode, font, roundness, custom color, saturation |\n| `deviceType` | Target device: `MOBILE`, `DESKTOP`, `TABLET` |\n| `screens` | Map of page name → screen object. Each screen includes `id`, `sourceScreen` (resource path for MCP calls), canvas position (`x`, `y`), and dimensions (`width`, `height`) |\n| `metadata.userRole` | User's role on the project (`OWNER`, `EDITOR`, `VIEWER`) |\n\n## Orchestration Options\n\nThe loop can be driven by different orchestration layers:\n\n| Method | How it works |\n|--------|--------------|\n| **CI\u002FCD** | GitHub Actions triggers on `.stitch\u002Fnext-prompt.md` changes |\n| **Human-in-loop** | Developer reviews each iteration before continuing |\n| **Agent chains** | One agent dispatches to another (e.g., Jules API) |\n| **Manual** | Developer runs the agent repeatedly with the same repo |\n\nThe skill is orchestration-agnostic — focus on the pattern, not the trigger mechanism.\n\n## Design System Integration\n\nThis skill works best with the `design-md` skill:\n\n1. **First time setup**: Generate `.stitch\u002FDESIGN.md` using the `design-md` skill from an existing Stitch screen\n2. **Every iteration**: Copy Section 6 (\"Design System Notes for Stitch Generation\") into your baton prompt\n3. **Consistency**: All generated pages will share the same visual language\n\n## Common Pitfalls\n\n- ❌ Forgetting to update `.stitch\u002Fnext-prompt.md` (breaks the loop)\n- ❌ Recreating a page that already exists in the sitemap\n- ❌ Not including the design system block from `.stitch\u002FDESIGN.md` in the prompt\n- ❌ Leaving placeholder links (`href=\"#\"`) instead of wiring real navigation\n- ❌ Forgetting to persist `.stitch\u002Fmetadata.json` after creating a new project\n\n## Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| Stitch generation fails | Check that the prompt includes the design system block |\n| Inconsistent styles | Ensure `.stitch\u002FDESIGN.md` is up-to-date and copied correctly |\n| Loop stalls | Verify `.stitch\u002Fnext-prompt.md` was updated with valid frontmatter |\n| Navigation broken | Check all internal links use correct relative paths |\n",{"name":5,"risk":36,"source":28,"description":7,"allowed-tools":37},"unknown",[38,39,40,41,23],"stitch*:*","chrome*:*","Read","Write","main","a50a3aa6b39fb0e1b7db88bef1bfc9c93606e126","modules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fstitch-loop",0,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant","https:\u002F\u002Fgithub.com\u002FSam-06060","Mobile Application Developer | Kotlin | Flutter, KMP, Swfit, Android,Swift UI | Building at Saar It Resources | Creator of Jarvis (AI Assistant)","2026-06-23 05:13:38",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add Sam-06060\u002Fjarvis-assistant --skill stitch-loop",{"tool":56,"command":57},"bunx","bunx skills add Sam-06060\u002Fjarvis-assistant --skill stitch-loop",{"tool":59,"command":60},"pnpm","pnpm dlx skills add Sam-06060\u002Fjarvis-assistant --skill stitch-loop","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fstitch-loop\u002FSKILL.md",true,[],[65,78,93,120,139,166],{"skillNo":66,"name":67,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":75,"publishedAt":31},"01M6GDRVS6FXX3ESH0C9DW01C0","test_skill","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fscratch\u002Ftest_skill\u002FSKILL.md",[70],{"categoryNo":71,"categoryName":72,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[76,77],"Test Skill","test",{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":31},"01M6GDRQ40HX22MA6XWC31RHHK","zustand-store-ts","Create Zustand stores following established patterns with proper TypeScript types and middleware.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzustand-store-ts\u002FSKILL.md",[],[85,86,87,30,88,89,90,28,91,92],"zustand store ts","zustand","store","types","middleware","patterns","create","typescript",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":102,"publishedAt":31},"01M6GDRKEA0WE670SPFWX5GKCN","zoom-automation","Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoom-automation\u002FSKILL.md",[99],{"categoryNo":100,"categoryName":101,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000023","Skill与智能体开发",[103,104,105,106,107,108,109,110,111,112,113,114,115,116,28,117,118,119],"automation","zoom automation","zoom","first","Tools","search","MCP","via","meeting","automate","critical","creation","webinars","composio","recordings","management","tracking",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":127,"publishedAt":31},"01M6GDRFS1452PC71JQ38S24HR","zoho-crm-automation","Automate Zoho CRM tasks via Rube MCP (Composio): create\u002Fupdate records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoho-crm-automation\u002FSKILL.md",[126],{"categoryNo":100,"categoryName":101,"taxonomyType":73,"taxonomyTypeDesc":74},[128,103,129,130,131,132,133,28,108,134,116,135,113,112,107,136,91,137,109,138],"crm automation","zoho crm","crm","zoho crm automation","zoho","leads","contacts","records","update","tasks","manage",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":148,"publishedAt":31},"01M6GDRCKQBAVTGHX5XBH26KPZ","zod-validation-expert","Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzod-validation-expert\u002FSKILL.md",[145],{"categoryNo":146,"categoryName":147,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000009","前端开发",[149,150,151,152,153,92,154,155,156,157,158,159,30,160,161,162,163,28,164,165],"expert","zod","zod validation expert","validation","react","safe","parsing","errors","schema validation","react hook form","hook","trpc","form","type","next","schema","Next.js",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":173,"publishedAt":31},"01M6GDR658B08K4MY0RWD4A6EH","zeroize-audit","Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C\u002FC++\u002FRust code handling secrets, keys, passwords, or other sensitive data.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzeroize-audit\u002FSKILL.md",[172],{"categoryNo":100,"categoryName":101,"taxonomyType":73,"taxonomyTypeDesc":74},[174,175,25,176,177,178,179,180,28,181,24,23,182,183,184,185,186,187,188,109],"zeroize audit","audit","passwords","get","project","c++","activate","assembly","secrets","analysis","data","flow","verification","code","rust"]