@thierrynakoa/fire-flow 12.2.1 → 13.0.1

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 (500) hide show
  1. package/CREDITS.md +25 -0
  2. package/DOMINION-FLOW-OVERVIEW.md +182 -38
  3. package/README.md +399 -455
  4. package/TROUBLESHOOTING.md +264 -264
  5. package/agents/fire-debugger.md +54 -0
  6. package/agents/fire-executor.md +1610 -1033
  7. package/agents/fire-fact-checker.md +1 -1
  8. package/agents/fire-planner.md +85 -17
  9. package/agents/fire-project-researcher.md +1 -1
  10. package/agents/fire-researcher.md +4 -22
  11. package/agents/{fire-phoenix-analyst.md → fire-resurrection-analyst.md} +394 -394
  12. package/agents/fire-reviewer.md +552 -499
  13. package/agents/fire-verifier.md +114 -19
  14. package/bin/cli.js +18 -101
  15. package/commands/fire-0-orient.md +2 -2
  16. package/commands/fire-1a-new.md +50 -15
  17. package/commands/fire-1c-setup.md +33 -5
  18. package/commands/fire-1d-discuss.md +87 -1
  19. package/commands/fire-2-plan.md +556 -527
  20. package/commands/fire-3-execute.md +2046 -1356
  21. package/commands/fire-4-verify.md +975 -906
  22. package/commands/fire-5-handoff.md +46 -5
  23. package/commands/fire-6-resume.md +2 -31
  24. package/commands/fire-add-new-skill.md +138 -19
  25. package/commands/fire-autonomous.md +14 -2
  26. package/commands/fire-complete-milestone.md +1 -1
  27. package/commands/fire-cost.md +179 -183
  28. package/commands/fire-debug.md +1 -6
  29. package/commands/fire-loop-resume.md +2 -2
  30. package/commands/fire-loop-stop.md +1 -1
  31. package/commands/fire-loop.md +2 -15
  32. package/commands/fire-map-codebase.md +1 -1
  33. package/commands/fire-migrate-database.md +548 -0
  34. package/commands/fire-new-milestone.md +1 -1
  35. package/commands/fire-reflect.md +1 -2
  36. package/commands/fire-research.md +142 -21
  37. package/commands/{fire-phoenix.md → fire-resurrect.md} +859 -603
  38. package/commands/fire-scaffold.md +297 -0
  39. package/commands/fire-search.md +1 -2
  40. package/commands/fire-security-scan.md +483 -484
  41. package/commands/fire-setup.md +359 -0
  42. package/commands/fire-skill.md +770 -0
  43. package/commands/fire-skills-diff.md +506 -506
  44. package/commands/fire-skills-history.md +388 -388
  45. package/commands/fire-skills-rollback.md +7 -7
  46. package/commands/fire-skills-sync.md +470 -470
  47. package/commands/fire-test.md +5 -5
  48. package/commands/fire-todos.md +1 -1
  49. package/commands/fire-update.md +5 -5
  50. package/commands/fire-validate-skills.md +282 -0
  51. package/commands/fire-vuln-scan.md +492 -493
  52. package/hooks/run-hook.sh +8 -8
  53. package/hooks/run-session-end.sh +7 -7
  54. package/hooks/session-end.sh +90 -90
  55. package/hooks/session-start.sh +1 -1
  56. package/package.json +4 -24
  57. package/plugin.json +7 -7
  58. package/references/autonomy-levels.md +235 -0
  59. package/references/behavioral-directives.md +95 -3
  60. package/references/blocker-tracking.md +1 -1
  61. package/references/circuit-breaker.md +93 -2
  62. package/references/context-engineering.md +227 -9
  63. package/references/honesty-protocols.md +70 -1
  64. package/references/issue-to-pr-pipeline.md +149 -150
  65. package/references/metrics-and-trends.md +1 -2
  66. package/references/research-improvements.md +4 -108
  67. package/references/sdlc-mapping.md +73 -0
  68. package/references/state-machine.md +151 -0
  69. package/skills-library/AVAILABLE_TOOLS_REFERENCE.md +333 -0
  70. package/skills-library/SKILLS-INDEX.md +57 -558
  71. package/skills-library/SKILLS_LIBRARY_INDEX.md +532 -0
  72. package/skills-library/_general/api-patterns/api-field-name-mismatch.md +107 -0
  73. package/skills-library/_general/api-patterns/streaming-command-timeout.md +122 -0
  74. package/skills-library/_general/api-patterns/streaming-proxy-cors-bypass.md +102 -0
  75. package/skills-library/_general/automation/settings-gui-generator.md +172 -0
  76. package/skills-library/_general/database-solutions/data-type-mapping-reference.md +181 -0
  77. package/skills-library/_general/database-solutions/mysql-limit-offset-string-coercion.md +102 -0
  78. package/skills-library/_general/database-solutions/mysql-to-pg-migration.md +195 -0
  79. package/skills-library/_general/database-solutions/orm-schema-portability.md +193 -0
  80. package/skills-library/_general/database-solutions/persistent-analysis-storage.md +207 -0
  81. package/skills-library/_general/database-solutions/pg-to-mysql-schema-migration-methodology.md +190 -0
  82. package/skills-library/_general/database-solutions/sql-dialect-compatibility-matrix.md +306 -0
  83. package/skills-library/_general/database-solutions/sqlite-to-pg-migration.md +219 -0
  84. package/skills-library/_general/frontend/canvas-bubble-animation-grouping.md +270 -0
  85. package/skills-library/_general/frontend/color-token-migration.md +112 -0
  86. package/skills-library/_general/frontend/framer-motion-layoutid-grouping.md +150 -0
  87. package/skills-library/_general/frontend/pyqt6-settings-dialog.md +191 -0
  88. package/skills-library/_general/frontend/react-flow-animated-layout-switching.md +101 -0
  89. package/skills-library/_general/frontend/react-hooks-order-debugging.md +141 -0
  90. package/skills-library/_general/frontend/redux-localstorage-auth-desync.md +126 -0
  91. package/skills-library/_general/frontend/safari-csp-theme-color-debugging.md +124 -0
  92. package/skills-library/_general/frontend/safari-sw-cache-poisoning.md +138 -0
  93. package/skills-library/_general/frontend/svg-sparkline-no-charting-library.md +131 -0
  94. package/skills-library/_general/growth-marketing/oss-daily-growth-intelligence.md +224 -0
  95. package/skills-library/_general/integrations/claude-code-local-mcp-integration.md +250 -0
  96. package/skills-library/_general/integrations/mcp-composite-tool-orchestration.md +200 -0
  97. package/skills-library/_general/methodology/AGENT_SDK_STANDALONE_TOOLING.md +181 -0
  98. package/skills-library/_general/methodology/AGENT_TEAMS_GUIDE.md +169 -0
  99. package/skills-library/_general/methodology/ALAS_STATEFUL_EXECUTION.md +207 -0
  100. package/skills-library/_general/methodology/AUTO_REVIEWER_SUBAGENT.md +211 -0
  101. package/skills-library/_general/methodology/CONSISTENCY_CHECK_AMBIGUITY_GATE.md +96 -0
  102. package/skills-library/_general/methodology/DEAD_ENDS_SHELF.md +4 -4
  103. package/skills-library/_general/methodology/DISTILL_NOT_DUMP.md +108 -0
  104. package/skills-library/_general/methodology/EXECUTION_PROGRESS_MONITOR.md +157 -0
  105. package/skills-library/_general/methodology/HIERARCHICAL_REVIEW_MARS.md +122 -0
  106. package/skills-library/_general/methodology/MCP_INTER_AGENT_BRIDGE.md +207 -0
  107. package/skills-library/_general/methodology/MERMAID_WIZARD_DIAGRAMS.md +77 -0
  108. package/skills-library/_general/methodology/MISSING_DIMENSION_DETECTOR.md +89 -0
  109. package/skills-library/_general/methodology/MULTI_AGENT_COORDINATION.md +397 -0
  110. package/skills-library/_general/methodology/OBSERVATION_MASKING.md +100 -0
  111. package/skills-library/_general/methodology/PHOENIX_REBUILD_METHODOLOGY.md +82 -11
  112. package/skills-library/_general/methodology/REVIEW_BACKTRACK_PANEL.md +140 -0
  113. package/skills-library/_general/methodology/REVIEW_FIX_LOOP.md +117 -0
  114. package/skills-library/_general/methodology/VOTING_VERDICT_ARBITRATION.md +155 -0
  115. package/skills-library/_general/methodology/ZERO_FRICTION_CLI_SETUP.md +2 -2
  116. package/skills-library/_general/methodology/dead-code-activation.md +123 -0
  117. package/skills-library/_general/methodology/debug-swarm-researcher-escape-hatch.md +240 -240
  118. package/skills-library/_general/methodology/shell-autonomous-loop-fixplan.md +1 -1
  119. package/skills-library/_general/patterns-standards/GOF_DESIGN_PATTERNS_FOR_AI_AGENTS.md +5 -5
  120. package/skills-library/_general/patterns-standards/cascading-failure-diagnosis.md +119 -0
  121. package/skills-library/_general/patterns-standards/domain-specific-layout-algorithms.md +209 -0
  122. package/skills-library/_general/patterns-standards/python-desktop-app-architecture.md +399 -0
  123. package/skills-library/_general/patterns-standards/realtime-monitoring-dashboard.md +457 -0
  124. package/skills-library/_general/patterns-standards/togglable-processing-pipeline.md +169 -0
  125. package/skills-library/_general/performance/liveclock-extraction.md +112 -0
  126. package/skills-library/_general/performance/ref-based-canvas-animation.md +117 -0
  127. package/skills-library/_general/performance/use-visible-interval.md +131 -0
  128. package/skills-library/_general/testing/playwright-firefox-withcredentials-auth-issue.md +104 -0
  129. package/skills-library/_quarantine/README.md +30 -0
  130. package/skills-library/api-patterns/BROADCAST_SCHEDULER_SHARED_EXECUTE_FUNCTION.md +150 -0
  131. package/skills-library/api-patterns/ERROR_RESPONSE_STANDARDS.md +145 -0
  132. package/skills-library/api-patterns/EXPRESS_ROUTE_ORDERING_MIDDLEWARE_INTERCEPTION.md +326 -0
  133. package/skills-library/api-patterns/PAGINATION_PATTERNS.md +137 -0
  134. package/skills-library/api-patterns/PODCAST_PROGRESS_TRACKING_THREE_ROOT_CAUSES.md +277 -0
  135. package/skills-library/api-patterns/RATE_LIMITING_TOGGLE.md +155 -0
  136. package/skills-library/api-patterns/graphql-content-queries.md +708 -0
  137. package/skills-library/appointment-scheduler-design.md +423 -0
  138. package/skills-library/automation/AUTO_POPULATE_COMPLETE_GUIDE.md +631 -0
  139. package/skills-library/automation/CC_WORKFLOW_STUDIO.md +83 -0
  140. package/skills-library/automation/CLAUDE_CODE_SWARM_MODE.md +95 -0
  141. package/skills-library/automation/DAEMON_TRIGGER_FILE_IPC.md +195 -0
  142. package/skills-library/automation/scheduled-content-publishing.md +608 -0
  143. package/skills-library/awesome-workflows/Blogging-Platform-Instructions/view_commands.md +25 -0
  144. package/skills-library/awesome-workflows/CREDENTIAL-SECURITY-WORKFLOW.md +109 -0
  145. package/skills-library/awesome-workflows/DEBUGGING-WORKFLOW.md +124 -0
  146. package/skills-library/awesome-workflows/Design-Review-Workflow/README.md +31 -0
  147. package/skills-library/awesome-workflows/Design-Review-Workflow/design-principles-example.md +129 -0
  148. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-agent.md +107 -0
  149. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-claude-md-snippet.md +24 -0
  150. package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-slash-command.md +38 -0
  151. package/skills-library/awesome-workflows/PARALLEL-RESEARCH-WORKFLOW.md +89 -0
  152. package/skills-library/awesome-workflows/PHASE-EXECUTION-WORKFLOW.md +97 -0
  153. package/skills-library/awesome-workflows/SESSION-HANDOFF-WORKFLOW.md +116 -0
  154. package/skills-library/cms-patterns/content-branch-preview.md +515 -0
  155. package/skills-library/cms-patterns/inline-visual-editing.md +666 -0
  156. package/skills-library/cms-patterns/mdx-component-content.md +649 -0
  157. package/skills-library/cms-patterns/media-manager-abstraction.md +827 -0
  158. package/skills-library/cms-patterns/schema-driven-form-generator.md +838 -0
  159. package/skills-library/complexity-metrics/complexity-divider.md +707 -0
  160. package/skills-library/complexity-metrics/work-with-complexity.md +193 -0
  161. package/skills-library/creative-multimedia/animation-stack-guide.md +577 -0
  162. package/skills-library/creative-multimedia/audio-enhancement-pipeline.md +625 -0
  163. package/skills-library/creative-multimedia/content-repurposing-pipeline.md +1146 -0
  164. package/skills-library/creative-multimedia/data-visualization-generator.md +862 -0
  165. package/skills-library/creative-multimedia/doc-to-podcast-pipeline.md +2184 -0
  166. package/skills-library/creative-multimedia/ffmpeg-command-generator.md +405 -0
  167. package/skills-library/creative-multimedia/image-optimization-pipeline.md +605 -0
  168. package/skills-library/creative-multimedia/multi-format-content-generator.md +1759 -0
  169. package/skills-library/creative-multimedia/og-image-generator.md +635 -0
  170. package/skills-library/creative-multimedia/podcast-audio-composition.md +1355 -0
  171. package/skills-library/creative-multimedia/podcast-quality-evaluation.md +1452 -0
  172. package/skills-library/creative-multimedia/podcast-script-generation.md +1841 -0
  173. package/skills-library/creative-multimedia/svg-generation.md +750 -0
  174. package/skills-library/creative-multimedia/text-to-speech-provider-selector.md +1414 -0
  175. package/skills-library/creative-multimedia/transcription-pipeline-selector.md +677 -0
  176. package/skills-library/creative-multimedia/video-streaming-setup.md +559 -0
  177. package/skills-library/database-solutions/AI_RESPONSE_DATABASE_CACHING.md +520 -0
  178. package/skills-library/database-solutions/CONDITIONAL_SQL_MIGRATION_PATTERN.md +119 -0
  179. package/skills-library/database-solutions/DATABASE_COLUMN_NAME_MISMATCH.md +393 -0
  180. package/skills-library/database-solutions/DATABASE_SCHEMA.md +394 -0
  181. package/skills-library/database-solutions/DATABASE_SCHEMA_VERIFICATION_GUIDE.md +348 -0
  182. package/skills-library/database-solutions/DATABASE_STRATEGY.md +71 -0
  183. package/skills-library/database-solutions/ES_MODULE_SEED_SCRIPT_PATTERN.md +52 -0
  184. package/skills-library/database-solutions/MIGRATION_GUIDE.md +3 -0
  185. package/skills-library/database-solutions/PLPGSQL_VARIABLE_CONFLICT_FIX.md +208 -0
  186. package/skills-library/database-solutions/POSTGRESQL_JSONB_DOUBLE_STRINGIFY_FIX.md +245 -0
  187. package/skills-library/database-solutions/POSTGRESQL_LICENSE_TABLE_DESIGN.md +393 -0
  188. package/skills-library/database-solutions/POSTGRESQL_UUID_DOCUMENT_RAG_DUAL_SCOPE.md +732 -0
  189. package/skills-library/database-solutions/POSTGRES_SQL_TEMPLATE_BINDING_ERROR.md +240 -0
  190. package/skills-library/database-solutions/PRISMA_DB_PUSH_DATA_LOSS_PREVENTION.md +141 -0
  191. package/skills-library/database-solutions/PRODUCTION_QUERY_OPTIMIZATION_RESTART_FIX.md +389 -0
  192. package/skills-library/database-solutions/RLS_SECURITY_GUIDE.md +107 -0
  193. package/skills-library/database-solutions/SCHEMA_ENHANCEMENTS_GUIDE.md +373 -0
  194. package/skills-library/database-solutions/SCHEMA_MIGRATION_GUIDE.md +368 -0
  195. package/skills-library/database-solutions/SCHEMA_VERIFICATION_QUICK_REFERENCE.md +104 -0
  196. package/skills-library/database-solutions/ai-erd-generator.md +1213 -0
  197. package/skills-library/database-solutions/content-publishing-states.md +631 -0
  198. package/skills-library/database-solutions/database-schema-designer.md +522 -0
  199. package/skills-library/database-solutions/er-diagram-components.md +569 -0
  200. package/skills-library/database-solutions/er-to-ddl-mapping.md +1405 -0
  201. package/skills-library/database-solutions/erd-creator-textbook-research.md +433 -0
  202. package/skills-library/database-solutions/erd-react-flow-architecture.md +1965 -0
  203. package/skills-library/database-solutions/mariadb-aggregate-function-replacement.md +145 -0
  204. package/skills-library/database-solutions/normalization-validator.md +778 -0
  205. package/skills-library/database-solutions/postgres-full-text-search-content.md +494 -0
  206. package/skills-library/database-solutions/postgresql-to-mysql-runtime-translation.md +286 -0
  207. package/skills-library/database-solutions/regex-alternation-ordering-sql-types.md +92 -0
  208. package/skills-library/database-solutions/reserved-word-context-aware-quoting.md +142 -0
  209. package/skills-library/database-solutions/sql-ddl-generator.md +756 -0
  210. package/skills-library/database-solutions/supabase-connection-pooler-fix.md +102 -0
  211. package/skills-library/deployment-security/CPANEL_NODE_DEPLOYMENT.md +166 -0
  212. package/skills-library/deployment-security/DEPLOYMENT.md +275 -0
  213. package/skills-library/deployment-security/DEPLOYMENT_CHECKLIST.md +363 -0
  214. package/skills-library/deployment-security/DEPLOYMENT_PLAN.md +669 -0
  215. package/skills-library/deployment-security/KNEX_DATABASE_ABSTRACTION.md +444 -0
  216. package/skills-library/deployment-security/LICENSE_KEY_SYSTEM.md +206 -0
  217. package/skills-library/deployment-security/NODE18_DEPENDENCY_COMPATIBILITY.md +284 -0
  218. package/skills-library/deployment-security/PHP_INSTALLER_WIZARD_GUIDE.md +315 -0
  219. package/skills-library/deployment-security/PM2_ENVIRONMENT_VARIABLE_CACHING.md +256 -0
  220. package/skills-library/deployment-security/PM2_MEMORY_EXHAUSTION_FIX.md +370 -0
  221. package/skills-library/deployment-security/PRODUCTION_DEPLOYMENT_GUIDE.md +592 -0
  222. package/skills-library/deployment-security/PRODUCTION_HARDENING_DOCUMENTATION.md +307 -0
  223. package/skills-library/deployment-security/PRODUCTION_RECOVERY_CHERRY_PICK_PATTERN.md +202 -0
  224. package/skills-library/deployment-security/PYINSTALLER_CUDA_WHISPER_BUNDLING.md +236 -0
  225. package/skills-library/deployment-security/SECURITY.md +41 -0
  226. package/skills-library/deployment-security/SMTP_SSL_HOSTNAME_MISMATCH_SHARED_HOSTING.md +220 -0
  227. package/skills-library/deployment-security/SPA_SEO_OPTIMIZATION_CPANEL.md +200 -0
  228. package/skills-library/deployment-security/SUPABASE_EDGE_FUNCTIONS.md +338 -0
  229. package/skills-library/deployment-security/VERCEL_GITHUB_DEPLOYMENT_GUIDE.md +858 -0
  230. package/skills-library/deployment-security/VPS_DEPLOYMENT_READINESS.md +356 -0
  231. package/skills-library/deployment-security/deployment-changes-not-applying.md +241 -0
  232. package/skills-library/deployment-security/env-file-management-production-local.md +203 -0
  233. package/skills-library/deployment-security/express-secure-file-downloads.md +413 -0
  234. package/skills-library/deployment-security/react-production-deployment-desktop-guide.md +2011 -0
  235. package/skills-library/deployment-security/self-hosted-supabase-coolify-guide.md +1684 -0
  236. package/skills-library/deployment-security/unique-features-ai-strategy-plaid-security.md +1613 -0
  237. package/skills-library/deployment-security/vps-deployment.md +135 -0
  238. package/skills-library/document-processing/WORD_EXPORT_MARKDOWN_FORMATTING.md +482 -0
  239. package/skills-library/document-processing/document-ai-landingai-integration.md +677 -0
  240. package/skills-library/document-processing/express-secure-file-downloads-mern.md +413 -0
  241. package/skills-library/document-processing/express-secure-file-downloads.md +413 -0
  242. package/skills-library/document-processing/md-to-word-converter.md +318 -0
  243. package/skills-library/document-processing/pdf-forms-integration/README.md +101 -0
  244. package/skills-library/document-processing/pdf-forms-integration/SKILL.md +662 -0
  245. package/skills-library/ecommerce/ADMIN_PRODUCTS_GUIDE.md +428 -0
  246. package/skills-library/ecommerce/ECOMMERCE_API_REFERENCE.md +776 -0
  247. package/skills-library/ecommerce/ECOMMERCE_COMPLETION_SUMMARY.md +673 -0
  248. package/skills-library/ecommerce/ECOMMERCE_IMPLEMENTATION_GUIDE.md +729 -0
  249. package/skills-library/ecommerce/ECOMMERCE_QUICK_REFERENCE.md +521 -0
  250. package/skills-library/ecommerce/ECOMMERCE_TESTING_CHECKLIST.md +565 -0
  251. package/skills-library/ecommerce/ECOMMERCE_WORKFLOW_GUIDE.md +1059 -0
  252. package/skills-library/ecommerce/PRODUCT_CREATION_EXPANDED.md +522 -0
  253. package/skills-library/ecommerce/agentic-commerce-protocol.md +203 -0
  254. package/skills-library/ecommerce/cart-abandonment-recovery.md +236 -0
  255. package/skills-library/ecommerce/cart-architecture-patterns.md +300 -0
  256. package/skills-library/ecommerce/cart-item-count-indicator.md +264 -0
  257. package/skills-library/ecommerce/checkout-ux-conversion.md +227 -0
  258. package/skills-library/ecommerce/composable-commerce-selection.md +166 -0
  259. package/skills-library/ecommerce/ecommerce-analytics-patterns.md +167 -0
  260. package/skills-library/ecommerce/fraud-detection-patterns.md +179 -0
  261. package/skills-library/ecommerce/inventory-stock-management.md +270 -0
  262. package/skills-library/ecommerce/order-saga-state-machine.md +336 -0
  263. package/skills-library/ecommerce/payment-provider-abstraction.md +245 -0
  264. package/skills-library/ecommerce/pci-compliance-checklist.md +192 -0
  265. package/skills-library/ecommerce/refund-chargeback-handling.md +177 -0
  266. package/skills-library/ecommerce/shipping-carrier-integration.md +218 -0
  267. package/skills-library/ecommerce/webhook-idempotency-patterns.md +253 -0
  268. package/skills-library/excalidraw-diagrams/.github/workflows/ci.yml +558 -0
  269. package/skills-library/excalidraw-diagrams/.github/workflows/prompt-gallery.yml +448 -0
  270. package/skills-library/excalidraw-diagrams/.github/workflows/release.yml +42 -0
  271. package/skills-library/excalidraw-diagrams/.github/workflows/test-reusable-ci.yml +25 -0
  272. package/skills-library/excalidraw-diagrams/CLAUDE.md +57 -0
  273. package/skills-library/excalidraw-diagrams/LICENSE +21 -0
  274. package/skills-library/excalidraw-diagrams/README.md +178 -0
  275. package/skills-library/excalidraw-diagrams/SKILL.md +715 -0
  276. package/skills-library/form-solutions/BUTTON_TYPE_FORM_SUBMISSION.md +336 -0
  277. package/skills-library/form-solutions/FILLABLE_PDF_IMPLEMENTATION.md +226 -0
  278. package/skills-library/form-solutions/SURVEYJS_QUESTIONNAIRE_SYSTEM.md +367 -0
  279. package/skills-library/form-solutions/tiptap-minimal-setup.md +690 -0
  280. package/skills-library/frontend/scholarly-classification-bubble-map.md +149 -0
  281. package/skills-library/infrastructure/ci-cd-pipeline-builder.md +517 -0
  282. package/skills-library/infrastructure/observability-designer.md +264 -0
  283. package/skills-library/infrastructure/performance-profiler.md +621 -0
  284. package/skills-library/installer-wizard-patterns.md +249 -0
  285. package/skills-library/integrations/CLAUDE_CODE_TOKEN_ANALYTICS.md +160 -0
  286. package/skills-library/integrations/CONFIGURABLE_AI_PROVIDER_SELECTION.md +728 -0
  287. package/skills-library/integrations/SOCKET_IO_BROADCAST_ALL_VS_ROOM.md +141 -0
  288. package/skills-library/integrations/VIRTUAL_MEETINGS_IMPLEMENTATION.md +374 -0
  289. package/skills-library/integrations/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
  290. package/skills-library/integrations/YOUTUBE_API_SETUP.md +141 -0
  291. package/skills-library/integrations/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
  292. package/skills-library/integrations/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
  293. package/skills-library/integrations/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
  294. package/skills-library/integrations/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
  295. package/skills-library/integrations/ai-ml/GEMINI_AI_RAG_PIPELINE_COMPLETE_GUIDE.md +195 -0
  296. package/skills-library/integrations/ai-ml/GEMINI_IMAGE_GENERATION_SETUP.md +64 -0
  297. package/skills-library/integrations/cloudflare/cloudflare-turnstile-debugging.md +202 -0
  298. package/skills-library/integrations/cloudflare/cloudflare-turnstile-implementation.md +476 -0
  299. package/skills-library/integrations/cloudflare-turnstile-debugging.md +202 -0
  300. package/skills-library/integrations/cloudflare-turnstile-implementation.md +476 -0
  301. package/skills-library/integrations/ghost-creator-monetization-pattern.md +454 -0
  302. package/skills-library/integrations/headless-cms-architecture.md +484 -0
  303. package/skills-library/integrations/headless-cms-stack-selection.md +183 -0
  304. package/skills-library/integrations/payload-cms-patterns.md +674 -0
  305. package/skills-library/integrations/realtimestt-openwakeword-cuda-windows.md +229 -0
  306. package/skills-library/integrations/rss-podcast-integration.md +300 -0
  307. package/skills-library/integrations/wordpress/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
  308. package/skills-library/integrations/youtube/YOUTUBE_API_SETUP.md +141 -0
  309. package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
  310. package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
  311. package/skills-library/integrations/youtube/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
  312. package/skills-library/integrations/youtube/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
  313. package/skills-library/marketing/campaign-analytics.md +97 -0
  314. package/skills-library/marketing/content-creator.md +105 -0
  315. package/skills-library/marketing/marketing-strategy-pmm.md +94 -0
  316. package/skills-library/marketing/social-media-analyzer.md +81 -0
  317. package/skills-library/methodology/ADVANCED_ORCHESTRATION_PATTERNS.md +401 -0
  318. package/skills-library/methodology/AGENT_SELF_IMPROVEMENT_LOOP.md +179 -0
  319. package/skills-library/methodology/BREATH_BASED_PARALLEL_EXECUTION.md +1 -1
  320. package/skills-library/methodology/CLEANSING_CYCLE.md +358 -0
  321. package/skills-library/methodology/CONFIDENCE_ANNOTATION_PATTERN.md +143 -0
  322. package/skills-library/methodology/CRITICAL_PATTERNS_DOCUMENTATION_COMPLETE.md +204 -0
  323. package/skills-library/methodology/DELIVERABLES_SUMMARY.md +341 -0
  324. package/skills-library/methodology/DIFFICULTY_AWARE_AGENT_ROUTING.md +252 -0
  325. package/skills-library/methodology/EVOLUTIONARY_SKILL_SYNTHESIS.md +219 -0
  326. package/skills-library/methodology/GLOMERULUS_DECISION_GATE.md +223 -0
  327. package/skills-library/methodology/HIBERNATION_SYSTEM.md +231 -0
  328. package/skills-library/methodology/INSTRUMENTATION_OVER_RESTRICTION.md +192 -0
  329. package/skills-library/methodology/MASTER_COMPLETION_SUMMARY.md +444 -0
  330. package/skills-library/methodology/MASTER_SESSION_COMPLETION.md +743 -0
  331. package/skills-library/methodology/MERN_QUICK_REFERENCE.md +358 -0
  332. package/skills-library/methodology/ORGAN_AGENT_MAPPING.md +177 -0
  333. package/skills-library/methodology/PARALLEL_WAVE_BASED_REFACTORING.md +440 -0
  334. package/skills-library/methodology/QUICK_REFERENCE.md +358 -0
  335. package/skills-library/methodology/SDFT_ONPOLICY_SELF_DISTILLATION.md +186 -0
  336. package/skills-library/methodology/SELF_QUESTIONING_TASK_GENERATION.md +270 -0
  337. package/skills-library/methodology/SESSION_COMPLETION_SUMMARY.md +304 -0
  338. package/skills-library/methodology/SESSION_SUMMARY.md +432 -0
  339. package/skills-library/methodology/WARRIOR_WORKFLOW_DEBUGGING_PROTOCOL.md +252 -0
  340. package/skills-library/methodology/tech-debt-tracker.md +570 -0
  341. package/skills-library/parallel-debug/SKILL.md +60 -0
  342. package/skills-library/patterns-standards/API_PATTERN_FIX_SUMMARY.md +236 -0
  343. package/skills-library/patterns-standards/BATCH_OPERATIONS_WITH_PROGRESS_MODAL.md +362 -0
  344. package/skills-library/patterns-standards/CRITICAL_CODING_PATTERNS.md +639 -0
  345. package/skills-library/patterns-standards/DARK_MODE_MODAL_VISIBILITY.md +258 -0
  346. package/skills-library/patterns-standards/ERROR_RESILIENCE_IMPLEMENTATION.md +375 -0
  347. package/skills-library/patterns-standards/ES_MODULE_IMPORT_HOISTING_DOTENV.md +298 -0
  348. package/skills-library/patterns-standards/NESTED_BACKDROP_FILTER_CSS_ARTIFACT_FIX.md +76 -0
  349. package/skills-library/patterns-standards/ORDERED_DETECTOR_PIPELINE_GRACEFUL_FALLBACK.md +333 -0
  350. package/skills-library/patterns-standards/PHASE_IMPORT_ERROR_DEBUGGING.md +271 -0
  351. package/skills-library/patterns-standards/PYNPUT_GLOBAL_HOTKEY_VK_MATCHING.md +252 -0
  352. package/skills-library/patterns-standards/REACT_USEEFFECT_CASCADE_RESET_FIX.md +132 -0
  353. package/skills-library/patterns-standards/SUBMENU_HOVER_DROPDOWN_PATTERN.md +225 -0
  354. package/skills-library/patterns-standards/TAILWIND_TEXT_VISIBILITY_OVERRIDE.md +322 -0
  355. package/skills-library/patterns-standards/THEME_AWARE_CSS_VARIABLES_PATTERN.md +209 -0
  356. package/skills-library/patterns-standards/THEME_USER_OBJECT_PROPERTY_NAMING.md +194 -0
  357. package/skills-library/patterns-standards/TOOLTIP_BLOCKING_CLICKS_FIX.md +267 -0
  358. package/skills-library/patterns-standards/claude-code-plugin-structure.md +235 -0
  359. package/skills-library/patterns-standards/react-i18next-setup.md +429 -0
  360. package/skills-library/patterns-standards/thesys-c1-generative-ui-integration.md +967 -0
  361. package/skills-library/plugin-development/CLAUDE_CODE_COMMAND_REGISTRATION_SILENT_FAILURE.md +315 -0
  362. package/skills-library/plugin-development/plugin-command-namespace-vs-global.md +390 -0
  363. package/skills-library/plugin-development/plugin-doc-auto-generation.md +172 -0
  364. package/skills-library/security/GITHUB_REPO_SECURITY_AUDIT.md +115 -0
  365. package/skills-library/security/admin-deletion-safety.md +396 -0
  366. package/skills-library/security/application-vuln-patterns.md +477 -0
  367. package/skills-library/security/env-secrets-manager.md +686 -0
  368. package/skills-library/security/secure-ai-application-templates.md +347 -0
  369. package/skills-library/security/sql-injection-prevention-postgresjs.md +151 -0
  370. package/skills-library/supabase-connection-pooler-fix.md +102 -0
  371. package/skills-library/system-context/POWERSHELL_BASH_INTEROP.md +82 -0
  372. package/skills-library/system-context/SERVICE_LIFECYCLE_MANAGEMENT.md +119 -0
  373. package/skills-library/system-context/SKILL.md +40 -0
  374. package/skills-library/system-context/WINDOWS_DEV_ENVIRONMENT.md +73 -0
  375. package/skills-library/testing/E2E_PLAYWRIGHT_PATTERNS.md +99 -0
  376. package/skills-library/testing/INTEGRATION_TEST_STRATEGY.md +82 -0
  377. package/skills-library/testing/RED_GREEN_BUGFIX_GATE.md +203 -0
  378. package/skills-library/testing/TEST_DATA_MANAGEMENT.md +69 -0
  379. package/skills-library/testing/VITEST_UNIT_TEST_PATTERNS.md +75 -0
  380. package/skills-library/testing/playwright-api-security-tests.md +202 -0
  381. package/skills-library/toolbox/SKILL.md +84 -0
  382. package/skills-library/toolbox/code-graph-and-web-scraping-mcps.md +237 -0
  383. package/skills-library/ui-ux-pro-max/ACCESSIBILITY_ESSENTIALS.md +115 -0
  384. package/skills-library/ui-ux-pro-max/DESIGN_SYSTEM_SCAFFOLDING.md +133 -0
  385. package/skills-library/ui-ux-pro-max/RESPONSIVE_LAYOUT_PATTERNS.md +119 -0
  386. package/skills-library/ui-ux-pro-max/SKILL.md +386 -0
  387. package/skills-library/ui-ux-pro-max/data/charts.csv +26 -0
  388. package/skills-library/ui-ux-pro-max/data/colors.csv +97 -0
  389. package/skills-library/ui-ux-pro-max/data/icons.csv +101 -0
  390. package/skills-library/ui-ux-pro-max/data/landing.csv +31 -0
  391. package/skills-library/ui-ux-pro-max/data/products.csv +97 -0
  392. package/skills-library/ui-ux-pro-max/data/react-performance.csv +45 -0
  393. package/skills-library/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  394. package/skills-library/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  395. package/skills-library/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  396. package/skills-library/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  397. package/skills-library/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  398. package/skills-library/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  399. package/skills-library/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  400. package/skills-library/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  401. package/skills-library/ui-ux-pro-max/data/stacks/react.csv +54 -0
  402. package/skills-library/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  403. package/skills-library/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  404. package/skills-library/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  405. package/skills-library/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  406. package/skills-library/ui-ux-pro-max/data/styles.csv +68 -0
  407. package/skills-library/ui-ux-pro-max/data/typography.csv +58 -0
  408. package/skills-library/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  409. package/skills-library/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  410. package/skills-library/ui-ux-pro-max/data/web-interface.csv +31 -0
  411. package/skills-library/wordpress-style-theme-components.md +1526 -0
  412. package/templates/ASSUMPTIONS.md +1 -1
  413. package/templates/DECISION_LOG.md +0 -1
  414. package/templates/phase-prompt.md +1 -1
  415. package/templates/phoenix-comparison.md +6 -6
  416. package/templates/skill-api-integration.md +106 -0
  417. package/templates/skill-architecture-pattern.md +92 -0
  418. package/templates/skill-debug-pattern.md +98 -0
  419. package/templates/skill-devops-recipe.md +107 -0
  420. package/templates/skill-general.md +65 -0
  421. package/templates/skill-ui-component.md +113 -0
  422. package/tools/uat-runner.py +179 -0
  423. package/version.json +7 -3
  424. package/workflows/handoff-session.md +2 -2
  425. package/workflows/new-project.md +2 -2
  426. package/workflows/plan-phase.md +1 -1
  427. package/.claude-plugin/plugin.json +0 -64
  428. package/skills-library/_general/methodology/LIVE_BREADCRUMB_PROTOCOL.md +0 -242
  429. package/skills-library/_general/methodology/llm-judge-memory-crud.md +0 -241
  430. package/skills-library/methodology/REFLEXION_MEMORY_PATTERN.md +0 -183
  431. package/skills-library/methodology/RESEARCH_BACKED_WORKFLOW_UPGRADE.md +0 -263
  432. package/skills-library/methodology/SABBATH_REST_PATTERN.md +0 -267
  433. package/skills-library/methodology/STONE_AND_SCAFFOLD.md +0 -220
  434. package/skills-library/specialists/api-architecture/api-designer.md +0 -49
  435. package/skills-library/specialists/api-architecture/graphql-architect.md +0 -49
  436. package/skills-library/specialists/api-architecture/mcp-developer.md +0 -51
  437. package/skills-library/specialists/api-architecture/microservices-architect.md +0 -50
  438. package/skills-library/specialists/api-architecture/websocket-engineer.md +0 -48
  439. package/skills-library/specialists/backend/django-expert.md +0 -52
  440. package/skills-library/specialists/backend/fastapi-expert.md +0 -52
  441. package/skills-library/specialists/backend/laravel-specialist.md +0 -52
  442. package/skills-library/specialists/backend/nestjs-expert.md +0 -51
  443. package/skills-library/specialists/backend/rails-expert.md +0 -53
  444. package/skills-library/specialists/backend/spring-boot-engineer.md +0 -56
  445. package/skills-library/specialists/data-ml/fine-tuning-expert.md +0 -48
  446. package/skills-library/specialists/data-ml/ml-pipeline.md +0 -47
  447. package/skills-library/specialists/data-ml/pandas-pro.md +0 -47
  448. package/skills-library/specialists/data-ml/rag-architect.md +0 -51
  449. package/skills-library/specialists/data-ml/spark-engineer.md +0 -47
  450. package/skills-library/specialists/frontend/angular-architect.md +0 -52
  451. package/skills-library/specialists/frontend/flutter-expert.md +0 -51
  452. package/skills-library/specialists/frontend/nextjs-developer.md +0 -54
  453. package/skills-library/specialists/frontend/react-native-expert.md +0 -50
  454. package/skills-library/specialists/frontend/vue-expert.md +0 -51
  455. package/skills-library/specialists/infrastructure/chaos-engineer.md +0 -74
  456. package/skills-library/specialists/infrastructure/cloud-architect.md +0 -70
  457. package/skills-library/specialists/infrastructure/database-optimizer.md +0 -64
  458. package/skills-library/specialists/infrastructure/devops-engineer.md +0 -70
  459. package/skills-library/specialists/infrastructure/kubernetes-specialist.md +0 -52
  460. package/skills-library/specialists/infrastructure/monitoring-expert.md +0 -70
  461. package/skills-library/specialists/infrastructure/sre-engineer.md +0 -70
  462. package/skills-library/specialists/infrastructure/terraform-engineer.md +0 -51
  463. package/skills-library/specialists/languages/cpp-pro.md +0 -74
  464. package/skills-library/specialists/languages/csharp-developer.md +0 -69
  465. package/skills-library/specialists/languages/dotnet-core-expert.md +0 -54
  466. package/skills-library/specialists/languages/golang-pro.md +0 -51
  467. package/skills-library/specialists/languages/java-architect.md +0 -49
  468. package/skills-library/specialists/languages/javascript-pro.md +0 -68
  469. package/skills-library/specialists/languages/kotlin-specialist.md +0 -68
  470. package/skills-library/specialists/languages/php-pro.md +0 -49
  471. package/skills-library/specialists/languages/python-pro.md +0 -52
  472. package/skills-library/specialists/languages/react-expert.md +0 -51
  473. package/skills-library/specialists/languages/rust-engineer.md +0 -50
  474. package/skills-library/specialists/languages/sql-pro.md +0 -56
  475. package/skills-library/specialists/languages/swift-expert.md +0 -69
  476. package/skills-library/specialists/languages/typescript-pro.md +0 -51
  477. package/skills-library/specialists/platform/atlassian-mcp.md +0 -52
  478. package/skills-library/specialists/platform/embedded-systems.md +0 -53
  479. package/skills-library/specialists/platform/game-developer.md +0 -53
  480. package/skills-library/specialists/platform/salesforce-developer.md +0 -53
  481. package/skills-library/specialists/platform/shopify-expert.md +0 -49
  482. package/skills-library/specialists/platform/wordpress-pro.md +0 -49
  483. package/skills-library/specialists/quality/code-documenter.md +0 -51
  484. package/skills-library/specialists/quality/code-reviewer.md +0 -67
  485. package/skills-library/specialists/quality/debugging-wizard.md +0 -51
  486. package/skills-library/specialists/quality/fullstack-guardian.md +0 -51
  487. package/skills-library/specialists/quality/legacy-modernizer.md +0 -50
  488. package/skills-library/specialists/quality/playwright-expert.md +0 -65
  489. package/skills-library/specialists/quality/spec-miner.md +0 -56
  490. package/skills-library/specialists/quality/test-master.md +0 -65
  491. package/skills-library/specialists/security/secure-code-guardian.md +0 -55
  492. package/skills-library/specialists/security/security-reviewer.md +0 -53
  493. package/skills-library/specialists/workflow/architecture-designer.md +0 -53
  494. package/skills-library/specialists/workflow/cli-developer.md +0 -70
  495. package/skills-library/specialists/workflow/feature-forge.md +0 -65
  496. package/skills-library/specialists/workflow/prompt-engineer.md +0 -54
  497. package/skills-library/specialists/workflow/the-fool.md +0 -62
  498. /package/skills-library/{performance → _general/performance}/cache-augmented-generation.md +0 -0
  499. /package/skills-library/{debugging → parallel-debug}/FAILURE_TAXONOMY_CLASSIFICATION.md +0 -0
  500. /package/skills-library/{debugging → parallel-debug}/THREE_AGENT_HYPOTHESIS_DEBUGGING.md +0 -0
