cfsa-antigravity 1.0.0

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 (378) hide show
  1. package/bin/cli.mjs +324 -0
  2. package/package.json +34 -0
  3. package/template/.agent/instructions/commands.md +48 -0
  4. package/template/.agent/instructions/patterns.md +61 -0
  5. package/template/.agent/instructions/structure.md +29 -0
  6. package/template/.agent/instructions/tech-stack.md +43 -0
  7. package/template/.agent/instructions/workflow.md +41 -0
  8. package/template/.agent/kit-sync.md +15 -0
  9. package/template/.agent/rules/boundary-not-placeholder.md +146 -0
  10. package/template/.agent/rules/completion-checklist.md +48 -0
  11. package/template/.agent/rules/decision-classification.md +103 -0
  12. package/template/.agent/rules/extensibility.md +47 -0
  13. package/template/.agent/rules/question-vs-command.md +81 -0
  14. package/template/.agent/rules/security-first.md +43 -0
  15. package/template/.agent/rules/specificity-standards.md +54 -0
  16. package/template/.agent/rules/tdd-contract-first.md +57 -0
  17. package/template/.agent/rules/vertical-slices.md +42 -0
  18. package/template/.agent/skill-library/MANIFEST.md +480 -0
  19. package/template/.agent/skill-library/README.md +38 -0
  20. package/template/.agent/skill-library/meta/brand-guidelines/SKILL.md +73 -0
  21. package/template/.agent/skill-library/meta/claude-code/README.md +9 -0
  22. package/template/.agent/skill-library/meta/claude-code/agent-development/SKILL.md +415 -0
  23. package/template/.agent/skill-library/meta/claude-code/hook-development/SKILL.md +712 -0
  24. package/template/.agent/skill-library/meta/claude-code/plugin-structure/SKILL.md +476 -0
  25. package/template/.agent/skill-library/meta/git-advanced/SKILL.md +972 -0
  26. package/template/.agent/skill-library/meta/mcp-builder/SKILL.md +236 -0
  27. package/template/.agent/skill-library/meta/product-marketing-context/SKILL.md +241 -0
  28. package/template/.agent/skill-library/meta/regex-patterns/SKILL.md +751 -0
  29. package/template/.agent/skill-library/meta/tmux-processes/SKILL.md +210 -0
  30. package/template/.agent/skill-library/meta/using-tmux-for-interactive-commands/SKILL.md +178 -0
  31. package/template/.agent/skill-library/stack/3d/threejs-pro/SKILL.md +300 -0
  32. package/template/.agent/skill-library/stack/ai/ai-sdk/SKILL.md +77 -0
  33. package/template/.agent/skill-library/stack/ai/langchain/SKILL.md +530 -0
  34. package/template/.agent/skill-library/stack/ai/ollama/SKILL.md +321 -0
  35. package/template/.agent/skill-library/stack/ai/openai-sdk/SKILL.md +549 -0
  36. package/template/.agent/skill-library/stack/analytics/google-analytics/SKILL.md +153 -0
  37. package/template/.agent/skill-library/stack/api/graphql/SKILL.md +1061 -0
  38. package/template/.agent/skill-library/stack/api/trpc/SKILL.md +576 -0
  39. package/template/.agent/skill-library/stack/auth/authjs/SKILL.md +569 -0
  40. package/template/.agent/skill-library/stack/auth/clerk/SKILL.md +590 -0
  41. package/template/.agent/skill-library/stack/auth/firebase-auth/SKILL.md +734 -0
  42. package/template/.agent/skill-library/stack/cms/payload-cms/SKILL.md +573 -0
  43. package/template/.agent/skill-library/stack/cms/shopify/SKILL.md +1193 -0
  44. package/template/.agent/skill-library/stack/cms/wordpress/SKILL.md +1104 -0
  45. package/template/.agent/skill-library/stack/css/sass-scss/SKILL.md +1121 -0
  46. package/template/.agent/skill-library/stack/css/tailwind-css-patterns/SKILL.md +863 -0
  47. package/template/.agent/skill-library/stack/css/tailwind-design-system/SKILL.md +490 -0
  48. package/template/.agent/skill-library/stack/css/vanilla-css/SKILL.md +1078 -0
  49. package/template/.agent/skill-library/stack/databases/clickhouse/SKILL.md +311 -0
  50. package/template/.agent/skill-library/stack/databases/influxdb/SKILL.md +280 -0
  51. package/template/.agent/skill-library/stack/databases/lancedb/SKILL.md +415 -0
  52. package/template/.agent/skill-library/stack/databases/mongodb/SKILL.md +1169 -0
  53. package/template/.agent/skill-library/stack/databases/neo4j/SKILL.md +839 -0
  54. package/template/.agent/skill-library/stack/databases/pgvector/SKILL.md +241 -0
  55. package/template/.agent/skill-library/stack/databases/pinecone/SKILL.md +212 -0
  56. package/template/.agent/skill-library/stack/databases/postgresql/SKILL.md +658 -0
  57. package/template/.agent/skill-library/stack/databases/qdrant/SKILL.md +312 -0
  58. package/template/.agent/skill-library/stack/databases/redis/SKILL.md +1079 -0
  59. package/template/.agent/skill-library/stack/databases/spacetimedb/SKILL.md +532 -0
  60. package/template/.agent/skill-library/stack/databases/sqlite/SKILL.md +1132 -0
  61. package/template/.agent/skill-library/stack/databases/supabase/SKILL.md +640 -0
  62. package/template/.agent/skill-library/stack/databases/surrealdb-expert/SKILL.md +945 -0
  63. package/template/.agent/skill-library/stack/databases/timescaledb/SKILL.md +745 -0
  64. package/template/.agent/skill-library/stack/databases/weaviate/SKILL.md +218 -0
  65. package/template/.agent/skill-library/stack/devops/github-actions/SKILL.md +554 -0
  66. package/template/.agent/skill-library/stack/devops/kubernetes/SKILL.md +950 -0
  67. package/template/.agent/skill-library/stack/devops/nginx/SKILL.md +841 -0
  68. package/template/.agent/skill-library/stack/devops/terraform/SKILL.md +860 -0
  69. package/template/.agent/skill-library/stack/email/resend/SKILL.md +391 -0
  70. package/template/.agent/skill-library/stack/engines/godot/SKILL.md +488 -0
  71. package/template/.agent/skill-library/stack/extensions/chrome-extension/SKILL.md +375 -0
  72. package/template/.agent/skill-library/stack/extensions/vscode-extension/SKILL.md +453 -0
  73. package/template/.agent/skill-library/stack/frameworks/astro-framework/SKILL.md +162 -0
  74. package/template/.agent/skill-library/stack/frameworks/electron/SKILL.md +1286 -0
  75. package/template/.agent/skill-library/stack/frameworks/fastapi/SKILL.md +650 -0
  76. package/template/.agent/skill-library/stack/frameworks/hono/SKILL.md +90 -0
  77. package/template/.agent/skill-library/stack/frameworks/nestjs/SKILL.md +878 -0
  78. package/template/.agent/skill-library/stack/frameworks/nextjs/SKILL.md +635 -0
  79. package/template/.agent/skill-library/stack/frameworks/nuxt/SKILL.md +564 -0
  80. package/template/.agent/skill-library/stack/frameworks/sveltekit/SKILL.md +614 -0
  81. package/template/.agent/skill-library/stack/frameworks/tauri/SKILL.md +920 -0
  82. package/template/.agent/skill-library/stack/gamedev/godot/SKILL.md +1032 -0
  83. package/template/.agent/skill-library/stack/gamedev/unity/SKILL.md +1175 -0
  84. package/template/.agent/skill-library/stack/hosting/aws/SKILL.md +467 -0
  85. package/template/.agent/skill-library/stack/hosting/cloudflare/SKILL.md +201 -0
  86. package/template/.agent/skill-library/stack/hosting/docker-expert/SKILL.md +409 -0
  87. package/template/.agent/skill-library/stack/hosting/vercel/SKILL.md +484 -0
  88. package/template/.agent/skill-library/stack/languages/bash-scripting/SKILL.md +773 -0
  89. package/template/.agent/skill-library/stack/languages/c-cpp/SKILL.md +712 -0
  90. package/template/.agent/skill-library/stack/languages/gdscript/SKILL.md +789 -0
  91. package/template/.agent/skill-library/stack/languages/go/SKILL.md +664 -0
  92. package/template/.agent/skill-library/stack/languages/java/SKILL.md +778 -0
  93. package/template/.agent/skill-library/stack/languages/kotlin/SKILL.md +665 -0
  94. package/template/.agent/skill-library/stack/languages/python/SKILL.md +678 -0
  95. package/template/.agent/skill-library/stack/languages/rust/SKILL.md +673 -0
  96. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/SKILL.md +141 -0
  97. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/advanced-generics.md +90 -0
  98. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/branded-types.md +57 -0
  99. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/builder-pattern.md +71 -0
  100. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/common-pitfalls.md +135 -0
  101. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/conditional-types.md +27 -0
  102. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/decorators.md +98 -0
  103. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/discriminated-unions.md +62 -0
  104. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/mapped-types.md +53 -0
  105. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/performance-best-practices.md +104 -0
  106. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/template-literal-types.md +49 -0
  107. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/testing-types.md +112 -0
  108. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/type-guards.md +70 -0
  109. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/type-inference.md +101 -0
  110. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/utility-types.md +98 -0
  111. package/template/.agent/skill-library/stack/languages/vanilla-javascript/SKILL.md +803 -0
  112. package/template/.agent/skill-library/stack/messaging/kafka/SKILL.md +235 -0
  113. package/template/.agent/skill-library/stack/mobile/expo-react-native/SKILL.md +665 -0
  114. package/template/.agent/skill-library/stack/mobile/flutter/SKILL.md +316 -0
  115. package/template/.agent/skill-library/stack/mobile/react-native/SKILL.md +337 -0
  116. package/template/.agent/skill-library/stack/monitoring/posthog/SKILL.md +396 -0
  117. package/template/.agent/skill-library/stack/monitoring/sentry/SKILL.md +509 -0
  118. package/template/.agent/skill-library/stack/observability/datadog/SKILL.md +179 -0
  119. package/template/.agent/skill-library/stack/observability/distributed-tracing/SKILL.md +140 -0
  120. package/template/.agent/skill-library/stack/observability/logging-best-practices/SKILL.md +168 -0
  121. package/template/.agent/skill-library/stack/observability/opentelemetry/SKILL.md +164 -0
  122. package/template/.agent/skill-library/stack/observability/prometheus-grafana/SKILL.md +246 -0
  123. package/template/.agent/skill-library/stack/observability/python-observability/SKILL.md +158 -0
  124. package/template/.agent/skill-library/stack/orm/drizzle-orm/SKILL.md +613 -0
  125. package/template/.agent/skill-library/stack/orm/prisma/SKILL.md +744 -0
  126. package/template/.agent/skill-library/stack/payments/lemonsqueezy/SKILL.md +393 -0
  127. package/template/.agent/skill-library/stack/payments/stripe-integration/SKILL.md +457 -0
  128. package/template/.agent/skill-library/stack/queue/bullmq/SKILL.md +385 -0
  129. package/template/.agent/skill-library/stack/queue/inngest/SKILL.md +438 -0
  130. package/template/.agent/skill-library/stack/realtime/socketio/SKILL.md +595 -0
  131. package/template/.agent/skill-library/stack/search/elasticsearch/SKILL.md +248 -0
  132. package/template/.agent/skill-library/stack/search/meilisearch/SKILL.md +385 -0
  133. package/template/.agent/skill-library/stack/security/crypto-patterns/SKILL.md +437 -0
  134. package/template/.agent/skill-library/stack/security/csp-cors-headers/SKILL.md +588 -0
  135. package/template/.agent/skill-library/stack/security/dependency-auditing/SKILL.md +560 -0
  136. package/template/.agent/skill-library/stack/security/input-sanitization/SKILL.md +430 -0
  137. package/template/.agent/skill-library/stack/security/owasp-web-security/SKILL.md +421 -0
  138. package/template/.agent/skill-library/stack/state/tanstack-query/SKILL.md +637 -0
  139. package/template/.agent/skill-library/stack/state/zustand/SKILL.md +483 -0
  140. package/template/.agent/skill-library/stack/storage/aws-s3/SKILL.md +415 -0
  141. package/template/.agent/skill-library/stack/testing/playwright/SKILL.md +641 -0
  142. package/template/.agent/skill-library/stack/testing/storybook/SKILL.md +923 -0
  143. package/template/.agent/skill-library/stack/testing/testing-library/SKILL.md +872 -0
  144. package/template/.agent/skill-library/stack/testing/vitest/SKILL.md +714 -0
  145. package/template/.agent/skill-library/stack/ui/react-best-practices/SKILL.md +877 -0
  146. package/template/.agent/skill-library/stack/ui/react-composition-patterns/SKILL.md +1107 -0
  147. package/template/.agent/skill-library/stack/ui/react-flow/SKILL.md +425 -0
  148. package/template/.agent/skill-library/stack/ui/shadcn-ui/SKILL.md +703 -0
  149. package/template/.agent/skill-library/surface/api/api-caching/SKILL.md +458 -0
  150. package/template/.agent/skill-library/surface/api/api-documentation-openapi/SKILL.md +697 -0
  151. package/template/.agent/skill-library/surface/api/api-error-handling/SKILL.md +478 -0
  152. package/template/.agent/skill-library/surface/api/api-security-checklist/SKILL.md +147 -0
  153. package/template/.agent/skill-library/surface/api/api-versioning/SKILL.md +420 -0
  154. package/template/.agent/skill-library/surface/api/email-best-practices/SKILL.md +59 -0
  155. package/template/.agent/skill-library/surface/api/rate-limiting-abuse-protection/SKILL.md +147 -0
  156. package/template/.agent/skill-library/surface/api/rest-api-design/SKILL.md +478 -0
  157. package/template/.agent/skill-library/surface/api/webhook-design/SKILL.md +752 -0
  158. package/template/.agent/skill-library/surface/cli/cli-configuration-management/SKILL.md +445 -0
  159. package/template/.agent/skill-library/surface/cli/cli-error-diagnostics/SKILL.md +515 -0
  160. package/template/.agent/skill-library/surface/cli/cli-shell-integration/SKILL.md +479 -0
  161. package/template/.agent/skill-library/surface/cli/cli-ux-design/SKILL.md +477 -0
  162. package/template/.agent/skill-library/surface/desktop/desktop-app-distribution/SKILL.md +416 -0
  163. package/template/.agent/skill-library/surface/desktop/desktop-security-sandboxing/SKILL.md +407 -0
  164. package/template/.agent/skill-library/surface/desktop/desktop-ux-conventions/SKILL.md +361 -0
  165. package/template/.agent/skill-library/surface/desktop/native-os-integration/SKILL.md +563 -0
  166. package/template/.agent/skill-library/surface/extension/browser-extension-patterns/SKILL.md +482 -0
  167. package/template/.agent/skill-library/surface/extension/plugin-architecture-design/SKILL.md +632 -0
  168. package/template/.agent/skill-library/surface/extension/vscode-extension-development/SKILL.md +728 -0
  169. package/template/.agent/skill-library/surface/mobile/app-store-submission/SKILL.md +304 -0
  170. package/template/.agent/skill-library/surface/mobile/mobile-offline-sync/SKILL.md +443 -0
  171. package/template/.agent/skill-library/surface/mobile/mobile-responsive-patterns/SKILL.md +432 -0
  172. package/template/.agent/skill-library/surface/mobile/push-notifications/SKILL.md +495 -0
  173. package/template/.agent/skill-library/surface/web/accessibility-compliance/SKILL.md +827 -0
  174. package/template/.agent/skill-library/surface/web/ai-seo/SKILL.md +398 -0
  175. package/template/.agent/skill-library/surface/web/ai-seo/references/content-patterns.md +285 -0
  176. package/template/.agent/skill-library/surface/web/ai-seo/references/platform-ranking-factors.md +152 -0
  177. package/template/.agent/skill-library/surface/web/analytics-tracking/SKILL.md +309 -0
  178. package/template/.agent/skill-library/surface/web/analytics-tracking/references/event-library.md +260 -0
  179. package/template/.agent/skill-library/surface/web/analytics-tracking/references/ga4-implementation.md +300 -0
  180. package/template/.agent/skill-library/surface/web/analytics-tracking/references/gtm-implementation.md +390 -0
  181. package/template/.agent/skill-library/surface/web/authentication-ui-flows/SKILL.md +530 -0
  182. package/template/.agent/skill-library/surface/web/dark-mode-theming/SKILL.md +516 -0
  183. package/template/.agent/skill-library/surface/web/design-reference-data/SKILL.md +105 -0
  184. package/template/.agent/skill-library/surface/web/design-reference-data/data/charts.csv +26 -0
  185. package/template/.agent/skill-library/surface/web/design-reference-data/data/colors.csv +97 -0
  186. package/template/.agent/skill-library/surface/web/design-reference-data/data/landing.csv +31 -0
  187. package/template/.agent/skill-library/surface/web/design-reference-data/data/styles.csv +59 -0
  188. package/template/.agent/skill-library/surface/web/design-reference-data/data/typography.csv +58 -0
  189. package/template/.agent/skill-library/surface/web/design-reference-data/data/ux-guidelines.csv +100 -0
  190. package/template/.agent/skill-library/surface/web/design-reference-data/scripts/core.py +258 -0
  191. package/template/.agent/skill-library/surface/web/design-reference-data/scripts/design_system.py +1067 -0
  192. package/template/.agent/skill-library/surface/web/design-reference-data/scripts/search.py +106 -0
  193. package/template/.agent/skill-library/surface/web/form-handling-validation/SKILL.md +675 -0
  194. package/template/.agent/skill-library/surface/web/frontend-design/SKILL.md +1393 -0
  195. package/template/.agent/skill-library/surface/web/frontend-design/templates/cppn-hero.tsx +299 -0
  196. package/template/.agent/skill-library/surface/web/frontend-design/templates/wave-hero.tsx +875 -0
  197. package/template/.agent/skill-library/surface/web/frontend-verification/SKILL.md +111 -0
  198. package/template/.agent/skill-library/surface/web/frontend-verification/scripts/ux_audit.py +739 -0
  199. package/template/.agent/skill-library/surface/web/i18n-localization/SKILL.md +154 -0
  200. package/template/.agent/skill-library/surface/web/offline-first-pwa/SKILL.md +657 -0
  201. package/template/.agent/skill-library/surface/web/page-cro/SKILL.md +182 -0
  202. package/template/.agent/skill-library/surface/web/page-cro/references/experiments.md +248 -0
  203. package/template/.agent/skill-library/surface/web/programmatic-seo/SKILL.md +238 -0
  204. package/template/.agent/skill-library/surface/web/programmatic-seo/references/playbooks.md +308 -0
  205. package/template/.agent/skill-library/surface/web/schema-markup/SKILL.md +179 -0
  206. package/template/.agent/skill-library/surface/web/schema-markup/references/schema-examples.md +398 -0
  207. package/template/.agent/skill-library/surface/web/seo-audit/SKILL.md +394 -0
  208. package/template/.agent/skill-library/surface/web/seo-audit/references/ai-writing-detection.md +200 -0
  209. package/template/.agent/skill-library/surface/web/web-performance-optimization/SKILL.md +646 -0
  210. package/template/.agent/skill-library/surface/web/web-scraping/SKILL.md +58 -0
  211. package/template/.agent/skills/accessibility/SKILL.md +522 -0
  212. package/template/.agent/skills/accessibility/references/WCAG.md +162 -0
  213. package/template/.agent/skills/adversarial-review/SKILL.md +90 -0
  214. package/template/.agent/skills/antigravity-workflows/SKILL.md +81 -0
  215. package/template/.agent/skills/antigravity-workflows/resources/implementation-playbook.md +36 -0
  216. package/template/.agent/skills/api-design-principles/SKILL.md +37 -0
  217. package/template/.agent/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  218. package/template/.agent/skills/api-design-principles/assets/rest-api-template.py +182 -0
  219. package/template/.agent/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  220. package/template/.agent/skills/api-design-principles/references/rest-best-practices.md +408 -0
  221. package/template/.agent/skills/api-design-principles/resources/implementation-playbook.md +513 -0
  222. package/template/.agent/skills/api-versioning/SKILL.md +420 -0
  223. package/template/.agent/skills/architecture-mapping/SKILL.md +219 -0
  224. package/template/.agent/skills/bootstrap-agents/SKILL.md +259 -0
  225. package/template/.agent/skills/brainstorming/SKILL.md +236 -0
  226. package/template/.agent/skills/brand-guidelines/SKILL.md +44 -0
  227. package/template/.agent/skills/clean-code/SKILL.md +94 -0
  228. package/template/.agent/skills/code-review-pro/SKILL.md +152 -0
  229. package/template/.agent/skills/concise-planning/SKILL.md +68 -0
  230. package/template/.agent/skills/cross-layer-consistency/SKILL.md +117 -0
  231. package/template/.agent/skills/database-schema-design/SKILL.md +429 -0
  232. package/template/.agent/skills/deployment-procedures/SKILL.md +241 -0
  233. package/template/.agent/skills/design-anti-cliche/SKILL.md +159 -0
  234. package/template/.agent/skills/design-direction/SKILL.md +45 -0
  235. package/template/.agent/skills/error-handling-patterns/SKILL.md +721 -0
  236. package/template/.agent/skills/find-skills/SKILL.md +145 -0
  237. package/template/.agent/skills/git-advanced/SKILL.md +972 -0
  238. package/template/.agent/skills/git-workflow/SKILL.md +420 -0
  239. package/template/.agent/skills/idea-extraction/SKILL.md +271 -0
  240. package/template/.agent/skills/logging-best-practices/SKILL.md +851 -0
  241. package/template/.agent/skills/migration-management/SKILL.md +384 -0
  242. package/template/.agent/skills/minimalist-surgical-development/SKILL.md +69 -0
  243. package/template/.agent/skills/parallel-agents/SKILL.md +165 -0
  244. package/template/.agent/skills/parallel-debugging/SKILL.md +135 -0
  245. package/template/.agent/skills/parallel-feature-development/SKILL.md +166 -0
  246. package/template/.agent/skills/performance-budgeting/SKILL.md +144 -0
  247. package/template/.agent/skills/pipeline-rubrics/SKILL.md +51 -0
  248. package/template/.agent/skills/pipeline-rubrics/references/architecture-rubric.md +19 -0
  249. package/template/.agent/skills/pipeline-rubrics/references/be-rubric.md +21 -0
  250. package/template/.agent/skills/pipeline-rubrics/references/fe-rubric.md +20 -0
  251. package/template/.agent/skills/pipeline-rubrics/references/ia-rubric.md +19 -0
  252. package/template/.agent/skills/pipeline-rubrics/references/scoring.md +28 -0
  253. package/template/.agent/skills/pipeline-rubrics/references/vision-rubric.md +11 -0
  254. package/template/.agent/skills/prd-templates/SKILL.md +88 -0
  255. package/template/.agent/skills/prd-templates/references/architecture-design-template.md +88 -0
  256. package/template/.agent/skills/prd-templates/references/be-spec-template.md +101 -0
  257. package/template/.agent/skills/prd-templates/references/data-placement-template.md +74 -0
  258. package/template/.agent/skills/prd-templates/references/decomposition-templates.md +211 -0
  259. package/template/.agent/skills/prd-templates/references/design-system-decisions.md +198 -0
  260. package/template/.agent/skills/prd-templates/references/engineering-standards-template.md +124 -0
  261. package/template/.agent/skills/prd-templates/references/fe-classification-procedures.md +47 -0
  262. package/template/.agent/skills/prd-templates/references/fe-spec-template.md +84 -0
  263. package/template/.agent/skills/prd-templates/references/infrastructure-report-template.md +71 -0
  264. package/template/.agent/skills/prd-templates/references/operational-templates.md +116 -0
  265. package/template/.agent/skills/prd-templates/references/placeholder-guard-template.md +21 -0
  266. package/template/.agent/skills/prd-templates/references/surface-model.md +61 -0
  267. package/template/.agent/skills/prd-templates/references/vision-template.md +66 -0
  268. package/template/.agent/skills/prompt-engineer/README.md +659 -0
  269. package/template/.agent/skills/prompt-engineer/SKILL.md +249 -0
  270. package/template/.agent/skills/regex-patterns/SKILL.md +751 -0
  271. package/template/.agent/skills/resolve-ambiguity/SKILL.md +278 -0
  272. package/template/.agent/skills/rest-api-design/SKILL.md +478 -0
  273. package/template/.agent/skills/security-scanning-security-hardening/SKILL.md +231 -0
  274. package/template/.agent/skills/session-continuity/SKILL.md +730 -0
  275. package/template/.agent/skills/session-continuity/protocols/01-session-resumption.md +38 -0
  276. package/template/.agent/skills/session-continuity/protocols/02-progress-generation.md +85 -0
  277. package/template/.agent/skills/session-continuity/protocols/03-progress-update.md +70 -0
  278. package/template/.agent/skills/session-continuity/protocols/04-pattern-extraction.md +60 -0
  279. package/template/.agent/skills/session-continuity/protocols/05-session-close.md +37 -0
  280. package/template/.agent/skills/session-continuity/protocols/06-decision-analysis.md +84 -0
  281. package/template/.agent/skills/session-continuity/protocols/07-spec-pipeline-generation.md +48 -0
  282. package/template/.agent/skills/session-continuity/protocols/08-spec-pipeline-update.md +43 -0
  283. package/template/.agent/skills/session-continuity/protocols/09-parallel-claim.md +122 -0
  284. package/template/.agent/skills/session-continuity/protocols/10-placeholder-verification-gate.md +104 -0
  285. package/template/.agent/skills/session-continuity/protocols/ambiguity-gates.md +48 -0
  286. package/template/.agent/skills/skill-creator/LICENSE.txt +202 -0
  287. package/template/.agent/skills/skill-creator/README.md +270 -0
  288. package/template/.agent/skills/skill-creator/SKILL.md +590 -0
  289. package/template/.agent/skills/skill-creator/references/output-patterns.md +82 -0
  290. package/template/.agent/skills/skill-creator/references/workflows.md +28 -0
  291. package/template/.agent/skills/skill-creator/scripts/init_skill.py +303 -0
  292. package/template/.agent/skills/skill-creator/scripts/package_skill.py +110 -0
  293. package/template/.agent/skills/skill-creator/scripts/quick_validate.py +95 -0
  294. package/template/.agent/skills/spec-writing/SKILL.md +110 -0
  295. package/template/.agent/skills/systematic-debugging/CREATION-LOG.md +119 -0
  296. package/template/.agent/skills/systematic-debugging/SKILL.md +297 -0
  297. package/template/.agent/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  298. package/template/.agent/skills/systematic-debugging/condition-based-waiting.md +115 -0
  299. package/template/.agent/skills/systematic-debugging/defense-in-depth.md +122 -0
  300. package/template/.agent/skills/systematic-debugging/find-polluter.sh +63 -0
  301. package/template/.agent/skills/systematic-debugging/root-cause-tracing.md +169 -0
  302. package/template/.agent/skills/systematic-debugging/test-academic.md +14 -0
  303. package/template/.agent/skills/systematic-debugging/test-pressure-1.md +58 -0
  304. package/template/.agent/skills/systematic-debugging/test-pressure-2.md +68 -0
  305. package/template/.agent/skills/systematic-debugging/test-pressure-3.md +69 -0
  306. package/template/.agent/skills/tdd-workflow/SKILL.md +409 -0
  307. package/template/.agent/skills/tech-stack-catalog/SKILL.md +49 -0
  308. package/template/.agent/skills/tech-stack-catalog/references/constraint-questions.md +21 -0
  309. package/template/.agent/skills/tech-stack-catalog/references/dev-tooling-decisions.md +37 -0
  310. package/template/.agent/skills/tech-stack-catalog/references/surface-decision-tables.md +69 -0
  311. package/template/.agent/skills/technical-writer/SKILL.md +242 -0
  312. package/template/.agent/skills/testing-strategist/SKILL.md +932 -0
  313. package/template/.agent/skills/verification-before-completion/SKILL.md +145 -0
  314. package/template/.agent/skills/workflow-automation/SKILL.md +73 -0
  315. package/template/.agent/workflows/audit-ambiguity-execute.md +165 -0
  316. package/template/.agent/workflows/audit-ambiguity-rubrics.md +83 -0
  317. package/template/.agent/workflows/audit-ambiguity.md +64 -0
  318. package/template/.agent/workflows/bootstrap-agents-fill.md +201 -0
  319. package/template/.agent/workflows/bootstrap-agents-provision.md +197 -0
  320. package/template/.agent/workflows/bootstrap-agents.md +66 -0
  321. package/template/.agent/workflows/create-prd-architecture.md +119 -0
  322. package/template/.agent/workflows/create-prd-compile.md +138 -0
  323. package/template/.agent/workflows/create-prd-design-system.md +135 -0
  324. package/template/.agent/workflows/create-prd-security.md +113 -0
  325. package/template/.agent/workflows/create-prd-stack.md +91 -0
  326. package/template/.agent/workflows/create-prd.md +168 -0
  327. package/template/.agent/workflows/decompose-architecture-structure.md +82 -0
  328. package/template/.agent/workflows/decompose-architecture-validate.md +119 -0
  329. package/template/.agent/workflows/decompose-architecture.md +111 -0
  330. package/template/.agent/workflows/evolve-contract.md +98 -0
  331. package/template/.agent/workflows/evolve-feature-cascade.md +140 -0
  332. package/template/.agent/workflows/evolve-feature-classify.md +116 -0
  333. package/template/.agent/workflows/evolve-feature.md +56 -0
  334. package/template/.agent/workflows/ideate-discover.md +144 -0
  335. package/template/.agent/workflows/ideate-extract.md +129 -0
  336. package/template/.agent/workflows/ideate-validate.md +117 -0
  337. package/template/.agent/workflows/ideate.md +113 -0
  338. package/template/.agent/workflows/implement-slice-setup.md +113 -0
  339. package/template/.agent/workflows/implement-slice-tdd.md +198 -0
  340. package/template/.agent/workflows/implement-slice.md +50 -0
  341. package/template/.agent/workflows/plan-phase.md +202 -0
  342. package/template/.agent/workflows/propagate-decision-apply.md +135 -0
  343. package/template/.agent/workflows/propagate-decision-scan.md +147 -0
  344. package/template/.agent/workflows/propagate-decision.md +56 -0
  345. package/template/.agent/workflows/remediate-pipeline-assess.md +138 -0
  346. package/template/.agent/workflows/remediate-pipeline-execute.md +135 -0
  347. package/template/.agent/workflows/remediate-pipeline.md +55 -0
  348. package/template/.agent/workflows/resolve-ambiguity.md +82 -0
  349. package/template/.agent/workflows/sync-kit.md +209 -0
  350. package/template/.agent/workflows/update-architecture-map.md +74 -0
  351. package/template/.agent/workflows/validate-phase.md +219 -0
  352. package/template/.agent/workflows/verify-infrastructure.md +207 -0
  353. package/template/.agent/workflows/write-architecture-spec-deepen.md +139 -0
  354. package/template/.agent/workflows/write-architecture-spec-design.md +202 -0
  355. package/template/.agent/workflows/write-architecture-spec.md +63 -0
  356. package/template/.agent/workflows/write-be-spec-classify.md +165 -0
  357. package/template/.agent/workflows/write-be-spec-write.md +98 -0
  358. package/template/.agent/workflows/write-be-spec.md +76 -0
  359. package/template/.agent/workflows/write-fe-spec-classify.md +170 -0
  360. package/template/.agent/workflows/write-fe-spec-write.md +94 -0
  361. package/template/.agent/workflows/write-fe-spec.md +71 -0
  362. package/template/AGENTS.md +176 -0
  363. package/template/GEMINI.md +177 -0
  364. package/template/docs/README.md +187 -0
  365. package/template/docs/audits/.gitkeep +0 -0
  366. package/template/docs/audits/README.md +10 -0
  367. package/template/docs/plans/.gitkeep +0 -0
  368. package/template/docs/plans/README.md +21 -0
  369. package/template/docs/plans/be/.gitkeep +0 -0
  370. package/template/docs/plans/be/README.md +11 -0
  371. package/template/docs/plans/fe/.gitkeep +0 -0
  372. package/template/docs/plans/fe/README.md +11 -0
  373. package/template/docs/plans/ia/.gitkeep +0 -0
  374. package/template/docs/plans/ia/README.md +17 -0
  375. package/template/docs/plans/ia/deep-dives/.gitkeep +0 -0
  376. package/template/docs/plans/ia/deep-dives/README.md +5 -0
  377. package/template/docs/plans/phases/.gitkeep +0 -0
  378. package/template/docs/plans/phases/README.md +11 -0
