cfsa-antigravity 3.0.2 → 3.1.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 (565) hide show
  1. package/README.md +27 -10
  2. package/bin/cli.mjs +7 -6
  3. package/package.json +1 -1
  4. package/template/.agent/PRDS/codex-runtime-support.md +2 -2
  5. package/template/.agent/TASKS/codex-runtime-support.md +2 -2
  6. package/template/.agent/instructions/workflow.md +3 -3
  7. package/template/.agent/kit-sync.md +3 -3
  8. package/template/.agent/rules/completion-checklist.md +3 -3
  9. package/template/.agent/skills/parallel-agents/SKILL.md +1 -1
  10. package/template/.agent/skills/session-continuity/SKILL.md +6 -6
  11. package/template/.agent/skills/session-continuity/protocols/01-session-resumption.md +1 -1
  12. package/template/.agent/skills/session-continuity/protocols/02-progress-generation.md +3 -3
  13. package/template/.agent/skills/session-continuity/protocols/03-progress-update.md +4 -4
  14. package/template/.agent/skills/session-continuity/protocols/07-spec-pipeline-generation.md +1 -1
  15. package/template/.agent/skills/session-continuity/protocols/08-spec-pipeline-update.md +2 -2
  16. package/template/.agent/skills/session-continuity/protocols/11-parallel-synthesis.md +1 -1
  17. package/template/.agent/workflows/create-prd-architecture.md +2 -2
  18. package/template/.agent/workflows/create-prd-design-system.md +2 -2
  19. package/template/.agent/workflows/create-prd-security.md +2 -2
  20. package/template/.agent/workflows/create-prd-stack.md +2 -2
  21. package/template/.agent/workflows/create-prd.md +2 -2
  22. package/template/.agent/workflows/decompose-architecture-validate.md +1 -1
  23. package/template/.agent/workflows/decompose-architecture.md +2 -2
  24. package/template/.agent/workflows/ideate.md +2 -2
  25. package/template/.agent/workflows/implement-slice-setup.md +1 -1
  26. package/template/.agent/workflows/implement-slice-tdd.md +3 -3
  27. package/template/.agent/workflows/implement-slice.md +2 -2
  28. package/template/.agent/workflows/plan-phase-preflight.md +2 -2
  29. package/template/.agent/workflows/plan-phase-write.md +2 -2
  30. package/template/.agent/workflows/plan-phase.md +2 -2
  31. package/template/.agent/workflows/setup-workspace.md +2 -2
  32. package/template/.agent/workflows/update-architecture-map.md +1 -1
  33. package/template/.agent/workflows/validate-phase-quality.md +1 -1
  34. package/template/.agent/workflows/validate-phase-readiness.md +2 -2
  35. package/template/.agent/workflows/validate-phase.md +2 -2
  36. package/template/.agent/workflows/verify-infrastructure.md +1 -1
  37. package/template/.agent/workflows/write-architecture-spec-deepen.md +3 -3
  38. package/template/.agent/workflows/write-architecture-spec-design.md +1 -1
  39. package/template/.agent/workflows/write-architecture-spec.md +3 -3
  40. package/template/.agent/workflows/write-be-spec-classify.md +1 -1
  41. package/template/.agent/workflows/write-be-spec-write.md +3 -3
  42. package/template/.agent/workflows/write-be-spec.md +3 -3
  43. package/template/.agent/workflows/write-fe-spec-classify.md +1 -1
  44. package/template/.agent/workflows/write-fe-spec-write.md +2 -2
  45. package/template/.agent/workflows/write-fe-spec.md +3 -3
  46. package/template/.claude/README.md +3 -1
  47. package/template/.claude/instructions/workflow.md +3 -3
  48. package/template/.claude/kit-sync.md +3 -3
  49. package/template/.claude/rules/completion-checklist.md +3 -3
  50. package/template/.claude/skills/parallel-agents/SKILL.md +1 -1
  51. package/template/.claude/skills/plan-phase/SKILL.md +2 -2
  52. package/template/.claude/skills/plan-phase-preflight/SKILL.md +2 -2
  53. package/template/.claude/skills/session-continuity/SKILL.md +6 -6
  54. package/template/.claude/skills/session-continuity/protocols/01-session-resumption.md +1 -1
  55. package/template/.claude/skills/session-continuity/protocols/02-progress-generation.md +3 -3
  56. package/template/.claude/skills/session-continuity/protocols/03-progress-update.md +4 -4
  57. package/template/.claude/skills/session-continuity/protocols/07-spec-pipeline-generation.md +1 -1
  58. package/template/.claude/skills/session-continuity/protocols/08-spec-pipeline-update.md +2 -2
  59. package/template/.claude/skills/session-continuity/protocols/11-parallel-synthesis.md +1 -1
  60. package/template/.claude/skills/setup/setup-cfsa.md +1 -1
  61. package/template/.claude/skills/write-architecture-spec/SKILL.md +2 -2
  62. package/template/.claude/skills/write-architecture-spec-deepen/SKILL.md +1 -1
  63. package/template/.claude/skills/write-architecture-spec-design/SKILL.md +1 -1
  64. package/template/.claude/skills/write-be-spec/SKILL.md +3 -3
  65. package/template/.claude/skills/write-be-spec-classify/SKILL.md +1 -1
  66. package/template/.claude/skills/write-be-spec-write/SKILL.md +1 -1
  67. package/template/.claude/skills/write-fe-spec/SKILL.md +3 -3
  68. package/template/.claude/skills/write-fe-spec-write/SKILL.md +1 -1
  69. package/template/.codex/README.md +99 -0
  70. package/template/.codex/instructions/commands.md +24 -0
  71. package/template/.codex/instructions/example.md +21 -0
  72. package/template/.codex/instructions/patterns.md +61 -0
  73. package/template/.codex/instructions/structure.md +29 -0
  74. package/template/.codex/instructions/tech-stack.md +93 -0
  75. package/template/.codex/instructions/workflow.md +64 -0
  76. package/template/.codex/kit-sync.md +6 -0
  77. package/template/.codex/rules/boundary-not-placeholder.md +146 -0
  78. package/template/.codex/rules/completion-checklist.md +60 -0
  79. package/template/.codex/rules/debug-by-test.md +49 -0
  80. package/template/.codex/rules/decision-classification.md +113 -0
  81. package/template/.codex/rules/extensibility.md +52 -0
  82. package/template/.codex/rules/memory-capture.md +84 -0
  83. package/template/.codex/rules/question-vs-command.md +91 -0
  84. package/template/.codex/rules/security-first.md +54 -0
  85. package/template/.codex/rules/single-question.md +59 -0
  86. package/template/.codex/rules/skill-mcp-first.md +45 -0
  87. package/template/.codex/rules/source-before-ask.md +93 -0
  88. package/template/.codex/rules/specificity-standards.md +64 -0
  89. package/template/.codex/rules/tdd-contract-first.md +67 -0
  90. package/template/.codex/rules/vertical-slices.md +83 -0
  91. package/template/.codex/skill-library/MANIFEST.md +498 -0
  92. package/template/.codex/skill-library/README.md +38 -0
  93. package/template/.codex/skill-library/meta/claude-code/README.md +9 -0
  94. package/template/.codex/skill-library/meta/claude-code/agent-development/SKILL.md +415 -0
  95. package/template/.codex/skill-library/meta/claude-code/hook-development/SKILL.md +712 -0
  96. package/template/.codex/skill-library/meta/claude-code/plugin-structure/SKILL.md +476 -0
  97. package/template/.codex/skill-library/meta/mcp-builder/SKILL.md +236 -0
  98. package/template/.codex/skill-library/meta/product-marketing-context/SKILL.md +241 -0
  99. package/template/.codex/skill-library/meta/tmux-processes/SKILL.md +210 -0
  100. package/template/.codex/skill-library/meta/using-tmux-for-interactive-commands/SKILL.md +178 -0
  101. package/template/.codex/skill-library/stack/3d/threejs-pro/SKILL.md +300 -0
  102. package/template/.codex/skill-library/stack/ai/ai-sdk/SKILL.md +77 -0
  103. package/template/.codex/skill-library/stack/ai/langchain/SKILL.md +530 -0
  104. package/template/.codex/skill-library/stack/ai/ollama/SKILL.md +321 -0
  105. package/template/.codex/skill-library/stack/ai/openai-sdk/SKILL.md +549 -0
  106. package/template/.codex/skill-library/stack/analytics/google-analytics/SKILL.md +153 -0
  107. package/template/.codex/skill-library/stack/api/graphql/SKILL.md +1061 -0
  108. package/template/.codex/skill-library/stack/api/trpc/SKILL.md +576 -0
  109. package/template/.codex/skill-library/stack/auth/authjs/SKILL.md +569 -0
  110. package/template/.codex/skill-library/stack/auth/clerk/SKILL.md +590 -0
  111. package/template/.codex/skill-library/stack/auth/firebase-auth/SKILL.md +734 -0
  112. package/template/.codex/skill-library/stack/auth/lucia/SKILL.md +230 -0
  113. package/template/.codex/skill-library/stack/auth/supabase-auth/SKILL.md +293 -0
  114. package/template/.codex/skill-library/stack/cms/payload-cms/SKILL.md +573 -0
  115. package/template/.codex/skill-library/stack/cms/shopify/SKILL.md +1193 -0
  116. package/template/.codex/skill-library/stack/cms/wordpress/SKILL.md +1104 -0
  117. package/template/.codex/skill-library/stack/css/sass-scss/SKILL.md +1121 -0
  118. package/template/.codex/skill-library/stack/css/tailwind-css-patterns/SKILL.md +863 -0
  119. package/template/.codex/skill-library/stack/css/tailwind-design-system/SKILL.md +490 -0
  120. package/template/.codex/skill-library/stack/css/vanilla-css/SKILL.md +1078 -0
  121. package/template/.codex/skill-library/stack/databases/clickhouse/SKILL.md +311 -0
  122. package/template/.codex/skill-library/stack/databases/influxdb/SKILL.md +280 -0
  123. package/template/.codex/skill-library/stack/databases/lancedb/SKILL.md +415 -0
  124. package/template/.codex/skill-library/stack/databases/mongodb/SKILL.md +1169 -0
  125. package/template/.codex/skill-library/stack/databases/neo4j/SKILL.md +839 -0
  126. package/template/.codex/skill-library/stack/databases/pgvector/SKILL.md +241 -0
  127. package/template/.codex/skill-library/stack/databases/pinecone/SKILL.md +212 -0
  128. package/template/.codex/skill-library/stack/databases/postgresql/SKILL.md +658 -0
  129. package/template/.codex/skill-library/stack/databases/qdrant/SKILL.md +312 -0
  130. package/template/.codex/skill-library/stack/databases/redis/SKILL.md +1079 -0
  131. package/template/.codex/skill-library/stack/databases/spacetimedb/SKILL.md +532 -0
  132. package/template/.codex/skill-library/stack/databases/sqlite/SKILL.md +1132 -0
  133. package/template/.codex/skill-library/stack/databases/supabase/SKILL.md +640 -0
  134. package/template/.codex/skill-library/stack/databases/surrealdb-expert/SKILL.md +945 -0
  135. package/template/.codex/skill-library/stack/databases/timescaledb/SKILL.md +745 -0
  136. package/template/.codex/skill-library/stack/databases/weaviate/SKILL.md +218 -0
  137. package/template/.codex/skill-library/stack/devops/git-advanced/SKILL.md +972 -0
  138. package/template/.codex/skill-library/stack/devops/git-workflow/SKILL.md +420 -0
  139. package/template/.codex/skill-library/stack/devops/github-actions/SKILL.md +554 -0
  140. package/template/.codex/skill-library/stack/devops/kubernetes/SKILL.md +950 -0
  141. package/template/.codex/skill-library/stack/devops/nginx/SKILL.md +841 -0
  142. package/template/.codex/skill-library/stack/devops/terraform/SKILL.md +860 -0
  143. package/template/.codex/skill-library/stack/email/resend/SKILL.md +391 -0
  144. package/template/.codex/skill-library/stack/extensions/chrome-extension/SKILL.md +375 -0
  145. package/template/.codex/skill-library/stack/extensions/plasmo/SKILL.md +195 -0
  146. package/template/.codex/skill-library/stack/extensions/vscode-extension/SKILL.md +453 -0
  147. package/template/.codex/skill-library/stack/extensions/wxt/SKILL.md +216 -0
  148. package/template/.codex/skill-library/stack/feature-flags/flagsmith/SKILL.md +187 -0
  149. package/template/.codex/skill-library/stack/feature-flags/launchdarkly/SKILL.md +183 -0
  150. package/template/.codex/skill-library/stack/feature-flags/posthog-flags/SKILL.md +189 -0
  151. package/template/.codex/skill-library/stack/frameworks/astro-framework/SKILL.md +162 -0
  152. package/template/.codex/skill-library/stack/frameworks/electron/SKILL.md +1286 -0
  153. package/template/.codex/skill-library/stack/frameworks/fastapi/SKILL.md +650 -0
  154. package/template/.codex/skill-library/stack/frameworks/hono/SKILL.md +90 -0
  155. package/template/.codex/skill-library/stack/frameworks/nestjs/SKILL.md +878 -0
  156. package/template/.codex/skill-library/stack/frameworks/nextjs/SKILL.md +635 -0
  157. package/template/.codex/skill-library/stack/frameworks/nuxt/SKILL.md +564 -0
  158. package/template/.codex/skill-library/stack/frameworks/svelte5/SKILL.md +81 -0
  159. package/template/.codex/skill-library/stack/frameworks/svelte5/references/events.md +353 -0
  160. package/template/.codex/skill-library/stack/frameworks/svelte5/references/migration.md +339 -0
  161. package/template/.codex/skill-library/stack/frameworks/svelte5/references/performance.md +443 -0
  162. package/template/.codex/skill-library/stack/frameworks/svelte5/references/runes.md +394 -0
  163. package/template/.codex/skill-library/stack/frameworks/svelte5/references/snippets.md +291 -0
  164. package/template/.codex/skill-library/stack/frameworks/svelte5/references/sveltekit.md +401 -0
  165. package/template/.codex/skill-library/stack/frameworks/svelte5/references/typescript.md +305 -0
  166. package/template/.codex/skill-library/stack/frameworks/sveltekit/SKILL.md +614 -0
  167. package/template/.codex/skill-library/stack/frameworks/tauri/SKILL.md +920 -0
  168. package/template/.codex/skill-library/stack/gamedev/godot/SKILL.md +1032 -0
  169. package/template/.codex/skill-library/stack/gamedev/unity/SKILL.md +1175 -0
  170. package/template/.codex/skill-library/stack/hosting/aws/SKILL.md +467 -0
  171. package/template/.codex/skill-library/stack/hosting/cloudflare/SKILL.md +201 -0
  172. package/template/.codex/skill-library/stack/hosting/docker-expert/SKILL.md +409 -0
  173. package/template/.codex/skill-library/stack/hosting/vercel/SKILL.md +484 -0
  174. package/template/.codex/skill-library/stack/languages/bash-scripting/SKILL.md +773 -0
  175. package/template/.codex/skill-library/stack/languages/c-cpp/SKILL.md +712 -0
  176. package/template/.codex/skill-library/stack/languages/gdscript/SKILL.md +789 -0
  177. package/template/.codex/skill-library/stack/languages/go/SKILL.md +664 -0
  178. package/template/.codex/skill-library/stack/languages/java/SKILL.md +778 -0
  179. package/template/.codex/skill-library/stack/languages/kotlin/SKILL.md +665 -0
  180. package/template/.codex/skill-library/stack/languages/python/SKILL.md +678 -0
  181. package/template/.codex/skill-library/stack/languages/rust/SKILL.md +673 -0
  182. package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/SKILL.md +141 -0
  183. package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/advanced-generics.md +90 -0
  184. package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/branded-types.md +57 -0
  185. package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/builder-pattern.md +71 -0
  186. package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/common-pitfalls.md +135 -0
  187. package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/conditional-types.md +27 -0
  188. package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/decorators.md +98 -0
  189. package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/discriminated-unions.md +62 -0
  190. package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/mapped-types.md +53 -0
  191. package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/performance-best-practices.md +104 -0
  192. package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/template-literal-types.md +49 -0
  193. package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/testing-types.md +112 -0
  194. package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/type-guards.md +70 -0
  195. package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/type-inference.md +101 -0
  196. package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/utility-types.md +98 -0
  197. package/template/.codex/skill-library/stack/languages/vanilla-javascript/SKILL.md +803 -0
  198. package/template/.codex/skill-library/stack/messaging/kafka/SKILL.md +235 -0
  199. package/template/.codex/skill-library/stack/messaging/nats/SKILL.md +147 -0
  200. package/template/.codex/skill-library/stack/messaging/rabbitmq/SKILL.md +178 -0
  201. package/template/.codex/skill-library/stack/messaging/sqs/SKILL.md +187 -0
  202. package/template/.codex/skill-library/stack/mobile/expo-react-native/SKILL.md +665 -0
  203. package/template/.codex/skill-library/stack/mobile/flutter/SKILL.md +316 -0
  204. package/template/.codex/skill-library/stack/mobile/kotlin-compose/SKILL.md +215 -0
  205. package/template/.codex/skill-library/stack/mobile/react-native/SKILL.md +337 -0
  206. package/template/.codex/skill-library/stack/mobile/swiftui/SKILL.md +261 -0
  207. package/template/.codex/skill-library/stack/monitoring/posthog/SKILL.md +396 -0
  208. package/template/.codex/skill-library/stack/monitoring/sentry/SKILL.md +509 -0
  209. package/template/.codex/skill-library/stack/notifications/fcm/SKILL.md +229 -0
  210. package/template/.codex/skill-library/stack/notifications/sendgrid/SKILL.md +220 -0
  211. package/template/.codex/skill-library/stack/notifications/twilio/SKILL.md +204 -0
  212. package/template/.codex/skill-library/stack/observability/datadog/SKILL.md +179 -0
  213. package/template/.codex/skill-library/stack/observability/distributed-tracing/SKILL.md +140 -0
  214. package/template/.codex/skill-library/stack/observability/opentelemetry/SKILL.md +164 -0
  215. package/template/.codex/skill-library/stack/observability/prometheus-grafana/SKILL.md +246 -0
  216. package/template/.codex/skill-library/stack/observability/python-observability/SKILL.md +158 -0
  217. package/template/.codex/skill-library/stack/orm/drizzle-orm/SKILL.md +613 -0
  218. package/template/.codex/skill-library/stack/orm/prisma/SKILL.md +744 -0
  219. package/template/.codex/skill-library/stack/payments/lemonsqueezy/SKILL.md +393 -0
  220. package/template/.codex/skill-library/stack/payments/stripe-integration/SKILL.md +457 -0
  221. package/template/.codex/skill-library/stack/queue/bullmq/SKILL.md +385 -0
  222. package/template/.codex/skill-library/stack/queue/inngest/SKILL.md +438 -0
  223. package/template/.codex/skill-library/stack/realtime/socketio/SKILL.md +595 -0
  224. package/template/.codex/skill-library/stack/search/algolia/SKILL.md +206 -0
  225. package/template/.codex/skill-library/stack/search/elasticsearch/SKILL.md +248 -0
  226. package/template/.codex/skill-library/stack/search/meilisearch/SKILL.md +385 -0
  227. package/template/.codex/skill-library/stack/search/typesense/SKILL.md +189 -0
  228. package/template/.codex/skill-library/stack/security/crypto-patterns/SKILL.md +437 -0
  229. package/template/.codex/skill-library/stack/security/csp-cors-headers/SKILL.md +588 -0
  230. package/template/.codex/skill-library/stack/security/dependency-auditing/SKILL.md +560 -0
  231. package/template/.codex/skill-library/stack/security/input-sanitization/SKILL.md +430 -0
  232. package/template/.codex/skill-library/stack/security/owasp-web-security/SKILL.md +421 -0
  233. package/template/.codex/skill-library/stack/state/tanstack-query/SKILL.md +637 -0
  234. package/template/.codex/skill-library/stack/state/zustand/SKILL.md +483 -0
  235. package/template/.codex/skill-library/stack/storage/aws-s3/SKILL.md +415 -0
  236. package/template/.codex/skill-library/stack/storage/cloudflare-r2/SKILL.md +252 -0
  237. package/template/.codex/skill-library/stack/storage/gcs/SKILL.md +229 -0
  238. package/template/.codex/skill-library/stack/testing/playwright/SKILL.md +641 -0
  239. package/template/.codex/skill-library/stack/testing/storybook/SKILL.md +923 -0
  240. package/template/.codex/skill-library/stack/testing/testing-library/SKILL.md +872 -0
  241. package/template/.codex/skill-library/stack/testing/vitest/SKILL.md +714 -0
  242. package/template/.codex/skill-library/stack/ui/react-best-practices/SKILL.md +877 -0
  243. package/template/.codex/skill-library/stack/ui/react-composition-patterns/SKILL.md +1107 -0
  244. package/template/.codex/skill-library/stack/ui/react-flow/SKILL.md +425 -0
  245. package/template/.codex/skill-library/stack/ui/shadcn-ui/SKILL.md +703 -0
  246. package/template/.codex/skill-library/stack/ui/svelte-flow/SKILL.md +390 -0
  247. package/template/.codex/skill-library/surface/api/api-caching/SKILL.md +458 -0
  248. package/template/.codex/skill-library/surface/api/api-documentation-openapi/SKILL.md +697 -0
  249. package/template/.codex/skill-library/surface/api/api-error-handling/SKILL.md +478 -0
  250. package/template/.codex/skill-library/surface/api/api-security-checklist/SKILL.md +147 -0
  251. package/template/.codex/skill-library/surface/api/email-best-practices/SKILL.md +59 -0
  252. package/template/.codex/skill-library/surface/api/rate-limiting-abuse-protection/SKILL.md +147 -0
  253. package/template/.codex/skill-library/surface/api/webhook-design/SKILL.md +752 -0
  254. package/template/.codex/skill-library/surface/cli/cli-configuration-management/SKILL.md +445 -0
  255. package/template/.codex/skill-library/surface/cli/cli-error-diagnostics/SKILL.md +515 -0
  256. package/template/.codex/skill-library/surface/cli/cli-shell-integration/SKILL.md +479 -0
  257. package/template/.codex/skill-library/surface/cli/cli-ux-design/SKILL.md +477 -0
  258. package/template/.codex/skill-library/surface/desktop/desktop-app-distribution/SKILL.md +416 -0
  259. package/template/.codex/skill-library/surface/desktop/desktop-security-sandboxing/SKILL.md +407 -0
  260. package/template/.codex/skill-library/surface/desktop/desktop-ux-conventions/SKILL.md +361 -0
  261. package/template/.codex/skill-library/surface/desktop/native-os-integration/SKILL.md +563 -0
  262. package/template/.codex/skill-library/surface/extension/browser-extension-patterns/SKILL.md +482 -0
  263. package/template/.codex/skill-library/surface/extension/plugin-architecture-design/SKILL.md +632 -0
  264. package/template/.codex/skill-library/surface/extension/vscode-extension-development/SKILL.md +728 -0
  265. package/template/.codex/skill-library/surface/mobile/app-store-submission/SKILL.md +304 -0
  266. package/template/.codex/skill-library/surface/mobile/mobile-offline-sync/SKILL.md +443 -0
  267. package/template/.codex/skill-library/surface/mobile/mobile-responsive-patterns/SKILL.md +432 -0
  268. package/template/.codex/skill-library/surface/mobile/push-notifications/SKILL.md +495 -0
  269. package/template/.codex/skill-library/surface/web/accessibility-compliance/SKILL.md +827 -0
  270. package/template/.codex/skill-library/surface/web/ai-seo/SKILL.md +398 -0
  271. package/template/.codex/skill-library/surface/web/ai-seo/references/content-patterns.md +285 -0
  272. package/template/.codex/skill-library/surface/web/ai-seo/references/platform-ranking-factors.md +152 -0
  273. package/template/.codex/skill-library/surface/web/analytics-tracking/SKILL.md +309 -0
  274. package/template/.codex/skill-library/surface/web/analytics-tracking/references/event-library.md +260 -0
  275. package/template/.codex/skill-library/surface/web/analytics-tracking/references/ga4-implementation.md +300 -0
  276. package/template/.codex/skill-library/surface/web/analytics-tracking/references/gtm-implementation.md +390 -0
  277. package/template/.codex/skill-library/surface/web/authentication-ui-flows/SKILL.md +530 -0
  278. package/template/.codex/skill-library/surface/web/dark-mode-theming/SKILL.md +516 -0
  279. package/template/.codex/skill-library/surface/web/design-reference-data/SKILL.md +105 -0
  280. package/template/.codex/skill-library/surface/web/design-reference-data/data/charts.csv +26 -0
  281. package/template/.codex/skill-library/surface/web/design-reference-data/data/colors.csv +97 -0
  282. package/template/.codex/skill-library/surface/web/design-reference-data/data/landing.csv +31 -0
  283. package/template/.codex/skill-library/surface/web/design-reference-data/data/styles.csv +59 -0
  284. package/template/.codex/skill-library/surface/web/design-reference-data/data/typography.csv +58 -0
  285. package/template/.codex/skill-library/surface/web/design-reference-data/data/ux-guidelines.csv +100 -0
  286. package/template/.codex/skill-library/surface/web/design-reference-data/scripts/core.py +258 -0
  287. package/template/.codex/skill-library/surface/web/design-reference-data/scripts/design_system.py +1067 -0
  288. package/template/.codex/skill-library/surface/web/design-reference-data/scripts/search.py +106 -0
  289. package/template/.codex/skill-library/surface/web/form-handling-validation/SKILL.md +675 -0
  290. package/template/.codex/skill-library/surface/web/frontend-design/SKILL.md +1393 -0
  291. package/template/.codex/skill-library/surface/web/frontend-design/templates/cppn-hero.tsx +299 -0
  292. package/template/.codex/skill-library/surface/web/frontend-design/templates/wave-hero.tsx +875 -0
  293. package/template/.codex/skill-library/surface/web/frontend-verification/SKILL.md +111 -0
  294. package/template/.codex/skill-library/surface/web/frontend-verification/scripts/ux_audit.py +739 -0
  295. package/template/.codex/skill-library/surface/web/i18n-localization/SKILL.md +332 -0
  296. package/template/.codex/skill-library/surface/web/i18n-localization/references/icu-message-format.md +223 -0
  297. package/template/.codex/skill-library/surface/web/i18n-localization/references/intl-api-patterns.md +326 -0
  298. package/template/.codex/skill-library/surface/web/i18n-localization/references/rtl-support.md +298 -0
  299. package/template/.codex/skill-library/surface/web/offline-first-pwa/SKILL.md +657 -0
  300. package/template/.codex/skill-library/surface/web/page-cro/SKILL.md +182 -0
  301. package/template/.codex/skill-library/surface/web/page-cro/references/experiments.md +248 -0
  302. package/template/.codex/skill-library/surface/web/programmatic-seo/SKILL.md +238 -0
  303. package/template/.codex/skill-library/surface/web/programmatic-seo/references/playbooks.md +308 -0
  304. package/template/.codex/skill-library/surface/web/schema-markup/SKILL.md +179 -0
  305. package/template/.codex/skill-library/surface/web/schema-markup/references/schema-examples.md +398 -0
  306. package/template/.codex/skill-library/surface/web/seo-audit/SKILL.md +394 -0
  307. package/template/.codex/skill-library/surface/web/seo-audit/references/ai-writing-detection.md +200 -0
  308. package/template/.codex/skill-library/surface/web/web-performance-optimization/SKILL.md +646 -0
  309. package/template/.codex/skill-library/surface/web/web-scraping/SKILL.md +58 -0
  310. package/template/.codex/skills/README.md +78 -0
  311. package/template/.codex/skills/accessibility/SKILL.md +522 -0
  312. package/template/.codex/skills/accessibility/references/WCAG.md +162 -0
  313. package/template/.codex/skills/accessibility/references/ia-spec-checklist.md +35 -0
  314. package/template/.codex/skills/adversarial-review/SKILL.md +90 -0
  315. package/template/.codex/skills/antigravity-workflows/SKILL.md +81 -0
  316. package/template/.codex/skills/antigravity-workflows/resources/implementation-playbook.md +36 -0
  317. package/template/.codex/skills/api-design-principles/SKILL.md +169 -0
  318. package/template/.codex/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  319. package/template/.codex/skills/api-design-principles/assets/rest-api-template.py +182 -0
  320. package/template/.codex/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  321. package/template/.codex/skills/api-design-principles/references/rest-best-practices.md +408 -0
  322. package/template/.codex/skills/api-design-principles/resources/implementation-playbook.md +513 -0
  323. package/template/.codex/skills/api-versioning/SKILL.md +166 -0
  324. package/template/.codex/skills/api-versioning/references/typescript.md +157 -0
  325. package/template/.codex/skills/architecture-mapping/SKILL.md +219 -0
  326. package/template/.codex/skills/audit-ambiguity/SKILL.md +54 -0
  327. package/template/.codex/skills/audit-ambiguity-execute/SKILL.md +86 -0
  328. package/template/.codex/skills/audit-ambiguity-rubrics/SKILL.md +58 -0
  329. package/template/.codex/skills/bootstrap-agents/SKILL.md +258 -0
  330. package/template/.codex/skills/bootstrap-agents-fill/SKILL.md +25 -0
  331. package/template/.codex/skills/bootstrap-agents-provision/SKILL.md +22 -0
  332. package/template/.codex/skills/brainstorming/SKILL.md +177 -0
  333. package/template/.codex/skills/brand-guidelines/SKILL.md +44 -0
  334. package/template/.codex/skills/clean-code/SKILL.md +196 -0
  335. package/template/.codex/skills/clean-code/references/typescript.md +126 -0
  336. package/template/.codex/skills/code-review-pro/SKILL.md +152 -0
  337. package/template/.codex/skills/concise-planning/SKILL.md +107 -0
  338. package/template/.codex/skills/create-prd/SKILL.md +94 -0
  339. package/template/.codex/skills/create-prd-architecture/SKILL.md +72 -0
  340. package/template/.codex/skills/create-prd-compile/SKILL.md +85 -0
  341. package/template/.codex/skills/create-prd-design-system/SKILL.md +69 -0
  342. package/template/.codex/skills/create-prd-security/SKILL.md +66 -0
  343. package/template/.codex/skills/create-prd-stack/SKILL.md +84 -0
  344. package/template/.codex/skills/cross-layer-consistency/SKILL.md +117 -0
  345. package/template/.codex/skills/database-schema-design/SKILL.md +205 -0
  346. package/template/.codex/skills/database-schema-design/references/relational.md +228 -0
  347. package/template/.codex/skills/decompose-architecture/SKILL.md +72 -0
  348. package/template/.codex/skills/decompose-architecture-structure/SKILL.md +62 -0
  349. package/template/.codex/skills/decompose-architecture-validate/SKILL.md +72 -0
  350. package/template/.codex/skills/deployment-procedures/SKILL.md +241 -0
  351. package/template/.codex/skills/design-anti-cliche/SKILL.md +159 -0
  352. package/template/.codex/skills/design-direction/SKILL.md +45 -0
  353. package/template/.codex/skills/error-handling-patterns/SKILL.md +226 -0
  354. package/template/.codex/skills/error-handling-patterns/references/go.md +162 -0
  355. package/template/.codex/skills/error-handling-patterns/references/python.md +262 -0
  356. package/template/.codex/skills/error-handling-patterns/references/rust.md +112 -0
  357. package/template/.codex/skills/error-handling-patterns/references/typescript.md +178 -0
  358. package/template/.codex/skills/evolve-contract/SKILL.md +24 -0
  359. package/template/.codex/skills/evolve-feature/SKILL.md +18 -0
  360. package/template/.codex/skills/evolve-feature-cascade/SKILL.md +24 -0
  361. package/template/.codex/skills/evolve-feature-classify/SKILL.md +21 -0
  362. package/template/.codex/skills/find-skills/SKILL.md +145 -0
  363. package/template/.codex/skills/git-advanced/SKILL.md +972 -0
  364. package/template/.codex/skills/git-workflow/SKILL.md +420 -0
  365. package/template/.codex/skills/idea-extraction/SKILL.md +644 -0
  366. package/template/.codex/skills/ideate/SKILL.md +77 -0
  367. package/template/.codex/skills/ideate-discover/SKILL.md +89 -0
  368. package/template/.codex/skills/ideate-extract/SKILL.md +77 -0
  369. package/template/.codex/skills/ideate-validate/SKILL.md +75 -0
  370. package/template/.codex/skills/implement-slice/SKILL.md +64 -0
  371. package/template/.codex/skills/implement-slice-setup/SKILL.md +70 -0
  372. package/template/.codex/skills/implement-slice-tdd/SKILL.md +78 -0
  373. package/template/.codex/skills/logging-best-practices/SKILL.md +192 -0
  374. package/template/.codex/skills/logging-best-practices/references/go.md +49 -0
  375. package/template/.codex/skills/logging-best-practices/references/python.md +52 -0
  376. package/template/.codex/skills/logging-best-practices/references/typescript.md +215 -0
  377. package/template/.codex/skills/migration-management/SKILL.md +200 -0
  378. package/template/.codex/skills/migration-management/references/relational.md +214 -0
  379. package/template/.codex/skills/minimalist-surgical-development/SKILL.md +135 -0
  380. package/template/.codex/skills/parallel-agents/SKILL.md +165 -0
  381. package/template/.codex/skills/parallel-debugging/SKILL.md +135 -0
  382. package/template/.codex/skills/parallel-feature-development/SKILL.md +157 -0
  383. package/template/.codex/skills/performance-budgeting/SKILL.md +144 -0
  384. package/template/.codex/skills/pipeline-rubrics/SKILL.md +51 -0
  385. package/template/.codex/skills/pipeline-rubrics/references/architecture-rubric.md +19 -0
  386. package/template/.codex/skills/pipeline-rubrics/references/be-rubric.md +21 -0
  387. package/template/.codex/skills/pipeline-rubrics/references/fe-rubric.md +20 -0
  388. package/template/.codex/skills/pipeline-rubrics/references/ia-rubric.md +19 -0
  389. package/template/.codex/skills/pipeline-rubrics/references/scoring.md +32 -0
  390. package/template/.codex/skills/pipeline-rubrics/references/vision-rubric.md +12 -0
  391. package/template/.codex/skills/plan-phase/SKILL.md +62 -0
  392. package/template/.codex/skills/plan-phase-preflight/SKILL.md +75 -0
  393. package/template/.codex/skills/plan-phase-write/SKILL.md +85 -0
  394. package/template/.codex/skills/prd-templates/SKILL.md +107 -0
  395. package/template/.codex/skills/prd-templates/references/architecture-completeness-checklist.md +28 -0
  396. package/template/.codex/skills/prd-templates/references/architecture-design-template.md +88 -0
  397. package/template/.codex/skills/prd-templates/references/be-spec-classification.md +41 -0
  398. package/template/.codex/skills/prd-templates/references/be-spec-template.md +107 -0
  399. package/template/.codex/skills/prd-templates/references/bootstrap-verification-protocol.md +50 -0
  400. package/template/.codex/skills/prd-templates/references/constraint-exploration.md +41 -0
  401. package/template/.codex/skills/prd-templates/references/data-placement-template.md +74 -0
  402. package/template/.codex/skills/prd-templates/references/decision-confirmation-protocol.md +68 -0
  403. package/template/.codex/skills/prd-templates/references/decision-propagation.md +121 -0
  404. package/template/.codex/skills/prd-templates/references/decomposition-templates.md +226 -0
  405. package/template/.codex/skills/prd-templates/references/deep-ideation-loading-protocol.md +114 -0
  406. package/template/.codex/skills/prd-templates/references/design-system-decisions.md +198 -0
  407. package/template/.codex/skills/prd-templates/references/design-system-prerequisite-check.md +18 -0
  408. package/template/.codex/skills/prd-templates/references/domain-exhaustion-criteria.md +37 -0
  409. package/template/.codex/skills/prd-templates/references/engagement-tier-protocol.md +58 -0
  410. package/template/.codex/skills/prd-templates/references/engineering-standards-template.md +126 -0
  411. package/template/.codex/skills/prd-templates/references/evolution-layer-guidance.md +91 -0
  412. package/template/.codex/skills/prd-templates/references/expansion-modes.md +27 -0
  413. package/template/.codex/skills/prd-templates/references/fe-classification-procedures.md +47 -0
  414. package/template/.codex/skills/prd-templates/references/fe-spec-template.md +90 -0
  415. package/template/.codex/skills/prd-templates/references/feature-ledger-protocol.md +149 -0
  416. package/template/.codex/skills/prd-templates/references/folder-seeding-protocol.md +77 -0
  417. package/template/.codex/skills/prd-templates/references/fractal-cx-template.md +58 -0
  418. package/template/.codex/skills/prd-templates/references/fractal-feature-template.md +93 -0
  419. package/template/.codex/skills/prd-templates/references/fractal-node-index-template.md +55 -0
  420. package/template/.codex/skills/prd-templates/references/gate-applicability.md +92 -0
  421. package/template/.codex/skills/prd-templates/references/ideation-crosscut-template.md +36 -0
  422. package/template/.codex/skills/prd-templates/references/ideation-index-template.md +111 -0
  423. package/template/.codex/skills/prd-templates/references/ideation-meta-template.md +126 -0
  424. package/template/.codex/skills/prd-templates/references/infrastructure-report-template.md +71 -0
  425. package/template/.codex/skills/prd-templates/references/input-classification.md +23 -0
  426. package/template/.codex/skills/prd-templates/references/map-guard-protocol.md +65 -0
  427. package/template/.codex/skills/prd-templates/references/operational-templates.md +116 -0
  428. package/template/.codex/skills/prd-templates/references/persona-completeness-gate.md +20 -0
  429. package/template/.codex/skills/prd-templates/references/placeholder-guard-template.md +21 -0
  430. package/template/.codex/skills/prd-templates/references/placeholder-workflow-mapping.md +50 -0
  431. package/template/.codex/skills/prd-templates/references/shard-boundary-analysis.md +103 -0
  432. package/template/.codex/skills/prd-templates/references/shard-split-remediation.md +157 -0
  433. package/template/.codex/skills/prd-templates/references/skill-loading-protocol.md +36 -0
  434. package/template/.codex/skills/prd-templates/references/slice-completion-gates.md +29 -0
  435. package/template/.codex/skills/prd-templates/references/spec-coverage-sweep.md +44 -0
  436. package/template/.codex/skills/prd-templates/references/surface-model.md +61 -0
  437. package/template/.codex/skills/prd-templates/references/tdd-testing-policy.md +39 -0
  438. package/template/.codex/skills/prd-templates/references/vision-template.md +57 -0
  439. package/template/.codex/skills/prd-templates/references/workflow-checkpoint-protocol.md +112 -0
  440. package/template/.codex/skills/prd-templates/references/write-verification-protocol.md +57 -0
  441. package/template/.codex/skills/prompt-engineer/SKILL.md +203 -0
  442. package/template/.codex/skills/propagate-decision/SKILL.md +18 -0
  443. package/template/.codex/skills/propagate-decision-apply/SKILL.md +22 -0
  444. package/template/.codex/skills/propagate-decision-scan/SKILL.md +20 -0
  445. package/template/.codex/skills/regex-patterns/SKILL.md +333 -0
  446. package/template/.codex/skills/regex-patterns/references/go.md +44 -0
  447. package/template/.codex/skills/regex-patterns/references/javascript.md +63 -0
  448. package/template/.codex/skills/regex-patterns/references/python.md +77 -0
  449. package/template/.codex/skills/regex-patterns/references/rust.md +43 -0
  450. package/template/.codex/skills/remediate-pipeline/SKILL.md +18 -0
  451. package/template/.codex/skills/remediate-pipeline-assess/SKILL.md +21 -0
  452. package/template/.codex/skills/remediate-pipeline-execute/SKILL.md +23 -0
  453. package/template/.codex/skills/remediate-shard-split/SKILL.md +21 -0
  454. package/template/.codex/skills/resolve-ambiguity/SKILL.md +278 -0
  455. package/template/.codex/skills/security-scanning-security-hardening/SKILL.md +231 -0
  456. package/template/.codex/skills/session-continuity/SKILL.md +732 -0
  457. package/template/.codex/skills/session-continuity/protocols/01-session-resumption.md +38 -0
  458. package/template/.codex/skills/session-continuity/protocols/02-progress-generation.md +85 -0
  459. package/template/.codex/skills/session-continuity/protocols/03-progress-update.md +70 -0
  460. package/template/.codex/skills/session-continuity/protocols/04-pattern-extraction.md +60 -0
  461. package/template/.codex/skills/session-continuity/protocols/05-session-close.md +37 -0
  462. package/template/.codex/skills/session-continuity/protocols/06-decision-analysis.md +84 -0
  463. package/template/.codex/skills/session-continuity/protocols/07-spec-pipeline-generation.md +48 -0
  464. package/template/.codex/skills/session-continuity/protocols/08-spec-pipeline-update.md +65 -0
  465. package/template/.codex/skills/session-continuity/protocols/09-parallel-claim.md +122 -0
  466. package/template/.codex/skills/session-continuity/protocols/10-placeholder-verification-gate.md +83 -0
  467. package/template/.codex/skills/session-continuity/protocols/11-parallel-synthesis.md +21 -0
  468. package/template/.codex/skills/session-continuity/protocols/ambiguity-gates.md +48 -0
  469. package/template/.codex/skills/setup/README.md +24 -0
  470. package/template/.codex/skills/setup/setup-cfsa.md +200 -0
  471. package/template/.codex/skills/setup/setup-fill-placeholders.md +192 -0
  472. package/template/.codex/skills/setup/setup-provision-skills.md +82 -0
  473. package/template/.codex/skills/setup/setup-verify.md +89 -0
  474. package/template/.codex/skills/setup-workspace/SKILL.md +83 -0
  475. package/template/.codex/skills/setup-workspace-cicd/SKILL.md +56 -0
  476. package/template/.codex/skills/setup-workspace-data/SKILL.md +69 -0
  477. package/template/.codex/skills/setup-workspace-hosting/SKILL.md +59 -0
  478. package/template/.codex/skills/setup-workspace-scaffold/SKILL.md +72 -0
  479. package/template/.codex/skills/skill-creator/SKILL.md +203 -0
  480. package/template/.codex/skills/spec-writing/SKILL.md +110 -0
  481. package/template/.codex/skills/sync-kit/SKILL.md +23 -0
  482. package/template/.codex/skills/systematic-debugging/CREATION-LOG.md +119 -0
  483. package/template/.codex/skills/systematic-debugging/SKILL.md +297 -0
  484. package/template/.codex/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  485. package/template/.codex/skills/systematic-debugging/condition-based-waiting.md +115 -0
  486. package/template/.codex/skills/systematic-debugging/defense-in-depth.md +122 -0
  487. package/template/.codex/skills/systematic-debugging/find-polluter.sh +63 -0
  488. package/template/.codex/skills/systematic-debugging/root-cause-tracing.md +169 -0
  489. package/template/.codex/skills/systematic-debugging/test-academic.md +14 -0
  490. package/template/.codex/skills/systematic-debugging/test-pressure-1.md +58 -0
  491. package/template/.codex/skills/systematic-debugging/test-pressure-2.md +68 -0
  492. package/template/.codex/skills/systematic-debugging/test-pressure-3.md +69 -0
  493. package/template/.codex/skills/tdd-workflow/SKILL.md +186 -0
  494. package/template/.codex/skills/tdd-workflow/references/typescript.md +231 -0
  495. package/template/.codex/skills/tech-stack-catalog/SKILL.md +49 -0
  496. package/template/.codex/skills/tech-stack-catalog/references/constraint-questions.md +237 -0
  497. package/template/.codex/skills/tech-stack-catalog/references/dev-tooling-decisions.md +37 -0
  498. package/template/.codex/skills/tech-stack-catalog/references/surface-decision-tables.md +69 -0
  499. package/template/.codex/skills/technical-writer/SKILL.md +242 -0
  500. package/template/.codex/skills/testing-strategist/SKILL.md +319 -0
  501. package/template/.codex/skills/testing-strategist/references/typescript.md +328 -0
  502. package/template/.codex/skills/update-architecture-map/SKILL.md +21 -0
  503. package/template/.codex/skills/utilities/resolve-skill.md +195 -0
  504. package/template/.codex/skills/validate-phase/SKILL.md +62 -0
  505. package/template/.codex/skills/validate-phase-quality/SKILL.md +67 -0
  506. package/template/.codex/skills/validate-phase-readiness/SKILL.md +74 -0
  507. package/template/.codex/skills/verification-before-completion/SKILL.md +97 -0
  508. package/template/.codex/skills/verify-infrastructure/SKILL.md +25 -0
  509. package/template/.codex/skills/workflow-automation/SKILL.md +166 -0
  510. package/template/.codex/skills/workflow-automation/references/inngest.md +88 -0
  511. package/template/.codex/skills/workflow-automation/references/temporal.md +64 -0
  512. package/template/.codex/skills/write-architecture-spec/SKILL.md +78 -0
  513. package/template/.codex/skills/write-architecture-spec-deepen/SKILL.md +82 -0
  514. package/template/.codex/skills/write-architecture-spec-design/SKILL.md +80 -0
  515. package/template/.codex/skills/write-be-spec/SKILL.md +75 -0
  516. package/template/.codex/skills/write-be-spec-classify/SKILL.md +80 -0
  517. package/template/.codex/skills/write-be-spec-write/SKILL.md +99 -0
  518. package/template/.codex/skills/write-fe-spec/SKILL.md +79 -0
  519. package/template/.codex/skills/write-fe-spec-classify/SKILL.md +77 -0
  520. package/template/.codex/skills/write-fe-spec-write/SKILL.md +88 -0
  521. package/template/.factory/README.md +2 -3
  522. package/template/.factory/instructions/workflow.md +3 -3
  523. package/template/.factory/kit-sync.md +3 -3
  524. package/template/.factory/skills/completion-checklist/SKILL.md +3 -3
  525. package/template/.factory/skills/parallel-agents/SKILL.md +1 -1
  526. package/template/.factory/skills/plan-phase/SKILL.md +2 -2
  527. package/template/.factory/skills/plan-phase-preflight/SKILL.md +2 -2
  528. package/template/.factory/skills/session-continuity/SKILL.md +6 -6
  529. package/template/.factory/skills/session-continuity/protocols/01-session-resumption.md +1 -1
  530. package/template/.factory/skills/session-continuity/protocols/02-progress-generation.md +3 -3
  531. package/template/.factory/skills/session-continuity/protocols/03-progress-update.md +4 -4
  532. package/template/.factory/skills/session-continuity/protocols/07-spec-pipeline-generation.md +1 -1
  533. package/template/.factory/skills/session-continuity/protocols/08-spec-pipeline-update.md +2 -2
  534. package/template/.factory/skills/session-continuity/protocols/11-parallel-synthesis.md +1 -1
  535. package/template/.factory/skills/setup-cfsa/SKILL.md +1 -1
  536. package/template/.factory/skills/write-architecture-spec/SKILL.md +2 -2
  537. package/template/.factory/skills/write-architecture-spec-deepen/SKILL.md +1 -1
  538. package/template/.factory/skills/write-architecture-spec-design/SKILL.md +1 -1
  539. package/template/.factory/skills/write-be-spec/SKILL.md +3 -3
  540. package/template/.factory/skills/write-be-spec-classify/SKILL.md +1 -1
  541. package/template/.factory/skills/write-be-spec-write/SKILL.md +1 -1
  542. package/template/.factory/skills/write-fe-spec/SKILL.md +3 -3
  543. package/template/.factory/skills/write-fe-spec-write/SKILL.md +1 -1
  544. package/template/.memory/README.md +1 -0
  545. package/template/.memory/mcp-server/README.md +10 -2
  546. package/template/.memory/mcp-server/client.mjs +61 -18
  547. package/template/.memory/mcp-server/daemon.mjs +8 -3
  548. package/template/.memory/mcp-server/runtime.mjs +51 -14
  549. package/template/.memory/mcp-server/start.mjs +4 -2
  550. package/template/.memory/migrate/migrate-legacy.mjs +1 -0
  551. package/template/.memory/pipeline/README.md +1 -0
  552. package/template/CLAUDE.md +4 -4
  553. package/template/CODEX.md +6 -53
  554. package/template/GEMINI.md +2 -2
  555. package/template/docs/README.md +5 -2
  556. package/template/docs/kit-architecture.md +36 -19
  557. package/template/docs/progress-state-catalog.md +48 -0
  558. package/template/.factory/progress/memory/.gitkeep +0 -0
  559. /package/template/{.agent/progress → .codex/skills/skill-creator/references}/.gitkeep +0 -0
  560. /package/template/{.agent/progress/memory → .codex/skills/skill-creator/scripts}/.gitkeep +0 -0
  561. /package/template/{.agent/progress/sessions → .memory/pipeline/progress}/.gitkeep +0 -0
  562. /package/template/{.claude/progress → .memory/pipeline/progress/memory}/.gitkeep +0 -0
  563. /package/template/{.claude/progress/memory → .memory/pipeline/progress/phases}/.gitkeep +0 -0
  564. /package/template/{.claude → .memory/pipeline}/progress/sessions/.gitkeep +0 -0
  565. /package/template/{.factory/progress → .memory/pipeline/progress/slices}/.gitkeep +0 -0
