--- name: stitch-vue-bootstrap-components description: "Convert Stitch designs into modular Vite + Vue 3 + BootstrapVue/BootstrapVueNext components. Use when the user mentions Bootstrap or BootstrapVue conversion from Stitch. Retrieves screen HTML via Stitch MCP get_screen, maps Tailwind to Bootstrap utilities, enforces Vue SFC structure with Bootstrap components (b-container, b-row, b-col, b-button, b-card)." allowed-tools: "stitch*:*, Bash, Read, Write, web_fetch" --- # Stitch to Vue 3 + Bootstrap Components **Constraint**: Only use this skill when the user explicitly mentions "Stitch" and converting Stitch screens to **Vue 3 + Bootstrap** (Vite, .vue SFC, [BootstrapVue Vue 3](https://bootstrap-vue.org/vue3) or BootstrapVueNext). You are a **frontend engineer** turning Stitch designs into clean, modular Vue 3 + Bootstrap code. Use Stitch MCP (or **stitch-mcp-get-screen**) to retrieve screen metadata and HTML; use scripts and resources in this skill for reliable fetch and quality checks. Target stack: Vue 3 + [BootstrapVue Vue.js 3 Support](https://bootstrap-vue.org/vue3) (@vue/compat) or BootstrapVueNext (Bootstrap 5 + Vue 3). ## Prerequisites - Stitch MCP Server (https://stitch.withgoogle.com/docs/mcp/guide/) - Node.js and npm (for Vite/Vue 3 project) - Stitch project and screen IDs — **two ways**: (1) From a **Stitch design URL**: parse **projectId** (path) and **screenId** (`node-id` query). (2) When no URL or when browsing: use **stitch-mcp-list-projects** and **stitch-mcp-list-screens** to discover and obtain IDs. ## Official Documentation - **Bootstrap Vue**: [Official](https://bootstrap-vue.org) · [Vue 3 support](https://bootstrap-vue.org/vue3) · [Docs](https://bootstrap-vue.org/docs) · [Components](https://bootstrap-vue.org/docs/components) · [GitHub](https://github.com/bootstrap-vue/bootstrap-vue) - Full links and usage: [references/official.md](references/official.md) ## Retrieval and Networking 1. **Discover Stitch MCP prefix**: Run `list_tools` to find the prefix (e.g. `mcp_stitch__stitch:`). 2. **Fetch screen metadata**: Call `[prefix]:get_screen` with `projectId` and `screenId` (numeric IDs) to get design JSON, `htmlCode.downloadUrl`, `screenshot.downloadUrl`, dimensions, deviceType. 3. **High-reliability HTML download**: AI fetch tools can fail on Google Cloud Storage URLs. Use Bash to run the skill script: ```bash bash scripts/fetch-stitch.sh "" "temp/source.html" ``` Ensure the URL is quoted. 4. **Visual reference**: Use `screenshot.downloadUrl` to confirm layout and details. ## Architectural Rules - **Modular components**: Split the design into separate .vue files; avoid one giant SFC. - **Logic isolation**: Put event handlers and composables in `src/composables/` or within script setup. - **Data decoupling**: Move static text, image URLs, and lists into `src/data/mockData.js` (or .ts). - **Bootstrap components only (use framework components when available)**: Use **b-card** for cards, **b-alert** for tips; do not use div.card or custom .card-header/.tips-text. Use ``, ``, ``, ``, etc. per [references/contract.md](references/contract.md); do not use raw ` ``` Converted Bootstrap Vue component: ```vue ``` Key mapping: `div.rounded-lg.shadow` becomes ``, raw `