@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.
Files changed (207) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/LICENSE +201 -0
  3. package/package.json +1 -1
  4. package/templates/base/skill-creator/LICENSE.txt +0 -0
  5. package/templates/base/skill-creator/SKILL_skillcreator.md +36 -23
  6. package/templates/base/skill-creator/references/output-patterns.md +0 -0
  7. package/templates/base/skill-creator/references/workflows.md +0 -0
  8. package/templates/base/skill-creator/scripts/init_skill.py +135 -18
  9. package/templates/base/skill-creator/scripts/package_skill.py +0 -0
  10. package/templates/base/skill-creator/scripts/quick_validate.py +0 -0
  11. package/templates/skills/core/documentation/SKILL.md +0 -0
  12. package/templates/skills/core/documentation/references/best_practices.md +0 -0
  13. package/templates/skills/core/documentation/scripts/analyze_code.py +0 -0
  14. package/templates/skills/core/documentation/scripts/detect_changes.py +0 -0
  15. package/templates/skills/core/documentation/scripts/generate_changelog.py +0 -0
  16. package/templates/skills/core/documentation/scripts/sync_docs.py +0 -0
  17. package/templates/skills/core/documentation/scripts/update_skill_docs.py +0 -0
  18. package/templates/skills/core/pdf-reader/SKILL.md +0 -0
  19. package/templates/skills/core/pdf-reader/references/pdf_libraries.md +0 -0
  20. package/templates/skills/core/pdf-reader/scripts/extract_text.py +0 -0
  21. package/templates/skills/core/qdrant-memory/SKILL.md +0 -0
  22. package/templates/skills/core/qdrant-memory/references/advanced_patterns.md +0 -0
  23. package/templates/skills/core/qdrant-memory/references/collection_schemas.md +0 -0
  24. package/templates/skills/core/qdrant-memory/references/complete_guide.md +0 -0
  25. package/templates/skills/core/qdrant-memory/references/embedding_models.md +0 -0
  26. package/templates/skills/core/qdrant-memory/scripts/__pycache__/embedding_utils.cpython-314.pyc +0 -0
  27. package/templates/skills/core/qdrant-memory/scripts/__pycache__/init_collection.cpython-314.pyc +0 -0
  28. package/templates/skills/core/qdrant-memory/scripts/benchmark_token_savings.py +0 -0
  29. package/templates/skills/core/qdrant-memory/scripts/embedding_utils.py +0 -0
  30. package/templates/skills/core/qdrant-memory/scripts/hybrid_search.py +0 -0
  31. package/templates/skills/core/qdrant-memory/scripts/init_collection.py +0 -0
  32. package/templates/skills/core/qdrant-memory/scripts/memory_retrieval.py +0 -0
  33. package/templates/skills/core/qdrant-memory/scripts/semantic_cache.py +0 -0
  34. package/templates/skills/core/qdrant-memory/scripts/test_skill.py +0 -0
  35. package/templates/skills/core/webcrawler/references/advanced_crawling.md +0 -0
  36. package/templates/skills/core/webcrawler/scripts/crawl_docs.py +0 -0
  37. package/templates/skills/core/webcrawler/scripts/extract_page.py +0 -0
  38. package/templates/skills/core/webcrawler/scripts/filter_docs.py +0 -0
  39. package/templates/skills/design-md/README.md +34 -0
  40. package/templates/skills/design-md/SKILL.md +193 -0
  41. package/templates/skills/design-md/examples/DESIGN.md +154 -0
  42. package/templates/skills/knowledge/SKILLS_CATALOG.md +796 -0
  43. package/templates/skills/knowledge/api-patterns/SKILL.md +0 -0
  44. package/templates/skills/knowledge/api-patterns/api-style.md +0 -0
  45. package/templates/skills/knowledge/api-patterns/auth.md +0 -0
  46. package/templates/skills/knowledge/api-patterns/documentation.md +0 -0
  47. package/templates/skills/knowledge/api-patterns/graphql.md +0 -0
  48. package/templates/skills/knowledge/api-patterns/rate-limiting.md +0 -0
  49. package/templates/skills/knowledge/api-patterns/response.md +0 -0
  50. package/templates/skills/knowledge/api-patterns/rest.md +0 -0
  51. package/templates/skills/knowledge/api-patterns/scripts/api_validator.py +0 -0
  52. package/templates/skills/knowledge/api-patterns/security-testing.md +0 -0
  53. package/templates/skills/knowledge/api-patterns/trpc.md +0 -0
  54. package/templates/skills/knowledge/api-patterns/versioning.md +0 -0
  55. package/templates/skills/knowledge/app-builder/SKILL.md +0 -0
  56. package/templates/skills/knowledge/app-builder/agent-coordination.md +0 -0
  57. package/templates/skills/knowledge/app-builder/feature-building.md +0 -0
  58. package/templates/skills/knowledge/app-builder/project-detection.md +0 -0
  59. package/templates/skills/knowledge/app-builder/scaffolding.md +0 -0
  60. package/templates/skills/knowledge/app-builder/tech-stack.md +0 -0
  61. package/templates/skills/knowledge/app-builder/templates/SKILL.md +0 -0
  62. package/templates/skills/knowledge/app-builder/templates/astro-static/TEMPLATE.md +0 -0
  63. package/templates/skills/knowledge/app-builder/templates/chrome-extension/TEMPLATE.md +0 -0
  64. package/templates/skills/knowledge/app-builder/templates/cli-tool/TEMPLATE.md +0 -0
  65. package/templates/skills/knowledge/app-builder/templates/electron-desktop/TEMPLATE.md +0 -0
  66. package/templates/skills/knowledge/app-builder/templates/express-api/TEMPLATE.md +0 -0
  67. package/templates/skills/knowledge/app-builder/templates/flutter-app/TEMPLATE.md +0 -0
  68. package/templates/skills/knowledge/app-builder/templates/monorepo-turborepo/TEMPLATE.md +0 -0
  69. package/templates/skills/knowledge/app-builder/templates/nextjs-fullstack/TEMPLATE.md +0 -0
  70. package/templates/skills/knowledge/app-builder/templates/nextjs-saas/TEMPLATE.md +0 -0
  71. package/templates/skills/knowledge/app-builder/templates/nextjs-static/TEMPLATE.md +0 -0
  72. package/templates/skills/knowledge/app-builder/templates/nuxt-app/TEMPLATE.md +0 -0
  73. package/templates/skills/knowledge/app-builder/templates/python-fastapi/TEMPLATE.md +0 -0
  74. package/templates/skills/knowledge/app-builder/templates/react-native-app/TEMPLATE.md +0 -0
  75. package/templates/skills/knowledge/architecture/SKILL.md +0 -0
  76. package/templates/skills/knowledge/architecture/context-discovery.md +0 -0
  77. package/templates/skills/knowledge/architecture/examples.md +0 -0
  78. package/templates/skills/knowledge/architecture/pattern-selection.md +0 -0
  79. package/templates/skills/knowledge/architecture/patterns-reference.md +0 -0
  80. package/templates/skills/knowledge/architecture/trade-off-analysis.md +0 -0
  81. package/templates/skills/knowledge/bash-linux/SKILL.md +0 -0
  82. package/templates/skills/knowledge/behavioral-modes/SKILL.md +0 -0
  83. package/templates/skills/knowledge/brainstorming/SKILL.md +0 -0
  84. package/templates/skills/knowledge/brainstorming/dynamic-questioning.md +0 -0
  85. package/templates/skills/knowledge/clean-code/SKILL.md +0 -0
  86. package/templates/skills/knowledge/code-review-checklist/SKILL.md +0 -0
  87. package/templates/skills/knowledge/database-design/SKILL.md +0 -0
  88. package/templates/skills/knowledge/database-design/database-selection.md +0 -0
  89. package/templates/skills/knowledge/database-design/indexing.md +0 -0
  90. package/templates/skills/knowledge/database-design/migrations.md +0 -0
  91. package/templates/skills/knowledge/database-design/optimization.md +0 -0
  92. package/templates/skills/knowledge/database-design/orm-selection.md +0 -0
  93. package/templates/skills/knowledge/database-design/schema-design.md +0 -0
  94. package/templates/skills/knowledge/database-design/scripts/schema_validator.py +0 -0
  95. package/templates/skills/knowledge/deployment-procedures/SKILL.md +0 -0
  96. package/templates/skills/knowledge/design-md/README.md +34 -0
  97. package/templates/skills/knowledge/design-md/SKILL.md +193 -0
  98. package/templates/skills/knowledge/design-md/examples/DESIGN.md +154 -0
  99. package/templates/skills/knowledge/documentation-templates/SKILL.md +0 -0
  100. package/templates/skills/knowledge/frontend-design/SKILL.md +0 -0
  101. package/templates/skills/knowledge/frontend-design/animation-guide.md +0 -0
  102. package/templates/skills/knowledge/frontend-design/color-system.md +0 -0
  103. package/templates/skills/knowledge/frontend-design/decision-trees.md +0 -0
  104. package/templates/skills/knowledge/frontend-design/motion-graphics.md +0 -0
  105. package/templates/skills/knowledge/frontend-design/scripts/accessibility_checker.py +0 -0
  106. package/templates/skills/knowledge/frontend-design/scripts/ux_audit.py +0 -0
  107. package/templates/skills/knowledge/frontend-design/typography-system.md +0 -0
  108. package/templates/skills/knowledge/frontend-design/ux-psychology.md +0 -0
  109. package/templates/skills/knowledge/frontend-design/visual-effects.md +0 -0
  110. package/templates/skills/knowledge/game-development/2d-games/SKILL.md +0 -0
  111. package/templates/skills/knowledge/game-development/3d-games/SKILL.md +0 -0
  112. package/templates/skills/knowledge/game-development/SKILL.md +0 -0
  113. package/templates/skills/knowledge/game-development/game-art/SKILL.md +0 -0
  114. package/templates/skills/knowledge/game-development/game-audio/SKILL.md +0 -0
  115. package/templates/skills/knowledge/game-development/game-design/SKILL.md +0 -0
  116. package/templates/skills/knowledge/game-development/mobile-games/SKILL.md +0 -0
  117. package/templates/skills/knowledge/game-development/multiplayer/SKILL.md +0 -0
  118. package/templates/skills/knowledge/game-development/pc-games/SKILL.md +0 -0
  119. package/templates/skills/knowledge/game-development/vr-ar/SKILL.md +0 -0
  120. package/templates/skills/knowledge/game-development/web-games/SKILL.md +0 -0
  121. package/templates/skills/knowledge/geo-fundamentals/SKILL.md +0 -0
  122. package/templates/skills/knowledge/geo-fundamentals/scripts/geo_checker.py +0 -0
  123. package/templates/skills/knowledge/i18n-localization/SKILL.md +0 -0
  124. package/templates/skills/knowledge/i18n-localization/scripts/i18n_checker.py +0 -0
  125. package/templates/skills/knowledge/intelligent-routing/SKILL.md +0 -0
  126. package/templates/skills/knowledge/jira/scripts/__pycache__/jira_client.cpython-314.pyc +0 -0
  127. package/templates/skills/knowledge/lint-and-validate/SKILL.md +0 -0
  128. package/templates/skills/knowledge/lint-and-validate/scripts/lint_runner.py +0 -0
  129. package/templates/skills/knowledge/lint-and-validate/scripts/type_coverage.py +0 -0
  130. package/templates/skills/knowledge/mcp-builder/SKILL.md +0 -0
  131. package/templates/skills/knowledge/mobile-design/SKILL.md +0 -0
  132. package/templates/skills/knowledge/mobile-design/decision-trees.md +0 -0
  133. package/templates/skills/knowledge/mobile-design/mobile-backend.md +0 -0
  134. package/templates/skills/knowledge/mobile-design/mobile-color-system.md +0 -0
  135. package/templates/skills/knowledge/mobile-design/mobile-debugging.md +0 -0
  136. package/templates/skills/knowledge/mobile-design/mobile-design-thinking.md +0 -0
  137. package/templates/skills/knowledge/mobile-design/mobile-navigation.md +0 -0
  138. package/templates/skills/knowledge/mobile-design/mobile-performance.md +0 -0
  139. package/templates/skills/knowledge/mobile-design/mobile-testing.md +0 -0
  140. package/templates/skills/knowledge/mobile-design/mobile-typography.md +0 -0
  141. package/templates/skills/knowledge/mobile-design/platform-android.md +0 -0
  142. package/templates/skills/knowledge/mobile-design/platform-ios.md +0 -0
  143. package/templates/skills/knowledge/mobile-design/scripts/mobile_audit.py +0 -0
  144. package/templates/skills/knowledge/mobile-design/touch-psychology.md +0 -0
  145. package/templates/skills/knowledge/nextjs-best-practices/SKILL.md +0 -0
  146. package/templates/skills/knowledge/nodejs-best-practices/SKILL.md +0 -0
  147. package/templates/skills/knowledge/notebooklm-mcp/SKILL.md +71 -0
  148. package/templates/skills/knowledge/notebooklm-mcp/assets/example_asset.txt +24 -0
  149. package/templates/skills/knowledge/notebooklm-mcp/references/api_reference.md +34 -0
  150. package/templates/skills/knowledge/notebooklm-mcp/scripts/example.py +19 -0
  151. package/templates/skills/knowledge/parallel-agents/SKILL.md +0 -0
  152. package/templates/skills/knowledge/performance-profiling/SKILL.md +0 -0
  153. package/templates/skills/knowledge/performance-profiling/scripts/lighthouse_audit.py +0 -0
  154. package/templates/skills/knowledge/plan-writing/SKILL.md +0 -0
  155. package/templates/skills/knowledge/powershell-windows/SKILL.md +0 -0
  156. package/templates/skills/knowledge/python-patterns/SKILL.md +0 -0
  157. package/templates/skills/knowledge/react-components/README.md +36 -0
  158. package/templates/skills/knowledge/react-components/SKILL.md +53 -0
  159. package/templates/skills/knowledge/react-components/examples/gold-standard-card.tsx +80 -0
  160. package/templates/skills/knowledge/react-components/package-lock.json +231 -0
  161. package/templates/skills/knowledge/react-components/package.json +16 -0
  162. package/templates/skills/knowledge/react-components/resources/architecture-checklist.md +15 -0
  163. package/templates/skills/knowledge/react-components/resources/component-template.tsx +37 -0
  164. package/templates/skills/knowledge/react-components/resources/stitch-api-reference.md +14 -0
  165. package/templates/skills/knowledge/react-components/resources/style-guide.json +27 -0
  166. package/templates/skills/knowledge/react-components/scripts/fetch-stitch.sh +30 -0
  167. package/templates/skills/knowledge/react-components/scripts/validate.js +68 -0
  168. package/templates/skills/knowledge/react-patterns/SKILL.md +0 -0
  169. package/templates/skills/knowledge/red-team-tactics/SKILL.md +0 -0
  170. package/templates/skills/knowledge/self-update/SKILL.md +60 -0
  171. package/templates/skills/knowledge/self-update/scripts/update_kit.py +103 -0
  172. package/templates/skills/knowledge/seo-fundamentals/SKILL.md +0 -0
  173. package/templates/skills/knowledge/seo-fundamentals/scripts/seo_checker.py +0 -0
  174. package/templates/skills/knowledge/server-management/SKILL.md +0 -0
  175. package/templates/skills/knowledge/stitch-loop/README.md +54 -0
  176. package/templates/skills/knowledge/stitch-loop/SKILL.md +235 -0
  177. package/templates/skills/knowledge/stitch-loop/examples/SITE.md +73 -0
  178. package/templates/skills/knowledge/stitch-loop/examples/next-prompt.md +25 -0
  179. package/templates/skills/knowledge/stitch-loop/resources/baton-schema.md +61 -0
  180. package/templates/skills/knowledge/stitch-loop/resources/site-template.md +104 -0
  181. package/templates/skills/knowledge/systematic-debugging/SKILL.md +0 -0
  182. package/templates/skills/knowledge/tailwind-patterns/SKILL.md +0 -0
  183. package/templates/skills/knowledge/tdd-workflow/SKILL.md +0 -0
  184. package/templates/skills/knowledge/testing-patterns/SKILL.md +0 -0
  185. package/templates/skills/knowledge/testing-patterns/scripts/test_runner.py +0 -0
  186. package/templates/skills/knowledge/vulnerability-scanner/SKILL.md +0 -0
  187. package/templates/skills/knowledge/vulnerability-scanner/checklists.md +0 -0
  188. package/templates/skills/knowledge/vulnerability-scanner/scripts/security_scan.py +0 -0
  189. package/templates/skills/knowledge/webapp-testing/SKILL.md +0 -0
  190. package/templates/skills/knowledge/webapp-testing/scripts/playwright_runner.py +0 -0
  191. package/templates/skills/react-components/README.md +36 -0
  192. package/templates/skills/react-components/SKILL.md +53 -0
  193. package/templates/skills/react-components/examples/gold-standard-card.tsx +80 -0
  194. package/templates/skills/react-components/package-lock.json +231 -0
  195. package/templates/skills/react-components/package.json +16 -0
  196. package/templates/skills/react-components/resources/architecture-checklist.md +15 -0
  197. package/templates/skills/react-components/resources/component-template.tsx +37 -0
  198. package/templates/skills/react-components/resources/stitch-api-reference.md +14 -0
  199. package/templates/skills/react-components/resources/style-guide.json +27 -0
  200. package/templates/skills/react-components/scripts/fetch-stitch.sh +30 -0
  201. package/templates/skills/react-components/scripts/validate.js +68 -0
  202. package/templates/skills/stitch-loop/README.md +54 -0
  203. package/templates/skills/stitch-loop/SKILL.md +235 -0
  204. package/templates/skills/stitch-loop/examples/SITE.md +73 -0
  205. package/templates/skills/stitch-loop/examples/next-prompt.md +25 -0
  206. package/templates/skills/stitch-loop/resources/baton-schema.md +61 -0
  207. package/templates/skills/stitch-loop/resources/site-template.md +104 -0