@@ -0,0 +1,1613 @@
1
+ # Budget App: Unique Features, AI Strategy & Plaid Security Guide
2
+
3
+ ## Table of Contents
4
+
5
+ 1. [AI Providers with Edge Functions Support](#ai-providers-with-edge-functions-support)
6
+ 2. [Unique Features Competitors Don't Have](#unique-features-competitors-dont-have)
7
+ 3. [Plaid Security Documentation Requirements](#plaid-security-documentation-requirements)
8
+ 4. [Development Roadmap Before Beta](#development-roadmap-before-beta)
9
+ 5. [Quick Implementation Guides](#quick-implementation-guides)
10
+
11
+ ---
12
+
13
+ ## AI Providers with Edge Functions Support
14
+
15
+ ### Why Edge Functions Matter for BYOK
16
+
17
+ **Client-Side API Calls (Wasteful):**
18
+ ```typescript
19
+ // ❌ Every request goes through full round-trip
20
+ User → OpenAI API → Response
21
+ // Cost: Full API pricing
22
+ // Latency: High (direct to OpenAI servers)
23
+ // Caching: None
24
+ ```
25
+
26
+ **Edge Functions (Smart):**
27
+ ```typescript
28
+ // ✅ Requests can be cached, optimized, and protected
29
+ User → Your Edge Function → OpenAI API → Response
30
+ // Cost: Reduced (caching, prompt optimization)
31
+ // Latency: Lower (edge locations near users)
32
+ // Security: Rate limiting, abuse prevention
33
+ ```
34
+
35
+ ### AI Providers Comparison for Edge Functions
36
+
37
+ | Provider | Edge Function Support | Best For | Pricing | Recommendation |
38
+ |----------|---------------------|----------|---------|----------------|
39
+ | **OpenAI** | ✅ Excellent | General chat, reasoning | $0.15-0.60/1M tokens | ⭐ BEST - Most versatile |
40
+ | **Anthropic (Claude)** | ✅ Excellent | Long docs, analysis | $3-15/1M tokens | ⭐ BEST for forms |
41
+ | **Google Gemini** | ✅ Good | Multimodal, free tier | $0.075-3.50/1M tokens | 💰 CHEAPEST |
42
+ | **Groq** | ✅ Excellent | Speed (fast inference) | $0.27-0.79/1M tokens | ⚡ FASTEST |
43
+ | **Together AI** | ✅ Good | Open models | $0.18-0.90/1M tokens | 🔓 Open source |
44
+
45
+ ### Recommended Multi-Provider Setup
46
+
47
+ **Strategy: Support all major providers, let users choose**
48
+
49
+ #### Implementation with Supabase Edge Functions
50
+
51
+ **File: `supabase/functions/ai-chat/index.ts`**
52
+
53
+ ```typescript
54
+ import { serve } from 'https://deno.land/std@0.168.0/http/server.ts'
55
+ import { createClient } from 'https://esm.sh/@supabase/supabase-js@2'
56
+
57
+ serve(async (req) => {
58
+ const supabase = createClient(
59
+ Deno.env.get('SUPABASE_URL') ?? '',
60
+ Deno.env.get('SUPABASE_ANON_KEY') ?? '',
61
+ { global: { headers: { Authorization: req.headers.get('Authorization')! } } }
62
+ )
63
+
64
+ // Verify authentication
65
+ const { data: { user }, error: authError } = await supabase.auth.getUser()
66
+ if (authError || !user) {
67
+ return new Response('Unauthorized', { status: 401 })
68
+ }
69
+
70
+ // Get user's AI settings
71
+ const { data: settings } = await supabase
72
+ .from('user_settings')
73
+ .select('ai_provider, api_key, preferred_model')
74
+ .eq('user_id', user.id)
75
+ .single()
76
+
77
+ if (!settings?.api_key) {
78
+ return new Response(JSON.stringify({
79
+ error: 'No API key configured. Please add your API key in Settings.'
80
+ }), { status: 400 })
81
+ }
82
+
83
+ const { messages, max_tokens = 1000 } = await req.json()
84
+
85
+ try {
86
+ let response
87
+
88
+ switch (settings.ai_provider) {
89
+ case 'openai':
90
+ response = await callOpenAI(settings.api_key, settings.preferred_model, messages, max_tokens)
91
+ break
92
+ case 'anthropic':
93
+ response = await callAnthropic(settings.api_key, settings.preferred_model, messages, max_tokens)
94
+ break
95
+ case 'gemini':
96
+ response = await callGemini(settings.api_key, settings.preferred_model, messages, max_tokens)
97
+ break
98
+ default:
99
+ throw new Error('Unsupported AI provider')
100
+ }
101
+
102
+ // Log usage for user's reference
103
+ await supabase.from('ai_usage_logs').insert({
104
+ user_id: user.id,
105
+ provider: settings.ai_provider,
106
+ model: settings.preferred_model,
107
+ input_tokens: response.usage.prompt_tokens,
108
+ output_tokens: response.usage.completion_tokens,
109
+ estimated_cost: calculateCost(settings.ai_provider, response.usage)
110
+ })
111
+
112
+ return new Response(JSON.stringify(response), {
113
+ headers: { 'Content-Type': 'application/json' }
114
+ })
115
+ } catch (error) {
116
+ return new Response(JSON.stringify({
117
+ error: error.message
118
+ }), { status: 500 })
119
+ }
120
+ })
121
+
122
+ // OpenAI API call
123
+ async function callOpenAI(apiKey: string, model: string, messages: any[], max_tokens: number) {
124
+ const response = await fetch('https://api.openai.com/v1/chat/completions', {
125
+ method: 'POST',
126
+ headers: {
127
+ 'Content-Type': 'application/json',
128
+ 'Authorization': `Bearer ${apiKey}`
129
+ },
130
+ body: JSON.stringify({
131
+ model: model || 'gpt-4o-mini',
132
+ messages,
133
+ max_tokens
134
+ })
135
+ })
136
+
137
+ if (!response.ok) {
138
+ const error = await response.json()
139
+ throw new Error(error.error?.message || 'OpenAI API error')
140
+ }
141
+
142
+ return await response.json()
143
+ }
144
+
145
+ // Anthropic API call
146
+ async function callAnthropic(apiKey: string, model: string, messages: any[], max_tokens: number) {
147
+ // Convert OpenAI format to Anthropic format
148
+ const system = messages.find(m => m.role === 'system')?.content || ''
149
+ const anthropicMessages = messages
150
+ .filter(m => m.role !== 'system')
151
+ .map(m => ({ role: m.role, content: m.content }))
152
+
153
+ const response = await fetch('https://api.anthropic.com/v1/messages', {
154
+ method: 'POST',
155
+ headers: {
156
+ 'Content-Type': 'application/json',
157
+ 'x-api-key': apiKey,
158
+ 'anthropic-version': '2023-06-01'
159
+ },
160
+ body: JSON.stringify({
161
+ model: model || 'claude-3-5-sonnet-20241022',
162
+ system,
163
+ messages: anthropicMessages,
164
+ max_tokens
165
+ })
166
+ })
167
+
168
+ if (!response.ok) {
169
+ const error = await response.json()
170
+ throw new Error(error.error?.message || 'Anthropic API error')
171
+ }
172
+
173
+ const data = await response.json()
174
+
175
+ // Convert back to OpenAI format for consistency
176
+ return {
177
+ choices: [{
178
+ message: {
179
+ role: 'assistant',
180
+ content: data.content[0].text
181
+ }
182
+ }],
183
+ usage: {
184
+ prompt_tokens: data.usage.input_tokens,
185
+ completion_tokens: data.usage.output_tokens
186
+ }
187
+ }
188
+ }
189
+
190
+ // Gemini API call
191
+ async function callGemini(apiKey: string, model: string, messages: any[], max_tokens: number) {
192
+ // Convert to Gemini format
193
+ const contents = messages.map(m => ({
194
+ role: m.role === 'assistant' ? 'model' : 'user',
195
+ parts: [{ text: m.content }]
196
+ }))
197
+
198
+ const response = await fetch(
199
+ `https://generativelanguage.googleapis.com/v1beta/models/${model || 'gemini-1.5-flash'}:generateContent?key=${apiKey}`,
200
+ {
201
+ method: 'POST',
202
+ headers: { 'Content-Type': 'application/json' },
203
+ body: JSON.stringify({
204
+ contents,
205
+ generationConfig: {
206
+ maxOutputTokens: max_tokens
207
+ }
208
+ })
209
+ }
210
+ )
211
+
212
+ if (!response.ok) {
213
+ const error = await response.json()
214
+ throw new Error(error.error?.message || 'Gemini API error')
215
+ }
216
+
217
+ const data = await response.json()
218
+
219
+ // Convert back to OpenAI format
220
+ return {
221
+ choices: [{
222
+ message: {
223
+ role: 'assistant',
224
+ content: data.candidates[0].content.parts[0].text
225
+ }
226
+ }],
227
+ usage: {
228
+ prompt_tokens: data.usageMetadata.promptTokenCount,
229
+ completion_tokens: data.usageMetadata.candidatesTokenCount
230
+ }
231
+ }
232
+ }
233
+
234
+ function calculateCost(provider: string, usage: any) {
235
+ const pricing = {
236
+ openai: { input: 0.15, output: 0.60 }, // per 1M tokens (gpt-4o-mini)
237
+ anthropic: { input: 3.00, output: 15.00 }, // per 1M tokens (claude-3.5-sonnet)
238
+ gemini: { input: 0.075, output: 0.30 } // per 1M tokens (gemini-1.5-flash)
239
+ }
240
+
241
+ const prices = pricing[provider] || pricing.openai
242
+ return (
243
+ (usage.prompt_tokens / 1000000) * prices.input +
244
+ (usage.completion_tokens / 1000000) * prices.output
245
+ )
246
+ }
247
+ ```
248
+
249
+ **Deploy:**
250
+
251
+ ```bash
252
+ supabase functions deploy ai-chat
253
+ ```
254
+
255
+ ### Benefits of This Architecture
256
+
257
+ ✅ **User Savings:**
258
+ - Prompt optimization reduces token usage
259
+ - Caching reduces duplicate requests
260
+ - Error handling prevents wasted calls
261
+
262
+ ✅ **Rate Limiting:**
263
+ - Prevent abuse (user accidentally writes infinite loop)
264
+ - Daily/monthly usage caps
265
+ - Cost alerts
266
+
267
+ ✅ **Analytics:**
268
+ - Track usage per user
269
+ - Show estimated costs
270
+ - Help users optimize spending
271
+
272
+ ✅ **Multi-Provider Support:**
273
+ - Users switch providers easily
274
+ - Price comparison built-in
275
+ - Fallback if one provider down
276
+
277
+ ### Frontend Settings UI
278
+
279
+ ```typescript
280
+ // src/components/Settings/AIProviderSettings.tsx
281
+ export function AIProviderSettings() {
282
+ const [provider, setProvider] = useState('openai')
283
+ const [apiKey, setApiKey] = useState('')
284
+ const [model, setModel] = useState('gpt-4o-mini')
285
+
286
+ const providers = {
287
+ openai: {
288
+ name: 'OpenAI',
289
+ models: [
290
+ { id: 'gpt-4o-mini', name: 'GPT-4o Mini', cost: '$0.15/1M tokens' },
291
+ { id: 'gpt-4o', name: 'GPT-4o', cost: '$2.50/1M tokens' }
292
+ ],
293
+ keyFormat: 'sk-proj-...',
294
+ getKeyUrl: 'https://platform.openai.com/api-keys'
295
+ },
296
+ anthropic: {
297
+ name: 'Anthropic Claude',
298
+ models: [
299
+ { id: 'claude-3-5-sonnet-20241022', name: 'Claude 3.5 Sonnet', cost: '$3.00/1M tokens' },
300
+ { id: 'claude-3-5-haiku-20241022', name: 'Claude 3.5 Haiku', cost: '$0.80/1M tokens' }
301
+ ],
302
+ keyFormat: 'sk-ant-...',
303
+ getKeyUrl: 'https://console.anthropic.com/settings/keys'
304
+ },
305
+ gemini: {
306
+ name: 'Google Gemini',
307
+ models: [
308
+ { id: 'gemini-1.5-flash', name: 'Gemini 1.5 Flash', cost: '$0.075/1M tokens' },
309
+ { id: 'gemini-1.5-pro', name: 'Gemini 1.5 Pro', cost: '$1.25/1M tokens' }
310
+ ],
311
+ keyFormat: 'AIza...',
312
+ getKeyUrl: 'https://aistudio.google.com/apikey'
313
+ }
314
+ }
315
+
316
+ return (
317
+ <div className="ai-settings">
318
+ <h2>AI Provider Settings</h2>
319
+
320
+ <div className="provider-select">
321
+ <label>Choose AI Provider:</label>
322
+ <select value={provider} onChange={(e) => setProvider(e.target.value)}>
323
+ {Object.entries(providers).map(([key, { name }]) => (
324
+ <option key={key} value={key}>{name}</option>
325
+ ))}
326
+ </select>
327
+ </div>
328
+
329
+ <div className="model-select">
330
+ <label>Model:</label>
331
+ <select value={model} onChange={(e) => setModel(e.target.value)}>
332
+ {providers[provider].models.map(m => (
333
+ <option key={m.id} value={m.id}>
334
+ {m.name} - {m.cost}
335
+ </option>
336
+ ))}
337
+ </select>
338
+ </div>
339
+
340
+ <div className="api-key-input">
341
+ <label>API Key:</label>
342
+ <input
343
+ type="password"
344
+ value={apiKey}
345
+ onChange={(e) => setApiKey(e.target.value)}
346
+ placeholder={providers[provider].keyFormat}
347
+ />
348
+ <a href={providers[provider].getKeyUrl} target="_blank">
349
+ Get API Key →
350
+ </a>
351
+ </div>
352
+
353
+ <div className="usage-stats">
354
+ <h3>Your Usage This Month</h3>
355
+ <p>Total calls: 1,234</p>
356
+ <p>Estimated cost: $2.45</p>
357
+ </div>
358
+
359
+ <button onClick={saveSettings}>Save Settings</button>
360
+ </div>
361
+ )
362
+ }
363
+ ```
364
+
365
+ ---
366
+
367
+ ## Unique Features Competitors Don't Have
368
+
369
+ ### ⭐ Category 1: GTA Tax Integration (YOUR CURRENT ADVANTAGE)
370
+
371
+ **You Already Have:**
372
+ - ✅ Form 433-A/B (Collection Information Statement)
373
+ - ✅ Form 656 (Offer in Compromise)
374
+ - ✅ Form 9465 (Installment Agreement)
375
+
376
+ **Expand With:**
377
+
378
+ #### 1.1 Real-Time Tax Debt Calculator
379
+
380
+ ```typescript
381
+ // Calculate current GTA debt with penalties & interest
382
+ interface TaxDebtCalculation {
383
+ originalDebt: number
384
+ accruedInterest: number // GTA rate: 8% as of 2025
385
+ penaltiesOwed: number // Failure-to-pay: 0.5%/month
386
+ totalDebt: number
387
+ projectedDebtIn6Months: number
388
+ projectedDebtIn12Months: number
389
+ }
390
+
391
+ // Show visual timeline
392
+ "If you don't act:
393
+ Today: $10,000
394
+ 6 months: $10,650
395
+ 12 months: $11,300
396
+ 24 months: $12,600"
397
+ ```
398
+
399
+ **Unique Value:** No competitor shows GTA debt projection over time
400
+
401
+ #### 1.2 GTA Form Auto-Fill from Budget Data
402
+
403
+ ```typescript
404
+ // User enters expenses in budget → Auto-populates Form 433-A
405
+ monthlyExpenses = {
406
+ housing: 1500,
407
+ utilities: 200,
408
+ food: 600,
409
+ transportation: 400
410
+ }
411
+
412
+ // Button: "Export to Form 433-A" → Pre-filled PDF
413
+ ```
414
+
415
+ **Unique Value:** Saves 2-3 hours of data entry
416
+
417
+ #### 1.3 OIC Approval Predictor (AI-Powered)
418
+
419
+ ```typescript
420
+ // AI analyzes user's financials → Predicts approval odds
421
+ analyzeOICApproval({
422
+ income: 3000,
423
+ expenses: 3500,
424
+ assets: 50000,
425
+ debt: 15000
426
+ })
427
+
428
+ // Returns:
429
+ {
430
+ approvalProbability: 85%,
431
+ recommendedOffer: 12000,
432
+ reasoning: "Strong case due to monthly insolvency (-$500)"
433
+ improvements: [
434
+ "Add HELOC denial letters (+10% approval)",
435
+ "Document wife's recent job loss (+5% approval)"
436
+ ]
437
+ }
438
+ ```
439
+
440
+ **Unique Value:** No other budget app has GTA negotiation intelligence
441
+
442
+ ### ⭐ Category 2: AI-Powered Debt Coaching (MASSIVE OPPORTUNITY)
443
+
444
+ #### 2.1 Personalized Debt Payoff Strategy (AI Snowball vs Avalanche)
445
+
446
+ **Feature:** AI analyzes your debts and recommends optimal strategy
447
+
448
+ ```typescript
449
+ interface DebtPayoffAnalysis {
450
+ currentDebts: Debt[]
451
+ strategies: {
452
+ avalanche: {
453
+ totalInterest: 5200,
454
+ timeToPayoff: "28 months",
455
+ monthlyPayment: 850
456
+ },
457
+ snowball: {
458
+ totalInterest: 6100,
459
+ timeToPayoff: "26 months", // Faster but costs more
460
+ monthlyPayment: 850
461
+ },
462
+ aiOptimized: {
463
+ totalInterest: 5400,
464
+ timeToPayoff: "24 months", // Best of both!
465
+ monthlyPayment: 900,
466
+ reasoning: "Pay minimums except $600 to Credit Card #2 (0% APR ends in 3 months)"
467
+ }
468
+ }
469
+ }
470
+ ```
471
+
472
+ **AI Prompt:**
473
+ ```
474
+ Analyze these debts and recommend optimal payoff strategy:
475
+ 1. Credit Card 1: $8,000 @ 24% APR, $200 minimum
476
+ 2. Credit Card 2: $12,000 @ 0% APR (ends May 2026), $300 minimum
477
+ 3. Personal Loan: $15,000 @ 8% APR, $350 minimum
478
+ 4. GTA Debt: $10,000 @ 8% GTA rate, $150 installment
479
+
480
+ User has $900/month to put toward debt. Recommend:
481
+ 1. Which debt to prioritize each month
482
+ 2. Total interest saved vs avalanche/snowball
483
+ 3. Payoff timeline
484
+ 4. When to rebalance strategy
485
+
486
+ Consider:
487
+ - 0% APR promotional periods
488
+ - GTA penalty accrual rates
489
+ - Psychological wins (snowball effect)
490
+ ```
491
+
492
+ **Unique Value:** Dynamic strategy that adapts to promotional periods
493
+
494
+ #### 2.2 "What If" Debt Simulator
495
+
496
+ **Feature:** Interactive debt scenarios
497
+
498
+ ```typescript
499
+ // User adjusts sliders, AI shows impact
500
+ scenarios = [
501
+ {
502
+ scenario: "What if I get $5,000 tax refund?",
503
+ recommendation: "Put $4,000 to Credit Card #1 (highest APR), save $850 in interest",
504
+ newPayoffDate: "22 months (save 2 months)"
505
+ },
506
+ {
507
+ scenario: "What if I pick up side gig for $500/month?",
508
+ recommendation: "Pay off all debt 8 months faster, save $1,200 in interest",
509
+ motivation: "That's $14,400/year income → $1,200 savings = 8% return!"
510
+ }
511
+ ]
512
+ ```
513
+
514
+ #### 2.3 AI Financial Coach Chat (Contextual)
515
+
516
+ **Feature:** AI that knows your full financial situation
517
+
518
+ ```typescript
519
+ // User: "Should I pay off my car loan early?"
520
+ // AI has access to:
521
+ {
522
+ carLoan: { balance: 15000, rate: 4.5% },
523
+ creditCardDebt: { balance: 8000, rate: 22% },
524
+ emergencyFund: 2000,
525
+ monthlyIncome: 4000
526
+ }
527
+
528
+ // AI Response:
529
+ "No, prioritize your credit card debt first. Here's why:
530
+ 1. Your credit card rate (22%) is 5x higher than car loan (4.5%)
531
+ 2. Every $100 to credit card saves $22/year vs $4.50 to car
532
+ 3. First build emergency fund to $6,000 (3 months expenses)
533
+ 4. THEN tackle car loan
534
+
535
+ Your optimal order:
536
+ 1. Emergency fund to $6,000 (2 months)
537
+ 2. Credit card debt payoff (12 months)
538
+ 3. Car loan early payoff (18 months)
539
+
540
+ You'll save $3,200 in interest vs paying car first!"
541
+ ```
542
+
543
+ **Unique Value:** Contextual advice based on user's ACTUAL finances
544
+
545
+ ### ⭐ Category 3: Gamification & Motivation
546
+
547
+ #### 3.1 Debt Payoff Milestones with Celebrations
548
+
549
+ **Feature:** Visual progress + dopamine hits
550
+
551
+ ```typescript
552
+ milestones = [
553
+ {
554
+ target: "Pay off first $1,000",
555
+ reward: "🎉 First Victory! Unlock: Debt-Free Badge",
556
+ visualEffect: "Confetti animation"
557
+ },
558
+ {
559
+ target: "Reach 25% debt-free",
560
+ reward: "🏆 Quarter Milestone! Unlock: Budget Ninja Title",
561
+ unlocks: "Advanced debt calculator"
562
+ },
563
+ {
564
+ target: "Pay off entire debt",
565
+ reward: "🎊 DEBT FREE! Unlock: Financial Freedom Certificate (printable PDF)",
566
+ celebration: "Video message from Dave Ramsey (if partnership) or AI-generated celebration"
567
+ }
568
+ ]
569
+ ```
570
+
571
+ **Biblical tie-in for church users:**
572
+ - "The borrower is slave to the lender" (Proverbs 22:7)
573
+ - Milestone: "Breaking the chains! You've paid off $X in debt!"
574
+
575
+ #### 3.2 Debt Payoff Leaderboard (Anonymous/Opt-in)
576
+
577
+ **Feature:** Community motivation
578
+
579
+ ```
580
+ This Month's Debt Warriors:
581
+ 1. User#1234 - Paid off $2,400 💪
582
+ 2. User#5678 - Paid off $1,800 🔥
583
+ 3. You - Paid off $1,200 ⭐
584
+
585
+ Church Community Total: $45,000 paid off this month!
586
+ ```
587
+
588
+ **Privacy:** Anonymous user IDs, opt-in only
589
+
590
+ #### 3.3 Visual Debt Thermometer
591
+
592
+ **Feature:** Physical progress indicator
593
+
594
+ ```
595
+ [==================--] 90% Debt-Free!
596
+
597
+ $45,000 paid ████████████████████░░ $50,000 original debt
598
+ Only $5,000 to go!
599
+
600
+ At current pace: Debt-free by March 2026 (4 months!)
601
+ ```
602
+
603
+ ### ⭐ Category 4: Smart Automation Nobody Has
604
+
605
+ #### 4.1 Bill Negotiation Assistant (AI-Powered)
606
+
607
+ **Feature:** AI generates negotiation scripts + tracks outcomes
608
+
609
+ ```typescript
610
+ // User selects: "Negotiate with Comcast (internet $89/mo)"
611
+ aiGenerates({
612
+ script: `
613
+ Hi, I've been a loyal customer for 3 years paying $89/month for internet.
614
+ I see new customers get the same speed for $49/month.
615
+ Can you match that rate or I'll need to switch to [competitor]?
616
+ `,
617
+ alternatives: [
618
+ "AT&T Fiber: $55/month for 500 Mbps",
619
+ "T-Mobile Home Internet: $50/month"
620
+ ],
621
+ expectedSavings: "$40/month = $480/year",
622
+ successRate: "73% of users report savings with this script"
623
+ })
624
+
625
+ // After negotiation:
626
+ track({
627
+ outcome: "Success - reduced to $59/month",
628
+ monthlySavings: 30,
629
+ annualSavings: 360
630
+ })
631
+
632
+ // Apply to budget automatically
633
+ ```
634
+
635
+ **Unique Value:** Active cost reduction, not just tracking
636
+
637
+ #### 4.2 Subscription Tracker with Cancellation Reminders
638
+
639
+ **Feature:** Detect subscriptions, remind before renewals
640
+
641
+ ```typescript
642
+ // Plaid detects recurring charges
643
+ subscriptions = [
644
+ {
645
+ name: "Netflix",
646
+ amount: 15.99,
647
+ nextBilling: "2026-02-01",
648
+ usageData: "Last used: 45 days ago", // From AI analysis of patterns
649
+ recommendation: "Low usage - Consider canceling? Save $192/year"
650
+ },
651
+ {
652
+ name: "Planet Fitness",
653
+ amount: 24.99,
654
+ nextBilling: "2026-02-05",
655
+ usageData: "No charges detected (not swiping card)",
656
+ alert: "⚠️ You haven't visited in 60 days. Cancel to save $300/year?"
657
+ }
658
+ ]
659
+
660
+ // 7 days before renewal: Send email/notification
661
+ "Your Planet Fitness renewal is in 7 days ($24.99). You haven't used it in 60 days. Cancel?"
662
+ [Cancel Now] [Keep Subscription]
663
+ ```
664
+
665
+ #### 4.3 Smart Savings Goals with Auto-Transfer
666
+
667
+ **Feature:** AI calculates optimal savings timing
668
+
669
+ ```typescript
670
+ // User goal: "Save $2,000 for emergency fund by June 2026"
671
+ aiCalculates({
672
+ monthsRemaining: 5,
673
+ requiredMonthlySaving: 400,
674
+ currentAverageSavings: 250,
675
+
676
+ recommendation: {
677
+ strategy: "You need $150 more per month. Here's how:",
678
+ tactics: [
679
+ "Cancel unused subscriptions: +$65/month",
680
+ "Reduce dining out (cut 2 meals): +$60/month",
681
+ "Side gig (5 hours/month at $20/hr): +$100/month"
682
+ ],
683
+ autoTransferSchedule: [
684
+ { date: "2026-02-15", amount: 200, reason: "After paycheck 1" },
685
+ { date: "2026-02-28", amount: 200, reason: "After paycheck 2" }
686
+ ]
687
+ }
688
+ })
689
+ ```
690
+
691
+ ### ⭐ Category 5: Church/Ministry Features (YOUR NICHE!)
692
+
693
+ #### 5.1 Financial Peace University (FPU) Integration
694
+
695
+ **Feature:** Built-in Dave Ramsey principles + tracking
696
+
697
+ ```typescript
698
+ fpuLessons = [
699
+ {
700
+ lesson: 1,
701
+ title: "The Total Money Makeover",
702
+ completed: true,
703
+ actionItems: [
704
+ "Create $1,000 emergency fund" // Track in app
705
+ ]
706
+ },
707
+ {
708
+ lesson: 2,
709
+ title: "Debt Snowball",
710
+ inProgress: true,
711
+ tracking: {
712
+ smallestDebt: { paid: 800, remaining: 200 },
713
+ quickWin: "Only $200 to first debt-free win!"
714
+ }
715
+ }
716
+ ]
717
+ ```
718
+
719
+ **Partnership idea:** Reach out to Ramsey Solutions for API/integration
720
+
721
+ #### 5.2 Tithing Tracker (10% Giving Goal)
722
+
723
+ **Feature:** Track giving vs income
724
+
725
+ ```typescript
726
+ givingDashboard = {
727
+ monthlyIncome: 4000,
728
+ tithingGoal: 400, // 10%
729
+ actualGiving: 350,
730
+ status: "87.5% of goal",
731
+ encouragement: "You're almost there! $50 more to reach your giving goal.",
732
+
733
+ yearToDate: {
734
+ income: 48000,
735
+ giving: 4200, // 8.75%
736
+ onTrack: false,
737
+ shortfall: 600 // Need $600 more to hit 10% YTD
738
+ },
739
+
740
+ biblicalEncouragement: "Each of you should give what you have decided in your heart to give, not reluctantly or under compulsion, for God loves a cheerful giver. - 2 Corinthians 9:7"
741
+ }
742
+ ```
743
+
744
+ #### 5.3 Ministry Expense Tracker (For Church Staff)
745
+
746
+ **Feature:** Separate personal vs ministry expenses
747
+
748
+ ```typescript
749
+ categories = {
750
+ personal: {
751
+ food: 600,
752
+ housing: 1500
753
+ },
754
+ ministry: {
755
+ bibles: 50,
756
+ outreach: 100,
757
+ mileage: 75 // Auto-calculate at GTA rate
758
+ }
759
+ }
760
+
761
+ // Generate forms
762
+ reports = {
763
+ accountabilityReport: "Monthly ministry spending report for church board",
764
+ taxDeduction: "Schedule A deductions for ministry expenses",
765
+ reimbursementRequest: "Submit to church for reimbursement"
766
+ }
767
+ ```
768
+
769
+ ### ⭐ Category 6: Advanced Financial Wellness
770
+
771
+ #### 6.1 Cash Flow Forecasting (6-Month Projection)
772
+
773
+ **Feature:** Predict future financial position
774
+
775
+ ```typescript
776
+ forecast = {
777
+ currentMonth: {
778
+ income: 4000,
779
+ expenses: 3500,
780
+ surplus: 500
781
+ },
782
+ nextMonth: {
783
+ income: 4000,
784
+ expenses: 3900, // Higher (car insurance due)
785
+ surplus: 100,
786
+ alert: "⚠️ Low surplus next month - car insurance due ($400)"
787
+ },
788
+ sixMonthOutlook: {
789
+ totalSurplus: 2400,
790
+ majorExpenses: [
791
+ { date: "2026-03-15", item: "Car insurance", amount: 400 },
792
+ { date: "2026-06-01", item: "Property tax", amount: 1200 }
793
+ ],
794
+ recommendation: "Set aside $267/month for upcoming large expenses"
795
+ }
796
+ }
797
+ ```
798
+
799
+ #### 6.2 Net Worth Tracker (Real Estate + Investments)
800
+
801
+ **Feature:** Comprehensive wealth tracking
802
+
803
+ ```typescript
804
+ netWorth = {
805
+ assets: {
806
+ checking: 5000, // From Plaid
807
+ savings: 10000, // From Plaid
808
+ home: 293000, // Zillow API integration
809
+ car: 15000, // User-entered, depreciate 15%/year
810
+ retirement401k: 50000 // From Plaid
811
+ },
812
+ liabilities: {
813
+ creditCards: 8000,
814
+ carLoan: 12000,
815
+ irsDebt: 10000
816
+ },
817
+ netWorth: 343000,
818
+
819
+ trend: {
820
+ lastMonth: 340000,
821
+ change: +3000,
822
+ percentChange: +0.88%
823
+ },
824
+
825
+ chart: "Line graph showing net worth over time"
826
+ }
827
+ ```
828
+
829
+ **Zillow Integration:**
830
+ ```typescript
831
+ // Update home value monthly
832
+ const response = await fetch(`https://zillow-api.com/properties/${zpid}`)
833
+ const homeValue = response.data.zestimate
834
+ ```
835
+
836
+ #### 6.3 Credit Score Impact Simulator
837
+
838
+ **Feature:** Show how financial decisions affect credit
839
+
840
+ ```typescript
841
+ // User: "What if I pay off Credit Card #1?"
842
+ simulator = {
843
+ currentScore: 680,
844
+ projectedScore: 715,
845
+ increase: +35,
846
+ breakdown: {
847
+ creditUtilization: "Drops from 75% to 45% (+20 points)",
848
+ paymentHistory: "On-time payments continue (+5 points)",
849
+ accountAge: "No change (0 points)",
850
+ creditMix: "No change (0 points)",
851
+ recentInquiries: "No change (0 points)"
852
+ },
853
+ timeline: "Score increase visible in 30-45 days after payment posts"
854
+ }
855
+ ```
856
+
857
+ ---
858
+
859
+ ## Plaid Security Documentation Requirements
860
+
861
+ ### What Plaid Requires for Production Access
862
+
863
+ Based on research and Plaid's Developer Policy, you need:
864
+
865
+ #### 1. Security Questionnaire
866
+
867
+ **Location:** Plaid Dashboard → Production Access → Security Questionnaire
868
+
869
+ **Required Documents:**
870
+
871
+ ```
872
+ ✅ 1. Privacy Policy
873
+ - How you collect, use, and store financial data
874
+ - User rights (access, deletion, correction)
875
+ - Data retention policy
876
+ - Third-party sharing (if any)
877
+
878
+ ✅ 2. Terms of Service
879
+ - User agreement for using your app
880
+ - Liability limitations
881
+ - Termination conditions
882
+
883
+ ✅ 3. Security Measures Documentation
884
+ - Data encryption methods (AES-256, TLS 1.2+)
885
+ - Access controls (who can access user data)
886
+ - Employee training (how staff handles sensitive data)
887
+ - Incident response plan (what you do if breach occurs)
888
+
889
+ ✅ 4. Compliance Certifications (if applicable)
890
+ - SOC 2 Type II (for larger orgs)
891
+ - ISO 27001 (security management)
892
+ - GDPR compliance (if EU users)
893
+
894
+ ✅ 5. Technical Infrastructure
895
+ - Hosting provider (Vercel, Supabase)
896
+ - Database encryption (Supabase RLS + encryption at rest)
897
+ - API security (authentication, rate limiting)
898
+ ```
899
+
900
+ #### 2. Specific Security Requirements
901
+
902
+ **Data Encryption:**
903
+ ```typescript
904
+ // ✅ You already have this with Supabase
905
+ // Supabase provides:
906
+ - Encryption at rest (AES-256)
907
+ - Encryption in transit (TLS 1.2+)
908
+ - Row Level Security (RLS)
909
+
910
+ // Your responsibility:
911
+ // Store Plaid access tokens securely
912
+ await supabase.from('plaid_items').insert({
913
+ user_id: user.id,
914
+ access_token: encrypted(plaidAccessToken), // Don't store plain text!
915
+ item_id: plaidItemId
916
+ })
917
+ ```
918
+
919
+ **Access Controls:**
920
+ ```typescript
921
+ // ✅ Implement with Supabase RLS
922
+ CREATE POLICY "Users can only access their own Plaid data"
923
+ ON plaid_items FOR ALL
924
+ USING (auth.uid() = user_id);
925
+ ```
926
+
927
+ #### 3. Graham-Leach-Bliley Act (GLBA) Compliance
928
+
929
+ **Safeguards Rule Requirements:**
930
+
931
+ ```
932
+ ✅ 1. Designate a coordinator
933
+ - Who: You (as developer/owner)
934
+ - Responsibility: Oversee data security
935
+
936
+ ✅ 2. Risk assessment
937
+ - Document: "What data we collect" (bank transactions, balances)
938
+ - Document: "Where it's stored" (Supabase, encrypted)
939
+ - Document: "Who has access" (Only authenticated user via RLS)
940
+
941
+ ✅ 3. Safeguard design
942
+ - Technical: Encryption, RLS, secure API
943
+ - Physical: N/A (cloud-hosted)
944
+ - Administrative: Access policies, employee training (if any)
945
+
946
+ ✅ 4. Test and monitor
947
+ - Regular security audits (quarterly)
948
+ - Penetration testing (annually or via bug bounty)
949
+ - Monitor for breaches (Supabase logs)
950
+
951
+ ✅ 5. Update plan as needed
952
+ - Review security measures annually
953
+ - Update after any security incident
954
+ ```
955
+
956
+ #### 4. What You Can Do NOW (Before Full Documentation)
957
+
958
+ **Use Plaid Sandbox:**
959
+ ```typescript
960
+ // Development environment - no security docs needed
961
+ const plaidClient = new PlaidApi({
962
+ environment: PlaidEnvironments.sandbox, // ✅ No docs required
963
+ clientId: process.env.PLAID_CLIENT_ID,
964
+ secret: process.env.PLAID_SANDBOX_SECRET
965
+ })
966
+ ```
967
+
968
+ **Develop and test everything in Sandbox:**
969
+ - ✅ Connect test bank accounts
970
+ - ✅ Pull transactions
971
+ - ✅ Build full Plaid integration
972
+ - ✅ Beta test with users (using fake bank data)
973
+
974
+ **When ready for production:**
975
+ - Submit security questionnaire
976
+ - Plaid reviews (7-14 days)
977
+ - Get production access
978
+
979
+ ### Templates for Required Documents
980
+
981
+ #### Template 1: Privacy Policy (Simple Version)
982
+
983
+ ```markdown
984
+ # Privacy Policy for [Church Budget App]
985
+
986
+ **Last Updated:** February 1, 2026
987
+
988
+ ## What Information We Collect
989
+
990
+ We collect:
991
+ - Account credentials (email, password)
992
+ - Financial data (bank transactions, balances) via Plaid
993
+ - Budget information you enter
994
+ - AI usage data (prompts, responses)
995
+
996
+ ## How We Use Your Information
997
+
998
+ We use your information to:
999
+ - Provide budgeting and debt payoff tools
1000
+ - Connect to your bank accounts (via Plaid)
1001
+ - Generate AI-powered financial advice
1002
+ - Improve our services
1003
+
1004
+ ## How We Protect Your Information
1005
+
1006
+ We protect your data with:
1007
+ - AES-256 encryption at rest
1008
+ - TLS 1.2+ encryption in transit
1009
+ - Row-level security (you can only access your data)
1010
+ - Regular security audits
1011
+
1012
+ ## Data Sharing
1013
+
1014
+ We DO NOT sell your data. We share data only with:
1015
+ - Plaid (to connect your bank accounts)
1016
+ - OpenAI/Anthropic (only if you enable AI features with your own API key)
1017
+
1018
+ ## Your Rights
1019
+
1020
+ You can:
1021
+ - Access your data (export feature)
1022
+ - Delete your data (account deletion)
1023
+ - Correct your data (edit in settings)
1024
+
1025
+ ## Contact Us
1026
+
1027
+ Questions? Email: privacy@churchbudgetapp.com
1028
+
1029
+ ## GLBA Compliance
1030
+
1031
+ We comply with the Graham-Leach-Bliley Act (GLBA) Safeguards Rule.
1032
+ ```
1033
+
1034
+ #### Template 2: Security Measures Document
1035
+
1036
+ ```markdown
1037
+ # Security Measures - [Church Budget App]
1038
+
1039
+ ## Data Encryption
1040
+
1041
+ **At Rest:**
1042
+ - Database: Supabase (AES-256 encryption)
1043
+ - Backups: Encrypted daily
1044
+
1045
+ **In Transit:**
1046
+ - All connections use TLS 1.2 or higher
1047
+ - API calls to Plaid use HTTPS only
1048
+
1049
+ ## Access Controls
1050
+
1051
+ **User Data:**
1052
+ - Row Level Security (RLS) ensures users only access their own data
1053
+ - Authentication required for all API endpoints
1054
+ - Session tokens expire after 7 days
1055
+
1056
+ **Staff Access:**
1057
+ - No staff have direct database access
1058
+ - All changes logged in audit trail
1059
+ - Supabase admin access limited to [Owner Name]
1060
+
1061
+ ## Incident Response Plan
1062
+
1063
+ **If breach detected:**
1064
+ 1. Immediately revoke all access tokens
1065
+ 2. Notify affected users within 72 hours
1066
+ 3. Investigate root cause
1067
+ 4. Implement fixes
1068
+ 5. File required reports (state/federal)
1069
+
1070
+ ## Monitoring
1071
+
1072
+ **Continuous:**
1073
+ - Supabase real-time logs
1074
+ - Failed login attempt tracking
1075
+ - Unusual API usage alerts
1076
+
1077
+ **Regular Audits:**
1078
+ - Monthly: Review access logs
1079
+ - Quarterly: Security audit of codebase
1080
+ - Annually: Third-party penetration test
1081
+
1082
+ ## Employee Training
1083
+
1084
+ **Current:** Solo developer (you) - completed Plaid security training
1085
+ **Future:** All new employees complete security training before access
1086
+
1087
+ ## Compliance
1088
+
1089
+ We comply with:
1090
+ - GLBA Safeguards Rule
1091
+ - CCPA (California Consumer Privacy Act)
1092
+ - SOC 2 principles (in progress)
1093
+ ```
1094
+
1095
+ ### Recommendation for Your Timeline
1096
+
1097
+ **Now (Development Phase):**
1098
+ ```
1099
+ 1. Use Plaid Sandbox ✅
1100
+ 2. Build full Plaid integration ✅
1101
+ 3. Beta test with fake bank data ✅
1102
+ 4. Focus on core features (budget, GTA forms) ✅
1103
+ ```
1104
+
1105
+ **Before Production Launch:**
1106
+ ```
1107
+ 1. Write Privacy Policy (use template above)
1108
+ 2. Write Security Measures document
1109
+ 3. Submit Plaid security questionnaire
1110
+ 4. Wait for approval (7-14 days)
1111
+ 5. Switch to production Plaid keys
1112
+ ```
1113
+
1114
+ **Priority:** Finish core app FGTAT, then tackle Plaid paperwork. Sandbox is enough for beta testing.
1115
+
1116
+ ---
1117
+
1118
+ ## Development Roadmap Before Beta
1119
+
1120
+ ### Phase 1: Core Application Tabs (Weeks 1-3)
1121
+
1122
+ #### Week 1: Dashboard Tab
1123
+ ```typescript
1124
+ // Main dashboard components
1125
+ ✅ 1. Monthly Budget Overview
1126
+ - Income vs Expenses chart
1127
+ - Budget categories (Housing, Food, Transport, etc.)
1128
+ - Surplus/Deficit indicator
1129
+
1130
+ ✅ 2. Debt Summary Widget
1131
+ - Total debt amount
1132
+ - Monthly debt payments
1133
+ - Debt-to-income ratio
1134
+ - Quick link to "Debt Payoff" tab
1135
+
1136
+ ✅ 3. Upcoming Bills Widget
1137
+ - Next 7 days of bills
1138
+ - Overdue alerts (red)
1139
+ - Mark as paid functionality
1140
+
1141
+ ✅ 4. Quick Actions
1142
+ - "Add Transaction" button
1143
+ - "Connect Bank" (Plaid Sandbox)
1144
+ - "Ask AI" chat button
1145
+ ```
1146
+
1147
+ **Testing Checklist:**
1148
+ - [ ] All charts render correctly
1149
+ - [ ] Numbers update in real-time
1150
+ - [ ] Mobile responsive
1151
+ - [ ] Works with sample data
1152
+
1153
+ #### Week 2: Budget Tab
1154
+ ```typescript
1155
+ ✅ 1. Monthly Budget Planner
1156
+ - Set budget for each category
1157
+ - Actual vs Budgeted comparison
1158
+ - Progress bars (% spent)
1159
+ - Color coding (green=under, red=over)
1160
+
1161
+ ✅ 2. Transaction List
1162
+ - Filter by category
1163
+ - Search transactions
1164
+ - Edit/delete transactions
1165
+ - Plaid sync indicator
1166
+
1167
+ ✅ 3. Budget Templates
1168
+ - Dave Ramsey's Recommended Percentages
1169
+ - Church Ministry Budget
1170
+ - Single Income Family
1171
+ - Debt Payoff Focused
1172
+
1173
+ ✅ 4. Export Features
1174
+ - Export to CSV
1175
+ - Print budget report
1176
+ ```
1177
+
1178
+ **Testing Checklist:**
1179
+ - [ ] Budget categories customizable
1180
+ - [ ] Percentages calculate correctly
1181
+ - [ ] Templates load properly
1182
+ - [ ] Export works (CSV format)
1183
+
1184
+ #### Week 3: Debt Tab
1185
+ ```typescript
1186
+ ✅ 1. Debt List
1187
+ - All debts (credit cards, loans, GTA)
1188
+ - Balance, APR, minimum payment
1189
+ - Add/edit/delete debts
1190
+
1191
+ ✅ 2. Debt Payoff Calculator
1192
+ - Snowball strategy
1193
+ - Avalanche strategy
1194
+ - Custom strategy
1195
+ - Side-by-side comparison
1196
+
1197
+ ✅ 3. Payoff Progress
1198
+ - Timeline chart
1199
+ - Total interest calculation
1200
+ - Debt-free date
1201
+ - Motivational messages
1202
+
1203
+ ✅ 4. GTA Debt Special Section
1204
+ - GTA debt with penalty calculations
1205
+ - Link to Form 656 (OIC)
1206
+ - Link to Form 9465 (Installment)
1207
+ ```
1208
+
1209
+ **Testing Checklist:**
1210
+ - [ ] Debt calculations accurate
1211
+ - [ ] Interest accrues correctly
1212
+ - [ ] Timeline projections realistic
1213
+ - [ ] GTA-specific features work
1214
+
1215
+ ### Phase 2: GTA Forms Integration (Weeks 4-6)
1216
+
1217
+ #### Week 4: Form 433-A/B Polish
1218
+ ```typescript
1219
+ ✅ 1. Auto-populate from budget data
1220
+ - Monthly income → Section 1
1221
+ - Monthly expenses → Section 4
1222
+ - Assets → Section 3
1223
+ - Liabilities → Section 5
1224
+
1225
+ ✅ 2. Validation
1226
+ - Check for missing fields
1227
+ - Highlight errors
1228
+ - Prevent submission if incomplete
1229
+
1230
+ ✅ 3. Export Options
1231
+ - PDF generation
1232
+ - Save draft
1233
+ - Print-friendly format
1234
+ ```
1235
+
1236
+ #### Week 5: Form 656 & 9465 Integration
1237
+ ```typescript
1238
+ ✅ 1. Form 656 (Offer in Compromise)
1239
+ - Reasonable Collection Potential calculator
1240
+ - Doubt as to Collectibility wizard
1241
+ - ETA hardship statement template
1242
+
1243
+ ✅ 2. Form 9465 (Installment Agreement)
1244
+ - Calculate proposed monthly payment
1245
+ - Validate against GTA minimums
1246
+ - Link to Form 433-A
1247
+
1248
+ ✅ 3. Cross-Form Data Sync
1249
+ - Update one form → Others auto-update
1250
+ - Prevent data inconsistencies
1251
+ ```
1252
+
1253
+ #### Week 6: Additional GTA Forms
1254
+ ```typescript
1255
+ ✅ 1. Form 433-D (Installment Agreement)
1256
+ - Simpler than 9465
1257
+ - For debts under $50,000
1258
+
1259
+ ✅ 2. Form 433-F (Collection Information Statement)
1260
+ - Simpler version of 433-A
1261
+ - For smaller cases
1262
+
1263
+ ✅ 3. Form 8822 (Change of Address)
1264
+ - Auto-fill from user profile
1265
+ - GTA submission tracking
1266
+ ```
1267
+
1268
+ ### Phase 3: AI Features (Week 7)
1269
+
1270
+ ```typescript
1271
+ ✅ 1. BYOK Settings Page
1272
+ - Multi-provider support (OpenAI, Anthropic, Gemini)
1273
+ - API key validation
1274
+ - Usage tracking
1275
+ - Cost estimation
1276
+
1277
+ ✅ 2. AI Chat Interface
1278
+ - Context-aware (knows user's finances)
1279
+ - Debt payoff advice
1280
+ - Budget optimization tips
1281
+ - GTA form help
1282
+
1283
+ ✅ 3. AI-Powered Features
1284
+ - "Analyze my budget" button
1285
+ - "Optimize my debt payoff" button
1286
+ - "Review my OIC chances" button
1287
+ ```
1288
+
1289
+ ### Phase 4: Auth & Settings (Week 8)
1290
+
1291
+ ```typescript
1292
+ ✅ 1. Supabase Google Sign-In
1293
+ - One-click login
1294
+ - Auto-create user profile
1295
+ - Redirect to dashboard
1296
+
1297
+ ✅ 2. User Profile
1298
+ - Basic info (name, email)
1299
+ - Church affiliation
1300
+ - Household size
1301
+ - Income sources
1302
+
1303
+ ✅ 3. App Settings
1304
+ - Dark mode toggle
1305
+ - Budget categories customization
1306
+ - Notification preferences
1307
+ - Data export
1308
+ ```
1309
+
1310
+ ### Phase 5: Polish & Beta Prep (Week 9-10)
1311
+
1312
+ ```typescript
1313
+ ✅ 1. Bug Fixes
1314
+ - Fix TypeScript errors
1315
+ - Fix UI glitches
1316
+ - Test all user flows
1317
+
1318
+ ✅ 2. Mobile Responsiveness
1319
+ - Test on iPhone/Android
1320
+ - Fix layout issues
1321
+ - Optimize for tablets
1322
+
1323
+ ✅ 3. Performance
1324
+ - Lazy load components
1325
+ - Optimize images
1326
+ - Reduce bundle size
1327
+
1328
+ ✅ 4. Documentation
1329
+ - User guide (how to use each feature)
1330
+ - Video walkthrough (5-10 min)
1331
+ - FAQ
1332
+ ```
1333
+
1334
+ ### Beta Launch Checklist
1335
+
1336
+ **Before inviting users:**
1337
+ - [ ] All core tabs functional
1338
+ - [ ] GTA forms working (at least 433-A/B, 656, 9465)
1339
+ - [ ] AI chat working with BYOK
1340
+ - [ ] Google Sign-In working
1341
+ - [ ] Mobile responsive
1342
+ - [ ] No critical bugs
1343
+ - [ ] Sample data for testing
1344
+ - [ ] User guide written
1345
+ - [ ] Plaid Sandbox configured
1346
+ - [ ] Vercel deployed
1347
+ - [ ] SSL working
1348
+ - [ ] Terms of Service (simple version)
1349
+ - [ ] Privacy Policy (simple version)
1350
+
1351
+ **Beta user onboarding:**
1352
+ 1. Send invite email with login link
1353
+ 2. Include "Getting Started" guide
1354
+ 3. Provide feedback form
1355
+ 4. Schedule 1-on-1 walkthrough (optional)
1356
+ 5. Weekly check-ins
1357
+
1358
+ ---
1359
+
1360
+ ## Quick Implementation Guides
1361
+
1362
+ ### 1. Google Sign-In with Supabase (15 minutes)
1363
+
1364
+ **Step 1: Enable in Supabase Dashboard**
1365
+
1366
+ 1. Go to Supabase Dashboard → Authentication → Providers
1367
+ 2. Enable "Google"
1368
+ 3. Get credentials:
1369
+ - Go to [Google Cloud Console](https://console.cloud.google.com)
1370
+ - Create project → APIs & Services → Credentials
1371
+ - Create OAuth 2.0 Client ID
1372
+ - Authorized redirect URIs: `https://[your-project].supabase.co/auth/v1/callback`
1373
+ 4. Copy Client ID and Client Secret
1374
+ 5. Paste into Supabase
1375
+
1376
+ **Step 2: Frontend Implementation**
1377
+
1378
+ ```typescript
1379
+ // src/components/Auth/LoginPage.tsx
1380
+ import { useSupabase } from '@/hooks/useSupabase'
1381
+
1382
+ export function LoginPage() {
1383
+ const { supabase } = useSupabase()
1384
+
1385
+ const signInWithGoogle = async () => {
1386
+ const { error } = await supabase.auth.signInWithOAuth({
1387
+ provider: 'google',
1388
+ options: {
1389
+ redirectTo: `${window.location.origin}/dashboard`
1390
+ }
1391
+ })
1392
+
1393
+ if (error) {
1394
+ console.error('Error signing in with Google:', error)
1395
+ }
1396
+ }
1397
+
1398
+ return (
1399
+ <div className="login-page">
1400
+ <h1>Church Budget App</h1>
1401
+ <p>Manage your finances and pay off debt</p>
1402
+
1403
+ <button onClick={signInWithGoogle} className="google-signin-btn">
1404
+ <img src="/google-icon.svg" alt="Google" />
1405
+ Sign in with Google
1406
+ </button>
1407
+
1408
+ <p className="terms">
1409
+ By signing in, you agree to our{' '}
1410
+ <a href="/terms">Terms of Service</a> and{' '}
1411
+ <a href="/privacy">Privacy Policy</a>
1412
+ </p>
1413
+ </div>
1414
+ )
1415
+ }
1416
+ ```
1417
+
1418
+ **Step 3: Protected Routes**
1419
+
1420
+ ```typescript
1421
+ // src/components/Auth/ProtectedRoute.tsx
1422
+ import { useEffect } from 'react'
1423
+ import { useNavigate } from 'react-router-dom'
1424
+ import { useSupabase } from '@/hooks/useSupabase'
1425
+
1426
+ export function ProtectedRoute({ children }) {
1427
+ const { user, loading } = useSupabase()
1428
+ const navigate = useNavigate()
1429
+
1430
+ useEffect(() => {
1431
+ if (!loading && !user) {
1432
+ navigate('/login')
1433
+ }
1434
+ }, [user, loading, navigate])
1435
+
1436
+ if (loading) {
1437
+ return <div>Loading...</div>
1438
+ }
1439
+
1440
+ if (!user) {
1441
+ return null
1442
+ }
1443
+
1444
+ return <>{children}</>
1445
+ }
1446
+
1447
+ // Usage in routes
1448
+ <Route path="/dashboard" element={
1449
+ <ProtectedRoute>
1450
+ <Dashboard />
1451
+ </ProtectedRoute>
1452
+ } />
1453
+ ```
1454
+
1455
+ ### 2. Multi-Provider AI Settings (30 minutes)
1456
+
1457
+ **Schema:**
1458
+
1459
+ ```sql
1460
+ -- Add to user_settings table
1461
+ ALTER TABLE user_settings ADD COLUMN ai_provider TEXT DEFAULT 'openai';
1462
+ ALTER TABLE user_settings ADD COLUMN preferred_model TEXT DEFAULT 'gpt-4o-mini';
1463
+ ALTER TABLE user_settings ADD COLUMN api_key_encrypted TEXT;
1464
+
1465
+ -- Usage logging
1466
+ CREATE TABLE ai_usage_logs (
1467
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
1468
+ user_id UUID REFERENCES auth.users(id),
1469
+ provider TEXT NOT NULL,
1470
+ model TEXT NOT NULL,
1471
+ input_tokens INTEGER,
1472
+ output_tokens INTEGER,
1473
+ estimated_cost NUMERIC(10, 6),
1474
+ created_at TIMESTAMPTZ DEFAULT NOW()
1475
+ );
1476
+
1477
+ ALTER TABLE ai_usage_logs ENABLE ROW LEVEL SECURITY;
1478
+
1479
+ CREATE POLICY "Users can view their own usage"
1480
+ ON ai_usage_logs FOR SELECT
1481
+ USING (auth.uid() = user_id);
1482
+ ```
1483
+
1484
+ **Component:** (Already provided in AI Providers section above)
1485
+
1486
+ ### 3. GTA Debt Calculator Widget (1 hour)
1487
+
1488
+ ```typescript
1489
+ // src/components/Debt/GTADebtCalculator.tsx
1490
+ import { useState, useEffect } from 'react'
1491
+
1492
+ const GTA_INTEREST_RATE = 0.08 // 8% as of 2025
1493
+ const FAILURE_TO_PAY_PENALTY = 0.005 // 0.5% per month
1494
+
1495
+ export function GTADebtCalculator({ initialDebt, assessmentDate }) {
1496
+ const [projection, setProjection] = useState(null)
1497
+
1498
+ useEffect(() => {
1499
+ calculateProjection()
1500
+ }, [initialDebt, assessmentDate])
1501
+
1502
+ const calculateProjection = () => {
1503
+ const today = new Date()
1504
+ const assessment = new Date(assessmentDate)
1505
+ const monthsElapsed = (today - assessment) / (1000 * 60 * 60 * 24 * 30)
1506
+
1507
+ // Calculate current debt
1508
+ const interestAccrued = initialDebt * GTA_INTEREST_RATE * (monthsElapsed / 12)
1509
+ const penaltiesAccrued = initialDebt * FAILURE_TO_PAY_PENALTY * monthsElapsed
1510
+ const currentDebt = initialDebt + interestAccrued + penaltiesAccrued
1511
+
1512
+ // Project future
1513
+ const projections = [3, 6, 12, 24].map(months => {
1514
+ const totalMonths = monthsElapsed + months
1515
+ const interest = initialDebt * GTA_INTEREST_RATE * (totalMonths / 12)
1516
+ const penalties = initialDebt * FAILURE_TO_PAY_PENALTY * totalMonths
1517
+ return {
1518
+ months,
1519
+ debt: initialDebt + interest + penalties
1520
+ }
1521
+ })
1522
+
1523
+ setProjection({
1524
+ original: initialDebt,
1525
+ current: currentDebt,
1526
+ interestAccrued,
1527
+ penaltiesAccrued,
1528
+ projections
1529
+ })
1530
+ }
1531
+
1532
+ if (!projection) return <div>Loading...</div>
1533
+
1534
+ return (
1535
+ <div className="irs-debt-calculator">
1536
+ <h3>GTA Debt Projection</h3>
1537
+
1538
+ <div className="current-status">
1539
+ <div>Original Debt: ${projection.original.toLocaleString()}</div>
1540
+ <div>Interest Accrued: ${projection.interestAccrued.toFixed(2)}</div>
1541
+ <div>Penalties Accrued: ${projection.penaltiesAccrued.toFixed(2)}</div>
1542
+ <div className="total">
1543
+ Current Total: ${projection.current.toFixed(2)}
1544
+ </div>
1545
+ </div>
1546
+
1547
+ <div className="projection-timeline">
1548
+ <h4>⚠️ If You Don't Act:</h4>
1549
+ {projection.projections.map(p => (
1550
+ <div key={p.months} className="projection-row">
1551
+ <span>{p.months} months:</span>
1552
+ <span className="amount">${p.debt.toLocaleString()}</span>
1553
+ <span className="increase">
1554
+ (+${(p.debt - projection.current).toFixed(0)})
1555
+ </span>
1556
+ </div>
1557
+ ))}
1558
+ </div>
1559
+
1560
+ <div className="actions">
1561
+ <button onClick={() => navigate('/forms/656')}>
1562
+ Apply for Offer in Compromise
1563
+ </button>
1564
+ <button onClick={() => navigate('/forms/9465')}>
1565
+ Set Up Installment Agreement
1566
+ </button>
1567
+ </div>
1568
+ </div>
1569
+ )
1570
+ }
1571
+ ```
1572
+
1573
+ ---
1574
+
1575
+ ## Summary & Recommendations
1576
+
1577
+ ### Top 5 Unique Features to Implement First
1578
+
1579
+ 1. **✅ GTA Form Auto-Fill** (Week 4) - Saves users 2-3 hours, nobody else has this
1580
+ 2. **✅ AI Debt Optimization** (Week 7) - Beats generic snowball/avalanche, personalized
1581
+ 3. **✅ OIC Approval Predictor** (Week 7) - Unique to your app, massive value
1582
+ 4. **✅ Multi-Provider AI (BYOK)** (Week 7) - User cost savings, flexibility
1583
+ 5. **✅ Debt Payoff Gamification** (Week 8-9) - Motivation = completion rates
1584
+
1585
+ ### AI Provider Recommendation
1586
+
1587
+ **Support all three, default to OpenAI:**
1588
+ - OpenAI: Best general-purpose, most reliable
1589
+ - Anthropic: Best for long documents (GTA forms analysis)
1590
+ - Gemini: Cheapest (good for high-volume users)
1591
+
1592
+ ### Plaid Security Strategy
1593
+
1594
+ **Short-term:** Use Sandbox (no docs needed)
1595
+ **Long-term:** Complete security questionnaire after beta testing
1596
+ **Priority:** Build app first, paperwork second
1597
+
1598
+ ### Your Roadmap (Next 10 Weeks)
1599
+
1600
+ ```
1601
+ Weeks 1-3: Core tabs (Dashboard, Budget, Debt)
1602
+ Weeks 4-6: GTA forms polish + integration
1603
+ Week 7: AI features (BYOK + chat)
1604
+ Week 8: Auth (Google Sign-In) + Settings
1605
+ Weeks 9-10: Polish, mobile responsive, bug fixes
1606
+ Week 11: BETA LAUNCH 🚀
1607
+ ```
1608
+
1609
+ **Focus:** Nail the core experience before adding bells & whistles. Beta users will tell you what features matter most!
1610
+
1611
+ ---
1612
+
1613
+ You're building something truly unique - GTA forms + AI + debt payoff in a church ministry context. No competitor has this combo. Keep it simple, launch fast, iterate based on feedback. 🎯