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,443 @@
1
+ ---
2
+ name: mobile-offline-sync
3
+ description: Offline-first data synchronization for mobile apps covering conflict resolution, optimistic UI, local databases, background sync, and network-aware degradation. Use when building mobile features that must work without connectivity.
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # Mobile Offline Sync
8
+
9
+ Build mobile applications that work reliably without network connectivity and synchronize seamlessly when reconnected.
10
+
11
+ ## Conflict Resolution Strategies
12
+
13
+ When multiple clients modify the same record offline, conflicts are inevitable. Choose a strategy based on data semantics.
14
+
15
+ | Strategy | How It Works | Best For | Risk |
16
+ |----------|-------------|----------|------|
17
+ | Last-Write-Wins (LWW) | Highest timestamp wins | User preferences, non-critical data | Silent data loss |
18
+ | Field-Level Merge | Merge non-conflicting field changes | Profile data, settings | Complex implementation |
19
+ | CRDTs | Mathematically guaranteed convergence | Counters, sets, collaborative text | Large metadata overhead |
20
+ | Manual Merge | Present both versions to user | Documents, critical business data | Requires UI for resolution |
21
+ | Server-Wins | Server version always wins | Read-heavy data, admin-managed content | Client changes lost |
22
+ | Client-Wins | Client version always wins | Draft content, user-local data | Server changes lost |
23
+
24
+ ```typescript
25
+ // Field-level merge implementation
26
+ interface SyncRecord {
27
+ id: string;
28
+ fields: Record<string, unknown>;
29
+ fieldTimestamps: Record<string, number>; // Per-field last-modified
30
+ version: number;
31
+ deletedAt?: number;
32
+ }
33
+
34
+ function fieldLevelMerge(
35
+ local: SyncRecord,
36
+ remote: SyncRecord
37
+ ): SyncRecord {
38
+ const merged: SyncRecord = {
39
+ id: local.id,
40
+ fields: {},
41
+ fieldTimestamps: {},
42
+ version: Math.max(local.version, remote.version) + 1,
43
+ };
44
+
45
+ const allFields = new Set([
46
+ ...Object.keys(local.fields),
47
+ ...Object.keys(remote.fields),
48
+ ]);
49
+
50
+ for (const field of allFields) {
51
+ const localTs = local.fieldTimestamps[field] ?? 0;
52
+ const remoteTs = remote.fieldTimestamps[field] ?? 0;
53
+
54
+ if (localTs >= remoteTs) {
55
+ merged.fields[field] = local.fields[field];
56
+ merged.fieldTimestamps[field] = localTs;
57
+ } else {
58
+ merged.fields[field] = remote.fields[field];
59
+ merged.fieldTimestamps[field] = remoteTs;
60
+ }
61
+ }
62
+
63
+ return merged;
64
+ }
65
+ ```
66
+
67
+ **Anti-pattern**: Using wall-clock timestamps for LWW without clock synchronization. Use hybrid logical clocks (HLC) or server-assigned timestamps instead.
68
+
69
+ ## Optimistic UI Updates
70
+
71
+ Apply changes to the local UI immediately. If the server rejects the change, roll back.
72
+
73
+ ```typescript
74
+ // Optimistic mutation with rollback
75
+ interface OptimisticMutation<T> {
76
+ id: string;
77
+ type: 'create' | 'update' | 'delete';
78
+ table: string;
79
+ payload: T;
80
+ previousState?: T;
81
+ timestamp: number;
82
+ retryCount: number;
83
+ maxRetries: number;
84
+ }
85
+
86
+ class OptimisticStore<T extends { id: string }> {
87
+ private pendingMutations = new Map<string, OptimisticMutation<T>>();
88
+ private confirmedState = new Map<string, T>();
89
+
90
+ apply(mutation: OptimisticMutation<T>): void {
91
+ // Save rollback state
92
+ mutation.previousState = this.confirmedState.get(mutation.payload.id);
93
+ this.pendingMutations.set(mutation.id, mutation);
94
+
95
+ // Apply optimistically to local state
96
+ if (mutation.type === 'delete') {
97
+ this.confirmedState.delete(mutation.payload.id);
98
+ } else {
99
+ this.confirmedState.set(mutation.payload.id, mutation.payload);
100
+ }
101
+ }
102
+
103
+ confirm(mutationId: string): void {
104
+ this.pendingMutations.delete(mutationId);
105
+ }
106
+
107
+ rollback(mutationId: string): void {
108
+ const mutation = this.pendingMutations.get(mutationId);
109
+ if (!mutation) return;
110
+
111
+ if (mutation.previousState) {
112
+ this.confirmedState.set(mutation.payload.id, mutation.previousState);
113
+ } else {
114
+ this.confirmedState.delete(mutation.payload.id);
115
+ }
116
+ this.pendingMutations.delete(mutationId);
117
+ }
118
+ }
119
+ ```
120
+
121
+ ```tsx
122
+ // React hook for optimistic mutations
123
+ function useOptimisticMutation<T>(
124
+ mutationFn: (data: T) => Promise<T>,
125
+ options: {
126
+ onOptimistic: (data: T) => void;
127
+ onConfirm: (data: T) => void;
128
+ onRollback: (data: T, error: Error) => void;
129
+ }
130
+ ) {
131
+ const mutate = useCallback(async (data: T) => {
132
+ options.onOptimistic(data);
133
+
134
+ try {
135
+ const result = await mutationFn(data);
136
+ options.onConfirm(result);
137
+ } catch (error) {
138
+ options.onRollback(data, error as Error);
139
+ }
140
+ }, [mutationFn, options]);
141
+
142
+ return { mutate };
143
+ }
144
+ ```
145
+
146
+ **Rule**: Always store the previous state before applying an optimistic update so rollback is possible.
147
+ **Rule**: Show a subtle indicator (sync icon, muted timestamp) for unconfirmed optimistic changes.
148
+
149
+ ## Local Database Options
150
+
151
+ | Database | Platform | Strengths | Weaknesses |
152
+ |----------|----------|-----------|------------|
153
+ | SQLite (via expo-sqlite, react-native-sqlite-storage) | iOS, Android | Mature, SQL, large datasets | No reactive queries by default |
154
+ | WatermelonDB | iOS, Android | Reactive, lazy loading, fast sync | Complex setup, learning curve |
155
+ | Realm (MongoDB) | iOS, Android | Object-oriented, reactive, sync built-in | Vendor lock-in with Atlas |
156
+ | MMKV | iOS, Android | Fastest key-value store | Not a relational database |
157
+ | OPFS + SQLite (wa-sqlite) | Web | SQL in browser, persistent | Browser support varies |
158
+
159
+ ```typescript
160
+ // WatermelonDB - Model with sync support
161
+ import { Model } from '@nozbe/watermelondb';
162
+ import { field, date, readonly } from '@nozbe/watermelondb/decorators';
163
+
164
+ class Task extends Model {
165
+ static table = 'tasks';
166
+
167
+ @field('title') title!: string;
168
+ @field('is_completed') isCompleted!: boolean;
169
+ @field('server_id') serverId?: string;
170
+ @readonly @date('created_at') createdAt!: Date;
171
+ @date('updated_at') updatedAt!: Date;
172
+ }
173
+
174
+ // Schema definition
175
+ const schema = appSchema({
176
+ version: 1,
177
+ tables: [
178
+ tableSchema({
179
+ name: 'tasks',
180
+ columns: [
181
+ { name: 'title', type: 'string' },
182
+ { name: 'is_completed', type: 'boolean' },
183
+ { name: 'server_id', type: 'string', isOptional: true },
184
+ { name: 'created_at', type: 'number' },
185
+ { name: 'updated_at', type: 'number' },
186
+ ],
187
+ }),
188
+ ],
189
+ });
190
+ ```
191
+
192
+ ## Background Sync Scheduling
193
+
194
+ ```typescript
195
+ // React Native - Background fetch for sync
196
+ import BackgroundFetch from 'react-native-background-fetch';
197
+
198
+ function configureBackgroundSync() {
199
+ BackgroundFetch.configure(
200
+ {
201
+ minimumFetchInterval: 15, // minutes (OS may defer)
202
+ stopOnTerminate: false,
203
+ startOnBoot: true,
204
+ enableHeadless: true,
205
+ requiredNetworkType: BackgroundFetch.NETWORK_TYPE_ANY,
206
+ },
207
+ async (taskId) => {
208
+ console.log('[BackgroundFetch] Task:', taskId);
209
+
210
+ try {
211
+ await syncPendingMutations();
212
+ await pullRemoteChanges();
213
+ } catch (error) {
214
+ console.error('[BackgroundFetch] Sync failed:', error);
215
+ }
216
+
217
+ BackgroundFetch.finish(taskId);
218
+ },
219
+ (taskId) => {
220
+ // Task timeout - OS is forcing termination
221
+ console.warn('[BackgroundFetch] Timeout:', taskId);
222
+ BackgroundFetch.finish(taskId);
223
+ }
224
+ );
225
+ }
226
+ ```
227
+
228
+ **Rule**: Background sync is best-effort. The OS controls scheduling. Never assume a specific interval.
229
+ **Rule**: Background tasks on iOS have ~30 seconds. Keep sync operations fast and incremental.
230
+
231
+ ## Queue Management for Pending Mutations
232
+
233
+ ```typescript
234
+ interface MutationQueue {
235
+ id: string;
236
+ operation: 'CREATE' | 'UPDATE' | 'DELETE';
237
+ table: string;
238
+ recordId: string;
239
+ payload: Record<string, unknown>;
240
+ createdAt: number;
241
+ retryCount: number;
242
+ lastError?: string;
243
+ }
244
+
245
+ class SyncQueue {
246
+ private db: SQLiteDatabase;
247
+ private maxRetries = 5;
248
+
249
+ async enqueue(mutation: Omit<MutationQueue, 'id' | 'createdAt' | 'retryCount'>): Promise<void> {
250
+ await this.db.execute(
251
+ `INSERT INTO sync_queue (id, operation, table_name, record_id, payload, created_at, retry_count)
252
+ VALUES (?, ?, ?, ?, ?, ?, 0)`,
253
+ [generateId(), mutation.operation, mutation.table, mutation.recordId,
254
+ JSON.stringify(mutation.payload), Date.now()]
255
+ );
256
+ }
257
+
258
+ async processQueue(): Promise<SyncResult> {
259
+ const pending = await this.db.query<MutationQueue>(
260
+ `SELECT * FROM sync_queue WHERE retry_count < ? ORDER BY created_at ASC`,
261
+ [this.maxRetries]
262
+ );
263
+
264
+ const results: SyncResult = { succeeded: 0, failed: 0, skipped: 0 };
265
+
266
+ for (const mutation of pending) {
267
+ try {
268
+ await this.sendToServer(mutation);
269
+ await this.dequeue(mutation.id);
270
+ results.succeeded++;
271
+ } catch (error) {
272
+ if (isRetryable(error)) {
273
+ await this.incrementRetry(mutation.id, (error as Error).message);
274
+ results.failed++;
275
+ } else {
276
+ // Non-retryable: move to dead letter queue
277
+ await this.moveToDeadLetter(mutation, error);
278
+ results.skipped++;
279
+ }
280
+ }
281
+ }
282
+
283
+ return results;
284
+ }
285
+
286
+ async getPendingCount(): Promise<number> {
287
+ const result = await this.db.query<{ count: number }>(
288
+ 'SELECT COUNT(*) as count FROM sync_queue WHERE retry_count < ?',
289
+ [this.maxRetries]
290
+ );
291
+ return result[0].count;
292
+ }
293
+ }
294
+ ```
295
+
296
+ **Anti-pattern**: Unbounded retry without backoff. Use exponential backoff: `delay = min(baseDelay * 2^retryCount, maxDelay)`.
297
+ **Anti-pattern**: Losing mutations on app crash. Persist the queue to SQLite, not in-memory.
298
+
299
+ ## Network Status Detection
300
+
301
+ ```typescript
302
+ import NetInfo, { NetInfoState } from '@react-native-community/netinfo';
303
+
304
+ class NetworkMonitor {
305
+ private listeners = new Set<(online: boolean) => void>();
306
+ private currentState: NetInfoState | null = null;
307
+
308
+ start(): () => void {
309
+ const unsubscribe = NetInfo.addEventListener((state) => {
310
+ const wasOnline = this.isOnline();
311
+ this.currentState = state;
312
+ const nowOnline = this.isOnline();
313
+
314
+ if (!wasOnline && nowOnline) {
315
+ // Came back online -- trigger sync
316
+ this.notifyListeners(true);
317
+ } else if (wasOnline && !nowOnline) {
318
+ this.notifyListeners(false);
319
+ }
320
+ });
321
+
322
+ return unsubscribe;
323
+ }
324
+
325
+ isOnline(): boolean {
326
+ if (!this.currentState) return true; // Assume online until proven otherwise
327
+ return this.currentState.isConnected === true &&
328
+ this.currentState.isInternetReachable !== false;
329
+ }
330
+
331
+ onStatusChange(listener: (online: boolean) => void): () => void {
332
+ this.listeners.add(listener);
333
+ return () => this.listeners.delete(listener);
334
+ }
335
+
336
+ private notifyListeners(online: boolean): void {
337
+ this.listeners.forEach((listener) => listener(online));
338
+ }
339
+ }
340
+ ```
341
+
342
+ **Rule**: `isConnected` can be `true` while `isInternetReachable` is `false` (e.g., captive portal). Check both.
343
+
344
+ ## Graceful Degradation Patterns
345
+
346
+ | Feature | Online Behavior | Offline Behavior |
347
+ |---------|----------------|-----------------|
348
+ | Data display | Fetch from server, cache locally | Show cached data with "offline" banner |
349
+ | Create/edit | Send to server immediately | Save locally, queue for sync |
350
+ | Search | Server-side search | Local full-text search on cached data |
351
+ | Images | Load from CDN | Show cached images, placeholder for uncached |
352
+ | Auth | Validate token with server | Accept cached token if not expired |
353
+ | Real-time features | WebSocket connection | Disabled with "reconnecting" indicator |
354
+
355
+ ## Sync Status UI Indicators
356
+
357
+ ```tsx
358
+ function SyncStatusBadge() {
359
+ const { isOnline, pendingCount, lastSyncAt, syncState } = useSyncStatus();
360
+
361
+ if (syncState === 'syncing') {
362
+ return (
363
+ <View style={styles.badge}>
364
+ <ActivityIndicator size="small" />
365
+ <Text>Syncing {pendingCount} changes...</Text>
366
+ </View>
367
+ );
368
+ }
369
+
370
+ if (!isOnline) {
371
+ return (
372
+ <View style={[styles.badge, styles.offline]}>
373
+ <OfflineIcon />
374
+ <Text>Offline - {pendingCount} changes pending</Text>
375
+ </View>
376
+ );
377
+ }
378
+
379
+ if (pendingCount > 0) {
380
+ return (
381
+ <View style={[styles.badge, styles.pending]}>
382
+ <Text>{pendingCount} unsynced</Text>
383
+ </View>
384
+ );
385
+ }
386
+
387
+ return null; // No badge when fully synced and online
388
+ }
389
+ ```
390
+
391
+ **Rule**: Never show "all synced" permanently. Only show sync status when there is something to communicate.
392
+
393
+ ## Data Versioning
394
+
395
+ Track schema versions to handle migrations when the app updates and the local database schema changes.
396
+
397
+ ```typescript
398
+ const MIGRATIONS: Migration[] = [
399
+ {
400
+ fromVersion: 1,
401
+ toVersion: 2,
402
+ sql: [
403
+ 'ALTER TABLE tasks ADD COLUMN priority INTEGER DEFAULT 0',
404
+ 'CREATE INDEX idx_tasks_priority ON tasks(priority)',
405
+ ],
406
+ },
407
+ {
408
+ fromVersion: 2,
409
+ toVersion: 3,
410
+ sql: [
411
+ 'ALTER TABLE tasks ADD COLUMN assigned_to TEXT',
412
+ ],
413
+ },
414
+ ];
415
+
416
+ async function runMigrations(db: SQLiteDatabase, currentVersion: number, targetVersion: number) {
417
+ const applicable = MIGRATIONS.filter(
418
+ (m) => m.fromVersion >= currentVersion && m.toVersion <= targetVersion
419
+ ).sort((a, b) => a.fromVersion - b.fromVersion);
420
+
421
+ for (const migration of applicable) {
422
+ await db.transaction(async (tx) => {
423
+ for (const sql of migration.sql) {
424
+ await tx.execute(sql);
425
+ }
426
+ await tx.execute('PRAGMA user_version = ?', [migration.toVersion]);
427
+ });
428
+ }
429
+ }
430
+ ```
431
+
432
+ ## Output Checklist
433
+
434
+ - [ ] Conflict resolution strategy chosen and documented
435
+ - [ ] Optimistic UI with rollback on server rejection
436
+ - [ ] Local database persists data across app restarts
437
+ - [ ] Background sync configured with OS-appropriate scheduling
438
+ - [ ] Mutation queue persisted to disk (survives crashes)
439
+ - [ ] Network status monitored with reconnection-triggered sync
440
+ - [ ] UI indicates offline state and pending change count
441
+ - [ ] Retry with exponential backoff and max retry limit
442
+ - [ ] Dead letter queue for permanently failed mutations
443
+ - [ ] Database migrations handle schema version changes