@@ -0,0 +1,453 @@
1
+ ---
2
+ name: vscode-extension
3
+ description: "Expert VS Code extension development guide covering Extension Host architecture, activation events, commands, contribution points (menus, keybindings, settings, views), Webview API, Language Server Protocol (LSP), TreeView/TreeDataProvider, Testing (vscode-test), packaging (vsce/ovsx), and publishing. Use when building VS Code extensions, language servers, or editor tooling."
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # VS Code Extension Development Guide
8
+
9
+ > Use this skill when building Visual Studio Code extensions. Covers the Extension API, contribution points, Webviews, Language Server Protocol, and publishing.
10
+
11
+ ## When to Use This Skill
12
+
13
+ - Building VS Code extensions (commands, UI, language features)
14
+ - Implementing language support (syntax, intellisense, diagnostics)
15
+ - Creating custom views (TreeView, Webview, sidebar panels)
16
+ - Building editor integrations (formatters, linters, debuggers)
17
+ - Publishing to VS Code Marketplace or Open VSX
18
+
19
+ ## When NOT to Use This Skill
20
+
21
+ - Browser extensions → use Browser Extension skill
22
+ - JetBrains plugins → different architecture entirely
23
+ - Standalone desktop apps → use Tauri or Electron
24
+ - VS Code themes only → simpler `contributes.themes` in package.json
25
+
26
+ ---
27
+
28
+ ## 1. Architecture Overview (CRITICAL)
29
+
30
+ ```
31
+ VS Code
32
+ ├── Main Process (Electron)
33
+ │ └── Extension Host (separate process per window)
34
+ │ ├── Your Extension (activate/deactivate)
35
+ │ ├── Other Extensions
36
+ │ └── Language Server (optional, separate process)
37
+ └── Renderer Process
38
+ ├── Editor UI
39
+ ├── Sidebar Views (TreeView, WebviewView)
40
+ └── Webview Panels (custom HTML/CSS/JS)
41
+ ```
42
+
43
+ | Component | Runs In | Access | Use For |
44
+ |-----------|---------|--------|---------|
45
+ | Extension code | Extension Host | Full VS Code API | Commands, providers, logic |
46
+ | Webview | Renderer (iframe) | Message passing only | Rich custom UI |
47
+ | Language Server | Separate process | LSP protocol | Heavy language analysis |
48
+ | TreeView | Extension Host | TreeDataProvider API | List/tree sidebar panels |
49
+
50
+ ### Extension Lifecycle
51
+
52
+ ```typescript
53
+ // extension.ts — entry point
54
+ import * as vscode from 'vscode';
55
+
56
+ export function activate(context: vscode.ExtensionContext) {
57
+ // Called when activation event fires
58
+ // Register commands, providers, listeners HERE
59
+ console.log('Extension activated');
60
+
61
+ const disposable = vscode.commands.registerCommand('myExt.helloWorld', () => {
62
+ vscode.window.showInformationMessage('Hello World!');
63
+ });
64
+
65
+ context.subscriptions.push(disposable); // Auto-cleanup on deactivate
66
+ }
67
+
68
+ export function deactivate() {
69
+ // Optional cleanup
70
+ }
71
+ ```
72
+
73
+ > **Rule**: Push ALL disposables to `context.subscriptions`. Never register listeners without cleanup.
74
+
75
+ ---
76
+
77
+ ## 2. package.json (CRITICAL)
78
+
79
+ ```json
80
+ {
81
+ "name": "my-extension",
82
+ "displayName": "My Extension",
83
+ "version": "0.1.0",
84
+ "engines": { "vscode": "^1.85.0" },
85
+ "categories": ["Other"],
86
+ "activationEvents": [],
87
+ "main": "./out/extension.js",
88
+ "contributes": {
89
+ "commands": [
90
+ {
91
+ "command": "myExt.helloWorld",
92
+ "title": "Hello World",
93
+ "category": "My Extension",
94
+ "icon": "$(sparkle)"
95
+ }
96
+ ],
97
+ "menus": {
98
+ "editor/context": [
99
+ { "command": "myExt.helloWorld", "when": "editorTextFocus" }
100
+ ],
101
+ "commandPalette": [
102
+ { "command": "myExt.helloWorld", "when": "editorLangId == typescript" }
103
+ ]
104
+ },
105
+ "keybindings": [
106
+ {
107
+ "command": "myExt.helloWorld",
108
+ "key": "ctrl+shift+h",
109
+ "mac": "cmd+shift+h",
110
+ "when": "editorTextFocus"
111
+ }
112
+ ],
113
+ "configuration": {
114
+ "title": "My Extension",
115
+ "properties": {
116
+ "myExt.enableFeature": {
117
+ "type": "boolean",
118
+ "default": true,
119
+ "description": "Enable the main feature"
120
+ },
121
+ "myExt.maxResults": {
122
+ "type": "number",
123
+ "default": 10,
124
+ "description": "Maximum number of results"
125
+ }
126
+ }
127
+ },
128
+ "viewsContainers": {
129
+ "activitybar": [
130
+ { "id": "myExtView", "title": "My Extension", "icon": "resources/icon.svg" }
131
+ ]
132
+ },
133
+ "views": {
134
+ "myExtView": [
135
+ { "id": "myExt.treeView", "name": "Explorer" }
136
+ ]
137
+ }
138
+ }
139
+ }
140
+ ```
141
+
142
+ ### Activation Events
143
+
144
+ | Event | When | Example |
145
+ |-------|------|---------|
146
+ | `onCommand:myExt.cmd` | Command executed | Always use for commands |
147
+ | `onLanguage:typescript` | File of language opened | Language features |
148
+ | `workspaceContains:**/tsconfig.json` | Workspace has file | Project-specific tools |
149
+ | `onView:myExt.treeView` | View becomes visible | Sidebar panels |
150
+ | `onUri` | Extension URI handler invoked | Deep linking |
151
+ | `*` | Always (startup) | 🔴 Avoid — slows VS Code startup |
152
+
153
+ > **Rule**: Use the most specific activation event possible. `*` is banned for production extensions.
154
+
155
+ ---
156
+
157
+ ## 3. Commands & Configuration
158
+
159
+ ### Commands
160
+
161
+ ```typescript
162
+ // Register with arguments
163
+ context.subscriptions.push(
164
+ vscode.commands.registerCommand('myExt.openFile', async (uri: vscode.Uri) => {
165
+ const doc = await vscode.workspace.openTextDocument(uri);
166
+ await vscode.window.showTextDocument(doc);
167
+ })
168
+ );
169
+
170
+ // Register text editor command (has activeTextEditor guaranteed)
171
+ context.subscriptions.push(
172
+ vscode.commands.registerTextEditorCommand('myExt.insertSnippet', (editor, edit) => {
173
+ edit.insert(editor.selection.active, 'inserted text');
174
+ })
175
+ );
176
+ ```
177
+
178
+ ### Reading Configuration
179
+
180
+ ```typescript
181
+ const config = vscode.workspace.getConfiguration('myExt');
182
+ const enabled = config.get<boolean>('enableFeature', true);
183
+ const maxResults = config.get<number>('maxResults', 10);
184
+
185
+ // Watch for config changes
186
+ context.subscriptions.push(
187
+ vscode.workspace.onDidChangeConfiguration((e) => {
188
+ if (e.affectsConfiguration('myExt.enableFeature')) {
189
+ // Re-initialize feature
190
+ }
191
+ })
192
+ );
193
+ ```
194
+
195
+ ---
196
+
197
+ ## 4. TreeView (Sidebar Panel)
198
+
199
+ ```typescript
200
+ class MyTreeProvider implements vscode.TreeDataProvider<TreeItem> {
201
+ private _onDidChangeTreeData = new vscode.EventEmitter<TreeItem | undefined>();
202
+ readonly onDidChangeTreeData = this._onDidChangeTreeData.event;
203
+
204
+ refresh(): void {
205
+ this._onDidChangeTreeData.fire(undefined);
206
+ }
207
+
208
+ getTreeItem(element: TreeItem): vscode.TreeItem {
209
+ return element;
210
+ }
211
+
212
+ async getChildren(element?: TreeItem): Promise<TreeItem[]> {
213
+ if (!element) {
214
+ // Root items
215
+ return this.getRootItems();
216
+ }
217
+ // Child items
218
+ return element.children ?? [];
219
+ }
220
+
221
+ private getRootItems(): TreeItem[] {
222
+ return [
223
+ new TreeItem('Item 1', vscode.TreeItemCollapsibleState.Collapsed),
224
+ new TreeItem('Item 2', vscode.TreeItemCollapsibleState.None),
225
+ ];
226
+ }
227
+ }
228
+
229
+ class TreeItem extends vscode.TreeItem {
230
+ children?: TreeItem[];
231
+
232
+ constructor(
233
+ label: string,
234
+ collapsibleState: vscode.TreeItemCollapsibleState,
235
+ ) {
236
+ super(label, collapsibleState);
237
+ this.tooltip = `Click to interact with ${label}`;
238
+ this.iconPath = new vscode.ThemeIcon('file');
239
+ }
240
+ }
241
+
242
+ // Register in activate()
243
+ const treeProvider = new MyTreeProvider();
244
+ const treeView = vscode.window.createTreeView('myExt.treeView', {
245
+ treeDataProvider: treeProvider,
246
+ showCollapseAll: true,
247
+ });
248
+ context.subscriptions.push(treeView);
249
+ ```
250
+
251
+ ---
252
+
253
+ ## 5. Webview Panel (Custom UI)
254
+
255
+ ```typescript
256
+ function createWebviewPanel(context: vscode.ExtensionContext) {
257
+ const panel = vscode.window.createWebviewPanel(
258
+ 'myExtWebview',
259
+ 'My Webview',
260
+ vscode.ViewColumn.One,
261
+ {
262
+ enableScripts: true,
263
+ retainContextWhenHidden: true, // Keep state when panel hidden
264
+ localResourceRoots: [
265
+ vscode.Uri.joinPath(context.extensionUri, 'media'),
266
+ ],
267
+ }
268
+ );
269
+
270
+ // Get URI for bundled resources
271
+ const scriptUri = panel.webview.asWebviewUri(
272
+ vscode.Uri.joinPath(context.extensionUri, 'media', 'main.js')
273
+ );
274
+
275
+ panel.webview.html = `
276
+ <!DOCTYPE html>
277
+ <html>
278
+ <head>
279
+ <meta http-equiv="Content-Security-Policy"
280
+ content="default-src 'none'; script-src ${panel.webview.cspSource}; style-src ${panel.webview.cspSource};">
281
+ </head>
282
+ <body>
283
+ <h1>Hello from Webview</h1>
284
+ <script src="${scriptUri}"></script>
285
+ </body>
286
+ </html>
287
+ `;
288
+
289
+ // Extension → Webview messaging
290
+ panel.webview.postMessage({ type: 'update', data: { count: 42 } });
291
+
292
+ // Webview → Extension messaging
293
+ panel.webview.onDidReceiveMessage((message) => {
294
+ switch (message.type) {
295
+ case 'save':
296
+ saveData(message.payload);
297
+ break;
298
+ }
299
+ }, undefined, context.subscriptions);
300
+ }
301
+ ```
302
+
303
+ > **Rule**: Always set Content-Security-Policy in Webviews. Never use inline scripts — load from bundled files via `asWebviewUri`.
304
+
305
+ ---
306
+
307
+ ## 6. Language Features
308
+
309
+ ### Diagnostics (Linting/Errors)
310
+
311
+ ```typescript
312
+ const diagnosticCollection = vscode.languages.createDiagnosticCollection('myExt');
313
+ context.subscriptions.push(diagnosticCollection);
314
+
315
+ function updateDiagnostics(document: vscode.TextDocument) {
316
+ const diagnostics: vscode.Diagnostic[] = [];
317
+
318
+ for (let i = 0; i < document.lineCount; i++) {
319
+ const line = document.lineAt(i);
320
+ if (line.text.includes('TODO')) {
321
+ diagnostics.push(new vscode.Diagnostic(
322
+ line.range,
323
+ 'TODO found',
324
+ vscode.DiagnosticSeverity.Warning,
325
+ ));
326
+ }
327
+ }
328
+
329
+ diagnosticCollection.set(document.uri, diagnostics);
330
+ }
331
+
332
+ context.subscriptions.push(
333
+ vscode.workspace.onDidChangeTextDocument((e) => updateDiagnostics(e.document)),
334
+ vscode.workspace.onDidOpenTextDocument(updateDiagnostics),
335
+ );
336
+ ```
337
+
338
+ ### Completion Provider
339
+
340
+ ```typescript
341
+ context.subscriptions.push(
342
+ vscode.languages.registerCompletionItemProvider('typescript', {
343
+ provideCompletionItems(document, position) {
344
+ const item = new vscode.CompletionItem('mySnippet', vscode.CompletionItemKind.Snippet);
345
+ item.insertText = new vscode.SnippetString('console.log(${1:message});');
346
+ item.documentation = 'Inserts a console.log statement';
347
+ return [item];
348
+ }
349
+ }, '.') // Trigger on '.'
350
+ );
351
+ ```
352
+
353
+ ### Language Server Protocol (LSP)
354
+
355
+ ```typescript
356
+ // For complex language features, use a separate Language Server process
357
+ import { LanguageClient, TransportKind } from 'vscode-languageclient/node';
358
+
359
+ const serverModule = context.asAbsolutePath('out/server.js');
360
+ const client = new LanguageClient(
361
+ 'myLanguageServer',
362
+ 'My Language Server',
363
+ {
364
+ run: { module: serverModule, transport: TransportKind.ipc },
365
+ debug: { module: serverModule, transport: TransportKind.ipc },
366
+ },
367
+ { documentSelector: [{ scheme: 'file', language: 'mylang' }] }
368
+ );
369
+
370
+ client.start();
371
+ context.subscriptions.push(client);
372
+ ```
373
+
374
+ > **Rule**: Use LSP for heavy language analysis (type checking, multi-file analysis). Use inline providers for lightweight features (simple completions, snippets).
375
+
376
+ ---
377
+
378
+ ## 7. Testing
379
+
380
+ ```typescript
381
+ // src/test/suite/extension.test.ts
382
+ import * as assert from 'assert';
383
+ import * as vscode from 'vscode';
384
+
385
+ suite('Extension Test Suite', () => {
386
+ test('Command registered', async () => {
387
+ const commands = await vscode.commands.getCommands(true);
388
+ assert.ok(commands.includes('myExt.helloWorld'));
389
+ });
390
+
391
+ test('Opens document', async () => {
392
+ const uri = vscode.Uri.file('/tmp/test.ts');
393
+ const doc = await vscode.workspace.openTextDocument(uri);
394
+ assert.strictEqual(doc.languageId, 'typescript');
395
+ });
396
+ });
397
+ ```
398
+
399
+ ```bash
400
+ # Run tests with VS Code test runner
401
+ npx vscode-test # Downloads VS Code, runs tests in Extension Host
402
+ ```
403
+
404
+ ---
405
+
406
+ ## 8. Packaging & Publishing
407
+
408
+ ```bash
409
+ # Install vsce
410
+ npm install -g @vscode/vsce
411
+
412
+ # Package as .vsix
413
+ vsce package
414
+
415
+ # Publish to VS Code Marketplace
416
+ vsce publish
417
+
418
+ # Publish to Open VSX (Eclipse foundation)
419
+ npx ovsx publish -p <token>
420
+ ```
421
+
422
+ ### Pre-publish Checklist
423
+
424
+ - [ ] `engines.vscode` set to minimum supported version
425
+ - [ ] `activationEvents` are specific (no `*`)
426
+ - [ ] Extension bundle is small (use esbuild/webpack)
427
+ - [ ] README has screenshots and feature descriptions
428
+ - [ ] CHANGELOG.md is up to date
429
+ - [ ] Icon is 128×128px
430
+
431
+ ---
432
+
433
+ ## 9. Common Anti-Patterns
434
+
435
+ 1. **`activationEvents: ["*"]`** — activates on every VS Code start; use specific triggers
436
+ 2. **Not disposing listeners** — memory leaks; always push to `context.subscriptions`
437
+ 3. **Synchronous file I/O** — blocks Extension Host; use `vscode.workspace.fs` async APIs
438
+ 4. **Inline scripts in Webview** — CSP violation; load from bundled files via `asWebviewUri`
439
+ 5. **Heavy computation in Extension Host** — blocks ALL extensions; offload to Language Server or Worker
440
+ 6. **Not bundling** — shipping `node_modules` → massive extension; use esbuild to bundle
441
+ 7. **Hardcoded file paths** — use `context.extensionUri` and `vscode.Uri.joinPath` for portability
442
+ 8. **Ignoring `when` clauses** — commands appear everywhere; scope with `when` in menus/keybindings
443
+ 9. **No error handling in providers** — unhandled errors crash the provider silently
444
+
445
+ ---
446
+
447
+ ## References
448
+
449
+ - [VS Code Extension API](https://code.visualstudio.com/api)
450
+ - [Extension Guidelines](https://code.visualstudio.com/api/references/extension-guidelines)
451
+ - [Extension Samples](https://github.com/microsoft/vscode-extension-samples)
452
+ - [Language Server Protocol](https://microsoft.github.io/language-server-protocol/)
453
+ - [Publishing Extensions](https://code.visualstudio.com/api/working-with-extensions/publishing-extension)
@@ -0,0 +1,216 @@
1
+ ---
2
+ name: wxt
3
+ description: "WXT browser extension framework patterns covering project setup, entrypoints, content scripts, background scripts, storage, messaging, and cross-browser compatibility. Use when building browser extensions with WXT."
4
+ version: 1.0.0
5
+ source: self
6
+ date_added: "2026-03-14"
7
+ ---
8
+
9
+ # WXT
10
+
11
+ Framework-agnostic browser extension framework. Supports React, Vue, Svelte, or vanilla JS. File-based entrypoints, auto-imports, and cross-browser compatibility (Chrome, Firefox, Safari, Edge).
12
+
13
+ ## When to Use
14
+
15
+ - Building browser extensions with any UI framework (or none)
16
+ - Need cross-browser support (Chrome + Firefox + Safari)
17
+ - Want file-based routing for extension entrypoints
18
+ - Need HMR and a modern dev experience for extension development
19
+
20
+ ## When NOT to Use
21
+
22
+ - Want a React-only opinionated framework (use Plasmo)
23
+ - Building a simple bookmarklet or userscript (overkill)
24
+ - Extension is trivial (single content script with no build step)
25
+
26
+ ## Setup
27
+
28
+ ```bash
29
+ npx wxt@latest init my-extension
30
+ cd my-extension
31
+ npm install
32
+ npm run dev # Development with HMR
33
+ ```
34
+
35
+ ### Project Structure
36
+
37
+ ```
38
+ entrypoints/
39
+ ├── popup/
40
+ │ ├── index.html # Popup page
41
+ │ └── main.tsx # React/Vue/Svelte entry
42
+ ├── options/
43
+ │ ├── index.html # Options page
44
+ │ └── main.tsx
45
+ ├── background.ts # Service worker
46
+ ├── content.ts # Content script (auto-injected)
47
+ └── content/ # Content script with UI
48
+ ├── index.tsx
49
+ └── style.css
50
+ public/
51
+ └── icon/
52
+ ├── 16.png
53
+ ├── 48.png
54
+ └── 128.png
55
+ wxt.config.ts # WXT configuration
56
+ ```
57
+
58
+ ## Configuration
59
+
60
+ ```typescript
61
+ // wxt.config.ts
62
+ import { defineConfig } from 'wxt';
63
+
64
+ export default defineConfig({
65
+ srcDir: 'src',
66
+ modules: ['@wxt-dev/module-react'], // or @wxt-dev/module-vue, @wxt-dev/module-svelte
67
+ manifest: {
68
+ permissions: ['storage', 'activeTab', 'contextMenus'],
69
+ host_permissions: ['https://example.com/*'],
70
+ name: 'My Extension',
71
+ description: 'Does useful things',
72
+ },
73
+ });
74
+ ```
75
+
76
+ ## Content Scripts
77
+
78
+ ```typescript
79
+ // entrypoints/content.ts
80
+ export default defineContentScript({
81
+ matches: ['https://example.com/*'],
82
+ runAt: 'document_end',
83
+
84
+ main() {
85
+ console.log('Content script loaded on:', window.location.href);
86
+ document.querySelectorAll('.ad-container').forEach(el => el.remove());
87
+ },
88
+ });
89
+ ```
90
+
91
+ ### Content Script with UI
92
+
93
+ ```tsx
94
+ // entrypoints/content/index.tsx
95
+ import ReactDOM from 'react-dom/client';
96
+
97
+ export default defineContentScript({
98
+ matches: ['https://example.com/*'],
99
+ cssInjectionMode: 'ui',
100
+
101
+ async main(ctx) {
102
+ const ui = await createShadowRootUi(ctx, {
103
+ name: 'my-extension-ui',
104
+ position: 'inline',
105
+ anchor: 'body',
106
+ onMount: (container) => {
107
+ const root = ReactDOM.createRoot(container);
108
+ root.render(<OverlayWidget />);
109
+ return root;
110
+ },
111
+ onRemove: (root) => root?.unmount(),
112
+ });
113
+ ui.mount();
114
+ },
115
+ });
116
+
117
+ function OverlayWidget() {
118
+ return <div style={{ position: 'fixed', bottom: 16, right: 16 }}>Extension UI</div>;
119
+ }
120
+ ```
121
+
122
+ ## Background Script
123
+
124
+ ```typescript
125
+ // entrypoints/background.ts
126
+ export default defineBackground(() => {
127
+ // Runs as service worker (MV3) or background page (MV2)
128
+ chrome.runtime.onInstalled.addListener(({ reason }) => {
129
+ if (reason === 'install') {
130
+ chrome.tabs.create({ url: chrome.runtime.getURL('/onboarding.html') });
131
+ }
132
+ });
133
+
134
+ chrome.contextMenus.create({
135
+ id: 'my-action',
136
+ title: 'Do Something',
137
+ contexts: ['selection'],
138
+ });
139
+
140
+ chrome.contextMenus.onClicked.addListener((info) => {
141
+ if (info.menuItemId === 'my-action') {
142
+ console.log('Selected text:', info.selectionText);
143
+ }
144
+ });
145
+ });
146
+ ```
147
+
148
+ ## Storage
149
+
150
+ ```typescript
151
+ // utils/storage.ts
152
+ import { storage } from 'wxt/storage';
153
+
154
+ // Define typed storage items
155
+ export const userSettings = storage.defineItem<{
156
+ theme: 'light' | 'dark';
157
+ notifications: boolean;
158
+ }>('local:settings', { fallback: { theme: 'light', notifications: true } });
159
+
160
+ // Usage
161
+ const settings = await userSettings.getValue();
162
+ await userSettings.setValue({ theme: 'dark', notifications: false });
163
+
164
+ // Watch for changes
165
+ userSettings.watch((newValue) => {
166
+ console.log('Settings changed:', newValue);
167
+ });
168
+ ```
169
+
170
+ ## Messaging
171
+
172
+ ```typescript
173
+ // utils/messaging.ts
174
+ import { defineExtensionMessaging } from '@webext-core/messaging';
175
+
176
+ interface ProtocolMap {
177
+ getTabData(tabId: number): { title: string; url: string };
178
+ toggleFeature(enabled: boolean): void;
179
+ }
180
+
181
+ export const { sendMessage, onMessage } = defineExtensionMessaging<ProtocolMap>();
182
+ ```
183
+
184
+ ```typescript
185
+ // background.ts — handle messages
186
+ onMessage('getTabData', async ({ data: tabId }) => {
187
+ const tab = await chrome.tabs.get(tabId);
188
+ return { title: tab.title ?? '', url: tab.url ?? '' };
189
+ });
190
+
191
+ // popup — send messages
192
+ const tabData = await sendMessage('getTabData', currentTabId);
193
+ ```
194
+
195
+ ## Build
196
+
197
+ ```bash
198
+ npm run dev # Chrome dev with HMR
199
+ npm run dev:firefox # Firefox dev
200
+ npm run build # Chrome production build
201
+ npm run build:firefox # Firefox production build
202
+ npm run zip # Build + create .zip for store submission
203
+ ```
204
+
205
+ ## Anti-Patterns
206
+
207
+ | Don't | Do |
208
+ |-------|-----|
209
+ | Use `chrome.*` APIs for cross-browser | Use `browser.*` (WXT polyfills automatically) |
210
+ | Manually write manifest.json | Use `wxt.config.ts` and file-based entrypoints |
211
+ | Import node modules in content scripts | Only browser-compatible code in entrypoints |
212
+ | Use `localStorage` in extensions | Use `wxt/storage` for cross-context persistence |
213
+ | Skip Shadow DOM for content UI | Use `createShadowRootUi` to isolate styles from the host page |
214
+ | Bundle heavy deps in content scripts | Keep content scripts lean — offload to background |
215
+ | Target only Chrome MV3 | Test with `dev:firefox` for cross-browser compatibility |
216
+ | Use untyped messaging | Use `defineExtensionMessaging` for type-safe communication |