@@ -0,0 +1,37 @@
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
+
19
+ // Use a valid identifier like 'StitchComponent' as the placeholder
20
+ interface StitchComponentProps {
21
+ readonly children?: React.ReactNode;
22
+ readonly className?: string;
23
+ }
24
+
25
+ export const StitchComponent: React.FC<StitchComponentProps> = ({
26
+ children,
27
+ className = '',
28
+ ...props
29
+ }) => {
30
+ return (
31
+ <div className={`relative ${className}`} {...props}>
32
+ {children}
33
+ </div>
34
+ );
35
+ };
36
+
37
+ export default StitchComponent;
@@ -0,0 +1,14 @@
1
+ # Stitch API reference
2
+
3
+ This document describes the data structures returned by the Stitch MCP server to ensure accurate component mapping.
4
+
5
+ ### Metadata schema
6
+ When calling `get_screen`, the server returns a JSON object with these key properties:
7
+ * **htmlCode**: Contains a `downloadUrl`. This is a signed URL that requires a system-level fetch (curl) to handle redirects and security handshakes.
8
+ * **screenshot**: Includes a `downloadUrl` for the visual design. Use this to verify layout intent that might not be obvious in the raw HTML.
9
+ * **deviceType**: Usually set to `DESKTOP`. All generated components should prioritize the corresponding viewport (2560px width) as the base layout.
10
+
11
+ ### Technical mapping rules
12
+ 1. **Element tracking**: Preserve `data-stitch-id` attributes as comments in the TSX to allow for future design synchronization.
13
+ 2. **Asset handling**: Treat background images in the HTML as dynamic data. Extract the URLs into `mockData.ts` rather than hardcoding them into the component styles.
14
+ 3. **Style extraction**: The HTML `<head>` contains a localized `tailwind.config`. This config must be merged with the local project theme to ensure colors like `primary` and `background-dark` render correctly.
@@ -0,0 +1,27 @@
1
+ {
2
+ "theme": {
3
+ "colors": {
4
+ "primary": "#19e66f",
5
+ "background": {
6
+ "light": "#f6f8f7",
7
+ "dark": "#112118",
8
+ "elevated": "#1A1A1A"
9
+ },
10
+ "accent": {
11
+ "purple": "#8A2BE2",
12
+ "lavender": "#D0A9F5"
13
+ }
14
+ },
15
+ "typography": {
16
+ "display": [
17
+ "Space Grotesk",
18
+ "sans-serif"
19
+ ],
20
+ "icons": "Material Symbols Outlined"
21
+ },
22
+ "spacing": {
23
+ "header-h": "72px",
24
+ "container-max": "960px"
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,30 @@
1
+ #!/bin/bash
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
+ URL=$1
17
+ OUTPUT=$2
18
+ if [ -z "$URL" ] || [ -z "$OUTPUT" ]; then
19
+ echo "Usage: $0 <url> <output_path>"
20
+ exit 1
21
+ fi
22
+ echo "Initiating high-reliability fetch for Stitch HTML..."
23
+ curl -L -f -sS --connect-timeout 10 --compressed "$URL" -o "$OUTPUT"
24
+ if [ $? -eq 0 ]; then
25
+ echo "✅ Successfully retrieved HTML at: $OUTPUT"
26
+ exit 0
27
+ else
28
+ echo "❌ Error: Failed to retrieve content. Check TLS/SNI or URL expiration."
29
+ exit 1
30
+ fi
@@ -0,0 +1,68 @@
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 swc from '@swc/core';
18
+ import fs from 'node:fs';
19
+ import path from 'node:path';
20
+
21
+ async function validateComponent(filePath) {
22
+ const code = fs.readFileSync(filePath, 'utf-8');
23
+ const filename = path.basename(filePath);
24
+ try {
25
+ const ast = await swc.parse(code, { syntax: "typescript", tsx: true });
26
+ let hasInterface = false;
27
+ let tailwindIssues = [];
28
+
29
+ console.log("🔍 Scanning AST...");
30
+
31
+ const walk = (node) => {
32
+ if (!node) return;
33
+ if (node.type === 'TsInterfaceDeclaration' && node.id.value.endsWith('Props')) hasInterface = true;
34
+ if (node.type === 'JSXAttribute' && node.name.name === 'className') {
35
+ if (node.value?.value && /#[0-9A-Fa-f]{6}/.test(node.value.value)) tailwindIssues.push(node.value.value);
36
+ }
37
+ for (const key in node) { if (node[key] && typeof node[key] === 'object') walk(node[key]); }
38
+ };
39
+ walk(ast);
40
+
41
+ console.log(`--- Validation for: ${filename} ---`);
42
+ if (hasInterface) {
43
+ console.log("✅ Props declaration found.");
44
+ } else {
45
+ console.error("❌ MISSING: Props interface (must end in 'Props').");
46
+ }
47
+
48
+ if (tailwindIssues.length === 0) {
49
+ console.log("✅ No hardcoded hex values found.");
50
+ } else {
51
+ console.error(`❌ STYLE: Found ${tailwindIssues.length} hardcoded hex codes.`);
52
+ tailwindIssues.forEach(hex => console.error(` - ${hex}`));
53
+ }
54
+
55
+ if (hasInterface && tailwindIssues.length === 0) {
56
+ console.log("\n✨ COMPONENT VALID.");
57
+ process.exit(0);
58
+ } else {
59
+ console.error("\n🚫 VALIDATION FAILED.");
60
+ process.exit(1);
61
+ }
62
+ } catch (err) {
63
+ console.error("❌ PARSE ERROR:", err.message);
64
+ process.exit(1);
65
+ }
66
+ }
67
+
68
+ validateComponent(process.argv[2]);
@@ -0,0 +1,54 @@
1
+ # Stitch Build Loop Skill
2
+
3
+ Teaches agents to iteratively build websites using Stitch with an autonomous baton-passing loop pattern.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npx add-skill google-labs-code/stitch-skills --skill stitch-loop --global
9
+ ```
10
+
11
+ ## What It Does
12
+
13
+ Enables continuous, autonomous website development through a "baton" system:
14
+
15
+ 1. Agent reads task from `next-prompt.md`
16
+ 2. Generates page via Stitch MCP tools
17
+ 3. Integrates into site structure
18
+ 4. Writes next task to continue the loop
19
+
20
+ ## Prerequisites
21
+
22
+ - Stitch MCP Server access
23
+ - A `DESIGN.md` file (generate with the `design-md` skill)
24
+ - A `SITE.md` file for project context
25
+
26
+ ## Example Prompt
27
+
28
+ ```text
29
+ Read my next-prompt.md and generate the page using Stitch, then prepare the next iteration.
30
+ ```
31
+
32
+ ## Skill Structure
33
+
34
+ ```
35
+ stitch-loop/
36
+ ├── SKILL.md — Core pattern instructions
37
+ ├── README.md — This file
38
+ ├── resources/
39
+ │ ├── baton-schema.md — Baton file format spec
40
+ │ └── site-template.md — SITE.md/DESIGN.md templates
41
+ └── examples/
42
+ ├── next-prompt.md — Example baton
43
+ └── SITE.md — Example site constitution
44
+ ```
45
+
46
+ ## Works With
47
+
48
+ - **`design-md` skill**: Generate `DESIGN.md` from existing Stitch screens
49
+ - **CI/CD**: GitHub Actions can trigger new iterations on push
50
+ - **Agent chains**: Dispatch to other agents (Jules, etc.)
51
+
52
+ ## Learn More
53
+
54
+ See [SKILL.md](./SKILL.md) for complete instructions.
@@ -0,0 +1,235 @@
1
+ ---
2
+ name: stitch-loop
3
+ description: Teaches agents to iteratively build websites using Stitch with an autonomous baton-passing loop pattern
4
+ allowed-tools:
5
+ - "stitch*:*"
6
+ - "chrome*:*"
7
+ - "Read"
8
+ - "Write"
9
+ - "Bash"
10
+ - "qdrant-memory"
11
+ ---
12
+
13
+ # Stitch Build Loop
14
+
15
+ You 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.
16
+
17
+ ## Overview
18
+
19
+ The Build Loop pattern enables continuous, autonomous website development through a "baton" system. Each iteration:
20
+
21
+ 1. Reads the current task from a baton file (`next-prompt.md`)
22
+ 2. Generates a page using Stitch MCP tools
23
+ 3. Integrates the page into the site structure
24
+ 4. Writes the next task to the baton file for the next iteration
25
+
26
+ ## Prerequisites
27
+
28
+ **Required:**
29
+
30
+ - Access to the Stitch MCP Server
31
+ - A Stitch project (existing or will be created)
32
+ - A `DESIGN.md` file (generate one using the `design-md` skill if needed)
33
+ - A `SITE.md` file documenting the site vision and roadmap
34
+
35
+ **Optional:**
36
+
37
+ - Chrome DevTools MCP Server — enables visual verification of generated pages
38
+ - Qdrant Memory Skill — enables semantic context retrieval and long-term memory
39
+
40
+ ## The Baton System
41
+
42
+ The `next-prompt.md` file acts as a relay baton between iterations:
43
+
44
+ ```markdown
45
+ ---
46
+ page: about
47
+ ---
48
+
49
+ A page describing how jules.top tracking works.
50
+
51
+ **DESIGN SYSTEM (REQUIRED):**
52
+ [Copy from DESIGN.md Section 6]
53
+
54
+ **Page Structure:**
55
+
56
+ 1. Header with navigation
57
+ 2. Explanation of tracking methodology
58
+ 3. Footer with links
59
+ ```
60
+
61
+ **Critical rules:**
62
+
63
+ - The `page` field in YAML frontmatter determines the output filename
64
+ - The prompt content must include the design system block from `DESIGN.md`
65
+ - You MUST update this file before completing your work to continue the loop
66
+
67
+ ## Execution Protocol
68
+
69
+ ### Step 1: Read the Baton
70
+
71
+ Parse `next-prompt.md` to extract:
72
+
73
+ - **Page name** from the `page` frontmatter field
74
+ - **Prompt content** from the markdown body
75
+
76
+ ### Step 2: Consult Context Files
77
+
78
+ Before generating, read these files:
79
+
80
+ | File | Purpose |
81
+ | ----------- | --------------------------------------------------------------------- |
82
+ | `SITE.md` | Site vision, **Stitch Project ID**, existing pages (sitemap), roadmap |
83
+ | `DESIGN.md` | Required visual style for Stitch prompts |
84
+
85
+ ### Step 2.5: Consult Memory (Optional)
86
+
87
+ If the **Qdrant Memory Skill** is available, retrieve relevant context to ensure consistency:
88
+
89
+ 1. **Retrieve Context**: Call `qdrant_search_memory` (or `retrieve_context` script) with technical queries related to the current task.
90
+ - Example query: "navigation structure", "footer design", "auth flow pattern"
91
+ - Filter by project if applicable.
92
+ 2. **Check Decisions**: Look for past architectural decisions (`type: "decision"`) that might impact this page.
93
+
94
+ **Important checks:**
95
+
96
+ - Section 4 (Sitemap) — Do NOT recreate pages that already exist
97
+ - Section 5 (Roadmap) — Pick tasks from here if backlog exists
98
+ - Section 6 (Creative Freedom) — Ideas for new pages if roadmap is empty
99
+
100
+ ### Step 3: Generate with Stitch
101
+
102
+ Use the Stitch MCP tools to generate the page:
103
+
104
+ 1. **Discover namespace**: Run `list_tools` to find the Stitch MCP prefix
105
+ 2. **Get or create project**:
106
+ - If `stitch.json` exists, use the `projectId` from it
107
+ - Otherwise, call `[prefix]:create_project` and save the ID to `stitch.json`
108
+ 3. **Generate screen**: Call `[prefix]:generate_screen_from_text` with:
109
+ - `projectId`: The project ID
110
+ - `prompt`: The full prompt from the baton (including design system block)
111
+ - `deviceType`: `DESKTOP` (or as specified)
112
+ 4. **Retrieve assets**: Call `[prefix]:get_screen` to get:
113
+ - `htmlCode.downloadUrl` — Download and save as `queue/{page}.html`
114
+ - `screenshot.downloadUrl` — Download and save as `queue/{page}.png`
115
+
116
+ ### Step 4: Integrate into Site
117
+
118
+ 1. Move generated HTML from `queue/{page}.html` to `site/public/{page}.html`
119
+ 2. Fix any asset paths to be relative to the public folder
120
+ 3. Update navigation:
121
+ - Find existing placeholder links (e.g., `href="#"`) and wire them to the new page
122
+ - Add the new page to the global navigation if appropriate
123
+ 4. Ensure consistent headers/footers across all pages
124
+
125
+ ### Step 4.5: Visual Verification (Optional)
126
+
127
+ If the **Chrome DevTools MCP Server** is available, verify the generated page:
128
+
129
+ 1. **Check availability**: Run `list_tools` to see if `chrome*` tools are present
130
+ 2. **Start dev server**: Use Bash to start a local server (e.g., `npx serve site/public`)
131
+ 3. **Navigate to page**: Call `[chrome_prefix]:navigate` to open `http://localhost:3000/{page}.html`
132
+ 4. **Capture screenshot**: Call `[chrome_prefix]:screenshot` to capture the rendered page
133
+ 5. **Visual comparison**: Compare against the Stitch screenshot (`queue/{page}.png`) for fidelity
134
+ 6. **Stop server**: Terminate the dev server process
135
+
136
+ > **Note:** This step is optional. If Chrome DevTools MCP is not installed, skip to Step 5.
137
+
138
+ ### Step 5: Update Site Documentation
139
+
140
+ Modify `SITE.md`:
141
+
142
+ - Add the new page to Section 4 (Sitemap) with `[x]`
143
+ - Remove any idea you consumed from Section 6 (Creative Freedom)
144
+ - Update Section 5 (Roadmap) if you completed a backlog item
145
+
146
+ ### Step 5.5: Store Memory (Optional)
147
+
148
+ If **Qdrant Memory Skill** is available:
149
+
150
+ 1. **Store Completion**: Use `qdrant_store_memory` to record the completion of the page.
151
+ - Content: "Completed page: {page}. Implemented features: [list features]."
152
+ - Metadata: `type: "milestone"`, `page: "{page}"`
153
+ 2. **Store Decisions**: If you made any structural or design decisions (e.g., "Standardized footer links"), store them:
154
+ - Metadata: `type: "decision"`, `topic: "navigation"`
155
+
156
+ ### Step 6: Prepare the Next Baton (Critical)
157
+
158
+ **You MUST update `next-prompt.md` before completing.** This keeps the loop alive.
159
+
160
+ 1. **Decide the next page**:
161
+ - Check `SITE.md` Section 5 (Roadmap) for pending items
162
+ - If empty, pick from Section 6 (Creative Freedom)
163
+ - Or invent something new that fits the site vision
164
+ 2. **Write the baton** with proper YAML frontmatter:
165
+
166
+ ```markdown
167
+ ---
168
+ page: achievements
169
+ ---
170
+
171
+ A competitive achievements page showing developer badges and milestones.
172
+
173
+ **DESIGN SYSTEM (REQUIRED):**
174
+ [Copy the entire design system block from DESIGN.md]
175
+
176
+ **Page Structure:**
177
+
178
+ 1. Header with title and navigation
179
+ 2. Badge grid showing unlocked/locked states
180
+ 3. Progress bars for milestone tracking
181
+ ```
182
+
183
+ ## File Structure Reference
184
+
185
+ ```
186
+ project/
187
+ ├── next-prompt.md # The baton — current task
188
+ ├── stitch.json # Stitch project ID (persist this!)
189
+ ├── DESIGN.md # Visual design system (from design-md skill)
190
+ ├── SITE.md # Site vision, sitemap, roadmap
191
+ ├── queue/ # Staging area for Stitch output
192
+ │ ├── {page}.html
193
+ │ └── {page}.png
194
+ └── site/public/ # Production pages
195
+ ├── index.html
196
+ └── {page}.html
197
+ ```
198
+
199
+ ## Orchestration Options
200
+
201
+ The loop can be driven by different orchestration layers:
202
+
203
+ | Method | How it works |
204
+ | ----------------- | ------------------------------------------------------ |
205
+ | **CI/CD** | GitHub Actions triggers on `next-prompt.md` changes |
206
+ | **Human-in-loop** | Developer reviews each iteration before continuing |
207
+ | **Agent chains** | One agent dispatches to another (e.g., Jules API) |
208
+ | **Manual** | Developer runs the agent repeatedly with the same repo |
209
+
210
+ The skill is orchestration-agnostic — focus on the pattern, not the trigger mechanism.
211
+
212
+ ## Design System Integration
213
+
214
+ This skill works best with the `design-md` skill:
215
+
216
+ 1. **First time setup**: Generate `DESIGN.md` using the `design-md` skill from an existing Stitch screen
217
+ 2. **Every iteration**: Copy Section 6 ("Design System Notes for Stitch Generation") into your baton prompt
218
+ 3. **Consistency**: All generated pages will share the same visual language
219
+
220
+ ## Common Pitfalls
221
+
222
+ - ❌ Forgetting to update `next-prompt.md` (breaks the loop)
223
+ - ❌ Recreating a page that already exists in the sitemap
224
+ - ❌ Not including the design system block in the prompt
225
+ - ❌ Leaving placeholder links (`href="#"`) instead of wiring real navigation
226
+ - ❌ Forgetting to persist `stitch.json` after creating a new project
227
+
228
+ ## Troubleshooting
229
+
230
+ | Issue | Solution |
231
+ | ----------------------- | ---------------------------------------------------------- |
232
+ | Stitch generation fails | Check that the prompt includes the design system block |
233
+ | Inconsistent styles | Ensure DESIGN.md is up-to-date and copied correctly |
234
+ | Loop stalls | Verify `next-prompt.md` was updated with valid frontmatter |
235
+ | Navigation broken | Check all internal links use correct relative paths |
@@ -0,0 +1,73 @@
1
+ ---
2
+ stitch-project-id: 13534454087919359824
3
+ ---
4
+ # Project Vision & Constitution
5
+
6
+ > **AGENT INSTRUCTION:** Read this file before every iteration. It serves as the project's "Long-Term Memory." If `next-prompt.md` is empty, pick the highest priority item from Section 5 OR invent a new page that fits the project vision.
7
+
8
+ ## 1. Core Identity
9
+ * **Project Name:** Oakwood Furniture Co.
10
+ * **Stitch Project ID:** `13534454087919359824`
11
+ * **Mission:** A premium online furniture showroom showcasing handcrafted, sustainable wood furniture.
12
+ * **Target Audience:** Design-conscious homeowners, interior designers, eco-minded buyers.
13
+ * **Voice:** Warm, refined, artisanal, and trustworthy.
14
+
15
+ ## 2. Visual Language (Stitch Prompt Strategy)
16
+ *Strictly adhere to these descriptive rules when prompting Stitch. Do NOT use code.*
17
+
18
+ * **The "Vibe" (Adjectives):**
19
+ * *Primary:* **Warm** (Inviting, cozy, natural materials).
20
+ * *Secondary:* **Minimal** (Clean layouts, breathing room, gallery-like).
21
+ * *Tertiary:* **Artisanal** (Handcrafted feel, attention to detail).
22
+
23
+ * **Color Philosophy (Semantic):**
24
+ * **Backgrounds:** Warm barely-there cream (#FCFAFA). Soft, inviting canvas.
25
+ * **Accents:** Deep muted teal-navy (#294056) for CTAs and highlights.
26
+ * **Text:** Charcoal near-black (#2C2C2C) for headlines, soft gray (#6B6B6B) for body.
27
+
28
+ ## 3. Architecture & File Structure
29
+ * **Root:** `site/public/`
30
+ * **Asset Flow:** Stitch generates to `queue/` -> Validate -> Move to `site/public/`.
31
+ * **Navigation Strategy:**
32
+ * **Global Header:** Logo, Shop, Collections, About, Contact.
33
+ * **Global Footer:** Sustainability, Craftsmanship, Shipping Info, Social Links.
34
+
35
+ ## 4. Live Sitemap (Current State)
36
+ *The Agent MUST update this section when a new page is successfully merged.*
37
+
38
+ * [x] `index.html` - Homepage with hero and featured collections.
39
+ * [x] `collections.html` - Overview of furniture categories.
40
+ * [x] `about.html` - Our story and craftsmanship philosophy.
41
+ * [ ] `contact.html` - Contact form and showroom locations.
42
+
43
+ ## 5. The Roadmap (Backlog)
44
+ *If `next-prompt.md` is empty or completed, pick the next task from here.*
45
+
46
+ ### High Priority
47
+ - [ ] **Product Detail Page:** Template for individual furniture items.
48
+ - [ ] **Contact Page:** Contact form with showroom map.
49
+
50
+ ### Medium Priority
51
+ - [ ] **Sustainability Page:** Our commitment to eco-friendly practices.
52
+ - [ ] **Care Guide:** How to maintain wood furniture.
53
+
54
+ ## 6. Creative Freedom Guidelines
55
+ *When the backlog is empty, follow these guidelines to innovate.*
56
+
57
+ 1. **Stay On-Brand:** New pages must fit the "Warm + Minimal + Artisanal" vibe.
58
+ 2. **Enhance the Core:** Support the furniture shopping experience.
59
+ 3. **Naming Convention:** Use lowercase, descriptive filenames.
60
+
61
+ ### Ideas to Explore
62
+ *Pick one, build it, then REMOVE it from this list.*
63
+
64
+ - [ ] `materials.html` - Showcase of wood types and finishes
65
+ - [ ] `custom.html` - Custom furniture ordering process
66
+ - [ ] `gallery.html` - Customer homes featuring our furniture
67
+ - [ ] `blog.html` - Design tips and furniture care articles
68
+
69
+ ## 7. Rules of Engagement
70
+ 1. Do not recreate pages in Section 4.
71
+ 2. Always update `next-prompt.md` before completing.
72
+ 3. Consume ideas from Section 6 when you use them.
73
+ 4. Keep the loop moving.
@@ -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