@@ -0,0 +1,210 @@
1
+ ---
2
+ name: tmux-processes
3
+ description: Patterns for running long-lived processes in tmux. Use when starting dev servers, watchers, tilt, or any process expected to outlive the conversation.
4
+ ---
5
+
6
+ # tmux Process Management
7
+
8
+ ## Interactive Shell Requirement
9
+
10
+ **Use send-keys pattern for reliable shell initialization.** Creating a session spawns an interactive shell automatically. Use `send-keys` to run commands within that shell, ensuring PATH, direnv, and other initialization runs properly.
11
+
12
+ ```bash
13
+ # WRONG - inline command bypasses shell init, breaks PATH/direnv
14
+ tmux new-session -d -s "$SESSION" -n main 'tilt up'
15
+
16
+ # CORRECT - create session, then send command to interactive shell
17
+ tmux new-session -d -s "$SESSION" -n main
18
+ tmux send-keys -t "$SESSION:main" 'tilt up' Enter
19
+ ```
20
+
21
+ ## Session Naming Convention
22
+
23
+ Always derive session name from the project:
24
+
25
+ ```bash
26
+ SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
27
+ ```
28
+
29
+ For multiple processes in one project, use windows not separate sessions:
30
+ - Session: `myapp`
31
+ - Windows: `server`, `tests`, `logs`
32
+
33
+ ## Starting Processes
34
+
35
+ ### Single Process
36
+
37
+ ```bash
38
+ SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
39
+
40
+ # Create session with named window, then send command
41
+ tmux new-session -d -s "$SESSION" -n main
42
+ tmux send-keys -t "$SESSION:main" '<command>' Enter
43
+ ```
44
+
45
+ ### Idempotent Start
46
+
47
+ Check if already running before starting:
48
+
49
+ ```bash
50
+ SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
51
+
52
+ if ! tmux has-session -t "$SESSION" 2>/dev/null; then
53
+ tmux new-session -d -s "$SESSION" -n main
54
+ tmux send-keys -t "$SESSION:main" '<command>' Enter
55
+ else
56
+ echo "Session $SESSION already exists"
57
+ fi
58
+ ```
59
+
60
+ ### Adding Windows to Existing Session
61
+
62
+ ```bash
63
+ SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
64
+
65
+ # Add a new window if it doesn't exist
66
+ if ! tmux list-windows -t "$SESSION" -F '#{window_name}' | grep -q "^server$"; then
67
+ tmux new-window -t "$SESSION" -n server
68
+ tmux send-keys -t "$SESSION:server" 'npm run dev' Enter
69
+ else
70
+ echo "Window 'server' already exists"
71
+ fi
72
+ ```
73
+
74
+ ### Multiple Processes (Windows)
75
+
76
+ ```bash
77
+ SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
78
+
79
+ # Create session with first process
80
+ tmux new-session -d -s "$SESSION" -n server
81
+ tmux send-keys -t "$SESSION:server" 'npm run dev' Enter
82
+
83
+ # Add more windows
84
+ tmux new-window -t "$SESSION" -n tests
85
+ tmux send-keys -t "$SESSION:tests" 'npm run test:watch' Enter
86
+
87
+ tmux new-window -t "$SESSION" -n logs
88
+ tmux send-keys -t "$SESSION:logs" 'tail -f logs/app.log' Enter
89
+ ```
90
+
91
+ ## Monitoring Output
92
+
93
+ ```bash
94
+ SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
95
+
96
+ # Last 50 lines from first window
97
+ tmux capture-pane -p -t "$SESSION" -S -50
98
+
99
+ # From specific window
100
+ tmux capture-pane -p -t "$SESSION:server" -S -50
101
+
102
+ # Check for errors
103
+ tmux capture-pane -p -t "$SESSION" -S -100 | rg -i "error|fail|exception"
104
+
105
+ # Check for ready indicators
106
+ tmux capture-pane -p -t "$SESSION:server" -S -50 | rg -i "listening|ready|started"
107
+ ```
108
+
109
+ ## Lifecycle Management
110
+
111
+ ```bash
112
+ SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
113
+
114
+ # List all sessions (see what exists)
115
+ tmux ls
116
+
117
+ # List windows in current session
118
+ tmux list-windows -t "$SESSION"
119
+
120
+ # Kill only this project's session
121
+ tmux kill-session -t "$SESSION"
122
+
123
+ # Kill specific window
124
+ tmux kill-window -t "$SESSION:tests"
125
+
126
+ # Send keys to a window (e.g., Ctrl+C to stop)
127
+ tmux send-keys -t "$SESSION:server" C-c
128
+ ```
129
+
130
+ ## Isolation Rules
131
+
132
+ - **Never** use `tmux kill-server`
133
+ - **Never** kill sessions not matching current project
134
+ - **Always** derive session name from git root or pwd
135
+ - **Always** verify session name before kill operations
136
+ - Other Claude Code instances may have their own sessions running
137
+
138
+ ## When to Use tmux
139
+
140
+ | Scenario | Use tmux? |
141
+ |----------|-----------|
142
+ | `tilt up` | Yes, always |
143
+ | Dev server (`npm run dev`, `rails s`) | Yes |
144
+ | File watcher (`npm run watch`) | Yes |
145
+ | Test watcher (`npm run test:watch`) | Yes |
146
+ | Database server | Yes |
147
+ | One-shot build (`npm run build`) | No |
148
+ | Quick command (<10s) | No |
149
+ | Need stdout directly in conversation | No |
150
+
151
+ ## Checking Process Status
152
+
153
+ ```bash
154
+ SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
155
+
156
+ # Check session exists
157
+ tmux has-session -t "$SESSION" 2>/dev/null && echo "session exists" || echo "no session"
158
+
159
+ # List windows and their status
160
+ tmux list-windows -t "$SESSION" -F '#{window_name}: #{pane_current_command}'
161
+
162
+ # Check if specific window exists
163
+ tmux list-windows -t "$SESSION" -F '#{window_name}' | grep -q "^server$" && echo "server window exists"
164
+ ```
165
+
166
+ ## Restarting a Process
167
+
168
+ ```bash
169
+ SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
170
+
171
+ # Send Ctrl+C then restart command
172
+ tmux send-keys -t "$SESSION:server" C-c
173
+ sleep 1
174
+ tmux send-keys -t "$SESSION:server" 'npm run dev' Enter
175
+ ```
176
+
177
+ ## Common Patterns
178
+
179
+ ### Start dev server if not running
180
+
181
+ ```bash
182
+ SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
183
+
184
+ if ! tmux has-session -t "$SESSION" 2>/dev/null; then
185
+ tmux new-session -d -s "$SESSION" -n server
186
+ tmux send-keys -t "$SESSION:server" 'npm run dev' Enter
187
+ echo "Started dev server in tmux session: $SESSION"
188
+ elif ! tmux list-windows -t "$SESSION" -F '#{window_name}' | grep -q "^server$"; then
189
+ tmux new-window -t "$SESSION" -n server
190
+ tmux send-keys -t "$SESSION:server" 'npm run dev' Enter
191
+ echo "Added server window to session: $SESSION"
192
+ else
193
+ echo "Server already running in session: $SESSION"
194
+ fi
195
+ ```
196
+
197
+ ### Wait for server ready
198
+
199
+ ```bash
200
+ SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
201
+
202
+ # Poll for ready message
203
+ for i in {1..30}; do
204
+ if tmux capture-pane -p -t "$SESSION:server" -S -20 | rg -q "listening|ready"; then
205
+ echo "Server ready"
206
+ break
207
+ fi
208
+ sleep 1
209
+ done
210
+ ```
@@ -0,0 +1,178 @@
1
+ ---
2
+ name: using-tmux-for-interactive-commands
3
+ description: Use when you need to run interactive CLI tools (vim, git rebase -i, Python REPL, etc.) that require real-time input/output - provides tmux-based approach for controlling interactive sessions through detached sessions and send-keys
4
+ ---
5
+
6
+ # Using tmux for Interactive Commands
7
+
8
+ ## Overview
9
+
10
+ Interactive CLI tools (vim, interactive git rebase, REPLs, etc.) cannot be controlled through standard bash because they require a real terminal. tmux provides detached sessions that can be controlled programmatically via `send-keys` and `capture-pane`.
11
+
12
+ ## When to Use
13
+
14
+ **Use tmux when:**
15
+ - Running vim, nano, or other text editors programmatically
16
+ - Controlling interactive REPLs (Python, Node, etc.)
17
+ - Handling interactive git commands (`git rebase -i`, `git add -p`)
18
+ - Working with full-screen terminal apps (htop, etc.)
19
+ - Commands that require terminal control codes or readline
20
+
21
+ **Don't use for:**
22
+ - Simple non-interactive commands (use regular Bash tool)
23
+ - Commands that accept input via stdin redirection
24
+ - One-shot commands that don't need interaction
25
+
26
+ ## Quick Reference
27
+
28
+ | Task | Command |
29
+ |------|---------|
30
+ | Start session | `tmux new-session -d -s <name> <command>` |
31
+ | Send input | `tmux send-keys -t <name> 'text' Enter` |
32
+ | Capture output | `tmux capture-pane -t <name> -p` |
33
+ | Stop session | `tmux kill-session -t <name>` |
34
+ | List sessions | `tmux list-sessions` |
35
+
36
+ ## Core Pattern
37
+
38
+ ### Before (Won't Work)
39
+ ```bash
40
+ # This hangs because vim expects interactive terminal
41
+ bash -c "vim file.txt"
42
+ ```
43
+
44
+ ### After (Works)
45
+ ```bash
46
+ # Create detached tmux session
47
+ tmux new-session -d -s edit_session vim file.txt
48
+
49
+ # Send commands (Enter, Escape are tmux key names)
50
+ tmux send-keys -t edit_session 'i' 'Hello World' Escape ':wq' Enter
51
+
52
+ # Capture what's on screen
53
+ tmux capture-pane -t edit_session -p
54
+
55
+ # Clean up
56
+ tmux kill-session -t edit_session
57
+ ```
58
+
59
+ ## Implementation
60
+
61
+ ### Basic Workflow
62
+
63
+ 1. **Create detached session** with the interactive command
64
+ 2. **Wait briefly** for initialization (100-500ms depending on command)
65
+ 3. **Send input** using `send-keys` (can send special keys like Enter, Escape)
66
+ 4. **Capture output** using `capture-pane -p` to see current screen state
67
+ 5. **Repeat** steps 3-4 as needed
68
+ 6. **Terminate** session when done
69
+
70
+ ### Special Keys
71
+
72
+ Common tmux key names:
73
+ - `Enter` - Return/newline
74
+ - `Escape` - ESC key
75
+ - `C-c` - Ctrl+C
76
+ - `C-x` - Ctrl+X
77
+ - `Up`, `Down`, `Left`, `Right` - Arrow keys
78
+ - `Space` - Space bar
79
+ - `BSpace` - Backspace
80
+
81
+ ### Working Directory
82
+
83
+ Specify working directory when creating session:
84
+ ```bash
85
+ tmux new-session -d -s git_session -c /path/to/repo git rebase -i HEAD~3
86
+ ```
87
+
88
+ ### Helper Wrapper
89
+
90
+ For easier use, see `/home/jesse/git/interactive-command/tmux-wrapper.sh`:
91
+ ```bash
92
+ # Start session
93
+ /path/to/tmux-wrapper.sh start <session-name> <command> [args...]
94
+
95
+ # Send input
96
+ /path/to/tmux-wrapper.sh send <session-name> 'text' Enter
97
+
98
+ # Capture current state
99
+ /path/to/tmux-wrapper.sh capture <session-name>
100
+
101
+ # Stop
102
+ /path/to/tmux-wrapper.sh stop <session-name>
103
+ ```
104
+
105
+ ## Common Patterns
106
+
107
+ ### Python REPL
108
+ ```bash
109
+ tmux new-session -d -s python python3 -i
110
+ tmux send-keys -t python 'import math' Enter
111
+ tmux send-keys -t python 'print(math.pi)' Enter
112
+ tmux capture-pane -t python -p # See output
113
+ tmux kill-session -t python
114
+ ```
115
+
116
+ ### Vim Editing
117
+ ```bash
118
+ tmux new-session -d -s vim vim /tmp/file.txt
119
+ sleep 0.3 # Wait for vim to start
120
+ tmux send-keys -t vim 'i' 'New content' Escape ':wq' Enter
121
+ # File is now saved
122
+ ```
123
+
124
+ ### Interactive Git Rebase
125
+ ```bash
126
+ tmux new-session -d -s rebase -c /repo/path git rebase -i HEAD~3
127
+ sleep 0.5
128
+ tmux capture-pane -t rebase -p # See rebase editor
129
+ # Send commands to modify rebase instructions
130
+ tmux send-keys -t rebase 'Down' 'Home' 'squash' Escape
131
+ tmux send-keys -t rebase ':wq' Enter
132
+ ```
133
+
134
+ ## Common Mistakes
135
+
136
+ ### Not Waiting After Session Start
137
+ **Problem:** Capturing immediately after `new-session` shows blank screen
138
+
139
+ **Fix:** Add brief sleep (100-500ms) before first capture
140
+ ```bash
141
+ tmux new-session -d -s sess command
142
+ sleep 0.3 # Let command initialize
143
+ tmux capture-pane -t sess -p
144
+ ```
145
+
146
+ ### Forgetting Enter Key
147
+ **Problem:** Commands typed but not executed
148
+
149
+ **Fix:** Explicitly send Enter
150
+ ```bash
151
+ tmux send-keys -t sess 'print("hello")' Enter # Note: Enter is separate argument
152
+ ```
153
+
154
+ ### Using Wrong Key Names
155
+ **Problem:** `tmux send-keys -t sess '\n'` doesn't work
156
+
157
+ **Fix:** Use tmux key names: `Enter`, not `\n`
158
+ ```bash
159
+ tmux send-keys -t sess 'text' Enter # ✓
160
+ tmux send-keys -t sess 'text\n' # ✗
161
+ ```
162
+
163
+ ### Not Cleaning Up Sessions
164
+ **Problem:** Orphaned tmux sessions accumulate
165
+
166
+ **Fix:** Always kill sessions when done
167
+ ```bash
168
+ tmux kill-session -t session_name
169
+ # Or check for existing: tmux has-session -t name 2>/dev/null
170
+ ```
171
+
172
+ ## Real-World Impact
173
+
174
+ - Enables programmatic control of vim/nano for file editing
175
+ - Allows automation of interactive git workflows (rebase, add -p)
176
+ - Makes REPL-based testing/debugging possible
177
+ - Unblocks any tool that requires terminal interaction
178
+ - No need to build custom PTY management - tmux handles it all
@@ -0,0 +1,300 @@
1
+ ---
2
+ name: threejs-pro
3
+ description: Expert in 3D web graphics using Three.js, React Three Fiber (R3F), and WebGL shaders.
4
+ ---
5
+
6
+ # Three.js & WebGL Developer
7
+
8
+ ## Purpose
9
+
10
+ Provides 3D web graphics expertise specializing in Three.js, React Three Fiber (R3F), and custom GLSL shader development. Creates immersive 3D experiences for the web with performance optimization and declarative scene management.
11
+
12
+ ## When to Use
13
+
14
+ - Building 3D product configurators or landing pages
15
+ - Implementing custom shaders (GLSL) for visual effects
16
+ - Optimizing 3D scenes (Draco compression, texture resizing)
17
+ - Developing React Three Fiber (R3F) applications
18
+ - Integrating physics (Rapier/Cannon) into web scenes
19
+ - Debugging WebGL performance issues (Draw calls, memory leaks)
20
+
21
+ ## Examples
22
+
23
+ ### Example 1: 3D Product Configurator
24
+
25
+ **Scenario:** Building an interactive product configurator for a furniture retailer.
26
+
27
+ **Implementation:**
28
+ 1. Created R3F component for 3D product display
29
+ 2. Implemented texture/material swapping system
30
+ 3. Added camera controls and lighting setup
31
+ 4. Optimized 3D model with Draco compression
32
+ 5. Added accessibility alternatives for non-3D users
33
+
34
+ **Results:**
35
+ - 40% increase in conversion rate
36
+ - Average session duration increased 2x
37
+ - Load time under 2 seconds
38
+ - Works on mobile devices
39
+
40
+ ### Example 2: Custom Shader Effects
41
+
42
+ **Scenario:** Creating immersive visual effects for a gaming landing page.
43
+
44
+ **Implementation:**
45
+ 1. Wrote custom GLSL vertex and fragment shaders
46
+ 2. Implemented post-processing effects (bloom, DOF)
47
+ 3. Added interactive elements responding to user input
48
+ 4. Optimized shader performance for real-time rendering
49
+ 5. Created fallback for WebGL-incapable devices
50
+
51
+ **Results:**
52
+ - Stunning visual experience with 60fps
53
+ - Viral marketing campaign success
54
+ - Industry recognition for visual design
55
+ - Maintained performance on mid-tier devices
56
+
57
+ ### Example 3: E-Commerce 3D Integration
58
+
59
+ **Scenario:** Integrating Three.js into existing React e-commerce site.
60
+
61
+ **Implementation:**
62
+ 1. Created isolated 3D canvas component
63
+ 2. Implemented lazy loading for 3D content
64
+ 3. Added proper state management between React and Three.js
65
+ 4. Implemented proper cleanup on component unmount
66
+ 5. Added error boundaries and fallback content
67
+
68
+ **Results:**
69
+ - Zero impact on existing page performance
70
+ - Improved SEO with proper lazy loading
71
+ - Graceful degradation for unsupported browsers
72
+ - Clean codebase following React patterns
73
+
74
+ ## Best Practices
75
+
76
+ ### Performance Optimization
77
+
78
+ - **Geometry Merging**: Reduce draw calls with merged geometries
79
+ - **Texture Optimization**: Use compressed formats, proper sizing
80
+ - **Dispose Properly**: Clean up geometries and materials
81
+ - **Level of Detail**: Use LOD for distant objects
82
+
83
+ ### React Three Fiber
84
+
85
+ - **Declarative**: Use R3F component tree, not imperative code
86
+ - **Hooks**: Use useFrame, useThree, useLoader properly
87
+ - **State Management**: Use Zustand for global 3D state
88
+ - **Components**: Break scene into reusable components
89
+
90
+ ### Shaders and Effects
91
+
92
+ - **Custom Shaders**: Use when built-ins aren't enough
93
+ - **Post-Processing**: Add effects without performance cost
94
+ - **Optimization**: Profile shader performance
95
+ - **Fallbacks**: Provide alternatives for low-end devices
96
+
97
+ ### Development Workflow
98
+
99
+ - **Hot Reload**: Use HMR for rapid iteration
100
+ - **Debug Tools**: Use drei's helpers and controls
101
+ - **Accessibility**: Provide alternatives for 3D content
102
+ - **Testing**: Test on multiple devices and browsers
103
+
104
+ ---
105
+ ---
106
+
107
+ ## 2. Decision Framework
108
+
109
+ ### Tech Stack Selection
110
+
111
+ ```
112
+ What is the project scope?
113
+
114
+ ├─ **React Integration?**
115
+ │ ├─ Yes → **React Three Fiber (R3F)** (Recommended for 90% of web apps)
116
+ │ └─ No → **Vanilla Three.js**
117
+
118
+ ├─ **Performance Critical?**
119
+ │ ├─ Massive Object Count? → **InstancedMesh**
120
+ │ ├─ Complex Physics? → **Rapier (WASM)**
121
+ │ └─ Post-Processing? → **EffectComposer / R3F Postprocessing**
122
+
123
+ └─ **Visual Style?**
124
+ ├─ Realistic? → **PBR Materials + HDR Lighting**
125
+ ├─ Cartoon? → **Toon Shader / Outline Pass**
126
+ └─ Abstract? → **Custom GLSL Shaders**
127
+ ```
128
+
129
+ ### Optimization Checklist (The 60FPS Rule)
130
+
131
+ 1. **Geometry:** Use `Draco` or `Meshopt` compression.
132
+ 2. **Textures:** Use `.webp` or `.ktx2`. Max size 2048x2048.
133
+ 3. **Lighting:** Bake lighting where possible. Max 1-2 real-time shadows.
134
+ 4. **Draw Calls:** Merge geometries or use Instancing.
135
+ 5. **Render Loop:** Avoid object creation in the `useFrame` loop.
136
+
137
+ **Red Flags → Escalate to `graphics-engineer`:**
138
+ - Requirement for Ray Tracing in browser (WebGPU experimental)
139
+ - Custom render pipelines beyond standard Three.js capabilities
140
+ - Low-level WebGL API calls needed directly
141
+
142
+ ---
143
+ ---
144
+
145
+ ## 3. Core Workflows
146
+
147
+ ### Workflow 1: React Three Fiber (R3F) Setup
148
+
149
+ **Goal:** A spinning cube with shadows and orbit controls.
150
+
151
+ **Steps:**
152
+
153
+ 1. **Setup**
154
+ ```bash
155
+ npm install three @types/three @react-three/fiber @react-three/drei
156
+ ```
157
+
158
+ 2. **Scene Component (`Scene.tsx`)**
159
+ ```tsx
160
+ import { Canvas } from '@react-three/fiber';
161
+ import { OrbitControls, Stage } from '@react-three/drei';
162
+
163
+ export default function Scene() {
164
+ return (
165
+ <Canvas shadows camera={{ position: [0, 0, 5] }}>
166
+ <color attach="background" args={['#101010']} />
167
+ <ambientLight intensity={0.5} />
168
+ <spotLight position={[10, 10, 10]} angle={0.15} penumbra={1} castShadow />
169
+
170
+ <mesh castShadow receiveShadow rotation={[0, 1, 0]}>
171
+ <boxGeometry args={[1, 1, 1]} />
172
+ <meshStandardMaterial color="orange" />
173
+ </mesh>
174
+
175
+ <OrbitControls />
176
+ </Canvas>
177
+ );
178
+ }
179
+ ```
180
+
181
+ ---
182
+ ---
183
+
184
+ ### Workflow 3: Model Loading & Optimization
185
+
186
+ **Goal:** Load a heavy GLTF model efficiently.
187
+
188
+ **Steps:**
189
+
190
+ 1. **Compression**
191
+ - Use `gltf-pipeline` or `gltf-transform`.
192
+ - `gltf-transform optimize input.glb output.glb --compress draco`.
193
+
194
+ 2. **Loading (R3F)**
195
+ ```tsx
196
+ import { useGLTF } from '@react-three/drei';
197
+
198
+ export function Model(props) {
199
+ const { nodes, materials } = useGLTF('/optimized-model.glb');
200
+ return (
201
+ <group {...props} dispose={null}>
202
+ <mesh geometry={nodes.Cube.geometry} material={materials.Metal} />
203
+ </group>
204
+ );
205
+ }
206
+ useGLTF.preload('/optimized-model.glb');
207
+ ```
208
+
209
+ ---
210
+ ---
211
+
212
+ ## 5. Anti-Patterns & Gotchas
213
+
214
+ ### ❌ Anti-Pattern 1: Creating Objects in Loop
215
+
216
+ **What it looks like:**
217
+ - `useFrame(() => { new THREE.Vector3(...) })`
218
+
219
+ **Why it fails:**
220
+ - Garbage Collection (GC) stutter.
221
+ - 60fps requires 16ms/frame. Allocating memory kills performance.
222
+
223
+ **Correct approach:**
224
+ - Reuse global/module-level variables.
225
+ - `const vec = new THREE.Vector3(); useFrame(() => vec.set(...))`
226
+
227
+ ### ❌ Anti-Pattern 2: Huge Textures
228
+
229
+ **What it looks like:**
230
+ - Loading 4k `.png` textures (10MB each) for a background object.
231
+
232
+ **Why it fails:**
233
+ - Slow load time.
234
+ - GPU memory exhaustion (mobile crash).
235
+
236
+ **Correct approach:**
237
+ - Use `1k` or `2k` textures.
238
+ - Use `.jpg` for color maps, `.png` only if alpha needed.
239
+ - Use Basis/KTX2 for GPU compression.
240
+
241
+ ### ❌ Anti-Pattern 3: Too Many Lights
242
+
243
+ **What it looks like:**
244
+ - 50 dynamic PointLights.
245
+
246
+ **Why it fails:**
247
+ - Forward rendering creates exponential shader complexity.
248
+
249
+ **Correct approach:**
250
+ - **Bake Lighting** (Lightmaps) in Blender.
251
+ - Use `AmbientLight` + 1 `DirectionalLight` (Sun).
252
+
253
+ ---
254
+ ---
255
+
256
+ ## 7. Quality Checklist
257
+
258
+ **Performance:**
259
+ - [ ] **FPS:** Stable 60fps on average laptop.
260
+ - [ ] **Draw Calls:** < 100 ideally.
261
+ - [ ] **Memory:** Geometries/Materials disposed when unmounted.
262
+
263
+ **Visuals:**
264
+ - [ ] **Shadows:** Soft shadows configured (ContactShadows or PCSS).
265
+ - [ ] **Antialiasing:** Enabled (default in R3F) or SMAA via post-proc.
266
+ - [ ] **Responsiveness:** Canvas resizes correctly on window resize.
267
+
268
+ **Code:**
269
+ - [ ] **Declarative:** Used R3F component tree, not imperative `scene.add()`.
270
+ - [ ] **Optimization:** `useMemo` used for expensive calculations.
271
+
272
+ ## Anti-Patterns
273
+
274
+ ### Performance Anti-Patterns
275
+
276
+ - **Excessive Draw Calls**: Too many separate geometries - merge geometries when possible
277
+ - **Memory Leaks**: Not disposing geometries/materials - always clean up in useEffect cleanup
278
+ - **Unoptimized Textures**: Large texture files - compress and use appropriate formats
279
+ - **Heavy Calculations**: Blocking main thread - offload to web workers
280
+
281
+ ### Architecture Anti-Patterns
282
+
283
+ - **Imperative Code**: Using imperative Three.js in React - use declarative R3F patterns
284
+ - **Prop Drilling**: Passing props through many levels - use context and stores
285
+ - **State Sprawl**: Scattered state management - use centralized state (Zustand)
286
+ - **Component Bloat**: Large single components - break into focused components
287
+
288
+ ### 3D Modeling Anti-Patterns
289
+
290
+ - **High Poly Models**: Unoptimized model geometry - use LOD and decimation
291
+ - **Mismatched Scales**: Inconsistent scale units - normalize model scales
292
+ - **Missing Colliders**: No collision geometry - add invisible colliders for interactions
293
+ - **Improper Lighting**: Too many lights - use baked lighting and light probes
294
+
295
+ ### Development Anti-Patterns
296
+
297
+ - **No Progressive Loading**: Large scenes loading slowly - implement loading states
298
+ - **Missing Fallbacks**: No graceful degradation - provide fallback experiences
299
+ - **Accessibility Ignored**: 3D content not accessible - add alternative content
300
+ - **No Performance Budget**: No performance targets - establish and monitor budgets