@techwavedev/agi-agent-kit 1.1.3 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +72 -0
- package/LICENSE +201 -0
- package/package.json +1 -1
- package/templates/base/skill-creator/LICENSE.txt +0 -0
- package/templates/base/skill-creator/SKILL_skillcreator.md +36 -23
- package/templates/base/skill-creator/references/output-patterns.md +0 -0
- package/templates/base/skill-creator/references/workflows.md +0 -0
- package/templates/base/skill-creator/scripts/init_skill.py +135 -18
- package/templates/base/skill-creator/scripts/package_skill.py +0 -0
- package/templates/base/skill-creator/scripts/quick_validate.py +0 -0
- package/templates/skills/core/documentation/SKILL.md +0 -0
- package/templates/skills/core/documentation/references/best_practices.md +0 -0
- package/templates/skills/core/documentation/scripts/analyze_code.py +0 -0
- package/templates/skills/core/documentation/scripts/detect_changes.py +0 -0
- package/templates/skills/core/documentation/scripts/generate_changelog.py +0 -0
- package/templates/skills/core/documentation/scripts/sync_docs.py +0 -0
- package/templates/skills/core/documentation/scripts/update_skill_docs.py +0 -0
- package/templates/skills/core/pdf-reader/SKILL.md +0 -0
- package/templates/skills/core/pdf-reader/references/pdf_libraries.md +0 -0
- package/templates/skills/core/pdf-reader/scripts/extract_text.py +0 -0
- package/templates/skills/core/qdrant-memory/SKILL.md +0 -0
- package/templates/skills/core/qdrant-memory/references/advanced_patterns.md +0 -0
- package/templates/skills/core/qdrant-memory/references/collection_schemas.md +0 -0
- package/templates/skills/core/qdrant-memory/references/complete_guide.md +0 -0
- package/templates/skills/core/qdrant-memory/references/embedding_models.md +0 -0
- package/templates/skills/core/qdrant-memory/scripts/__pycache__/embedding_utils.cpython-314.pyc +0 -0
- package/templates/skills/core/qdrant-memory/scripts/__pycache__/init_collection.cpython-314.pyc +0 -0
- package/templates/skills/core/qdrant-memory/scripts/benchmark_token_savings.py +0 -0
- package/templates/skills/core/qdrant-memory/scripts/embedding_utils.py +0 -0
- package/templates/skills/core/qdrant-memory/scripts/hybrid_search.py +0 -0
- package/templates/skills/core/qdrant-memory/scripts/init_collection.py +0 -0
- package/templates/skills/core/qdrant-memory/scripts/memory_retrieval.py +0 -0
- package/templates/skills/core/qdrant-memory/scripts/semantic_cache.py +0 -0
- package/templates/skills/core/qdrant-memory/scripts/test_skill.py +0 -0
- package/templates/skills/core/webcrawler/references/advanced_crawling.md +0 -0
- package/templates/skills/core/webcrawler/scripts/crawl_docs.py +0 -0
- package/templates/skills/core/webcrawler/scripts/extract_page.py +0 -0
- package/templates/skills/core/webcrawler/scripts/filter_docs.py +0 -0
- package/templates/skills/design-md/README.md +34 -0
- package/templates/skills/design-md/SKILL.md +193 -0
- package/templates/skills/design-md/examples/DESIGN.md +154 -0
- package/templates/skills/knowledge/SKILLS_CATALOG.md +796 -0
- package/templates/skills/knowledge/api-patterns/SKILL.md +0 -0
- package/templates/skills/knowledge/api-patterns/api-style.md +0 -0
- package/templates/skills/knowledge/api-patterns/auth.md +0 -0
- package/templates/skills/knowledge/api-patterns/documentation.md +0 -0
- package/templates/skills/knowledge/api-patterns/graphql.md +0 -0
- package/templates/skills/knowledge/api-patterns/rate-limiting.md +0 -0
- package/templates/skills/knowledge/api-patterns/response.md +0 -0
- package/templates/skills/knowledge/api-patterns/rest.md +0 -0
- package/templates/skills/knowledge/api-patterns/scripts/api_validator.py +0 -0
- package/templates/skills/knowledge/api-patterns/security-testing.md +0 -0
- package/templates/skills/knowledge/api-patterns/trpc.md +0 -0
- package/templates/skills/knowledge/api-patterns/versioning.md +0 -0
- package/templates/skills/knowledge/app-builder/SKILL.md +0 -0
- package/templates/skills/knowledge/app-builder/agent-coordination.md +0 -0
- package/templates/skills/knowledge/app-builder/feature-building.md +0 -0
- package/templates/skills/knowledge/app-builder/project-detection.md +0 -0
- package/templates/skills/knowledge/app-builder/scaffolding.md +0 -0
- package/templates/skills/knowledge/app-builder/tech-stack.md +0 -0
- package/templates/skills/knowledge/app-builder/templates/SKILL.md +0 -0
- package/templates/skills/knowledge/app-builder/templates/astro-static/TEMPLATE.md +0 -0
- package/templates/skills/knowledge/app-builder/templates/chrome-extension/TEMPLATE.md +0 -0
- package/templates/skills/knowledge/app-builder/templates/cli-tool/TEMPLATE.md +0 -0
- package/templates/skills/knowledge/app-builder/templates/electron-desktop/TEMPLATE.md +0 -0
- package/templates/skills/knowledge/app-builder/templates/express-api/TEMPLATE.md +0 -0
- package/templates/skills/knowledge/app-builder/templates/flutter-app/TEMPLATE.md +0 -0
- package/templates/skills/knowledge/app-builder/templates/monorepo-turborepo/TEMPLATE.md +0 -0
- package/templates/skills/knowledge/app-builder/templates/nextjs-fullstack/TEMPLATE.md +0 -0
- package/templates/skills/knowledge/app-builder/templates/nextjs-saas/TEMPLATE.md +0 -0
- package/templates/skills/knowledge/app-builder/templates/nextjs-static/TEMPLATE.md +0 -0
- package/templates/skills/knowledge/app-builder/templates/nuxt-app/TEMPLATE.md +0 -0
- package/templates/skills/knowledge/app-builder/templates/python-fastapi/TEMPLATE.md +0 -0
- package/templates/skills/knowledge/app-builder/templates/react-native-app/TEMPLATE.md +0 -0
- package/templates/skills/knowledge/architecture/SKILL.md +0 -0
- package/templates/skills/knowledge/architecture/context-discovery.md +0 -0
- package/templates/skills/knowledge/architecture/examples.md +0 -0
- package/templates/skills/knowledge/architecture/pattern-selection.md +0 -0
- package/templates/skills/knowledge/architecture/patterns-reference.md +0 -0
- package/templates/skills/knowledge/architecture/trade-off-analysis.md +0 -0
- package/templates/skills/knowledge/bash-linux/SKILL.md +0 -0
- package/templates/skills/knowledge/behavioral-modes/SKILL.md +0 -0
- package/templates/skills/knowledge/brainstorming/SKILL.md +0 -0
- package/templates/skills/knowledge/brainstorming/dynamic-questioning.md +0 -0
- package/templates/skills/knowledge/clean-code/SKILL.md +0 -0
- package/templates/skills/knowledge/code-review-checklist/SKILL.md +0 -0
- package/templates/skills/knowledge/database-design/SKILL.md +0 -0
- package/templates/skills/knowledge/database-design/database-selection.md +0 -0
- package/templates/skills/knowledge/database-design/indexing.md +0 -0
- package/templates/skills/knowledge/database-design/migrations.md +0 -0
- package/templates/skills/knowledge/database-design/optimization.md +0 -0
- package/templates/skills/knowledge/database-design/orm-selection.md +0 -0
- package/templates/skills/knowledge/database-design/schema-design.md +0 -0
- package/templates/skills/knowledge/database-design/scripts/schema_validator.py +0 -0
- package/templates/skills/knowledge/deployment-procedures/SKILL.md +0 -0
- package/templates/skills/knowledge/design-md/README.md +34 -0
- package/templates/skills/knowledge/design-md/SKILL.md +193 -0
- package/templates/skills/knowledge/design-md/examples/DESIGN.md +154 -0
- package/templates/skills/knowledge/documentation-templates/SKILL.md +0 -0
- package/templates/skills/knowledge/frontend-design/SKILL.md +0 -0
- package/templates/skills/knowledge/frontend-design/animation-guide.md +0 -0
- package/templates/skills/knowledge/frontend-design/color-system.md +0 -0
- package/templates/skills/knowledge/frontend-design/decision-trees.md +0 -0
- package/templates/skills/knowledge/frontend-design/motion-graphics.md +0 -0
- package/templates/skills/knowledge/frontend-design/scripts/accessibility_checker.py +0 -0
- package/templates/skills/knowledge/frontend-design/scripts/ux_audit.py +0 -0
- package/templates/skills/knowledge/frontend-design/typography-system.md +0 -0
- package/templates/skills/knowledge/frontend-design/ux-psychology.md +0 -0
- package/templates/skills/knowledge/frontend-design/visual-effects.md +0 -0
- package/templates/skills/knowledge/game-development/2d-games/SKILL.md +0 -0
- package/templates/skills/knowledge/game-development/3d-games/SKILL.md +0 -0
- package/templates/skills/knowledge/game-development/SKILL.md +0 -0
- package/templates/skills/knowledge/game-development/game-art/SKILL.md +0 -0
- package/templates/skills/knowledge/game-development/game-audio/SKILL.md +0 -0
- package/templates/skills/knowledge/game-development/game-design/SKILL.md +0 -0
- package/templates/skills/knowledge/game-development/mobile-games/SKILL.md +0 -0
- package/templates/skills/knowledge/game-development/multiplayer/SKILL.md +0 -0
- package/templates/skills/knowledge/game-development/pc-games/SKILL.md +0 -0
- package/templates/skills/knowledge/game-development/vr-ar/SKILL.md +0 -0
- package/templates/skills/knowledge/game-development/web-games/SKILL.md +0 -0
- package/templates/skills/knowledge/geo-fundamentals/SKILL.md +0 -0
- package/templates/skills/knowledge/geo-fundamentals/scripts/geo_checker.py +0 -0
- package/templates/skills/knowledge/i18n-localization/SKILL.md +0 -0
- package/templates/skills/knowledge/i18n-localization/scripts/i18n_checker.py +0 -0
- package/templates/skills/knowledge/intelligent-routing/SKILL.md +0 -0
- package/templates/skills/knowledge/jira/scripts/__pycache__/jira_client.cpython-314.pyc +0 -0
- package/templates/skills/knowledge/lint-and-validate/SKILL.md +0 -0
- package/templates/skills/knowledge/lint-and-validate/scripts/lint_runner.py +0 -0
- package/templates/skills/knowledge/lint-and-validate/scripts/type_coverage.py +0 -0
- package/templates/skills/knowledge/mcp-builder/SKILL.md +0 -0
- package/templates/skills/knowledge/mobile-design/SKILL.md +0 -0
- package/templates/skills/knowledge/mobile-design/decision-trees.md +0 -0
- package/templates/skills/knowledge/mobile-design/mobile-backend.md +0 -0
- package/templates/skills/knowledge/mobile-design/mobile-color-system.md +0 -0
- package/templates/skills/knowledge/mobile-design/mobile-debugging.md +0 -0
- package/templates/skills/knowledge/mobile-design/mobile-design-thinking.md +0 -0
- package/templates/skills/knowledge/mobile-design/mobile-navigation.md +0 -0
- package/templates/skills/knowledge/mobile-design/mobile-performance.md +0 -0
- package/templates/skills/knowledge/mobile-design/mobile-testing.md +0 -0
- package/templates/skills/knowledge/mobile-design/mobile-typography.md +0 -0
- package/templates/skills/knowledge/mobile-design/platform-android.md +0 -0
- package/templates/skills/knowledge/mobile-design/platform-ios.md +0 -0
- package/templates/skills/knowledge/mobile-design/scripts/mobile_audit.py +0 -0
- package/templates/skills/knowledge/mobile-design/touch-psychology.md +0 -0
- package/templates/skills/knowledge/nextjs-best-practices/SKILL.md +0 -0
- package/templates/skills/knowledge/nodejs-best-practices/SKILL.md +0 -0
- package/templates/skills/knowledge/notebooklm-mcp/SKILL.md +71 -0
- package/templates/skills/knowledge/notebooklm-mcp/assets/example_asset.txt +24 -0
- package/templates/skills/knowledge/notebooklm-mcp/references/api_reference.md +34 -0
- package/templates/skills/knowledge/notebooklm-mcp/scripts/example.py +19 -0
- package/templates/skills/knowledge/parallel-agents/SKILL.md +0 -0
- package/templates/skills/knowledge/performance-profiling/SKILL.md +0 -0
- package/templates/skills/knowledge/performance-profiling/scripts/lighthouse_audit.py +0 -0
- package/templates/skills/knowledge/plan-writing/SKILL.md +0 -0
- package/templates/skills/knowledge/powershell-windows/SKILL.md +0 -0
- package/templates/skills/knowledge/python-patterns/SKILL.md +0 -0
- package/templates/skills/knowledge/react-components/README.md +36 -0
- package/templates/skills/knowledge/react-components/SKILL.md +53 -0
- package/templates/skills/knowledge/react-components/examples/gold-standard-card.tsx +80 -0
- package/templates/skills/knowledge/react-components/package-lock.json +231 -0
- package/templates/skills/knowledge/react-components/package.json +16 -0
- package/templates/skills/knowledge/react-components/resources/architecture-checklist.md +15 -0
- package/templates/skills/knowledge/react-components/resources/component-template.tsx +37 -0
- package/templates/skills/knowledge/react-components/resources/stitch-api-reference.md +14 -0
- package/templates/skills/knowledge/react-components/resources/style-guide.json +27 -0
- package/templates/skills/knowledge/react-components/scripts/fetch-stitch.sh +30 -0
- package/templates/skills/knowledge/react-components/scripts/validate.js +68 -0
- package/templates/skills/knowledge/react-patterns/SKILL.md +0 -0
- package/templates/skills/knowledge/red-team-tactics/SKILL.md +0 -0
- package/templates/skills/knowledge/self-update/SKILL.md +60 -0
- package/templates/skills/knowledge/self-update/scripts/update_kit.py +103 -0
- package/templates/skills/knowledge/seo-fundamentals/SKILL.md +0 -0
- package/templates/skills/knowledge/seo-fundamentals/scripts/seo_checker.py +0 -0
- package/templates/skills/knowledge/server-management/SKILL.md +0 -0
- package/templates/skills/knowledge/stitch-loop/README.md +54 -0
- package/templates/skills/knowledge/stitch-loop/SKILL.md +235 -0
- package/templates/skills/knowledge/stitch-loop/examples/SITE.md +73 -0
- package/templates/skills/knowledge/stitch-loop/examples/next-prompt.md +25 -0
- package/templates/skills/knowledge/stitch-loop/resources/baton-schema.md +61 -0
- package/templates/skills/knowledge/stitch-loop/resources/site-template.md +104 -0
- package/templates/skills/knowledge/systematic-debugging/SKILL.md +0 -0
- package/templates/skills/knowledge/tailwind-patterns/SKILL.md +0 -0
- package/templates/skills/knowledge/tdd-workflow/SKILL.md +0 -0
- package/templates/skills/knowledge/testing-patterns/SKILL.md +0 -0
- package/templates/skills/knowledge/testing-patterns/scripts/test_runner.py +0 -0
- package/templates/skills/knowledge/vulnerability-scanner/SKILL.md +0 -0
- package/templates/skills/knowledge/vulnerability-scanner/checklists.md +0 -0
- package/templates/skills/knowledge/vulnerability-scanner/scripts/security_scan.py +0 -0
- package/templates/skills/knowledge/webapp-testing/SKILL.md +0 -0
- package/templates/skills/knowledge/webapp-testing/scripts/playwright_runner.py +0 -0
- package/templates/skills/react-components/README.md +36 -0
- package/templates/skills/react-components/SKILL.md +53 -0
- package/templates/skills/react-components/examples/gold-standard-card.tsx +80 -0
- package/templates/skills/react-components/package-lock.json +231 -0
- package/templates/skills/react-components/package.json +16 -0
- package/templates/skills/react-components/resources/architecture-checklist.md +15 -0
- package/templates/skills/react-components/resources/component-template.tsx +37 -0
- package/templates/skills/react-components/resources/stitch-api-reference.md +14 -0
- package/templates/skills/react-components/resources/style-guide.json +27 -0
- package/templates/skills/react-components/scripts/fetch-stitch.sh +30 -0
- package/templates/skills/react-components/scripts/validate.js +68 -0
- package/templates/skills/stitch-loop/README.md +54 -0
- package/templates/skills/stitch-loop/SKILL.md +235 -0
- package/templates/skills/stitch-loop/examples/SITE.md +73 -0
- package/templates/skills/stitch-loop/examples/next-prompt.md +25 -0
- package/templates/skills/stitch-loop/resources/baton-schema.md +61 -0
- package/templates/skills/stitch-loop/resources/site-template.md +104 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
page: contact
|
|
3
|
+
---
|
|
4
|
+
A warm, inviting contact page for Oakwood Furniture Co.
|
|
5
|
+
|
|
6
|
+
**DESIGN SYSTEM (REQUIRED):**
|
|
7
|
+
- Platform: Web, Desktop-first
|
|
8
|
+
- Theme: Light, minimal, photography-first
|
|
9
|
+
- Background: Warm barely-there cream (#FCFAFA)
|
|
10
|
+
- Surface: Crisp very light gray (#F5F5F5) for cards
|
|
11
|
+
- Primary Accent: Deep muted teal-navy (#294056) for buttons and links
|
|
12
|
+
- Text Primary: Charcoal near-black (#2C2C2C) for headlines
|
|
13
|
+
- Text Secondary: Soft warm gray (#6B6B6B) for body copy
|
|
14
|
+
- Font: Modern sans-serif (Manrope or similar), clean and approachable
|
|
15
|
+
- Buttons: Subtly rounded corners (8px), comfortable padding
|
|
16
|
+
- Cards: Gently rounded corners (12px), whisper-soft shadows on hover
|
|
17
|
+
- Layout: Centered content, max-width container, generous whitespace
|
|
18
|
+
- No harsh shadows, no aggressive colors - serene and trustworthy
|
|
19
|
+
|
|
20
|
+
**Page Structure:**
|
|
21
|
+
1. **Header:** Navigation with logo, Shop, Collections, About, Contact (active)
|
|
22
|
+
2. **Hero Section:** Warm headline "Get in Touch" with a brief welcome message
|
|
23
|
+
3. **Contact Form:** Name, email, message fields with the teal-navy submit button
|
|
24
|
+
4. **Showroom Info:** Address, hours, and an embedded map or beautiful showroom photo
|
|
25
|
+
5. **Footer:** Sustainability, Craftsmanship, Shipping links, and social icons
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Baton File Schema
|
|
2
|
+
|
|
3
|
+
The baton file (`next-prompt.md`) is the communication mechanism between loop iterations. It tells the next agent what to build.
|
|
4
|
+
|
|
5
|
+
## Format
|
|
6
|
+
|
|
7
|
+
```yaml
|
|
8
|
+
---
|
|
9
|
+
page: <filename-without-extension>
|
|
10
|
+
---
|
|
11
|
+
<prompt-content>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Fields
|
|
15
|
+
|
|
16
|
+
### Frontmatter (YAML)
|
|
17
|
+
|
|
18
|
+
| Field | Type | Required | Description |
|
|
19
|
+
|-------|------|----------|-------------|
|
|
20
|
+
| `page` | string | Yes | Output filename (without `.html` extension) |
|
|
21
|
+
|
|
22
|
+
### Body (Markdown)
|
|
23
|
+
|
|
24
|
+
The body contains the full Stitch prompt, which must include:
|
|
25
|
+
|
|
26
|
+
1. **One-line description** with vibe/atmosphere keywords
|
|
27
|
+
2. **Design System block** (required) — copied from `DESIGN.md` Section 6
|
|
28
|
+
3. **Page Structure** — numbered list of sections/components
|
|
29
|
+
|
|
30
|
+
## Example
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
---
|
|
34
|
+
page: achievements
|
|
35
|
+
---
|
|
36
|
+
A competitive, gamified achievements page with terminal aesthetics.
|
|
37
|
+
|
|
38
|
+
**DESIGN SYSTEM (REQUIRED):**
|
|
39
|
+
- Platform: Web, Desktop-first
|
|
40
|
+
- Theme: Dark, minimal, data-focused
|
|
41
|
+
- Background: Deep charcoal/near-black (#0f1419)
|
|
42
|
+
- Primary Accent: Teal/Cyan (#2dd4bf)
|
|
43
|
+
- Text Primary: White (#ffffff)
|
|
44
|
+
- Font: Clean sans-serif (Inter, SF Pro, or system default)
|
|
45
|
+
- Layout: Centered content, max-width container
|
|
46
|
+
|
|
47
|
+
**Page Structure:**
|
|
48
|
+
1. Header with title "Achievements" and navigation
|
|
49
|
+
2. Badge grid showing locked/unlocked states with icons
|
|
50
|
+
3. Progress section with milestone bars
|
|
51
|
+
4. Footer with links to other pages
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Validation Rules
|
|
55
|
+
|
|
56
|
+
Before completing an iteration, validate your baton:
|
|
57
|
+
|
|
58
|
+
- [ ] `page` frontmatter field exists and is a valid filename
|
|
59
|
+
- [ ] Prompt includes the design system block
|
|
60
|
+
- [ ] Prompt describes a page NOT already in `SITE.md` sitemap
|
|
61
|
+
- [ ] Prompt includes specific page structure details
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Site Template
|
|
2
|
+
|
|
3
|
+
Use these templates when setting up a new project for the build loop.
|
|
4
|
+
|
|
5
|
+
## SITE.md Template
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# Project Vision & Constitution
|
|
9
|
+
|
|
10
|
+
> **AGENT INSTRUCTION:** Read this file before every iteration. It serves as the project's "Long-Term Memory."
|
|
11
|
+
|
|
12
|
+
## 1. Core Identity
|
|
13
|
+
* **Project Name:** [Your project name]
|
|
14
|
+
* **Stitch Project ID:** [Your Stitch project ID]
|
|
15
|
+
* **Mission:** [What the site achieves]
|
|
16
|
+
* **Target Audience:** [Who uses this site]
|
|
17
|
+
* **Voice:** [Tone and personality descriptors]
|
|
18
|
+
|
|
19
|
+
## 2. Visual Language
|
|
20
|
+
*Reference these descriptors when prompting Stitch.*
|
|
21
|
+
|
|
22
|
+
* **The "Vibe" (Adjectives):**
|
|
23
|
+
* *Primary:* [Main aesthetic keyword]
|
|
24
|
+
* *Secondary:* [Supporting aesthetic]
|
|
25
|
+
* *Tertiary:* [Additional flavor]
|
|
26
|
+
|
|
27
|
+
## 3. Architecture & File Structure
|
|
28
|
+
* **Root:** `site/public/`
|
|
29
|
+
* **Asset Flow:** Stitch generates to `queue/` → Validate → Move to `site/public/`
|
|
30
|
+
* **Navigation Strategy:** [How nav works]
|
|
31
|
+
|
|
32
|
+
## 4. Live Sitemap (Current State)
|
|
33
|
+
*Update this when a new page is successfully merged.*
|
|
34
|
+
|
|
35
|
+
* [x] `index.html` - [Description]
|
|
36
|
+
* [ ] `about.html` - [Description]
|
|
37
|
+
|
|
38
|
+
## 5. The Roadmap (Backlog)
|
|
39
|
+
*Pick the next task from here if available.*
|
|
40
|
+
|
|
41
|
+
### High Priority
|
|
42
|
+
- [ ] [Task description]
|
|
43
|
+
- [ ] [Task description]
|
|
44
|
+
|
|
45
|
+
### Medium Priority
|
|
46
|
+
- [ ] [Task description]
|
|
47
|
+
|
|
48
|
+
## 6. Creative Freedom Guidelines
|
|
49
|
+
*When the backlog is empty, follow these guidelines to innovate.*
|
|
50
|
+
|
|
51
|
+
1. **Stay On-Brand:** New pages must fit the established vibe
|
|
52
|
+
2. **Enhance the Core:** Support the site mission
|
|
53
|
+
3. **Naming Convention:** Use lowercase, descriptive filenames
|
|
54
|
+
|
|
55
|
+
### Ideas to Explore
|
|
56
|
+
*Pick one, build it, then REMOVE it from this list.*
|
|
57
|
+
|
|
58
|
+
- [ ] `stats.html` - [Description]
|
|
59
|
+
- [ ] `settings.html` - [Description]
|
|
60
|
+
|
|
61
|
+
## 7. Rules of Engagement
|
|
62
|
+
1. Do not recreate pages in Section 4
|
|
63
|
+
2. Always update `next-prompt.md` before completing
|
|
64
|
+
3. Consume ideas from Section 6 when you use them
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## DESIGN.md Template
|
|
68
|
+
|
|
69
|
+
Generate this using the `design-md` skill from an existing Stitch screen, or create manually:
|
|
70
|
+
|
|
71
|
+
```markdown
|
|
72
|
+
# Design System: [Project Name]
|
|
73
|
+
**Project ID:** [Stitch Project ID]
|
|
74
|
+
|
|
75
|
+
## 1. Visual Theme & Atmosphere
|
|
76
|
+
[Describe mood, density, aesthetic philosophy]
|
|
77
|
+
|
|
78
|
+
## 2. Color Palette & Roles
|
|
79
|
+
- **[Descriptive Name]** (#hexcode) – [Functional role]
|
|
80
|
+
- **[Descriptive Name]** (#hexcode) – [Functional role]
|
|
81
|
+
|
|
82
|
+
## 3. Typography Rules
|
|
83
|
+
[Font family, weights, sizes, spacing]
|
|
84
|
+
|
|
85
|
+
## 4. Component Stylings
|
|
86
|
+
* **Buttons:** [Shape, color, behavior]
|
|
87
|
+
* **Cards:** [Corners, background, shadows]
|
|
88
|
+
* **Inputs:** [Stroke, background, focus states]
|
|
89
|
+
|
|
90
|
+
## 5. Layout Principles
|
|
91
|
+
[Whitespace strategy, margins, grid alignment]
|
|
92
|
+
|
|
93
|
+
## 6. Design System Notes for Stitch Generation
|
|
94
|
+
**Copy this block into every baton prompt:**
|
|
95
|
+
|
|
96
|
+
**DESIGN SYSTEM (REQUIRED):**
|
|
97
|
+
- Platform: [Web/Mobile], [Desktop/Mobile]-first
|
|
98
|
+
- Theme: [Dark/Light], [descriptors]
|
|
99
|
+
- Background: [Description] (#hex)
|
|
100
|
+
- Primary Accent: [Description] (#hex)
|
|
101
|
+
- Text Primary: [Description] (#hex)
|
|
102
|
+
- Font: [Description]
|
|
103
|
+
- Layout: [Description]
|
|
104
|
+
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Stitch to React Components Skill
|
|
2
|
+
|
|
3
|
+
## Install
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npx add-skill google-labs-code/stitch-skills --skill react:components --global
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Example Prompt
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
Convert my Landing Page screen in my Podcast Stitch Project to a React component system.
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Skill Structure
|
|
16
|
+
|
|
17
|
+
This repository follows the **Agent Skills** open standard. Each skill is self-contained with its own logic, validation scripts, and design tokens.
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
skills/react-components/
|
|
21
|
+
├── SKILL.md — Core instructions & workflow
|
|
22
|
+
├── package.json — Validator dependencies
|
|
23
|
+
├── scripts/ — Networking & AST validation
|
|
24
|
+
├── resources/ — Style guides & API references
|
|
25
|
+
└── examples/ — Gold-standard code samples
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## How it Works
|
|
29
|
+
|
|
30
|
+
When activated, the agent follows a high-fidelity engineering pipeline:
|
|
31
|
+
|
|
32
|
+
1. **Retrieval**: Uses a system-level `curl` script to bypass TLS/SNI issues on Google Cloud Storage.
|
|
33
|
+
2. **Mapping**: Cross-references Stitch metadata with the local `style-guide.json` to ensure token consistency.
|
|
34
|
+
3. **Generation**: Scaffolds components using a strict Atomic Design pattern.
|
|
35
|
+
4. **Validation**: Runs an automated AST check using `@swc/core` to prevent hardcoded hex values or missing interfaces.
|
|
36
|
+
5. **Audit**: Performs a final self-correction check against a 20-point architecture checklist.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: react:components
|
|
3
|
+
description: Converts Stitch designs into modular Vite and React components using system-level networking and AST-based validation.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- "stitch*:*"
|
|
6
|
+
- "Bash"
|
|
7
|
+
- "Read"
|
|
8
|
+
- "Write"
|
|
9
|
+
- "web_fetch"
|
|
10
|
+
- "qdrant-memory"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Stitch to React Components
|
|
14
|
+
|
|
15
|
+
You are a frontend engineer focused on transforming designs into clean React code. You follow a modular approach and use automated tools to ensure code quality.
|
|
16
|
+
|
|
17
|
+
## Retrieval and networking
|
|
18
|
+
|
|
19
|
+
1. **Namespace discovery**: Run `list_tools` to find the Stitch MCP prefix. Use this prefix (e.g., `stitch:`) for all subsequent calls.
|
|
20
|
+
2. **Metadata fetch**: Call `[prefix]:get_screen` to retrieve the design JSON.
|
|
21
|
+
3. **High-reliability download**: Internal AI fetch tools can fail on Google Cloud Storage domains.
|
|
22
|
+
- Use the `Bash` tool to run: `bash scripts/fetch-stitch.sh "[htmlCode.downloadUrl]" "temp/source.html"`.
|
|
23
|
+
- This script handles the necessary redirects and security handshakes.
|
|
24
|
+
4. **Visual audit**: Check `screenshot.downloadUrl` to confirm the design intent and layout details.
|
|
25
|
+
|
|
26
|
+
## Architectural rules
|
|
27
|
+
|
|
28
|
+
- **Modular components**: Break the design into independent files. Avoid large, single-file outputs.
|
|
29
|
+
- **Logic isolation**: Move event handlers and business logic into custom hooks in `src/hooks/`.
|
|
30
|
+
- **Data decoupling**: Move all static text, image URLs, and lists into `src/data/mockData.ts`.
|
|
31
|
+
- **Type safety**: Every component must include a `Readonly` TypeScript interface named `[ComponentName]Props`.
|
|
32
|
+
- **Project specific**: Focus on the target project's needs and constraints. Leave Google license headers out of the generated React components.
|
|
33
|
+
- **Style mapping**:
|
|
34
|
+
- Extract the `tailwind.config` from the HTML `<head>`.
|
|
35
|
+
- Sync these values with `resources/style-guide.json`.
|
|
36
|
+
- Use theme-mapped Tailwind classes instead of arbitrary hex codes.
|
|
37
|
+
|
|
38
|
+
## Execution steps
|
|
39
|
+
|
|
40
|
+
1. **Environment setup**: If `node_modules` is missing, run `npm install` to enable the validation tools.
|
|
41
|
+
2. **Data layer**: Create `src/data/mockData.ts` based on the design content.
|
|
42
|
+
3. **Pattern Retrieval (Optional)**: If **qdrant-memory** is available, search for existing components (`type: "code"`) to reuse patterns or interfaces.
|
|
43
|
+
4. **Component drafting**: Use `resources/component-template.tsx` as a base. Find and replace all instances of `StitchComponent` with the actual name of the component you are creating.
|
|
44
|
+
5. **Application wiring**: Update the project entry point (like `App.tsx`) to render the new components.
|
|
45
|
+
6. **Quality check**:
|
|
46
|
+
- Run `npm run validate <file_path>` for each component.
|
|
47
|
+
- Verify the final output against the `resources/architecture-checklist.md`.
|
|
48
|
+
- Start the dev server with `npm run dev` to verify the live result.
|
|
49
|
+
|
|
50
|
+
## Troubleshooting
|
|
51
|
+
|
|
52
|
+
- **Fetch errors**: Ensure the URL is quoted in the bash command to prevent shell errors.
|
|
53
|
+
- **Validation errors**: Review the AST report and fix any missing interfaces or hardcoded styles.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import React from 'react';
|
|
18
|
+
// Note for Agent: The '@' alias refers to the target project's src directory.
|
|
19
|
+
// Ensure src/data/mockData.ts is created before generating this component.
|
|
20
|
+
import { cardData } from '../data/mockData';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Gold Standard: ActivityCard
|
|
24
|
+
* This file serves as the definitive reference for the agent.
|
|
25
|
+
*/
|
|
26
|
+
interface ActivityCardProps {
|
|
27
|
+
readonly id: string;
|
|
28
|
+
readonly username: string;
|
|
29
|
+
readonly action: 'MERGED' | 'COMMIT';
|
|
30
|
+
readonly timestamp: string;
|
|
31
|
+
readonly avatarUrl: string;
|
|
32
|
+
readonly repoName: string;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export const ActivityCard: React.FC<ActivityCardProps> = ({
|
|
36
|
+
username,
|
|
37
|
+
action,
|
|
38
|
+
timestamp,
|
|
39
|
+
avatarUrl,
|
|
40
|
+
repoName,
|
|
41
|
+
}) => {
|
|
42
|
+
const isMerged = action === 'MERGED';
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<div className="flex items-center justify-between gap-4 rounded-lg bg-surface-dark p-4 min-h-14 shadow-sm ring-1 ring-white/10">
|
|
46
|
+
<div className="flex items-center gap-4 overflow-hidden">
|
|
47
|
+
<div
|
|
48
|
+
className="aspect-square h-10 w-10 flex-shrink-0 rounded-full bg-cover bg-center bg-no-repeat"
|
|
49
|
+
style={{ backgroundImage: `url(${avatarUrl})` }}
|
|
50
|
+
aria-label={`Avatar for ${username}`}
|
|
51
|
+
/>
|
|
52
|
+
|
|
53
|
+
<div className="flex flex-wrap items-center gap-x-2 gap-y-1 text-sm sm:text-base">
|
|
54
|
+
<a href="#" className="font-semibold text-primary hover:underline truncate">
|
|
55
|
+
{username}
|
|
56
|
+
</a>
|
|
57
|
+
|
|
58
|
+
<span className={`inline-block px-2 py-0.5 text-xs font-semibold rounded-full ${isMerged ? 'bg-purple-500/30 text-purple-300' : 'bg-primary/30 text-primary'
|
|
59
|
+
}`}>
|
|
60
|
+
{action}
|
|
61
|
+
</span>
|
|
62
|
+
|
|
63
|
+
<span className="text-white/60">in</span>
|
|
64
|
+
|
|
65
|
+
<a href="#" className="text-primary hover:underline truncate">
|
|
66
|
+
{repoName}
|
|
67
|
+
</a>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
<div className="shrink-0">
|
|
72
|
+
<p className="text-sm font-normal leading-normal text-white/50">
|
|
73
|
+
{timestamp}
|
|
74
|
+
</p>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export default ActivityCard;
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "stitch-to-react-pro",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"lockfileVersion": 3,
|
|
5
|
+
"requires": true,
|
|
6
|
+
"packages": {
|
|
7
|
+
"": {
|
|
8
|
+
"name": "stitch-to-react-pro",
|
|
9
|
+
"version": "1.0.0",
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@swc/core": "^1.3.100"
|
|
12
|
+
},
|
|
13
|
+
"engines": {
|
|
14
|
+
"node": ">=18.0.0"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"node_modules/@swc/core": {
|
|
18
|
+
"version": "1.15.8",
|
|
19
|
+
"resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.8.tgz",
|
|
20
|
+
"integrity": "sha512-T8keoJjXaSUoVBCIjgL6wAnhADIb09GOELzKg10CjNg+vLX48P93SME6jTfte9MZIm5m+Il57H3rTSk/0kzDUw==",
|
|
21
|
+
"hasInstallScript": true,
|
|
22
|
+
"license": "Apache-2.0",
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@swc/counter": "^0.1.3",
|
|
25
|
+
"@swc/types": "^0.1.25"
|
|
26
|
+
},
|
|
27
|
+
"engines": {
|
|
28
|
+
"node": ">=10"
|
|
29
|
+
},
|
|
30
|
+
"funding": {
|
|
31
|
+
"type": "opencollective",
|
|
32
|
+
"url": "https://opencollective.com/swc"
|
|
33
|
+
},
|
|
34
|
+
"optionalDependencies": {
|
|
35
|
+
"@swc/core-darwin-arm64": "1.15.8",
|
|
36
|
+
"@swc/core-darwin-x64": "1.15.8",
|
|
37
|
+
"@swc/core-linux-arm-gnueabihf": "1.15.8",
|
|
38
|
+
"@swc/core-linux-arm64-gnu": "1.15.8",
|
|
39
|
+
"@swc/core-linux-arm64-musl": "1.15.8",
|
|
40
|
+
"@swc/core-linux-x64-gnu": "1.15.8",
|
|
41
|
+
"@swc/core-linux-x64-musl": "1.15.8",
|
|
42
|
+
"@swc/core-win32-arm64-msvc": "1.15.8",
|
|
43
|
+
"@swc/core-win32-ia32-msvc": "1.15.8",
|
|
44
|
+
"@swc/core-win32-x64-msvc": "1.15.8"
|
|
45
|
+
},
|
|
46
|
+
"peerDependencies": {
|
|
47
|
+
"@swc/helpers": ">=0.5.17"
|
|
48
|
+
},
|
|
49
|
+
"peerDependenciesMeta": {
|
|
50
|
+
"@swc/helpers": {
|
|
51
|
+
"optional": true
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"node_modules/@swc/core-darwin-arm64": {
|
|
56
|
+
"version": "1.15.8",
|
|
57
|
+
"resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.8.tgz",
|
|
58
|
+
"integrity": "sha512-M9cK5GwyWWRkRGwwCbREuj6r8jKdES/haCZ3Xckgkl8MUQJZA3XB7IXXK1IXRNeLjg6m7cnoMICpXv1v1hlJOg==",
|
|
59
|
+
"cpu": [
|
|
60
|
+
"arm64"
|
|
61
|
+
],
|
|
62
|
+
"license": "Apache-2.0 AND MIT",
|
|
63
|
+
"optional": true,
|
|
64
|
+
"os": [
|
|
65
|
+
"darwin"
|
|
66
|
+
],
|
|
67
|
+
"engines": {
|
|
68
|
+
"node": ">=10"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"node_modules/@swc/core-darwin-x64": {
|
|
72
|
+
"version": "1.15.8",
|
|
73
|
+
"resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.8.tgz",
|
|
74
|
+
"integrity": "sha512-j47DasuOvXl80sKJHSi2X25l44CMc3VDhlJwA7oewC1nV1VsSzwX+KOwE5tLnfORvVJJyeiXgJORNYg4jeIjYQ==",
|
|
75
|
+
"cpu": [
|
|
76
|
+
"x64"
|
|
77
|
+
],
|
|
78
|
+
"license": "Apache-2.0 AND MIT",
|
|
79
|
+
"optional": true,
|
|
80
|
+
"os": [
|
|
81
|
+
"darwin"
|
|
82
|
+
],
|
|
83
|
+
"engines": {
|
|
84
|
+
"node": ">=10"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"node_modules/@swc/core-linux-arm-gnueabihf": {
|
|
88
|
+
"version": "1.15.8",
|
|
89
|
+
"resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.8.tgz",
|
|
90
|
+
"integrity": "sha512-siAzDENu2rUbwr9+fayWa26r5A9fol1iORG53HWxQL1J8ym4k7xt9eME0dMPXlYZDytK5r9sW8zEA10F2U3Xwg==",
|
|
91
|
+
"cpu": [
|
|
92
|
+
"arm"
|
|
93
|
+
],
|
|
94
|
+
"license": "Apache-2.0",
|
|
95
|
+
"optional": true,
|
|
96
|
+
"os": [
|
|
97
|
+
"linux"
|
|
98
|
+
],
|
|
99
|
+
"engines": {
|
|
100
|
+
"node": ">=10"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"node_modules/@swc/core-linux-arm64-gnu": {
|
|
104
|
+
"version": "1.15.8",
|
|
105
|
+
"resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.8.tgz",
|
|
106
|
+
"integrity": "sha512-o+1y5u6k2FfPYbTRUPvurwzNt5qd0NTumCTFscCNuBksycloXY16J8L+SMW5QRX59n4Hp9EmFa3vpvNHRVv1+Q==",
|
|
107
|
+
"cpu": [
|
|
108
|
+
"arm64"
|
|
109
|
+
],
|
|
110
|
+
"license": "Apache-2.0 AND MIT",
|
|
111
|
+
"optional": true,
|
|
112
|
+
"os": [
|
|
113
|
+
"linux"
|
|
114
|
+
],
|
|
115
|
+
"engines": {
|
|
116
|
+
"node": ">=10"
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"node_modules/@swc/core-linux-arm64-musl": {
|
|
120
|
+
"version": "1.15.8",
|
|
121
|
+
"resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.8.tgz",
|
|
122
|
+
"integrity": "sha512-koiCqL09EwOP1S2RShCI7NbsQuG6r2brTqUYE7pV7kZm9O17wZ0LSz22m6gVibpwEnw8jI3IE1yYsQTVpluALw==",
|
|
123
|
+
"cpu": [
|
|
124
|
+
"arm64"
|
|
125
|
+
],
|
|
126
|
+
"license": "Apache-2.0 AND MIT",
|
|
127
|
+
"optional": true,
|
|
128
|
+
"os": [
|
|
129
|
+
"linux"
|
|
130
|
+
],
|
|
131
|
+
"engines": {
|
|
132
|
+
"node": ">=10"
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"node_modules/@swc/core-linux-x64-gnu": {
|
|
136
|
+
"version": "1.15.8",
|
|
137
|
+
"resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.8.tgz",
|
|
138
|
+
"integrity": "sha512-4p6lOMU3bC+Vd5ARtKJ/FxpIC5G8v3XLoPEZ5s7mLR8h7411HWC/LmTXDHcrSXRC55zvAVia1eldy6zDLz8iFQ==",
|
|
139
|
+
"cpu": [
|
|
140
|
+
"x64"
|
|
141
|
+
],
|
|
142
|
+
"license": "Apache-2.0 AND MIT",
|
|
143
|
+
"optional": true,
|
|
144
|
+
"os": [
|
|
145
|
+
"linux"
|
|
146
|
+
],
|
|
147
|
+
"engines": {
|
|
148
|
+
"node": ">=10"
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"node_modules/@swc/core-linux-x64-musl": {
|
|
152
|
+
"version": "1.15.8",
|
|
153
|
+
"resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.8.tgz",
|
|
154
|
+
"integrity": "sha512-z3XBnbrZAL+6xDGAhJoN4lOueIxC/8rGrJ9tg+fEaeqLEuAtHSW2QHDHxDwkxZMjuF/pZ6MUTjHjbp8wLbuRLA==",
|
|
155
|
+
"cpu": [
|
|
156
|
+
"x64"
|
|
157
|
+
],
|
|
158
|
+
"license": "Apache-2.0 AND MIT",
|
|
159
|
+
"optional": true,
|
|
160
|
+
"os": [
|
|
161
|
+
"linux"
|
|
162
|
+
],
|
|
163
|
+
"engines": {
|
|
164
|
+
"node": ">=10"
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"node_modules/@swc/core-win32-arm64-msvc": {
|
|
168
|
+
"version": "1.15.8",
|
|
169
|
+
"resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.8.tgz",
|
|
170
|
+
"integrity": "sha512-djQPJ9Rh9vP8GTS/Df3hcc6XP6xnG5c8qsngWId/BLA9oX6C7UzCPAn74BG/wGb9a6j4w3RINuoaieJB3t+7iQ==",
|
|
171
|
+
"cpu": [
|
|
172
|
+
"arm64"
|
|
173
|
+
],
|
|
174
|
+
"license": "Apache-2.0 AND MIT",
|
|
175
|
+
"optional": true,
|
|
176
|
+
"os": [
|
|
177
|
+
"win32"
|
|
178
|
+
],
|
|
179
|
+
"engines": {
|
|
180
|
+
"node": ">=10"
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
"node_modules/@swc/core-win32-ia32-msvc": {
|
|
184
|
+
"version": "1.15.8",
|
|
185
|
+
"resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.8.tgz",
|
|
186
|
+
"integrity": "sha512-/wfAgxORg2VBaUoFdytcVBVCgf1isWZIEXB9MZEUty4wwK93M/PxAkjifOho9RN3WrM3inPLabICRCEgdHpKKQ==",
|
|
187
|
+
"cpu": [
|
|
188
|
+
"ia32"
|
|
189
|
+
],
|
|
190
|
+
"license": "Apache-2.0 AND MIT",
|
|
191
|
+
"optional": true,
|
|
192
|
+
"os": [
|
|
193
|
+
"win32"
|
|
194
|
+
],
|
|
195
|
+
"engines": {
|
|
196
|
+
"node": ">=10"
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"node_modules/@swc/core-win32-x64-msvc": {
|
|
200
|
+
"version": "1.15.8",
|
|
201
|
+
"resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.8.tgz",
|
|
202
|
+
"integrity": "sha512-GpMePrh9Sl4d61o4KAHOOv5is5+zt6BEXCOCgs/H0FLGeii7j9bWDE8ExvKFy2GRRZVNR1ugsnzaGWHKM6kuzA==",
|
|
203
|
+
"cpu": [
|
|
204
|
+
"x64"
|
|
205
|
+
],
|
|
206
|
+
"license": "Apache-2.0 AND MIT",
|
|
207
|
+
"optional": true,
|
|
208
|
+
"os": [
|
|
209
|
+
"win32"
|
|
210
|
+
],
|
|
211
|
+
"engines": {
|
|
212
|
+
"node": ">=10"
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
"node_modules/@swc/counter": {
|
|
216
|
+
"version": "0.1.3",
|
|
217
|
+
"resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
|
|
218
|
+
"integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
|
|
219
|
+
"license": "Apache-2.0"
|
|
220
|
+
},
|
|
221
|
+
"node_modules/@swc/types": {
|
|
222
|
+
"version": "0.1.25",
|
|
223
|
+
"resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.25.tgz",
|
|
224
|
+
"integrity": "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==",
|
|
225
|
+
"license": "Apache-2.0",
|
|
226
|
+
"dependencies": {
|
|
227
|
+
"@swc/counter": "^0.1.3"
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "react-components",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Design-to-code prompt to React components for Stitch MCP",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"validate": "node scripts/validate.js",
|
|
8
|
+
"fetch": "bash scripts/fetch-stitch.sh"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@swc/core": "^1.3.100"
|
|
12
|
+
},
|
|
13
|
+
"engines": {
|
|
14
|
+
"node": ">=18.0.0"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Architecture Quality Gate
|
|
2
|
+
|
|
3
|
+
### Structural integrity
|
|
4
|
+
- [ ] Logic extracted to custom hooks in `src/hooks/`.
|
|
5
|
+
- [ ] No monolithic files; strictly Atomic/Composite modularity.
|
|
6
|
+
- [ ] All static text/URLs moved to `src/data/mockData.ts`.
|
|
7
|
+
|
|
8
|
+
### Type safety and syntax
|
|
9
|
+
- [ ] Props use `Readonly<T>` interfaces.
|
|
10
|
+
- [ ] File is syntactically valid TypeScript (no red squiggles).
|
|
11
|
+
- [ ] Placeholders from templates (e.g., `StitchComponent`) have been replaced with actual names.
|
|
12
|
+
|
|
13
|
+
### Styling and theming
|
|
14
|
+
- [ ] Dark mode (`dark:`) applied to all color classes.
|
|
15
|
+
- [ ] No hardcoded hex values; use theme-mapped Tailwind classes.
|